JXLS 2 不向后兼容版本 1。没有升级说明,虽然我可以使用版本 2,但我遇到了两个问题。
版本 1 不需要使用注释标签,但现在我无法在没有它们的情况下生成输出。
Java 代码必须指定在哪个工作表位置写入结果,在版本 1 中,输出写入在模板之上,不需要在 Excel 和 Java 代码中重复模板设置。
如果我找不到解决这两个问题的方法,我将不得不更改每个模板以使用注释。但更糟糕的是,我还必须让我的 java 代码了解模板工作表布局。我不明白为什么这是默认行为。有没有办法让版本 2 的行为更像版本 1?
版本 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);
}
Run Code Online (Sandbox Code Playgroud)
因此,您只需在其起始单元格处应用一个区域即可。
如果您希望这是默认行为,您可以在jxls 问题跟踪器中提出改进
| 归档时间: |
|
| 查看次数: |
978 次 |
| 最近记录: |