【问题标题】:Is there anywhere a Java library available that supports exactly the format strings of Excel?是否有可用的 Java 库完全支持 Excel 的格式字符串?
【发布时间】:2011-03-23 06:52:54
【问题描述】:

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

我在 Java 中找到的最接近使用的是 DecimalFormat,它缺少一些功能(例如,通过将千位分隔符放在末尾来格式化数千和数百万,浮点数 NaN 和无穷大的显示方式不同,等等.,并且可能取决于语言环境,会有一些额外的小差异。

目前,仅数字格式就足够了。也许日期和字符串格式将来会成为一个要求。

有图书馆吗,还是我们必须自己开发?

我无法想象只有我们有这个问题。

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

【问题讨论】:

    标签: java excel formatting numbers ssas


    【解决方案1】:

    有图书馆吗,还是我们必须自己开发?

    检查 ExtenXLS、Java 电子表格 SDK 或其开源版本 OpenXLS(在 GPLv.3 下)。关于 OpenXLS:

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

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

    具有相同的工业强度代码 作为 ExtenXLS3,OpenXLS 是坚如磐石的 给你Java的表演者 应用电子表格 您的用户需要的功能——以及 然后一些!

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

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

    我不知道它是否符合您的限制,但它绝对是一款严肃的产品。

    【讨论】:

    • 这是我提出问题时最接近预期的答案——即使我们不会使用它——因为许可是 GPL(因此不能在我们的商业产品中使用)或具有商业许可(这对于我们将使用完整的电子表格库进行的小规模使用来说太贵了)。
    【解决方案2】:

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

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

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

    【讨论】:

    • 除了调用.net,这是我们正在讨论的另一种可能性。但是,我不确定,对于解析格式字符串的简单任务,编译器生成器是否没有太多开销,并且仅手动编码这不会更容易,前提是到目前为止团队中没有人使用过 JavaCC。
    【解决方案3】:

    【讨论】:

    • 虽然 JDK 功能提供格式设置,但与 .net/Excel/AS 格式设置存在一些差异。而且我不确定尝试调整现有功能是否比完全从头开发格式化程序更努力。然而,我认为,查看现有的格式化程序可以让您了解自定义类的良好 API 的外观。
    【解决方案4】:

    不存在进行这种解析的 Java 库。逆向工程 Excel 以涵盖所有测试用例对于这样一个利基产品来说将是耗时的。

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

    【讨论】:

    • 从 Java 调用 .net 是我们目前讨论的选项之一。但由于这意味着要在不同客户处部署应用程序,因此一个巨大的缺点是部署过程的复杂性增加。
    【解决方案5】:

    Apache POI 或许能够满足您的需求。

    【讨论】:

    • 我以为它只是管理 MS Office 文件。但也许副作用是数字格式。我去看看。
    • @Frank - HSSF 是 Excel 的组件:poi.apache.org/spreadsheet/index.html
    • 这里好像 POI 帮不上忙。据我所知,POI 本身提供任何格式评估。它只允许您定义格式,并将它们分配给单元格。显示字符串转换的实数似乎只能由 Excel 完成,而不是 POI 本身。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2023-03-24
    • 2021-09-18
    • 1970-01-01
    • 2016-10-01
    • 1970-01-01
    相关资源
    最近更新 更多