有什么地方可以使用支持Excel格式string的Java库吗?

对于一个将数据从某些源拖到一起并自己进行一些计算的Java应用程序,我们希望为用户提供使用他们自己的格式string的可能性,并且希望他们从Excel中知道的格式string语法(例如"$ "#,###.,0 )这恰好与.net和Analysis Services中使用的相同。

我在Java中使用的最接近的东西是DecimalFormat ,它缺less一些function(例如,通过将千位分隔符放在最后,数字和千位格式显示,浮点数NaN和无穷大显示不同,等等,在地区,会有一些额外的小差异。

现在,只要数字格式就足够了。 也许date和string格式将成为未来的要求。

有没有图书馆,还是我们自己要发展?

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

Noel Mbuild议的POI似乎没有提供解决scheme。 任何其他的想法?

有没有图书馆,还是我们自己要发展?

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

OpenXLS是ExtenXLS的开源版本 – 领先的Java Spreadsheet SDK。

OpenXLS是在您的应用程序中embedded高级Java电子表格function的无风险方法。

使用与ExtenXLS3相同的行业代码,OpenXLS是一个坚如磐石的执行者,为您的Java应用程序提供用户所需的电子表格function。

为您的用户提供商业智能应用程序和报告,并以他们所熟悉和喜爱的格式提供,包括完整的图表,图像,VB代码和Excel的所有function。

我快速浏览了API,发现这个FormatHandle#convertFormatString(String) 将Excel格式的string转换为Java格式的string

我不知道它是否符合你的限制,但它绝对是一个严重的产品。

Apache POI可能能够做你正在寻找的东西。

没有用于这种parsing的Java库。 对Excel进行反向工程以覆盖所有的testing案例对于这样的利基产品来说是非常耗时的。

由于.net将转换100%的testing用例,所以我build议你把注意力集中在你的Java应用程序中调用.Net 。

(现在你在问题中提到我的第一个答案时再添加一个答案)

似乎这样的设施不存在。 你可能能够探索的一件事是自己创造它。 您可以使用JavaCC自己表示这些格式,以及如何最终映射到典型的Java对象。 JavaCC肯定能够给你使用你自己的格式string的能力。

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