在Android平板电脑上打开下载的excel文件的问题

时间:2013-03-14 18:33:42

标签: php android excel download

我正在开发一个应用程序,该应用程序使用系统中的数据生成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';

我应该补充一点,平板电脑上的文件大小是正确的,所以数据应该在那里。关于发生了什么的任何想法?为什么我不能在平板电脑上打开文件?

尝试在平板电脑上打开文件时出现的错误:

Polaris办公室:

  

打开文档时发生错误

Sheet To Go:

  

无法打开此文件,因为它不是有效的MS Excel 97 - 2011文件

1 个答案:

答案 0 :(得分:3)

  

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

HTML代码在技术上是无效的XLS - 只是Excel很容易忽略轻微,并导入数据,就像你指示它导入HTML文件一样。我猜其他非微软的观众并不那么宽容,并坚持认为该文件是实际的XLS(或XSLX或任何新格式的名称)。

如果这是真的,您可能需要使用像PHPExcel这样的工具生成真实的实际XLS,您希望文档在平板电脑上运行。