Displaytag正在将CSV导出到.xls文件中
我用DisplayTag导出Excel文档。 它保存为一个.xls文件到我的桌面。 当我用Excel打开它时,这个错误显示:
“正在尝试打开的文件'filename.xls'与文件扩展名所指定的格式不同。在打开文件之前,确认文件没有被破坏,并且来自可信来源。
如果我点击“是”,它在Excel中显示得很好。 如果我用Textpad打开它,我发现它是一个二进制文件,但它似乎只是“。”。 分隔的string。
任何想法,我可能做错了,或如何接下来debugging呢?
编辑 ::
如果我将扩展名更改为.txt,则不是二进制文件; 它只是一个分隔string列表。
你在Excel 2007吗? 似乎是一个已知的问题:
在某些情况下,升级到Excel 2007后,您可能会收到以下错误:您尝试打开.xlsx的文件格式与文件扩展名指定的格式不同。 在打开文件之前validation文件是否已损坏并且来自可信来源。 你想现在打开文件吗?
当您尝试使用Excel 2007打开XLS文件(Excel 2000-2003)时,尤其会出现此错误。在大多数情况下,可以通过定义MIMEtypes并将其与扩展关联来解决问题。
…
但是,如果您不想查找解决scheme,但只想解决问题,请在registry中插入此密钥以取消通知:
[HKEY_CURRENT_USER \ Software \ Microsoft \ Office \ 12.0 \ Excel \ Security]“ExtensionHardening”= dword:00000000
您可以通过执行以下操作来完成上述操作:
- 打开你的registry(开始 – >运行 – > regedit.exe)
- 导航到HKEY_CURRENT_USER \ SOFTWARE \ MICROSOFT \ OFFICE \ 12.0 \ EXCEL \ SECURITY
- 右键单击右边的窗口,selectNew – > DWORD
- input“ ExtensionHardening ”作为名称(不带引号)
- 确认数据的值为“ 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
您需要在属性文件中添加以下行:
export.excel.class=org.displaytag.export.excel.DefaultHssfExportView export.pdf.class=org.displaytag.export.DefaultPdfExportView
但是,这只输出当前页面logging而不是完整的列表。