使用 xml 标记的 JXLS 分组
JXLS grouping with xml markup
JXLS 2.x 的 xml 配置是否支持 groupBy
?
原因是我有一个非常基本的分组示例,可以与 excel 注释一起使用,但是当我通过 xml 标记使用相同的配置时,它只是拒绝工作。输出excel分组,但每组下没有数据
我在网上也找不到任何可用的示例,所以要么是我的语法有问题(见下文),要么是 JXLS 2.x 通过 xml 标记不支持 groupBy
.
excel 评论(有效!)
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>
Java 要加载的代码 xml 配置
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();
}
}
}
基于 JXLS 存储库中的 source code, it looks like XML markup only supports item
, var
, dir
, and ref
attributes, hence the above behavior is expected. Raised an issue,因此希望这会在未来的版本中得到修复。
现在 Excel 标记似乎是前进的方向。
JXLS 2.x 的 xml 配置是否支持 groupBy
?
原因是我有一个非常基本的分组示例,可以与 excel 注释一起使用,但是当我通过 xml 标记使用相同的配置时,它只是拒绝工作。输出excel分组,但每组下没有数据
我在网上也找不到任何可用的示例,所以要么是我的语法有问题(见下文),要么是 JXLS 2.x 通过 xml 标记不支持 groupBy
.
excel 评论(有效!)
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>
Java 要加载的代码 xml 配置
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();
}
}
}
基于 JXLS 存储库中的 source code, it looks like XML markup only supports item
, var
, dir
, and ref
attributes, hence the above behavior is expected. Raised an issue,因此希望这会在未来的版本中得到修复。
现在 Excel 标记似乎是前进的方向。