使用ms excel 2007 xlsb文件下载不可读的内容错误

时间:2013-01-19 07:57:00

标签: php excel-vba download excel-2007 vba

我有一个xlsb。 (ms excel 2007)文件已创建。

我已将其上传到服务器并且网站的用户可以下载它但是当用户下载并打开此文件时,ms excel提示错误为“Excel发现不可读的内容”,当他们点击“是”时,一切正常。我不知道为什么会出现这个错误。

然后我从gmail和yahoomail发送了这个xlsb文件,当下载并打开时,一切正常,没有任何错误消息。

所以请帮我纠正这个错误。我使用php作为我的服务器端语言,下载代码在

下面
header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
    //header('Content-type: application/octet-stream');
    //header('Content-type: application/vnd.ms-excel.sheet.binary.macroEnabled.12');

    header('Content-Disposition: attachment; filename="credit-card-payoff.xlsb"');

    readfile('exporting/excel/credit-card-payoff.xlsb');

我尝试过不同的内容类型,但没有成功。

以下是用户可以下载excel的网页

http://utc.impexdirectory.com/credit-card-payoff-calculator.php

1 个答案:

答案 0 :(得分:1)

我检查了您提供的文件,并且可以确切地告诉您错误是什么:不知何故,当前网站也会附加到此二进制文件中。 (如果我在没有修复对话框的情况下打开文件的HTML部分。)

所以我最好的猜测是,你忘记了readfile之后的exit语句。

您的代码应如下所示:

header('Content-type: application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
header('Content-Disposition: attachment; filename="credit-card-payoff.xlsb"');

readfile('exporting/excel/credit-card-payoff.xlsb');
exit(0); // Terminate the program execution at this point

这可以防止网站被附加到下载文件中。