页面树结构

版本比较

标识

  • 该行被添加。
  • 该行被删除。
  • 格式已经改变。

...

      简要思路:
          1、第一次进入InsightExportServlet,我们先执行InsightExportServlet的导出CSV,然后获取执行导出后的CSV内容。
          2、将CSV内容转为excel,通过 poi可以使excel列宽自适应。
          3、将excel放到session中,继续执行第二次的InsightExportServlet。

3

...

实现思路

       实现思路分析:

          1、根据以上分析,我们需要编写filter,执行了"导出CSV"后,截取CSV内容,并转为excel。
          2、可是执行"导出CSV"后,文件写在了response的输出流里了。我们是没办法直接通过response获取到输出流的(response输出流对象没有Buffer功能,且只能读取一次)。
          3、为了解决这个问题,我们可以新建response的包装器(继承HttpServletResponseWrapper类)。保存输出流的buffer,这样我们就可以读取了。即示例的CustomizedResponseWrapper.java、
          4、以上123步骤的分析,已经解决了本问题的实现难题了,剩下的就是一些细节的东西,如:excel单元格式设置,表头表尾设置,前端代码修改等等。

...