ThinkPHP框架中可以借助PHPExcel扩展生成Excel文件。首先需要下载PHPExcel扩展,然后将其解压缩后放入应用目录的extend文件夹下。
对于生成Excel文件,我们可以使用PHPExcel提供的一系列API来进行操作。首先,需要在控制器中引入PHPExcel库及相关类库,并创建一个Writter对象:
use PHPExcel;
use PHPExcel_IOFactory;
use PHPExcel_Style_Alignment;
$objPHPExcel = new PHPExcel();
$objWriter = new PHPExcel_IOFactory::createWriter($objPHPExcel, 'Excel5');
接下来可以设置Excel文件的基本属性以及内容:
// 设置文档属性
$objPHPExcel->getProperties()->setCreator("My App")
->setLastModifiedBy("My App")
->setTitle("Worksheet Title")
->setSubject("Worksheet Subject")
->setDescription("Worksheet Description")
->setKeywords("office Excel PHP")
->setCategory("Worksheet Category");
// 设置表头
$objPHPExcel->getActiveSheet()->setCellValue('A1', '用户名')
->setCellValue('B1', '邮箱')
->setCellValue('C1', '手机号');
// 分别填充前两行数据
foreach ($data as $key => $value) {
$num = $key + 2;
$objPHPExcel->getActiveSheet()->setCellValue('A'.$num, $value['username'])
->setCellValue('B'.$num, $value['email'])
->setCellValue('C'.$num, $value['mobile']);
}
最后保存或输出生成的Excel文件:
$filename = "user_" . date("YmdHis") . ".xls"; // 定义导出的文件名
header('Content-Type: application/vnd.ms-excel');
header("Content-Disposition: attachment;filename=$filename");
header('Cache-Control: max-age=0');
$objWriter->save('php://output');
exit;
需要注意的是,在填充Excel数据时,PHPExcel提供了多种设置单元格格式、字体、颜色等样式的方法,可以根据实际需要进行调整。
另外需要保证PHP环境中已经安装了zip扩展和XML模块,否则将无法正常使用PHPExcel。