框架:spring cloud
测试工具:swagger

这两天,项目需要紧急上Excel导出功能,所以这两天一直加班。之前有通过POI3.9做过一个导出,但是一直存在一个问题,Excel表能下载,但是打开始终提示:
记录自己被坑的一天
这个问题一直困扰着我,没有时间解决,所以一直放在哪里。
这次没办法了,就只能解决这个问题。
开始,我以为是我代码问题,然后找到一个同一个框架项目,把代码拿过来,写好接口,在swagger上测试,遇到另一个问题。
时用easy.poi3.1.0的jar包和POI 3.9的jar包,在运行过程中,始终抛一个错误

java.lang.NoSuchMethodError: org.apache.poi.ss.usermodel.Sheet.getDrawingPatriarch()Lorg/apache/poi/ss/usermodel/Drawing;

又是各种搜索问题,最后才发现

    public static Drawing getDrawingPatriarch(Sheet sheet){
        if(sheet.getDrawingPatriarch() == null){
            sheet.createDrawingPatriarch();
        }
        return sheet.getDrawingPatriarch();
    }

POI3.9的sheet.getDrawingPatriarch()这个方法没有。
最后迫不得已,将POI版本降低,同时降低easy.poi的版本,解决该问题。
此问题解决,接下来就是测试啦。

因为之前测试都是时用的Swagger页面进行接口测试,成功后,将地址给前台调用。也没有什么不妥,然后通过Swagger页面调用接口,下载Excel表,打开,始终出现上面截图的信息,内容是各种乱码。

又是一通百度,google各种查询,各种设置response参数,各种设置编码,时间浪费了一天,都快崩溃了。最后在不经意间,在一个论坛上看到这么一句话
记录自己被坑的一天

然后给了我启发,然后直接输入导出地址,回车。一切都是那么的美好。

切记:也是自己学习不精,导致问题所在。以后Swagger页面测试不行,试着换另一个方式实施。

记录自己被坑的一天。好好学习,天天向上。

相关文章: