我需要在Excel文件中进行数据导出,我很容易:)
我使用PhpSpreadsheet库(https://github.com/PHPOffice/PhpSpreadsheet)
我尝试使用PhpSpreadsheet示例并做一些简单的事情:
有我的代码:
require_once $this->config->application->libraryDir . 'PhpSpreadsheet-master/vendor/autoload.php';
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');
$writer = new Xlsx($spreadsheet);
$fileName = 'export/hello_world.xlsx';
$writer->save($fileName);
// header('Location: '.$fileName);
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$fileName.'"');
header('Cache-Control: max-age=0');
$writer->save('php://output');
结果:该文件是在“导出”文件夹中创建的,可以在Windows中打开它。 但是,当文件在默认的下载文件夹中下载时,我无法打开它。我遇到此错误:Excel遇到无法读取的内容
您知道为什么会出现此问题吗?
答案 0 :(得分:1)
在exit
之后尝试$writer->.save('php://output')
。为了进行故障排除,在进行header(...)
之前,请尝试exit
,以确保没有输出。
而且由于您知道$writer->save($fileName)
可以工作,所以可以尝试,而不用打电话给$writer->save('php://output')
,而可以$writer->save($fileName); header(...); echo file_get_contents($fileName);
尝试其他内容类型也很值得