您的位置:首页 > 其它

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();

}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: