JXLS 2与版本1不向后兼容。没有升级说明,虽然我可以使用版本2,但我有两个问题。
版本1不需要使用注释标记,但现在我无法在没有它们的情况下生成输出。
Java代码必须指定要写入结果的工作表位置,在版本1中,输出写在模板之上,不需要在Excel和Java代码中复制模板设置。
如果我找不到这两个问题的解决方法,我将不得不更改每个模板以使用注释。但更糟糕的是,我还必须让我的java代码知道模板工作表布局。我不明白为什么这是默认行为。有没有办法让版本2更像版本1?
答案 0 :(得分:2)
版本1不需要使用注释标记,但现在我无法在没有它们的情况下生成输出。
这不完全正确。您可以选择不使用XlsCommentAreaBuilder。在这种情况下,您有3个选项
使用XmlAreaBuilder(可能不是您想要的方式)
使用Java API构建命令(可能不是您想要的方式)
创建您自己的 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 issue tracker
中提高效果