javascript — Расширение файла или файл недопустим во время экспорта в Excel с использованием библиотеки spout в Stack Overflow

<?php
include('php_script/db.php');
use Box\Spout\Common\Type;
use Box\Spout\Writer\Style\Border;
use Box\Spout\Writer\Style\BorderBuilder;
use Box\Spout\Writer\Style\Color;
use Box\Spout\Writer\Style\StyleBuilder;
use Box\Spout\Writer\WriterFactory;
include('php_script/spout/src/Spout/Autoloader/autoload.php');
$sql = mysqli_query($con,"select * from person ");
$border = (new BorderBuilder())
->setBorderBottom(Color::GREEN, Border::WIDTH_THIN, Border::STYLE_DASHED)
//->setFontColor(Color::BLUE)
//->setBackgroundColor(Color::YELLOW)
->build();
$style = (new StyleBuilder())
->setBorder($border)
->build();
$filePath = "person".date("Y-m-d-H-i-s").'.xlsx';
$writer = WriterFactory::create(Type::XLSX);
$writer->openToFile($filePath);

$array = ['TYPE'];

$writer->addRowWithStyle($array, $style);



while( $rows = mysqli_fetch_assoc($sql)) {

$Type_subsidiary = $rows['Type_subsidiary'];
$data =  [$Type_subsidiary];
$writer->addRow($data);
}

$writer->close();
if (file_exists($filePath)) {
header('Content-Description: File Transfer');
header('Content-Type: application/octet-stream');
header('Content-Disposition: attachment; filename="'.basename($filePath).'"');
header('Expires: 0');
header('Cache-Control: must-revalidate');
header('Pragma: public');
header('Content-Length: ' . filesize($filePath));
readfile($filePath);
exit;
}

?>

введите описание изображения здесь
Я столкнулся с проблемой в экспорте Excel с использованием библиотеки носика. Я не знаю где
это проблема в моем коде. Я не знаю много о библиотеке носика. Я пытался много раз, но одна и та же ошибка возникает снова и снова. Пожалуйста, направьте меня, где проблема.

1

Решение

Вы пытались позволить spout создавать и «отправлять» файл прямо в браузер, не указывая заголовки, как указано в их документе http://opensource.box.com/spout/getting-started/ ?

$writer->openToBrowser($fileName); // stream data directly to the browser

Надеюсь, это поможет, в наших приложениях (основанных на Symfony) мы используем spout, но нет необходимости указывать заголовки и путь к файлу.

0

Другие решения

Других решений пока нет …

По вопросам рекламы [email protected]