Laravel excel 导入找不到 zip 错误 [已关闭]

问题描述 投票:0回答:4

我安装了 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
php laravel phpexcel laravel-9
4个回答
4
投票

我通过如下配置文件名解决了这个问题。

public function importPost()
    {
        Excel::import(new AccountStatementsImport, $request->file('file')->store('temp'));

        return back();
    }

1
投票

如果您使用

Could not find zip member
包(或
Laravel Excel
),错误
PHPExcel
的一些原因可能是您在
Laravel Queued Job
中处理文件导入,只需使用排队读取解决方案here讨论了与此类似的错误示例。

如果没有任何帮助,请使用替代包SimpleXLSX


0
投票

在我的例子中,它显示了此错误,因为现有的 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');
    

0
投票

如果您的 xlsx 文件受密码保护,您必须先删除密码。否则也会报这个错误。

© www.soinside.com 2019 - 2024. All rights reserved.