/**
* 宋发准:这个方法主要用于根据模板导出多个sheet的excel文件.
*
* @param inputStream:输入流:用于输入模板
* @param response:用于下载
* @param filename:文件名
* @param sheetNamelist:sheet名称,注意:list的size决定了sheet的个数.
* @param objects:用于输出的文件,是一个list的数据,一个sheet代表一个页面.
* @param tagname:用于页面取值的标记
*/
public void buildDownloadExcelByMultiSheet(InputStream inputStream, HttpServletResponse response, String filename, List sheetNamelist, ArrayList 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();
}
}
}