用PHPEXCEL生成文件时,为啥下载下来的excel文件打不开

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了用PHPEXCEL生成文件时,为啥下载下来的excel文件打不开相关的知识,希望对你有一定的参考价值。

用的是Excel2007.php 创建的是
header('Content-Type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment;filename="'.date("Y-m-d").''.iconv("UTF-8", "GB2312//IGNORE", "$title").'.xlsx"');
header('Cache-Control: max-age=0');
$objWriter = PHPExcel_IOFactory::createWriter($GLOBALS["objPHPExcel"], 'Excel2007');
$objWriter->save('php://output');
下载下来以后 用wps可以正常打开 用2007就不行了提示
这个是给别人用的 总不能让人家下载wps 另存为吧?谢谢

用wps另存为2003的xls格式试试看。

我的意思是看看扩展名是不是xls、xlsx,如果不是,那就另存为这格式在给人家。
参考技术A 另存为2003的xls格式试试看。 参考技术B 你试试重新另存下看看

PHPExcel - 读取下载的 xlsx 文件

【中文标题】PHPExcel - 读取下载的 xlsx 文件【英文标题】:PHPExcel - Read downloaded xlsx file 【发布时间】: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 中重新保存文件?

【问题讨论】:

【参考方案1】:

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

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

上提出它作为一个问题

【讨论】:

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

以上是关于用PHPEXCEL生成文件时,为啥下载下来的excel文件打不开的主要内容,如果未能解决你的问题,请参考以下文章

php导出excel表后,打包成压缩包,然后下载到本地如何实现?

使用 AJAX 调用下载 PHPExcel 文件

PHPExcel - 读取下载的 xlsx 文件

PHPExcel读取excel文件示例

PHPExcel 下载文件

PHPExcel与ajax结合进行文件下载