導(dǎo)出為Excel文件
/**
* 導(dǎo)出為Excel文件
*
* @param dataList? 數(shù)據(jù)列表
* @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 {
????????//寫到字節(jié)輸出流
? ? ? ? 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;
}
導(dǎo)出Excel到HttpServletResponse
/**
* 導(dǎo)出Excel到HttpServletResponse
*
* @param dataList? 數(shù)據(jù)列表
* @param columnMap 輸出列及其中文列名,按順序輸出
* @param fileName? 文件名
* @param <T>
*/
public static void exportExcelToHttpServletResponse(List dataList, LinkedHashMap columnMap, String fileName, HttpServletResponse response) {
????if (null == dataList) {
????????return;
? ? }
????try {
????????//寫到字節(jié)輸出流
? ? ? ? ByteArrayOutputStream byteArrayOutputStream =exportExcelOutputStream(dataList, columnMap);
? ? ? ? if (null == byteArrayOutputStream) {
????????????return;
? ? ? ? }
????????//導(dǎo)出文件流到HttpServletResponse
? ? ? ? //防止亂碼,設(shè)置HttpServletResponse編碼
? ? ? ? response.setCharacterEncoding("utf-8");
? ? ? ? response.setContentType("multipart/form-data");
? ? ? ? //設(shè)置頁面禁止緩存
? ? ? ? response.setDateHeader("Expires", 0);
? ? ? ? response.setHeader("Cache-Control", "no-cache");
? ? ? ? response.setHeader("Pragma", "no-cache");
? ? ? ? //設(shè)置下載文件名
? ? ? ? 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);
? ? }
}