首页 > 解决方案 > 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;

?>

在此处输入图像描述

标签: phpexcelphpexcelphpspreadsheet

解决方案


这是你的问题....

<html> 
<head>

在文件的顶部....在文件本身之前由 PHP 发送到输出流,所以你最终得到一个损坏的文件

如果您要向浏览器发送文件;您不得发送任何其他数据,例如 html 标记


推荐阅读