gpt4 book ai didi

java - 使用 xml 标记进行 JXLS 分组

转载 作者:行者123 更新时间:2023-12-01 18:54:53 25 4
gpt4 key购买 nike

JXLS 2.x 是否通过 xml 配置支持 groupBy

原因是我有一个非常基本的分组示例,可以使用 Excel 注释,但当我通过 xml 标记使用相同的配置时,它根本无法工作。输出excel已分组,但每组下没有数据。

我也无法在网上找到任何有效的示例,因此要么是我的语法有问题(见下文),要么是 JXLS 2.x 通过 xml 标记不支持 groupBy

excel 评论(这有效!)

enter image description here

detail_config.xml xml配置(不起作用!)

<xls>
<area ref="Template!A1:D4">
<each items="clockinouts" groupBy="employeeName" groupOrder="asc" ref="Template!A1:D3">
<area ref="Template!A1:D3">
<each items="_group.items" var="clockinout" ref="Template!A2:D2">
<area ref="Template!A2:D2"/>
</each>
</area>
</each>
</area>
</xls>

加载 xml 配置的 Java 代码

public static void main(String args[]) throws IOException {
List<ClockInOut> clockInOuts;

clockInOuts = loadCSV();
InputStream is = GroupingDemo.class.getResourceAsStream("detail_template.xlsx");

try (OutputStream os = new FileOutputStream("target/detail.xlsx")) {
Transformer transformer = TransformerFactory.createTransformer(is, os);
try (InputStream configInputStream = GroupingDemo.class.getResourceAsStream("detail_config.xml")) {
AreaBuilder areaBuilder = new XmlAreaBuilder(configInputStream, transformer);
List<Area> xlsAreaList = areaBuilder.build();
Area xlsArea = xlsAreaList.get(0);
Context context = new Context();
context.putVar("clockinouts", clockInOuts);
xlsArea.applyAt(new CellRef("Template!A1"), context);
transformer.write();
}
}
}

最佳答案

基于source code ,看起来 XML 标记仅支持 itemvardirref 属性,因此出现上述行为是期待。提出了issue在 JXLS 存储库中,因此希望这将在未来版本中得到修复。

现在 Excel 标记似乎是前进的方向。

关于java - 使用 xml 标记进行 JXLS 分组,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/59684100/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com