【问题标题】:Export Eclipse NAT Table to CSV/Excel将 Eclipse NAT 表导出到 CSV/Excel
【发布时间】:2013-06-16 11:30:00
【问题描述】:

我目前正在开发一个使用 nat 表向用户显示数据的项目。我想添加一个选项来将此 nat 表导出到 csv 文件或 excel 文档。有没有一种简单的方法可以导出到 excel 或者我必须找到一种手动的方法?如果我必须以“艰难的方式”来做,谁能指点我某个地方来帮助我开始导出到 Excel?

谢谢。

【问题讨论】:

    标签: java eclipse excel export nattable


    【解决方案1】:

    NatTable 本身带有一个默认的 Excel 导出器。

    导出器类是ExcelExporter(在包org.eclipse.nebula.widgets.nattable.export.excel中)。

    使用ExportCommand 的简单方法是(在包org.eclipse.nebula.widgets.nattable.export.command 中)。使用默认绑定,这会产生一个文件选择器,用户可以在其中指定 *.xls 文件。

    ExportCommand cmd = new ExportCommand( m_table.getConfigRegistry(), m_table.getShell());
    m_table.doCommand( cmd );
    

    在我的系统上使用 NatTable 0.9 版本时,打开文件时,Excel 会显示警告,指出文件格式与文件扩展名指定的格式不同。

    【讨论】:

    • 这样可以不先保存就直接打开工作簿吗?
    • 这会导出到一个文件,然后可以在 Excel 中手动打开该文件。它不会自动启动 Excel。
    • 好的。我目前实现了 Mehul 推荐的内容,它基本上做同样的事情。我猜这样做会减少所需的依赖项。觉得这样会更有效率吗?
    • 如果我从头开始,我会从需要最少工作量的实现开始。如果你已经实现了一些可行的东西,并且你对它感到满意,那么保留它是合理的。 Apache 实现可能有额外的好处 - 例如,请参阅我关于上面 Excel 警告的注释。最后,请注意,您可以通过调用 configRegistry.registerConfigAttribute(ILayerExporter.CONFIG_ATTRIBUTE, new YourExcelExporter()) 将 ExportCommand 与您的导出器一起使用,其中 YourExcelExporter 是一个 ILayerExporter。
    • 是的,我的意思是.. 我想我的方式不是最好的。我有点遍历列和事实,然后只是将每个 val 推到一个单元格以进行 excel .. 不确定这是否“不好”,但这是我认为这样做的唯一方法。但它确实有效。
    【解决方案2】:

    NatTable 已经带有一个基于 Apache POI 的 Excel 导出器。为此,您需要将 NatTable 项目中的 POI 扩展添加到您的项目中。

    这样做让您有机会使用 HSSFExcelExporter 生成有效的 Excel 文件(默认的 ExcelExporter 只是创建 XML 格式)并附带额外的配置可能性。

    configRegistry.registerConfigAttribute(ExportConfigAttributes.EXPORTER, new HSSFExcelExporter());
    

    【讨论】:

    • 对我来说,“强大”似乎不是一个中立的说法。对stackoverflow发表意见是可以的,但如果涉及到你的产品,你必须disclose your affiliation with that product
    • 抱歉,我不想为 NatTable 做广告。所以我从我的答案中删除了这个词。
    【解决方案3】:

    要读取/写入 excel,您可以使用 Apache POI http://poi.apache.org/

    如需了解如何开始使用 Apache POI,请查看 http://viralpatel.net/blogs/java-read-write-excel-file-apache-poi/ 可能会有所帮助

    【讨论】:

    • 谢谢你,这会做我想要的。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2010-11-01
    • 2013-10-17
    • 2015-02-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2016-04-19
    相关资源
    最近更新 更多