1. /**
  2. * 宋发准:这个方法主要用于根据模板导出多个sheet的excel文件.
  3. *
  4. * @param inputStream:输入流:用于输入模板
  5. * @param response:用于下载
  6. * @param filename:文件名
  7. * @param sheetNamelist:sheet名称,注意:list的size决定了sheet的个数.
  8. * @param objects:用于输出的文件,是一个list<sheet>的数据,一个sheet代表一个页面.
  9. * @param tagname:用于页面取值的标记
  10. */
  11. public void buildDownloadExcelByMultiSheet(InputStream inputStream, HttpServletResponse response, String filename, List<String> sheetNamelist, ArrayList<SheetBean> objects, String tagname) {
  12. OutputStream out = null;
  13. try {
  14. response.setContentType(HttpUtils.getContentType(filename));
  15. response.setHeader("Content-Disposition", HttpUtils.getDisposition(filename, false));
  16. response.setHeader("Pragma", "public");
  17. response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0");
  18. response.setHeader("Cache-Control", "public");
  19. response.setHeader("Expires", "0");
  20. response.setHeader("Content-Transfer-Encoding", "binary");
  21. XLSTransformer transformer = new XLSTransformer();
  22. Workbook workbook = transformer.transformMultipleSheetsList(inputStream, objects, sheetNamelist, tagname, new HashMap(), 0);
  23. out = response.getOutputStream();
  24. workbook.write(out);
  25. } catch (IOException e) {
  26. e.printStackTrace();
  27. _log.error(e);
  28. } catch (InvalidFormatException e) {
  29. e.printStackTrace();
  30. _log.error(e);
  31. } finally {
  32. try {
  33. if (out != null)
  34. out.close();
  35. out = null;
  36. } catch (IOException e) {
  37. e.printStackTrace();
  38. }
  39. }
  40. }

 

版权声明:本文为songfahzun原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。
本文链接:https://www.cnblogs.com/songfahzun/p/5291387.html