thinkphp5 PHPExcel 导出excel
展开阅读全文

用thinkphp5导出excel,导出的时候,没有下载excel,只有网页显示一堆乱码

原来代码:

require_once 'Classes/PHPExcel/IOFactory.php';
        $path = dirname(__FILE__); //找到当前脚本所在路径
        $PHPExcel = new \PHPExcel(); //实例化PHPExcel类,类似于在桌面上新建一个Excel表格
        $PHPSheet = $PHPExcel->getActiveSheet(); //获得当前活动sheet的操作对象
        $PHPSheet->setTitle('demo'); //给当前活动sheet设置名称
        $PHPSheet->setCellValue('A1', '姓名')->setCellValue('B1', '分数'); //给当前活动sheet填充数据,数据填充是按顺序一行一行填充的,假如想给A1留空,可以直接setCellValue('A1','');
        $PHPSheet->setCellValue('A2', '张三')->setCellValue('B2', '50');
        $PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel2007'); //按照指定格式生成Excel文件,'Excel2007'表示生成2007版本的xlsx,'Excel5'表示生成2003版本Excel文件
        header("Content-Type: application/force-download");
        header("Content-Type: application/octet-stream");
        header("Content-Type: application/download");
        $outfile = '123.xlsx';
        header('Content-Disposition:inline;filename="' . $outfile . '"');
        header("Content-Transfer-Encoding: binary");
        header("Cache-Control: must-revalidate, post-check=0, pre-check=0");
        header("Pragma: no-cache");
        $PHPWriter->save("php://output");

现在代码:

require_once 'Classes/PHPExcel/IOFactory.php';
        $path = dirname(__FILE__); //找到当前脚本所在路径
        $PHPExcel = new \PHPExcel(); //实例化PHPExcel类,类似于在桌面上新建一个Excel表格
        $PHPSheet = $PHPExcel->getActiveSheet(); //获得当前活动sheet的操作对象
        $PHPSheet->setTitle('demo'); //给当前活动sheet设置名称
        $PHPSheet->setCellValue('A1', '姓名')->setCellValue('B1', '分数'); //给当前活动sheet填充数据,数据填充是按顺序一行一行填充的,假如想给A1留空,可以直接setCellValue('A1','');
        $PHPSheet->setCellValue('A2', '张三')->setCellValue('B2', '50');
        $PHPWriter = \PHPExcel_IOFactory::createWriter($PHPExcel, 'Excel2007'); //按照指定格式生成Excel文件,'Excel2007'表示生成2007版本的xlsx,'Excel5'表示生成2003版本Excel文件
        header('Content-Disposition: attachment;filename="用户信息.xlsx"');
        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
        $PHPWriter->save("php://output");

加了这2个就好了

header('Content-Disposition: attachment;filename="用户信息.xlsx"');
        header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');