处理前-库的选择
实际工作场景中,经常需要将系统中数据导出为Excel,便于产品和运营查阅和二次处理。本文详细介绍了使用PHP导出数据的方法。
PHP操作Excel主要有两个第三方库,一个是PHPExcel,另外一个是PhpSpreadsheet。其中PhpSpreadsheet是PHPExcel的升级版本。
PHPExcel本身支持超链接、样式设置(字体、颜色、边框线、对齐等)、行高列宽设置、表格冻结、公式、合并单元格、多表格等特性。从官方文档得知,PHPExcel支持PHP5.2版本,代码质量和性能会低于PhpSpreadsheet。另外PHPExcel从2015年便不再维护,因此很难从社区增加新特性和处理历史缺陷。PHPExcel支持xls和xlsx两种格式,xls是Microsoft Excel 2003以下版本支持的文件,xlsx是Microsoft Excel 2007以后开始的。
PhpSpreadsheet是下一代的PHPExcel,支持PHP5.6及以上,可以处理Microsoft Excel和LibreOffice Calc。PhpSpreadsheet作为下一代的PHPExcel,目前得到社区持续维护。
基于本身业务特点,以及疑难问题的快速处理,最终选择了PHPExcel作为导出的基础库,并且采用xls文件格式。PHPExcel库因为历史久远,积累了很多其他用户踩过的坑,也便于我们处理类似疑难问题。
下文所述的方法是将内容导出为xls文件格式。
处理中-内容的处理
处理多sheet
- 核心方法: o b j p h p e x c e l − > c r e a t e S h e e t ( obj_phpexcel->createSheet( objphpexcel−>createSheet(i);
$obj_phpexcel = new PHPExcel();
$sheet_datas;//实际数据
$sheet_name = 'test';
foreach($sheet_datas as $i => $sheet_data) {
$obj_phpexcel->createSheet($i);
$obj_phpexcel->setActiveSheetIndex($sheet_index);
$obj_phpexcel->getActiveSheet()->setTitle($sheet_name);
}
处理样式
- 核心方法: o b j p h p e x c e l − > g e t A c t i v e S h e e t ( ) − > g e t S t y l e (