我安装了 Laravel excel 并创建了一个表单。我已经完成了Laravel excel相关的所有配置。我选择并上传我创建的表单中的 Excel 文件,然后出现以下错误。
PHP 版本:8.1.7
Laravel 版本:9.11
PHP 信息
启用邮编
压缩版本 1.19.5
Libzip 标头版本 1.8.0
Libzip 库版本 1.9.0
Could not find zip member zip:///Users/dev/Sites/exaan/storage/framework/cache/laravel-excel/laravel-excel-s3kqNFqinyEPG6SJRC6c3HA1qKfCW0Bk.xlsx#_rels/.rels
我通过如下配置文件名解决了这个问题。
public function importPost()
{
Excel::import(new AccountStatementsImport, $request->file('file')->store('temp'));
return back();
}
如果您使用
Could not find zip member
包(或Laravel Excel
),错误PHPExcel
的一些原因可能是您在Laravel Queued Job
中处理文件导入,只需使用排队读取解决方案。 here讨论了与此类似的错误示例。
如果没有任何帮助,请使用替代包SimpleXLSX
在我的例子中,它显示了此错误,因为现有的 Excel 是空的。一旦你填满一个单元格,它就开始工作了。
use PhpOffice\PhpSpreadsheet\Spreadsheet;
use PhpOffice\PhpSpreadsheet\Writer\Xlsx;
use PhpOffice\PhpSpreadsheet\IOFactory;
$inputFileType = 'Xlsx';
$inputFileName = '../storage/app/templates/template.xlsx';
/** Create a new Reader of the type defined in $inputFileType **/
$reader = \PhpOffice\PhpSpreadsheet\IOFactory::createReader($inputFileType);
/** Load $inputFileName to a Spreadsheet Object **/
$spreadsheet = $reader->load($inputFileName);
$sheet = $spreadsheet->getActiveSheet();
//Edit the cell values
$sheet->setCellValue('A1', 'Hello');
$sheet->setCellValue('B2', 'World!');
$writer = new Xlsx($spreadsheet);
$writer->save('../storage/app/temp/world4.xlsx');
如果您的 xlsx 文件受密码保护,您必须先删除密码。否则也会报这个错误。