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处理变得非常简单。