我有一个链接到Excel 2007工作表的网页。它是.xls
文件,而不是.xlsx
文件。当我点击链接时,我得到通常的对话框来打开/保存Excel文件。点击“打开”,我收到以下警告信息 -
您要打开的文件, 'filename.xls'与众不同 格式比文件指定的格式 延期。验证文件不是 已损坏且来自可靠来源 在打开文件之前。你想要 现在打开文件?
我是否可以通过编程方式抑制此警告消息(即隐藏它或阻止它显示?)我正在使用ColdFusion进行Web开发。
答案 0 :(得分:18)
如果您不想寻找解决方案,但只想解决问题,请在注册表中插入此密钥以禁止通知:
[HKEY_CURRENT_USER \软件\微软\办公室\ 12.0 \ EXCEL \安全] “ExtensionHardening” = DWORD:00000000
您可以通过执行以下操作来完成上述操作:
答案 1 :(得分:10)
此问题是由名为“扩展加固”的功能引起的,您可以找到有关它的更多信息here
我在我的项目中经常遇到这个问题,就像Jon说的那样,关闭扩展加固是必须由每个客户端用户完成的。
不幸的是,上面的链接还指出,至少在Office 14之前,此代码没有预期的更改。
答案 2 :(得分:2)
假设您使用以下语法创建电子表格对象:
<cfset sheet = SpreadsheetNew() />
您可以使用它来创建下载:
<cfheader name="content-disposition" value="attachment;filename=my_spreadsheet.xls">
<cfcontent type="application/vnd.ms-excel" variable="#spreadsheetReadBinary(sheet)#" reset="true">
使用以下语法创建电子表格对象:
<cfset sheet = SpreadsheetNew("", "true") />
并使用它来创建下载:
<cfheader name="content-disposition" value="attachment;filename=my_xml_spreadsheet.xlsx">
<cfcontent type="application/vnd.openxmlformats-officedocument.spreadsheetml.sheet" variable="#spreadsheetReadBinary(sheet)#" reset="true">
感谢Raymond Camden的大部分内容(他的示例是以旧格式创建电子表格 - 我更新了较新的格式并使用稍微不同的MIME值。)
答案 3 :(得分:0)
我不相信你可以将它隐藏起来。这些警告在浏览器外部。
答案 4 :(得分:0)
该消息表明文件内容与文件扩展名不匹配。所以无论是XLSX文件还是服务器上的当前文件都以某种方式被破坏。我建议尝试使用ZIP工具打开文件。如果可行,它实际上是一个XLSX格式的文件。然后,您可以通过重命名文件来修复警告。
如果情况并非如此,那么文件就会发生一些事情。
但无论如何,抑制警告并不是解决问题的方法。下次病毒出现并要求您的客户打开nakedgrls.gif.exe
时,您最好不要乱用安全设置。
答案 5 :(得分:0)
如果您使用方便的cfcontent技巧作为excel文件输出,请考虑使用cfx_query2excel,它将编写真正的excel文件,它们可以让您通过它。它是一个Java库,非常值得。
祝你好运。
答案 6 :(得分:0)
如果您没有指定文件扩展名,则可能会将其命名为.cfm文件,其内容类型为“application / vnd-excel”,会导致此警告。
尝试在文件输出开始之前添加它:
<cfheader name="Content-Disposition" value="attachment;filename=myexcelfile.xls">
<cfcontent type="application/ms-excel" reset="true">
答案 7 :(得分:0)
我有同样的问题,客户抱怨它。我做了很多谷歌搜索,但没有运气。最后我使用cfspreadsheet创建了电子表格,我知道它需要额外的工作,而不是通过HTML直接创建,但它会删除警告。