需求:
需要使用excel中动态生成chart图,并按需求样例调整图表样式。
实现:
使用模板设定+excel poi 动态设定
exel poi官网:Apache POI - the Java API for Microsoft Documents
官网提供有样例;
遇到难点:
X轴坐标左移、Y轴坐标上移;
解决尝试:
- 查找excel poi 提供了api文档,很多方法不知道具体使用效果,不能确定具体方法--抛弃;
- 使用解压软件winrar把excel文件解压成源码文件,如:
在目录中可以找到chart图的xml源码:
按此方式处理生成文件1、样式按需求调整后文件2,然后解压,在对比chart.xml文件,查看对应差异化。
在使用poi提供的方法对相应参数进行设置:
//DE Y轴标题移位
ctPlotArea.getValAxList().forEach(item -> {
if (item.isSetTitle() && item.getTitle().isSetLayout()) {
CTManualLayout ctManualLayout = item.getTitle().getLayout().addNewManualLayout();
ctManualLayout.addNewY().setVal(0.1);
ctManualLayout.addNewXMode().setVal(STLayoutMode.Enum.forInt(1));
ctManualLayout.addNewYMode().setVal(STLayoutMode.Enum.forInt(1));
}
});