是否有一个Java库完全支持Excel的格式字符串?
对于从某些源拖动数据并自行进行计算的Java应用程序,我们希望为用户提供使用他们自己的格式字符串的可能性,并且更希望使用他们从中了解的格式字符串语法(例如,是否有一个Java库完全支持Excel的格式字符串?,java,excel,formatting,numbers,ssas,Java,Excel,Formatting,Numbers,Ssas,对于从某些源拖动数据并自行进行计算的Java应用程序,我们希望为用户提供使用他们自己的格式字符串的可能性,并且更希望使用他们从中了解的格式字符串语法(例如,“$”,#,#,0),这些语法恰好与和中使用的相同 我在Java中发现的最接近使用的东西是,它缺少一些特性(例如,通过将千分位符放在末尾来设置成千上万的格式,浮点数NaN和无穷大的显示方式不同,等等),并且可能根据语言环境的不同,会有一些额外的小差异 现在,只需要数字格式就足够了。也许日期和字符串格式将成为未来的一项要求 有图书馆吗,还是我们
“$”,#,#,0
),这些语法恰好与和中使用的相同
我在Java中发现的最接近使用的东西是,它缺少一些特性(例如,通过将千分位符放在末尾来设置成千上万的格式,浮点数NaN和无穷大的显示方式不同,等等),并且可能根据语言环境的不同,会有一些额外的小差异
现在,只需要数字格式就足够了。也许日期和字符串格式将成为未来的一项要求
有图书馆吗,还是我们必须自己开发
我无法想象我们是唯一有这个问题的人
Noel M建议的POI似乎并没有提供解决方案。还有其他想法吗?可能可以满足您的需求。没有用于Java的库可以进行这种解析。对于这样一个利基产品,覆盖所有测试用例的反向工程Excel将非常耗时 由于.net将100%转换您的测试用例,我建议您将重点放在。(添加另一个答案,因为您现在在您的问题中引用了我的第一个答案) 这样的工具似乎不存在。你可以探索的一件事是自己创建它。你可以自己用它来表达这些格式,以及它们如何最终映射到典型的Java对象。JavaCC肯定能够让你使用自己的格式字符串
也许这很适合作为十进制格式(包括区域设置和其他内容)的NumberFormat实现: 您可以使用自己的自定义DecimalFormatSymbols调整decimalFormat输出。可以设置用于表示NaN和更多内容的字符串 日期格式: 对于JFormattedTextField中的两个 文本格式 有图书馆吗,还是我们必须自己开发 检查Java电子表格SDK或其开源版本(在GPLv.3下)。关于OpenXLS: OpenXLS是的开源版本 ExtenXLS——领先的Java 电子表格SDK OpenXLS是一种无风险的嵌入方式 高级Java电子表格 应用程序中的功能 使用相同的工业强度代码 作为extensxls3,OpenXLS是坚如磐石的 提供Java的执行者 电子表格中的应用程序 用户需要的功能——以及 还有一些 为用户提供商业智能 格式的应用程序和报告 他们知道和爱,完整的 图表、图像、VB代码以及所有 Excel的功能完好无损 我快速查看了API,发现它可以将Excel样式的格式字符串转换为Java格式字符串
我不知道它是否符合您的限制条件,但它绝对是一个严肃的产品。我以为它只是管理MS Office文件。但可能有一个副作用是数字格式。我会看一看。@Frank-HSSF是Excel的组件:POI在这里似乎没有帮助。据我所知,POI本身不提供任何格式评估。它只允许您定义格式,并将其分配给单元格。然后,显示字符串的实数转换似乎只能由Excel完成,而不是POI本身。从Java调用.net是我们目前讨论的选项之一。但由于这意味着应用程序要部署在不同的客户,一个巨大的缺点将是添加d部署过程的复杂性。除了调用.net之外,这是我们正在讨论的另一种可能性。但是,我不确定,对于解析格式字符串的简单任务,编译器生成器是否没有太多开销,如果团队中到目前为止没有人使用JavaCC,那么手工编写代码也不会更容易DK功能提供格式设置,与.net/Excel/AS格式设置有一些不同。我不确定尝试调整现有功能是否比从头开发一个格式设置器更费劲。但是,我认为,查看现有格式设置器可以让您了解如何成为一个好的应用程序接口自定义类可能是这样的。这是我在提问时最接近预期的答案-即使我们不会使用它-因为许可要么是GPL(因此在我们的商业产品中不可用),要么是商业许可证(对于我们将使用完整的电子表格库的小用途来说太贵)。