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

时间:2015-07-23 15:25:36

标签: java excel jxls

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

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

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

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

1 个答案:

答案 0 :(得分:2)

  

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

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

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

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

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

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

      

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

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

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

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

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

    中提高效果