导出为Excel文件
/**
* 导出为Excel文件
*
* @param dataList 数据列表
* @param columnMap 输出列及其中文列名,按顺序输出
* @param fileName 文件名
* @param <T>
* @return oss文件url
*/
public static StringexportExcel(List dataList, LinkedHashMap columnMap, String fileName) {
String url ="";
if (null == dataList) {
return url;
}
try {
//写到字节输出流
ByteArrayOutputStream byteArrayOutputStream =exportExcelOutputStream(dataList, columnMap);
if (null == byteArrayOutputStream) {
return url;
}
//文件流上传Oss
fileName = fileName.replace(".xlsx", "");
fileName = fileName.replace(".xls", "");
ByteArrayInputStream byteArrayInputStream = ConversionUtil.outputStream2InputStream(byteArrayOutputStream);
url = OssUtil.uploadStream(byteArrayInputStream, fileName, ".xlsx");
}catch (Exception e) {
logger.error("exportExcel error: ", e);
}
return url;
}
导出Excel到HttpServletResponse
/**
* 导出Excel到HttpServletResponse
*
* @param dataList 数据列表
* @param columnMap 输出列及其中文列名,按顺序输出
* @param fileName 文件名
* @param <T>
*/
public static void exportExcelToHttpServletResponse(List dataList, LinkedHashMap columnMap, String fileName, HttpServletResponse response) {
if (null == dataList) {
return;
}
try {
//写到字节输出流
ByteArrayOutputStream byteArrayOutputStream =exportExcelOutputStream(dataList, columnMap);
if (null == byteArrayOutputStream) {
return;
}
//导出文件流到HttpServletResponse
//防止乱码,设置HttpServletResponse编码
response.setCharacterEncoding("utf-8");
response.setContentType("multipart/form-data");
//设置页面禁止缓存
response.setDateHeader("Expires", 0);
response.setHeader("Cache-Control", "no-cache");
response.setHeader("Pragma", "no-cache");
//设置下载文件名
response.setHeader("Content-Disposition", "attachment;filename=" +
new String(fileName.getBytes("gb2312"), "ISO8859-1"));
//文件输出流写入HttpServletResponse
byteArrayOutputStream.writeTo(response.getOutputStream());
}catch (Exception e) {
logger.error("exportExcel error: ", e);
}
}