【问题标题】:Issues opening a downloaded excel file on an android tablet在 Android 平板电脑上打开下载的 excel 文件时出现问题
【发布时间】: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


【解决方案1】:

在我的桌面上创建了一个 excel 电子表格并将其复制到平板电脑上,它可以在平板电脑上正常打开!那是好消息。我还拿了一个在我的平板电脑上生成但没有打开的文件,并将它复制到我的桌面上,它打开得很好。显然它必须是生成过程。有什么想法吗?

从技术上讲,HTML 代码不是有效的 XLS - 只是 Excel 可以忽略这一点,并像您指示它导入 HTML 文件一样导入数据。我猜其他非 Microsoft 查看器并不那么宽容,并坚持认为文件是实际的 XLS(或 XSLX 或任何新格式的名称)。

如果是这样,您可能必须使用 PHPExcel 之类的工具生成真实的 XLS,这样您的文档才能在平板电脑上工作。

【讨论】:

    最近更新 更多