phpspreadsheet导出数据到Excel
程序员文章站
2023-02-21 12:37:23
之前我们使用PHP导出Excel数据时使用的是PHPExcel库,但是phpoffice已经官方宣布PHPExcel已经被废弃不在维护,推荐使用phpspreadsheet,如下图所示 我们可以通过composer安装phpspreadsheet 使用phpspreadsheet导出学生信息到浏览器 ......
之前我们使用php导出excel数据时使用的是phpexcel库,但是phpoffice已经官方宣布phpexcel已经被废弃不在维护,推荐使用phpspreadsheet,如下图所示
我们可以通过composer安装phpspreadsheet
composer require phpoffice/phpspreadsheet
使用phpspreadsheet导出学生信息到浏览器代码示例
/** * 输出到浏览器(需要设置header头) * @param string $filename 文件名 * @param string $filetype 文件类型 */ function excelbrowserexport($filename, $filetype) { //文件名称校验 if(!$filename) { trigger_error('文件名不能为空', e_user_error); } //excel文件类型校验 $type = ['excel2007', 'xlsx', 'excel5', 'xls']; if(!in_array($filetype, $type)) { trigger_error('未知文件类型', e_user_error); } if($filetype == 'excel2007' || $filetype == 'xlsx') { header('content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet'); header('content-disposition: attachment;filename="'.$filename.'.xlsx"'); header('cache-control: max-age=0'); } else { //excel5 header('content-type: application/vnd.ms-excel'); header('content-disposition: attachment;filename="'.$filename.'.xls"'); header('cache-control: max-age=0'); } } $data = [ [1, 'jack', 10], [2, 'mike', 12], [3, 'jane', 21], [4, 'paul', 26], [5, 'kitty', 25], [6, 'yami', 60], ]; $title = ['id', 'name', 'age']; $spreadsheet = new spreadsheet(); $worksheet = $spreadsheet->getactivesheet(); //设置工作表标题名称 $worksheet->settitle('工作表格1'); //表头 //设置单元格内容 foreach ($title as $key => $value) { $worksheet->setcellvaluebycolumnandrow($key+1, 1, $value); } $row = 2; //从第二行开始 foreach ($data as $item) { $column = 1; foreach ($item as $value) { $worksheet->setcellvaluebycolumnandrow($column, $row, $value); $column++; } $row++; } $filename = '学生信息'; $filetype = 'xlsx'; //1.下载到服务器 //$writer = iofactory::createwriter($spreadsheet, 'xlsx'); //$writer->save($filename.'.'.$filetype); //2.输出到浏览器 $writer = iofactory::createwriter($spreadsheet, 'xlsx'); //按照指定格式生成excel文件 excelbrowserexport($filename, 'xlsx'); $writer->save('php://output');
导出结果如图所示:
上一篇: 记走出自动化部署的第一步