JXLS模板导出多个sheet文件
2016-03-18 11:33
316 查看
/** * 宋发准:这个方法主要用于根据模板导出多个sheet的excel文件. * * @param inputStream:输入流:用于输入模板 * @param response:用于下载 * @param filename:文件名 * @param sheetNamelist:sheet名称,注意:list的size决定了sheet的个数. * @param objects:用于输出的文件,是一个list<sheet>的数据,一个sheet代表一个页面. * @param tagname:用于页面取值的标记 */ public void buildDownloadExcelByMultiSheet(InputStream inputStream, HttpServletResponse response, String filename, List<String> sheetNamelist, ArrayList<SheetBean> objects, String tagname) { OutputStream out = null; try { response.setContentType(HttpUtils.getContentType(filename)); response.setHeader("Content-Disposition", HttpUtils.getDisposition(filename, false)); response.setHeader("Pragma", "public"); response.setHeader("Cache-Control", "must-revalidate, post-check=0, pre-check=0"); response.setHeader("Cache-Control", "public"); response.setHeader("Expires", "0"); response.setHeader("Content-Transfer-Encoding", "binary"); XLSTransformer transformer = new XLSTransformer(); Workbook workbook = transformer.transformMultipleSheetsList(inputStream, objects, sheetNamelist, tagname, new HashMap(), 0); out = response.getOutputStream(); workbook.write(out); } catch (IOException e) { e.printStackTrace(); _log.error(e); } catch (InvalidFormatException e) { e.printStackTrace(); _log.error(e); } finally { try { if (out != null) out.close(); out = null; } catch (IOException e) { e.printStackTrace(); } } }
相关文章推荐
- 一种合适的智能优化算法
- Apache多端口多目录配置方法
- Symfony2创建页面实例详解
- CENTOS关闭防火墙
- java 回调机制分为:异步回调 同步回调
- docker 使用笔记
- 理解Python中的With语句
- JavaScript之数据类型(转)
- Spark on Yarn可能遇到的问题
- Android----UI
- Django基于类的编辑视图和Mixins
- easyui 数据列头调整3点
- Android自学学习资料
- 根据从redis缓存的数据查询出来,在从数据库中取出所有的数据,俩个数据进行比较,去掉重复,剩下库中新插入的数据,取出新数据,然后把redis中的缓存数据清空把从数据库中查出来的所有数据放到redis缓存中
- Win7下IIS 7的安装配置与文件发布
- ClassLoader小记录
- Remove Duplicates from Sorted Array
- 音频播放AVAudioPlayer
- Windows Internals
- 堆排序算法