pubic InputStream excelFile; // 下载文件流
private String fileName; // 下载文件名称
public String download() throws Exception {
/*
使用POI来创建表格,datas为要导出的数据。
WorkbookUtil为自定义的工具类
* /
XSSFWorkbook workbook =WorkbookUtil.createWorkBook(datas);
if(workbook == null){
log.info("导出数据失败");
return ERROR ;
}
ByteArrayOutputStream output = new ByteArrayOutputStream();
workbook.write(output);
byte[] ba = output.toByteArray();
excelFile= new ByteArrayInputStream(ba);
output.flush();
output.close();
return "excel";
}
public String getFileName() {
String timestamp = new SimpleDateFormat("yyyyMMddHHmmss").format(new Date()) ;
fileName = fileName+timestamp ;
try {
/**
* 注意,编码是为GBK,就算项目中是UTF8也好。
* 因为这里的乱码问题大多是由于操作系统的浏览器引起的,所以只有GBK才会正常。
* */
fileName = new String(fileName.getBytes("GBK"),"ISO8859-1") ;
} catch (UnsupportedEncodingException e) {
fileName = timestamp ;
}
return fileName;
}
private String errHandler(){
try {
excelFile = new ByteArrayInputStream("导出失败".getBytes("GBK"));
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
return "error" ;
}