如何将 JXLS 从版本 1 迁移到版本 2

How to migration JXLS from version 1 to 2

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

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

Version 1 did not require use of comment tags, but now I cant get the output to generate without them.

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

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

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

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

选项 3 可能是最好的,因为您将能够在不进行任何更改的情况下将 Jxls-1 模板与 Jxls-2 一起使用。当然这不是微不足道的,但应该是可能的。

Java code must specify which worksheet location to write the results, in version 1, output was written on top of the template which did not require duplication of template settings in Excel and Java code.

要在此处获得 Jxls-1 行为,您只需执行以下操作即可

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

所以您只需在其起始单元格应用一个区域。

如果您希望这是默认行为,您可以在 jxls issue tracker

中提出改进