4

JXLS 2 不向后兼容版本 1。没有升级说明,虽然我可以使用版本 2,但我遇到了两个问题。

  • 版本 1 不需要使用注释标签,但现在我无法在没有它们的情况下生成输出。

  • Java 代码必须指定写入结果的工作表位置,在版本 1 中,输出写入模板之上,不需要在 Excel 和 Java 代码中复制模板设置。

如果我找不到这两个问题的解决方法,我将不得不更改每个模板以使用注释。但更糟糕的是,我还必须让我的 java 代码知道模板工作表布局。我不明白为什么这是默认行为。有没有办法让第 2 版的行为更像第 1 版?

4

1 回答 1

4

版本 1 不需要使用注释标签,但现在我无法在没有它们的情况下生成输出。

这并不完全正确。您可以选择不使用XlsCommentAreaBuilder。在这种情况下,您有 3 个选项

  1. 使用XmlAreaBuilder(可能不是你想要的方式)

  2. 使用 Java API 构建命令(可能不是您想要的方式)

  3. 创建您自己的Jxls1TagCommandAreaBuilder它将从 Jxls-1 标记符号构建命令(并将其贡献回 jxls 核心)

3 选项可能是最好的,因为您将能够将 Jxls-1 模板与 Jxls-2 一起使用而无需更改。当然这不是微不足道的,但应该是可能的。

Java 代码必须指定写入结果的工作表位置,在版本 1 中,输出写入模板之上,不需要在 Excel 和 Java 代码中复制模板设置。

要在此处获取 Jxls-1 行为,您可以执行以下操作

        for (Area xlsArea : xlsAreaList) {
            xlsArea.applyAt(
                     new CellRef(xlsArea.getStartCellRef().getCellName()), context);
        }

因此,您只需在其起始单元格处应用一个区域。

如果您希望这是默认行为,您可以改进jxls 问题跟踪器

于 2015-07-24T07:31:39.923 回答