【问题标题】:Excel cannot open the file because the file format or file extension is not valid - PHP MaatwebsiteExcel 无法打开文件,因为文件格式或文件扩展名无效 - PHP Maatwebsite
【发布时间】:2022-06-30 19:16:50
【问题描述】:

在我们的后端项目中,我们有一些允许将文件导出到 xlsx 的功能。 我们在本地进行了一些测试,一切正常。 但是,我在 Azure 应用服务中部署了该应用,但某些导出(不是全部)无法正常工作。

我在 Azure 中部署了后端 (PHP)、前端 (React) 和数据库 (MySQL)。我将本地 DB 的信息复制到部署在 azure 中的 DB(只是因为我们不想在数据上浪费时间)。

在后端项目中,我们使用 Laravel 和 Maatwebsite 来实现与导出相关的功能。我创建了一个实现 FromQuery、WithHeading 和 ShouldAutoSize 并具有构造、查询和标题功能的类。接下来,在一个Controller中,我使用这个结构来获取文件:

公共函数functionName(请求$request){ $fileName='name'.time().'.xlsx'; return (new ClassThatHasTheLogicOfExporting($request->all()))->download($fileName); }

我所有的导出都是这样工作的,但其中一些出现以下错误: “Excel 无法打开文件,因为文件格式或文件扩展名无效” 当我尝试打开文件时。

我一直在阅读有关此问题的信息,有人说我应该使用 ob_start()(在课程开始时)和 ob_end_clean()(就在导出文件之前)但是当我这样做时,我得到了网络应用中出现 404 错误。

奇怪的是,当我为要导出的数据添加过滤器时(例如,仅下载特定城市的人的数据)(我可以在前端应用程序中完成),文件打开时不会出错。 通过这个策略,我已经实现了将所有数据分成不同的组下载,所以我认为问题与数据中的特殊字符无关。

有人有什么建议吗?

我在 Laravel 8 中使用 maatwebsite/excel 3.1 和 PHP 8

【问题讨论】:

    标签: laravel azure export maatwebsite-excel


    【解决方案1】:

    我相信错误声明正确地表明错误是由无效扩展引起的。别担心,有几种解决方法,我在下面分享它们:

    方法一 – 更改默认文件格式以保存 Excel 工作簿

    在 Excel 2007 中,单击“Microsoft Office”按钮,然后单击“Excel 选项”。在 Excel 2010 及更高版本中,单击文件 > 选项。

    选择导出选项。

    选择更改文件类型选项。

    更改文件扩展名,然后单击“另存为”。

    方法 2 – 恢复未保存的工作簿 转到文件并选择信息选项。

    在“管理版本”下,选择“恢复未保存的工作簿”操作

    如果 MS Excel 有未保存的文件,它将列出它们。您可以打开并保存它。

    方法3 – 使用MS Excel的“打开和修复”功能

    打开 MS Excel 应用程序。

    转到文件并选择打开选项。

    选择损坏的文件并选择打开并修复选项。

    您也可以查看这个论坛:

    https://social.technet.microsoft.com/forums/office/en-US/63020ccc-51d7-46d9-b956-121c0e6efcc8/excel-file-error-the-file-format-and-extension-dont-match?forum=Office2016ITPro

    最好的问候,

    史蒂夫

    【讨论】:

      【解决方案2】:

      使用自动恢复功能恢复未保存的 Excel 文件:

      使用 Microsoft 为 recover unsaved/missing Excel Files 提供的自动恢复功能。如果您启用了此功能,则可以恢复上次自动保存的 Excel 文件。 如果需要,请转到 C:\Users\UserName\AppData\Local\Micorsoft\Office\UnsavedFiles 找到未保存的 Excel 文件。

      有时,您无法打开某些 Excel 文件,因为这些 Excel 文件处于损坏状态。

      打开您的 Microsoft Excel,然后单击“打开其他工作簿”>“计算机/这台电脑”>“浏览”。找到您要恢复的损坏的 Excel 文件 > 点击“打开”>“打开并修复”。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2023-01-19
        • 1970-01-01
        • 2020-07-11
        • 2012-12-24
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多