1.导出时报空指针
在项目运行至WordExportUtil.exportWord07(doc, params)方法时报错,首先断点检查doc路径和params内容。
检查模板中的{{}}和是否有不必要空格
我在模板中的一个表格里粘贴了其他表格的数据,可能造成了有换行,空格的情况。数据全部对照params检查后没问题,将模板中数据项检查,整理表格格式保证全部一致,导出成功。
2.使用JfreeUtil导出图片时x轴数据过于密集
我导出的图片是三个月的每日数据的曲线图,正常导出后word中显示的图片90个x轴数据都挤在一起,不能使用。需求只需要显示几个点的日期和数据。失败的曲线图:
百度了一些方法,但是都没成功,可能是我对JfreeUtil的了解太浅薄了。需要自己想个办法。
将x轴上的数组除了需要展示的日期全改为""。
//添加数据集
DefaultCategoryDataset dataset = new DefaultCategoryDataset();
//dayPowerList为传入的数据,内有日期和数据。
//dayPowerList.get(i).get(name)为传入的日期即x轴数据,dayPowerList.get(i).get(value)为传入的数据即y轴数据
for(int i=0; i<dayPowerList.size(); i++) {
//col value, line name, row value
Integer valueOf = Integer.valueOf(dayPowerList.get(i).get(value).toString());
if(i%10 == 0)
dataset.addValue(valueOf, name,dayPowerList.get(i).get(name).toString());
else
dataset.addValue(valueOf, name,"");
}
//创建折线图
JFreeChart chart = ChartFactory.createLineChart("", "", "",
dataset, PlotOrientation.VERTICAL, true, true, false);
导出效果
当然i%10 == 0是简单处理,可以进行更复杂处理。
3.导出时报string index out of range下标超限问题
排查自己代码无问题后发现导出时报下标超限,下载源码debug后发现是截取模板中{{}}失败,导致无法正常对应数据。检查模板中所有的{{和}},建议自己下载源码debug。在ParseWord07.java的parseWordSetValue方法中逐一检查是否有截取失败的数据。
源码下载地址https://gitee.com/lemur/easypoi
4.多文档合并问题
参考https://www.cnblogs.com/zeng1994/p/bef8f7ab14486d489db8ee72b9f8ffc0.html