【发布时间】:2013-03-14 18:33:41
【问题描述】:
我正在开发一个应用程序,该应用程序使用系统中的数据生成一个 excel 文件。 excel文件在桌面上生成和下载很好,但是当我尝试在我的android平板电脑上下载它时它不会打开。它可以正常下载,但打开它时,一条消息告诉我它不是有效的 MS Excel 文件。
它正在尝试下载的文档是从页面顶部带有这些标题的 php 脚本生成的:
header('Pragma: public');
header('Expires: Mon, 26 Jul 1997 05:00:00 GMT');
header('Last-Modified: '.gmdate('D, d M Y H:i:s').' GMT');
header('Cache-Control: no-store, no-cache, must-revalidate');
header('Cache-Control: pre-check=0, post-check=0, max-age=0');
header('Pragma: no-cache');
header('Expires: 0');
header('Content-Transfer-Encoding: none');
header('Content-Type: application/vnd.ms-excel;');
header('Content-type: application/x-msexcel');
header('Content-Disposition: attachment; filename="Report.xls"');
// code below
我尝试了许多不同的标题变体,但没有任何效果。通过单击运行的图标开始下载:
top.document.location = 'script_that_generates_excel_file.php';
我应该补充一点,文件的大小在平板电脑上是正确的,所以数据应该在那里。关于发生了什么的任何想法?为什么我无法在平板电脑上打开文件?
尝试在平板电脑上打开文件时遇到的错误:
北极星办公室:
打开文档时出错
待办事项:
无法打开此文件,因为它不是有效的 MS Excel 97 - 2011 文件
【问题讨论】:
-
那么,文件实际上包含什么? 如果它是 HTML 代码,那么您的 Android 查看器可能不准备将其解释为 Excel 代码(从技术上讲,它不是 错了...)
-
这是一个 HTML 表格,其中包含 excel 文件包含的数据。我认为这可能会导致问题,但事实并非如此。我删除了表格并简单地写下了“测试”这个词,但打开文件仍然遇到同样的问题。
-
但是“测试”也不是有效的 XLS 内容。如果您想测试 HTML 是否是问题所在,请尝试输出由 Excel 或 OpenOffice 本身生成的实际 XLS 文件。如果这行得通,那么应该归咎于您的内容;如果这也不起作用,那可能是别的东西
-
我明白你的意思。我在我的桌面上创建了一个 Excel 电子表格并将其复制到平板电脑上,它在平板电脑上打开得很好!那是好消息。我还拿了一个在我的平板电脑上生成但没有打开的文件,并将它复制到我的桌面上,它打开得很好。显然它必须是生成过程。有什么想法吗?
标签: php android excel download