有什么地方可以使用支持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 。
十进制格式,包括语言环境和其他东西:
http://www.jdocs.com/javase/7.b12/java/text/DecimalFormat.html
http://www.freshsources.com/Format.htm
http://www.java2s.com/Code/Java/I18N/JavaI18NFormatNumberFormat.htm
您可以使用自己的DecimalFormatSymbols来调整decimalFormat输出。 可以设置用来表示NaN的string和更多。
http://download.oracle.com/javase/6/docs/api/java/text/DecimalFormatSymbols.html
对于date格式:
http://javatechniques.com/blog/dateformat-and-simpledateformat-examples/
在一个JFormattedTextField中
http://www.java2s.com/Code/Java/Swing-JFC/Formatted-TextField.htm
文本格式
http://www.java2s.com/Code/Java/Development-Class/MakecustomInputTextFormatterinJava.htm http://www.java2s.com/Code/Java/Development-Class/Formatter.htm http://www.java2s。 COM /代码/ Java的/开发级/ ApplyamasktoString.htm
(现在你在问题中提到我的第一个答案时再添加一个答案)
似乎这样的设施不存在。 你可能能够探索的一件事是自己创造它。 您可以使用JavaCC自己表示这些格式,以及如何最终映射到典型的Java对象。 JavaCC肯定能够给你使用你自己的格式string的能力。
也许这将很适合作为NumberFormat的实现