php - phpspreedsheet 数据出现损坏的格式
问题描述
刚从 PHP 速查表开始。
但是当我保存它时,它会创建奇怪的文件,请参阅随附的照片。
我不明白它为什么这样做......
现在更新如此直接指向下面的代码......?
在此先感谢您的帮助.....................
<?php
require __DIR__ . '/vendor/autoload.php';
use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$spreadsheet->setActiveSheetIndex(0)
->setCellValue('A1', 'Reorder Report')
->setCellValue('A3', 'Report Created Date:')
->setCellValue('A4', 'Supplier:')
->setCellValue('A6', 'Period 1:')
->setCellValue('A7', 'Period 2:')
->setCellValue('A8', 'Period 3:')
->setCellValue('A10', 'Order to delivery time:')
->setCellValue('A11', 'Hold stock after order arrived:')
->setCellValue('A14', 'Product Code')
->setCellValue('B3', '')//create date *to add todays date
->setCellValue('B4', '')//supplier name
->setCellValue('B5', 'Days:')
->setCellValue('B6', '')
->setCellValue('B7', '')
->setCellValue('B8', '')
->setCellValue('B10', '')
->setCellValue('B11', '')
->setCellValue('B14', 'Description')
->setCellValue('C5', 'Start Date:')
->setCellValue('C6', '')
->setCellValue('C7', 'End Date:')
->setCellValue('C8', '')
->setCellValue('C14', 'Stock')
;
// Set active sheet index to the first sheet, so Excel opens this as the first sheet
$spreadsheet->setActiveSheetIndex(0);
// Redirect output to a client’s web browser (Xls)
header('Content-Type: application/vnd.ms-excel');
header('Content-Disposition: attachment;filename="01simple.xls"');
header('Cache-Control: max-age=0');
// If you're serving to IE 9, then the following may be needed
header('Cache-Control: max-age=1');
// If you're serving to IE over SSL, then the following may be needed
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT'); // Date in the past
header('Last-Modified: ' . gmdate('D, d M Y H:i:s') . ' GMT'); // always modified
header('Cache-Control: cache, must-revalidate'); // HTTP/1.1
header('Pragma: public'); // HTTP/1.0
$writer = IOFactory::createWriter($spreadsheet, 'Xls');
$writer->save('php://output');
exit;
?>
解决方案
这是你的问题....
<html>
<head>
在文件的顶部....在文件本身之前由 PHP 发送到输出流,所以你最终得到一个损坏的文件
如果您要向浏览器发送文件;您不得发送任何其他数据,例如 html 标记
推荐阅读
- sql - 从 SQL Server 调用 HANA 存储过程
- angular - 样式化自定义面板菜单标签
- python - 如何在 python 中解析来自 Lambda 的 SNS 测试通知?
- c# - 将 Datagridview 行数据传递给新表单
- c# - 在预定义列表中查找下一步
- c# - 更改 Shell 类的后退按钮的覆盖文本的字体大小(以及,如果可能,其他字体格式属性)
- java - WebSphere JAX-WS 响应处理程序失败
- azure-devops - 具有条件手动批准作业的 DevOps 模板
- webpack - 将 webpack 块图导出到 json
- java - 为什么它说我缺少括号?