是否有可用的Java库完全支持Excel的格式字符串?

时间:2010-07-30 14:14:57

标签: java excel formatting numbers ssas

对于从某些来源拖拽数据并自行进行计算的Java应用程序,我们希望为用户提供使用自己的格式字符串的可能性,并且更喜欢他们从Excel知道的格式字符串语法(例如"$ "#,###.,0)恰好与.netAnalysis Services中使用的相同。

我在Java中找到的最接近使用的是DecimalFormat,它缺少一些功能(例如,通过将千位分隔符放在最后,成千上万的格式化,浮点数NaN和无穷大以不同的方式显示等等,并且可能取决于区域设置,会有一些额外的小差异。

现在,只需数字格式就足够了。也许日期和字符串格式化将成为未来的要求。

是否有图书馆,或者我们是否必须自己开发?

我无法想象我们是唯一有这个问题的人。

Noel M建议的POI似乎没有提供解决方案。还有其他想法吗?

5 个答案:

答案 0 :(得分:3)

Apache POI也许能够做到你想要的。

答案 1 :(得分:3)

没有用于执行此类解析的Java库。对这种小众产品进行逆向工程Excel以涵盖所有测试用例将非常耗时。

由于.net将转换100%的测试用例,我建议您关注calling .Net in your Java application

答案 2 :(得分:2)

  

是否有图书馆,或者我们是否必须自己开发?

检查ExtenXLS,Java Spreadsheet SDK或其开源版本OpenXLS(在GPLv.3下)。关于OpenXLS:

  

OpenXLS是开源版本   ExtenXLS - 领先的Java   电子表格SDK。

     

OpenXLS是一种无风险的嵌入方式   高级Java电子表格   应用程序中的功能。

     

采用相同的工业强度代码   作为ExtenXLS3,OpenXLS是坚如磐石的   给你的Java的表演者   应用电子表格   用户需要的功能 - 和   一些!

     

为您的用户提供商业智能   格式的应用程序和报告   他们知道和爱,完成   图表,图像,VB代码和所有   Excel的功能完好无损。

我快速浏览了一下API,发现这个FormatHandle#convertFormatString(String) 将Excel样式的格式字符串转换为Java格式字符串

我不知道它是否符合您的约束,但它绝对是一个严肃的产品。

答案 3 :(得分:1)

答案 4 :(得分:0)

(现在在你的问题中引用我的第一个时添加另一个答案)

似乎这样的设施不存在。您可以探索的一件事是自己创建它。您可以使用JavaCC自己表达这些格式,以及它们如何最终映射到典型的Java对象。 JavaCC绝对能够让您​​使用自己的格式字符串。

也许这很适合作为NumberFormat的实现