ColdFusion 8总是打开.XLS文件,想要打开.XLSX文件。

5

我正在使用ColdFusion 8。做这样的事情:

<cfheader name="content-disposition" value="attachment; filename=abc.xlsx">
<cfcontent type="application/msexcel">
<html> 

但我收到的文件是这样的abc.xlsx.XLS

我想要获取一个XLSX的原因是,有时候XLS版本太大了,Office 2007打开它会卡住或者需要很长时间。

目前唯一的解决办法是等待,在Office 2007中打开XLS文件,另存为.XLSX,然后更快地打开它。

任何帮助都将不胜感激!


尝试将内容类型更改为application/octet-stream。也许如果客户端不知道它正在获取Excel文档,它就不会尝试“修复”扩展名。 - Patrick McElhaney
感谢您的及时回复! 我尝试了一下,以下是结果: <cfheader name="content-disposition" value="attachment; filename=MyPriceList.xlsx"> <cfcontent type="application/octet-stream">
“Excel无法打开文件'abc.xlsx',因为文件格式或文件扩展名无效。请验证文件未被损坏并且文件扩展名与文件格式匹配。” 即使我保存附件而不是打开它,我也无法打开它(同样的消息)。
- mj
我只是将abc用作MyPriceList的别名,请忽略这个差异。 - mj
2个回答

4

我相信Excel 2007的MIME类型为.xlsx文件是"application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"。在谷歌搜索后,我在Office Resource Kit Blog上找到了一篇文章,明确指出了这一点。


谢谢您的及时回复! 我尝试了一下,这是结果: <cfheader name="content-disposition" value="attachment; filename=MyPriceList"> <cfcontent type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet">
这会打开文件,但很慢,我必须执行“另存为”,因为它没有扩展名。 一旦我将其另存为xlsx,并打开保存的文件,它就会非常快速地打开。(所以与下载.xls文件相同的问题)
- mj
<cfheader name="content-disposition" value="attachment; filename=MyPriceList.xlsx"> <cfcontent type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"> “Excel无法打开文件'abc.xlsx',因为文件格式或文件扩展名无效。请验证文件未被损坏并且文件扩展名与文件格式匹配。”即使我将其保存而不是打开附件,我也无法打开它(同样的消息)。 - mj
我只是将abc用作MyPriceList的别名,请忽略这个差异。 - mj
我还注意到第一次尝试(如下)它将其打开为XSLX,而不是XLSX。<cfheader name="content-disposition" value="attachment; filename=MyPriceList"> <cfcontent type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"> - mj

4
我建议缓慢打开的原因是您提供的数据以HTML格式,而不是扩展名引起的。您可以通过直接从浏览器保存文件,将其重命名为xlsx文件扩展名并打开来进行测试。
如果您想直接以Excel格式保存数据,我建议查看Ben Nadel的POI CFC项目

感谢大家。我还发现了一些关于使用XML直接加载Excel文件的资源。 - mj
请提供文本内容以及您需要翻译的语言。 - mj

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