0

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

4

1 回答 1

3

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

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

If that's true, you may have to generate real, actual XLS, using a tool like PHPExcel, it you want your documents to work on the tablet.

于 2013-03-14T19:25:59.090 回答