我使用DisplayTag导出Excel文档。它将.xls文件另存为我的桌面。当我用Excel打开它时,会显示以下错误:
“您尝试打开的文件'filename.xls'的格式与文件扩展名指定的格式不同。在打开文件之前,请验证文件是否已损坏且来自受信任的来源。”< / p>
如果单击“是”,它在Excel中显示正常。如果我用Textpad打开它,我看到它是一个二进制文件,但它似乎只是“。”分隔的字符串。
任何想法我可能做错了,或者接下来如何调试这个?
编辑:的:
如果我将扩展名更改为.txt,则不是二进制文件;它只是一个分隔字符串列表。
答案 0 :(得分:3)
您使用的是Excel 2007吗?似乎是known问题:
升级到Excel后的某些情况 2007年,您可能会收到以下错误: 您尝试打开的文件.xlsx 格式不同于 由文件扩展名指定。 验证文件是否已损坏 在开放前来自可靠来源 文件。要打开文件吗? 现在?
当您尝试使用Excel 2007打开XLS文件(Excel 2000-2003)时,尤其会出现此错误。在大多数情况下,可以通过定义MIME类型并将其与扩展名相关联来解决此问题。
...
但是,如果您不想寻找解决方案,但只是想解决问题,请在注册表中插入此密钥以禁止通知:
[HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 12.0 \ Excel \ Security]“ExtensionHardening”= dword:00000000
您可以通过执行以下操作来完成上述操作:
答案 1 :(得分:1)
Excel的默认导出类设置为CSV类,但为其提供.xls扩展名。更改displaytag.properties是关键所在,例如:
export.types=csv excel xml rtf pdf
export.excel=true
export.xml=true
export.csv=true
export.rtf=false
export.pdf=false
export.excel.class=org.displaytag.export.excel.DefaultHssfExportView
export.pdf.class=org.displaytag.export.DefaultPdfExportView
export.rtf.class=org.displaytag.export.DefaultRtfExportView
export.excel.filename=data.xls
export.pdf.filename=data.pdf
export.xml.filename=data.xml
export.csv.filename=data.csv
export.rtf.filename=data.rtf
答案 2 :(得分:0)
您需要在属性文件中添加以下行:
export.excel.class=org.displaytag.export.excel.DefaultHssfExportView
export.pdf.class=org.displaytag.export.DefaultPdfExportView
但是这只输出当前页面记录而不是完整列表。