PhpSpreadsheet создает поврежденные файлы Excel на основе неудачного открытия потока в Archive.php.Php

Кемеровские программисты php общаются здесь
Anonymous
PhpSpreadsheet создает поврежденные файлы Excel на основе неудачного открытия потока в Archive.php.

Сообщение Anonymous »

Я установил phpoffice/phpspreadsheet через композитор в свой проект («phpoffice/phpspreadsheet»: «2.1.0»), а затем попробовал базовый код:

Код: Выделить всё

require 'vendor/autoload.php';

use PhpOffice\PhpSpreadsheet\IOFactory;
use PhpOffice\PhpSpreadsheet\Spreadsheet;

$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');

$spreadsheet->setActiveSheetIndex(0);

$filename = 'hello_world';

ob_end_clean();

$writer = IOFactory::createWriter($spreadsheet, 'Xlsx');

if (headers_sent($file, $line)) {
throw new RuntimeException("Unexpected output at $file:$line");
}

header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.$filename.'.xlsx"');
header('Cache-Control: max-age=0');

$writer->save('php://output');

exit();
Сгенерированный файл Excel поврежден и при открытии в текстовом редакторе сообщает:

Предупреждение[/b] : include_once(D:\xampp_8.2.4\htdocs\myproject\httpdocs\src/ZipStream\Option\Archive.php): Не удалось открыть поток: такого файла или каталога нет
  • переустановка «phpoffice/phpspreadsheet»: «2.1.0»
  • дополнительная установка «maennchen/zipstream-php»: «3.1.0»
  • изменение кода, как предложено в stackoverflow (т. е. порядок)


Подробнее здесь: https://stackoverflow.com/questions/785 ... -stream-to

Вернуться в «Php»