超简单的文件导出方法
直接上代码
//必要参数HttpServletResponse 如果导出信息是条件查询,参数再加上那个条件
public ResultBean exportLiaisonOfficerInfo(HttpServletResponse response) {
try {
XSSFWorkbook workBook = new XSSFWorkbook();
XSSFSheet onWorkSheet = workBook.createSheet("省端专线接口人信息");
XSSFRow onWorkHeader = onWorkSheet.createRow(0);
onWorkHeader.setHeight(new Short("600"));
onWorkHeader.createCell(0).setCellValue("省份");
onWorkHeader.createCell(1).setCellValue("接口人姓名");
onWorkHeader.createCell(2).setCellValue("部门");
onWorkHeader.createCell(3).setCellValue("电话");
onWorkHeader.createCell(4).setCellValue("邮箱");
//获取信息
List<ProvincialLiaisonOfficerInfo> resultList = noteWarnningMapper.exportLiaisonOfficerInfo();
if (resultList != null && resultList.size()>0) {
for (int i = 0; i < resultList.size(); i++) {
XSSFRow row = onWorkSheet.createRow(i + 1);
ProvincialLiaisonOfficerInfo resultData = resultList.get(i);
row.createCell(0).setCellValue(resultData.getProvince());
row.createCell(1).setCellValue(resultData.getName());
row.createCell(2).setCellValue(resultData.getDept());
row.createCell(3).setCellValue(resultData.getPhone());
row.createCell(4).setCellValue(resultData.getEmail());
}
}
response.setContentType("application/vnd.ms-excel");
//文件名若为中文需要转码
response.setHeader("Content-Disposition", "attachment;filename="+toDownloadString("省端专线接口人信息"+".xlsx"));
workBook.write(response.getOutputStream());
return new ResultBean(ResultCode.SUCCESS.value(), "导出成功", "");
} catch (Exception e) {
return new ResultBean(ResultCode.BUSINESS_FAIL.value(), "导出异常", e.toString());
}
}
/**
* 解析中文文件名
* @param s
* @return
*/
private String toDownloadString(String s) {
StringBuffer sb = new StringBuffer();
for (int i = 0; i < s.length(); i++) {
char c = s.charAt(i);
if (c >= 0 && c <= 255) {
sb.append(c);
} else {
byte[] b;
try {
b = Character.toString(c).getBytes("utf-8");
} catch (Exception ex) {
log.error("异常",ex);
b = new byte[0];
}
for (int j = 0; j < b.length; j++) {
int k = b[j];
if (k < 0) {
k += 256;
}
sb.append("%" + Integer.toHexString(k).toUpperCase());
}
}
}
return sb.toString();
}
接口需要浏览器调用 需要设置成GET请求,不然