1

我使用 DisplayTag 导出 Excel 文档。它以 .xls 文件的形式保存到我的桌面。当我用 Excel 打开它时,显示此错误:

“您尝试打开的文件 'filename.xls' 的格式与文件扩展名指定的格式不同。在打开文件之前,请确认文件没有损坏并且来自受信任的来源。”

如果我单击“是”,它在 Excel 中显示得很好。如果我用 Textpad 打开它,我看到它是一个二进制文件,但它似乎只是“。” 分隔的字符串。

任何想法我可能做错了什么,或者接下来如何调试?

编辑::

如果我将扩展名更改为 .txt,则它不是二进制文件;它只是一个分隔字符串的列表。

4

3 回答 3

3

你在 Excel 2007 上吗?似乎是一个已知问题:

在某些情况下,升级到 Excel 2007 后,您可能会收到以下错误:您尝试打开的文件 .xlsx 的格式与文件扩展名指定的格式不同。在打开文件之前验证文件没有损坏并且来自受信任的来源。您现在要打开文件吗?

当您尝试使用 Excel 2007 打开 XLS 文件 (Excel 2000-2003) 时,尤其会发生此错误。在大多数情况下,可以通过定义 MIME 类型并将它们与扩展名相关联来解决该问题。

...

但是,如果您不想寻找解决方案,而只是想解决问题,请在注册表中插入此键以禁止通知:

[HKEY_CURRENT_USER\Software\Microsoft\Office\12.0\Excel\Security] “ExtensionHardening”=dword:00000000

您可以通过执行以下操作来完成上述操作:

  1. 打开您的注册表(开始 -> 运行 -> regedit.exe)
  2. 导航到 HKEY_CURRENT_USER\SOFTWARE\MICROSOFT\OFFICE\12.0\EXCEL\SECURITY
  3. 右键单击右侧窗口并选择新建-> DWORD
  4. 键入“<em>ExtensionHardening”作为名称(不带引号)
  5. 验证数据的值是否为“<strong>0”</li>
于 2010-03-02T20:47:36.320 回答
0

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
于 2010-03-08T20:53:35.827 回答
0

您需要在属性文件中添加以下行:

export.excel.class=org.displaytag.export.excel.DefaultHssfExportView
export.pdf.class=org.displaytag.export.DefaultPdfExportView

但这仅输出当前页面记录,而不是完整列表。

于 2015-09-28T07:32:47.450 回答