??????峤 发表于 2017-4-1 08:59:23

修订版 PHP 导入 、导出EXCEL

<?php
header("Content-Type: text/html; charset=utf-8");
require_once './PHPExcel.php';
require_once './PHPExcel/IOFactory.php';
require_once './PHPExcel/Reader/Excel5.php';

/**
*    读取Excel表格
*    @param $filePath   Excel文件路径
*    @param $field      需要保存的字段      array('id','username','password')
*    @param $column      读取Excel那列      array('A','B','C')
*    @param $start      从第几行遍历      num
*    @examlpe
*/   


$filePath = 'Book1.xls';
$column = array( 'A','B','C','D','E');
$start = 1;
$list = readExcel($filePath,$column,$start);

function readExcel($filePath,$column,$start){
$objReader = PHPExcel_IOFactory::createReader('Excel5');//use excel2007 for 2007 format
$objPHPExcel = $objReader->load($filePath); //$filename可以是上传的文件,或者是指定的文件
$sheet = $objPHPExcel->getSheet(0);
$highestRow = $sheet->getHighestRow(); // 取得总行数
$highestColumn = $sheet->getHighestColumn(); // 取得总列数
for($j=$start;$j<=$highestRow;$j++)
{
$colData = array();
$count = count($column);
for($i=0;$i<$count;$i++){
//$colData["id".($i+1)] = $objPHPExcel->getActiveSheet()->getCell($column[$i].$j)->getValue();//获取A列的值
$colData[$column[$i]] = $objPHPExcel->getActiveSheet()->getCell($column[$i].$j)->getValue();//获取A列的值
}
$excelData[] = $colData;
}
return $excelData;
}

//$data = array(array('a','b','c','d'),array('e','f','g','h'));
$field = array('A','B','C','D','E','F');
exportexcel($list,$field,'test1111.xls','aaaaaaa');
/**
*    导出数据为excel表格
*    @param $data    一个二维数组,结构如同从数据库查出来的数组
*    @param $title   excel的第一行标题,一个数组,如果为空则没有标题
*    @param $filename 下载的文件名
$param $field    保存到excel 的 第几行的第几列
*    @examlpe
exportexcel($data,$field,'test.xls','这是个测试');
*/
function exportexcel($data,$field,$filename,$title){
$objPHPExcel = new PHPExcel; //实例化excel类
//$objWriter = new PHPExcel_Writer_Excel5($objPHPExcel); //实例化excel5(2007以前的版本)写入类
$objWriter = new PHPExcel_Writer_Excel2007($objPHPExcel);

/* 设置当前的sheet */
$objPHPExcel->setActiveSheetIndex(0);
$objActSheet = $objPHPExcel->getActiveSheet();
/**shee标题**/
$objActSheet->setTitle($title);
$fields = '';
$i = 1;
foreach($data as $value){
$j = 0;
foreach($value as $k=>$v){
$fields = $field[$j].$i;
$objActSheet->setCellValue($fields,$v);
$j++;
}
$i++;
}
$objWriter->save($filename);
header("Pragma: public");
header("Expires: 0");
header("Cache-Control:must-revalidate,post-check=0,pre-check=0");
header("Content-Type:application/force-download");
header("Content-Type:application/vnd.ms-execl");
header("Content-Type:application/octet-stream");
header("Content-Type:application/download");
header('Content-Disposition:attachment;filename='.$filename);
header("Content-Transfer-Encoding:binary");
$objWriter->save('php://output');

}



?>
页: [1]
查看完整版本: 修订版 PHP 导入 、导出EXCEL