phpexcel用于生成 Excel 报表,需引入类库并创建实例。依次设置属性、写入数据、格式化样式(如列宽、金额格式、加粗表头),最后通过 IOFactory 输出至 浏览器 或保存服务器,支持。xls 和。xlsx 格式,适用于中小数据量报表处理。

PHPExcel 是一个功能强大的 PHP 库,用于读取和写入 Excel 文件格式(如 .xls、.xlsx、.csv 等)。虽然该项目已停止维护,被 PhpSpreadsheet 取代,但仍有大量项目在使用它。以下是使用 PHPExcel 生成报表的基本操作方法。
1. 引入 PHPExcel 类库
首先确保你已下载并引入 PHPExcel 文件。你可以从 gitHub 或旧版本源码中获取,解压 后将整个文件夹放入项目目录。
使用时通过 require_once 加载主类文件:
require_once 'PHPExcel/Classes/PHPExcel.php';
立即学习“PHP 免费学习笔记(深入)”;
2. 创建 Excel 表格 并写入数据
生成报表的核心是创建工作表、填充数据并设置样式。
示例:生成一份销售报表
// 实例化 PHPExcel 对象 $objPHPExcel = new PHPExcel(); // 设置文档属性(可选)$objPHPExcel->getProperties() ->setCreator("Your Name") ->setTitle(" 销售报表 ") ->setSubject(" 月度销售数据 "); // 获取活动工作表 $objsheet = $objPHPExcel->getActiveSheet(); $objSheet->setTitle('销售数据'); // 写入表头 $objSheet->setCellValue('A1', '订单编号'); $objSheet->setCellValue('B1', '客户姓名'); $objSheet->setCellValue('C1', '金额'); $objSheet->setCellValue('D1', '日期'); // 模拟数据写入 $data = [['SO001', '张三', 299.50, '2024-04-01'], ['SO002', '李四', 450.00, '2024-04-02'], ['SO003', '王五', 199.99, '2024-04-03'] ]; $rowindex = 2; // 从第 2 行开始写入数据 foreach ($data as $row) {$objSheet->setCellValue('A' . $rowIndex, $row[0]); $objSheet->setCellValue('B' . $rowIndex, $row[1]); $objSheet->setCellValue('C' . $rowIndex, $row[2]); $objSheet->setCellValue('D' . $rowIndex, $row[3]); $rowIndex++; }
3. 格式化单元格与列宽调整
为了让报表更清晰,可以设置列宽、数字格式、字体等。
- 自动调整列宽:
$objSheet->getColumnDimension('A')->setAutoSize(true); - 设置金额格式:
$objSheet->getStyle('C2:C100')->getNumberFormat()->setFormatCode('#,##0.00'); - 加粗表头:
$objSheet->getStyle('A1:D1')->getFont()->setBold(true);
4. 输出文件到 浏览器 或保存到服务器
完成数据写入后,可以选择输出给用户下载,或保存在服务器上。
导出到浏览器(用户下载):
header('Content-Type: application/vnd.ms-excel'); header('Content-Disposition: attachment;filename="sales_report.xls"'); header('Cache-Control: max-age=0'); $objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('php://output'); exit;
保存到服务器:
$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5'); $objWriter->save('./reports/sales_report.xls');
支持的格式包括:Excel5(.xls) 和 Excel2007(.xlsx),选择对应 Writer 即可。
基本上就这些。掌握这些步骤后,你可以根据实际业务组装数据,生成各类统计报表。注意 PHPExcel 对内存消耗较大,处理 大数据 量时建议分批或改用 PhpSpreadsheet 优化性能。


