代码之家  ›  专栏  ›  技术社区  ›  Dean J

displaytag正在将csv导出到.xls文件中

  •  0
  • Dean J  · 技术社区  · 16 年前

    我导出一个带有displaytag的excel文档。它作为.xls文件保存到我的桌面。当我使用Excel打开它时,此错误显示:

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

    如果我单击“是”,它在excel中显示得很好。如果我用textpad打开这个文件,我会看到它是一个二进制文件,但看起来只是“.”分隔的字符串。

    有什么想法我可能做错了,或者下一步如何调试?

    编辑: :

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

    3 回复  |  直到 10 年前
        1
  •  3
  •   Todd Main    16 年前

    你在excel 2007上吗?好像是 known 问题:

    在某些情况下,在升级到excel之后 2007年,可能会出现以下错误: 您试图打开的文件.xlsx 格式不同于 由文件扩展名指定。 确认文件未损坏并且 在打开之前来自受信任的源 文件。要打开文件吗 现在?

    当您试图用excel 2007打开xls文件(excel 2000-2003)时,这种错误尤其会发生。在大多数情况下,可以通过定义mime类型并将它们与扩展关联来解决问题。

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

    [hkey\u current\u user\software\microsoft\office\12.0\excel\security]扩展强化=dword:00000000

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

    1. 打开注册表(开始->运行-> 注册表
    2. 引导到 hkey_当前用户\软件\ Microsoft\Office\12.0\Excel\Security
    3. 在右窗口中单击鼠标右键,然后 选择 新的 -gt; 双字
    4. 类型: 延伸硬化 作为 名称(不带引号)
    5. 验证数据是否具有 艾斯 艾斯
        2
  •  1
  •   Dean J    16 年前

    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
    
        3
  •  0
  •   Pang Ajmal PraveeN    10 年前

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

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

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

    推荐文章