我尝试了很多方法来在 CakePHP 2.x 中实现 PhpSpreadsheet,在 CakePHP 4 中它对我有用。
最后我尝试了给定链接博客中提到的事情
http://abakalidis.blogspot.com/2018/08/how-to-use-latest-phpofficespreadsheet.html
它解决了所有问题,但它生成了 Xlsx 文件。对于 XLS,它有效。
将 PHPSpreadsheet SOrce TO Vender 放入应用程序文件夹后。
我使用以下代码
<?php
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');
$writer = new Xlsx($spreadsheet);
$spreadsheet->createSheet();
$writer->save('hello world.xlsx');
?>
对于 XLS,我替换如下 3 行
<?php
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xls;
$spreadsheet = new Spreadsheet();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello World !');
$writer = new Xls($spreadsheet);
$spreadsheet->createSheet();
$writer->save('hello world.xls');
?>
此代码有效,但对于 Xlsx 它给出错误
我花了几天时间解决这个问题并找到了解决方案。 PhpSpreadsheet 与 Composer 一起安装:composer require phpoffice/phpspreadsheet 在composer.json中只需添加: “要求”: { "google/apiclient": "^2.12.1", "phpoffice/phpspreadsheet": "^1.25" }
技巧是添加 public $components = array('GoogleAPI');在控制器类的开头。然后你只需使用 \PhpOffice\PhpSpreadsheet\IOFactory 即: $objPHPExcel = \PhpOffice\PhpSpreadsheet\IOFactory::load(YOUR_FILE);