Java / Groovy中的电子表格解析器

嗨,我想在Groovy中解析电子表格(xls / ods)。 我一直在使用Ruby的Roo库,并且希望在Groovy中尝试相同的任务,因为Java已经安装在我使用的开发服务器上,我想将服务器上的技术数量保持在一个简单的核心。

我知道ods格式是压缩XML,因此可以解析,但我想使用电子表格概念处理文件,而不是XML概念。

处理xls文件的能力并不重要,但可以节省我将多个xls文件保存到ods(因为这是用于解析来自客户端的数据)。

谢谢

我建议Apache POI访问.xls文件。

我从来没有使用.ods格式,所以没有关于那个的信息。

还有JExcelAPI ,它有一个漂亮,干净,简单的界面(大部分)。

但是,无法帮助您使用ODS文件。

看看’odftoolkit’怎么样? http://odftoolkit.openoffice.org/

Groovy in Action有一个名为“Windows上的Groovy”的章节,讨论使用Scriptom ,一个Groovy / COM桥(使用JACOB ),访问包括Excel在内的多个Windows应用程序。

对于OpenOffice,您可以使用ODF Toolkit ,正如Amit指出的那样。

我是第二次jdmichal对Apache POI的投票。 我选择它作为我们选择处理Excel文件输入(.XLS)的库。 如果您决定要支持该项目,该项目还在处理.XLSX文件格式。 根据您的规格,我认为您不希望将内容转换为CSV,而您似乎已经建立了输入和输出路径。 对于那些没有喜欢处理CSV到Excel转换的人来说,它可能会有点冒险。 我花了几个小时处理Excel创建的问题,将字符串数据转换为数字数据。 您可以在POI案例研究页面上查看此效果的其他证词。 除了这些问题,我根本不想亲自处理这些问题。 我宁愿投入编程工作并简化未来的工作流程。

我也没有处理过ODF,也没有计划在我目前的项目中支持它。 您可能想查看OpenOffice.org ODF Toolkit项目 。

祝你好运,玩得开心, – D.

我建议你看看SimpleXlsBuilder和SimpleXlsSlurper ,它们都基于apache POI,可以满足你以简洁的方式阅读和写入Excel 97电子表格的基本需求。

如果您的电子表格很简单 – 没有图表和其他嵌入内容 – 您只需将电子表格转换为CSV即可 。

优点:

  • xls和ods都会生成相同的CSV – 您只需要处理一种输入类型。
  • 您不必乱用(Open)Office的新版本。
  • 处理明文总是比其他晦涩的格式更有趣。

缺点:

  • 我能想到的一个 – 从xls和odf到csv找到一个可靠的转换器。 不应该太难–OpenOffice有一个内置的。

几件事:

1)我同意使用CSV格式可以简化一些开发工作。 OpenCSV可以帮助处理CSV文件。 还有其他很好的Java解析器。 请记住,由于Groovy与Java的无与伦比的集成,Groovy可以使用任何可用于Java的东西。

2)我知道你说你想避免处理XML,但Groovy使XML处理变得非常简单。