java使用easypoi按模板导出word文档遇到的问题

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

  • 0
    点赞
  • 5
    收藏
    觉得还不错? 一键收藏
  • 5
    评论
评论 5
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值