使用PhpSpreadsheet插件导出Excel文件
最近,在做公司的项目的时候,需要导出Excel文件以方便跟其他系统进行数据对接。我理所当然的想到了PHPExcel
,然后我就去找插件包,结果发现
phpexcel.pngPhpSpreadsheet
ps:研究之前我先把一些有关链接发出来
> Github地址:https://github.com/PHPOffice/PhpSpreadsheet
> 官方文档:https://phpspreadsheet.readthedocs.io/en/latest/
> 官方API文档:https://phpoffice.github.io/PhpSpreadsheet/master/
> Gitter社区:https://gitter.im/PHPOffice/PhpSpreadsheet
> Stackoverflow社区:https://stackoverflow.com/questions/tagged/phpspreadsheet
首先,composer
下载插件包,至于如何安装并使用composer
,麻烦移步baidu
,google
;
shell
composer require phpoffice/phpspreadsheet
首先我引入文件
因为我是读一张原表并且填入数据生成新表,所以我这边没有什么太多的结构层改变,仅仅引用三个文件就行 ```php namespace common;
use \PhpOffice\PhpSpreadsheet\Reader\IReader; use \PhpOffice\PhpSpreadsheet\Writer\IWriter; use \PhpOffice\PhpSpreadsheet\IOFactory; ```
然后我先导入默认的表
//因为生成excel文件会消耗大量的内存资源,为了防止超时未完成,特意把运行时间的限制关掉
set_time_limit(0);
//默认表文件路径
$readFileName = dirname(dirname(__FILE__)).'/commonFile/main.xls';
//读取表
$spreadsheet = IOFactory::load($readFileName);
//选择Excel文件中的活动表
$worksheet = $spreadsheet->getActiveSheet();
//当然如果多sheet的Excel文件也可以用getShee($key) 来获取活动表 比如这样:这个$key就是sheet的索引
//$worksheet = $spreadsheet->getSheet(2);
写入数据并保存文件
//在这里介绍两种写入方式,第一种简单的getCell获取坐标,setValue设置参数
$worksheet->getCell('A1')->setValue('hello,');
$worksheet->getCell('A2')->setValue('world!');
//第二种是一个函数多参数setCellValueExplicit($Coordinate,$value,$dataType)
//第一个Coordinate是单元格坐标,第二个$value是值,第三个是显示的数据类型
$worksheet->setCellValueExplicit('A3','13732174321',\PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING);
保存文件
//把文件参数给到createWriter函数的第一个参数,第二个参数是代表保存的文件格式
$writer = IOFactory::createWriter($spreadsheet,'Xls');
$writer->save(dirname(dirname(dirname(dirname(__FILE__)))).'/public/orderxls/test.xls');
ok,当走完最后一步,你就会发现在你的服务器中生成了一张名为test的Excel表,就是这么简单!
本文为ctexthuang原创文章,转载请注明来自ctexthuang_blog