注意:excel模板需要放在resources下面   

 

 

     

       // 读取文件路径要写成这个样子在liunx才不会报错

ClassPathResource classPathResource = new ClassPathResource("static/sexcelTelemp.xls");
          InputStream   inputStream1 = classPathResource.getInputStream();
        //导出列表名
String fileName = "aa.xls";

//文件名称统一编码格式
fileName = URLEncoder.encode(fileName, "utf-8");
//生成的导出文件
File destFile = File.createTempFile(fileName, ".xls");

//transformer转到Excel
XLSTransformer transformer = new XLSTransformer();
BufferedInputStream bis = null;
BufferedOutputStream bos = null;
try {
// 传入流文件和数据
Workbook workbook = transformer.transformXLS(inputStream1, beans);
OutputStream os = new BufferedOutputStream(new FileOutputStream(destFile.getAbsoluteFile()));
workbook.write(os);
inputStream1.close();
os.flush();
os.close();
//将文件输入
InputStream inputStream = new FileInputStream(destFile);
// 设置response参数,可以打开下载页面
response.reset();
//设置响应文本格式
response.setContentType("application/vnd.ms-excel;charset=utf-8");
response.setHeader("Content-Disposition",
"attachment;filename=" + new String((fileName + ".xls").getBytes(), "iso-8859-1"));
//将文件输出到页面
ServletOutputStream out = response.getOutputStream();
bis = new BufferedInputStream(inputStream);
bos = new BufferedOutputStream(out);
byte[] buff = new byte[2048];
int bytesRead;
// 根据读取并写入
while (-1 != (bytesRead = bis.read(buff, 0, buff.length))) {
bos.write(buff, 0, bytesRead);
}
} catch (ParsePropertyException | InvalidFormatException e) {
// TODO Auto-generated catch block
e.printStackTrace();
} finally {
//使用完成后关闭流
try {
if (bis != null)
bis.close();
if (bos != null)
bos.close();
} catch (IOException e) {
}

}

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