我做了一个自定义jx:each-merge
命令来做自动合并的事情。但需要注意的是,我使用的是org.jxls:jxls:2.4.2
,org.jxls:jxls-poi:1.0.13
并且有一个主子数据结构(意味着数据已经被分组了)。您可以从下面的图片中看到模板和渲染结果:
代码示例:
public void xls() throws Exception {
// from template
InputStream template = getClass().getClassLoader().getResourceAsStream("templates/each-merge.xls");
// output to
File out = new File("target/each-merge-result.xls");
if (out.exists()) out.delete();
OutputStream output = new FileOutputStream(out);
// template data
Map<String, Object> data = generateData();
// render
JxlsUtils.renderTemplate(template, data, output);
// verify
assertThat(out.exists(), is(true));
assertThat(out.getTotalSpace() > 0, is(true));
}
您可以从 github 项目simter-jxls-ext获取源代码。测试类是EachMergeCommandTest.java。
数据结构为:
[
{
sn: 1,
name: 'row1',
subs: [
{sn: '1-1', name: 'row1sub1'},
...
]
},
...
]
希望这会有所帮助。