Poi-tl使用HttpServletResponse导出Word乱码问题

  • 问题
  • 原因
  • 解决办法
  • 总结

打开网易新闻 查看精彩图片

问题

  • Poi-tlHttpServletResponse导出Word乱码问题:文件名使用中文,中文名乱码导出的文件下载后乱码

原因

  • 文件名中文乱码:没有设置文件名的编码规则
  • 文件下载乱码:RESTful中的Controller层错误地使用了PostMapping

打开网易新闻 查看精彩图片

解决办法

  • 文件名乱码:

String attachName = new String(("Xxx.docx").getBytes(), "ISO-8859-1");response.setHeader("Content-disposition", "attachment;filename=" + attachName);

  • 文件下载乱码:Word导出的接口使用GetMapping使用Request URL来获取文件的下载
  • 获取Word模版路径:使用InputStream工具类获取路径的文件// 使用InputStream流获取Word模版 InputStream fis = this.getClass().getResourceAsStream("/template/xxxTemplate.docx");

打开网易新闻 查看精彩图片

总结

  • 根据框架文档好好学习框架的用法后再根据实例开发相关功能
  • 注意框架中的使用注意点和高级用法
  • 将高级用法与项目实际结合起来,选择使用的最佳方案

打开网易新闻 查看精彩图片