PHP Excel - 您尝试打开的文件 .xls 的格式与文件扩展名指定的格式不同。

3

早上好,

我正在使用一个名为JASPER的API“JasperClient.php”,其中我使用runReport函数返回xls文件,并在php代码中想要从服务器下载Excel文件。

设置头部信息:

header('Content-type: application/vnd.ms-excel'); header('Content-Disposition: attachment; filename=myfile.xls');

当我下载文件并尝试打开时,会显示以下消息:

您要打开的文件“filename.xls”与文件扩展名指定的格式不同。在打开文件之前,请验证该文件未损坏且来自可信来源。您现在要打开该文件吗?

请问可以帮我解决这个问题吗? 谢谢。


简单检查:您正在尝试发送的文件是否可以在适当的 Microsoft Excel 中打开?如果是,则问题出在您的下载上;如果不是,则问题出在您的文件上。创建 Excel 文件并不是很容易。 - STT LCU
1
你是在创建一个真正的 MS Excel BIFF 格式文件,还是只是一个 csv 文件或 HTML 标记,并将其命名为 .xls 扩展名? - Mark Baker
我不明白:你在iReport中预览报告,但你在php中创建Excel文件?Jasper是用Java编写的,如果我没记错,它使用POI生成Excelfiles,所以我不明白php在这里起什么作用... - fvu
也许如果您展示一下您是如何创建文件的,或者至少指出您正在使用哪个库来创建它。 - Mark Baker
我重新表述了问题... - user2968390
显示剩余2条评论
1个回答

2

您是否正在创建Excel 2007文件?如果是,请尝试使用MIME类型application/vnd.openxmlformats-officedocument.spreadsheetml.sheet和文件扩展名.xslx


我正在创建一个 Excel 2003 文件,但我已经尝试过 2007 版本,结果出现了相同的错误。 - user2968390
3
你是否在文本编辑器中打开了该文件?也许该文件中包含一些PHP警告/错误信息? - Jonas
@user2968390 如果您使用GNU/Linux机器,那么 file myfile.xls 的输出是什么? - orique

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接