【问题标题】:PHPExcel - Read downloaded xlsx filePHPExcel - 读取下载的 xlsx 文件
【发布时间】:2015-08-02 21:07:18
【问题描述】:

最近我从网上下载了一个生成的 Excel 文件 (xlsx),并将其保存到我的电脑中。要在 Excel 中编辑此文件,我首先必须单击“受保护的视图 - 启用编辑”来编辑文档。

当我在没有先在 Excel 中打开此文件的情况下将文件上传到服务器时,PHPExcel 无法识别 Excel 文件中的数据。在 Excel 中打开文件并单击“启用编辑”并重新保存文件后,PHPExcel 会正确导入文件。

我检查了文件的 mimetype(下载后直接)。 mimetype 是“application/zip”(而不是“application/vnd.openxmlformats-officedocument.spreadsheetml.sheet”)。在 Excel 中重新保存文档后,mimetype 为“application/vnd.openxmlformats-officedocument.spreadsheetml.sheet”。

我使用 PHPExcel 导入文件的代码:

<?php
$file_name = 'Excelfile.xlsx';

$objReader = PHPExcel_IOFactory::createReaderForFile($file_name);

$objReader->setReadDataOnly(true);

$objPHPExcel = $objReader->load($file_name);

$worksheet = $objPHPExcel->getSheet(0);
?>

有谁知道如何使用 PHPExcel 读取 Excel 文件,而无需在 Excel 中重新保存文件?

【问题讨论】:

    标签: php phpexcel


    【解决方案1】:

    “受保护的视图”是最新版本的 MS Excel/Office 本身内置的安全功能。从互联网下载的任何文件都被视为可疑文件,需要用户明确确认他们希望在编辑模式下启用它,然后才能对其进行编辑。

    据我所知,这并没有影响 PHPExcel 以任何方式加载文件的能力,但我会看一下,看看我是否能确定造成这种情况的原因。能否请您在github

    上提出它作为一个问题

    【讨论】:

    • 感谢您的回复马克和您的好工作!我应该将这两个文件发送给您以进行测试吗?
    • 拥有用于测试目的的证明问题的文件总是有用的(特别是如果它们足够小以快速运行测试)
    • 我把文件发给你了。 Tnx!
    • 今晚会看看,但解决方案可能需要更长的时间
    • 文件/存档的内容如下所示:msdn.microsoft.com/en-us/library/office/gg278316.aspx
    猜你喜欢
    • 1970-01-01
    • 2011-05-09
    • 1970-01-01
    • 2015-05-15
    • 1970-01-01
    • 1970-01-01
    • 2017-12-04
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多