您好,欢迎访问一九零五行业门户网

运用PHPExcel导入导出excel格式文件

使用phpexcel导入导出excel格式文件
使用phpexcel导入导出excel格式文件
作者:zccst
由于导出使用较多,下面是导出实现过程。
第一步,将phpexcel的源代码复制到项目的lib下
文件包括:phpexcel.php 和 文件夹phpexcel
源代码见附件
注1:源代码是zip格式,能在windows和linux通用。
注2:phpexcel.zip是干净代码,可以直接引用。phpexcel2.zip有svn记录,不适合直接引用。
第二步:在需要导出的handler页面中引用
1,在头部引入三个文件
//设置环境变量(新增phpexcel)set_include_path('.'. path_separator . yii::app()->basepath.'/lib/phpexcel' . path_separator . get_include_path());//注:在yii中,也可以直接yii::import(“application.lib.phpexcel.*”);//引入phpexcel相关文件require_once phpexcel.php;require_once 'phpexcel/iofactory.php';require_once 'phpexcel/writer/excel5.php';
2,将数据放入excel表格中
//新建$resultphpexcel = new phpexcel();//设置参数//设值$resultphpexcel->getactivesheet()->setcellvalue('a1', '季度');$resultphpexcel->getactivesheet()->setcellvalue('b1', '名称');$resultphpexcel->getactivesheet()->setcellvalue('c1', '数量');$i = 2;foreach($data as $item){ $resultphpexcel->getactivesheet()->setcellvalue('a' . $i, $item['quarter']); $resultphpexcel->getactivesheet()->setcellvalue('b' . $i, $item['name']); $resultphpexcel->getactivesheet()->setcellvalue('c' . $i, $item['number']); $i ++;}
3,设置导出的一些参数
版本一:
//设置导出文件名$outputfilename = 'total.xls';$xlswriter = new phpexcel_writer_excel5($resultphpexcel);//ob_start(); ob_flush();header(content-type: application/force-download);header(content-type: application/octet-stream);header(content-type: application/download);header('content-disposition:inline;filename='.$outputfilename.'');header(content-transfer-encoding: binary);header(expires: mon, 26 jul 1997 05:00:00 gmt);header(last-modified: . gmdate(d, d m y h:i:s) . gmt);header(cache-control: must-revalidate, post-check=0, pre-check=0);header(pragma: no-cache);$xlswriter->save( php://output );
版本二:
$writer = phpexcel_iofactory::createwriter($resultphpexcel, 'excel5');$writer->settempdir(yii::app()->basepath.'/runtime');$filename = 单.xls;header(pragma: public);header(cache-control: must-revalidate, post-check=0, pre-check=0);header(content-type: application/force-download);header('content-type: application/vnd.ms-excel');header('content-disposition: attachment;filename=' . $filename . '');header('cache-control: max-age=0');$writer->save('php://output');
4,增加附件(非必需)
$objphpexcel = new phpexcel();$objreader = phpexcel_iofactory::createreader('excel5');$objreader->setreaddataonly(true);foreach($data2 as $item){ $fp = dirname(__file__) . /../../../ . $item['file_path'] ; $objphpexcel = $objreader->load($fp); $objworksheet = $objphpexcel->getactivesheet(); $resultphpexcel->addexternalsheet($objworksheet);}
高级主题
1,excel5与excel2007区别
ziparchive.php
有很多php(php.ini)不支持excel2007,所以建议使用excel5。
2,设置临时文件位置
如果报临时文件名错,则更改临时文件路径
xlswriter.setdirname(yii::app()->basepath.'/runtime');
3,设置excel单元格的格式
过滤
4,输出有错。
默认$xlswriter->save( php://output );可能因为缓存不够大,而显示不完整,所以做个中转,方式如下:
$finalfilename = (yii::app()->basepath.'/runtime/'.time().'.xls';$xlswriter->save($finalfilename);echo file_get_contents($finalfilename); //file_get_contents() 函数把整个文件读入一个字符串中。和 file() 一样,不同的是 file_get_contents() 把文件读入一个字符串。
其他设置可参考:
http://www.zeali.net/entry/556
其它类似信息

推荐信息