package com.kidgrow.common.utils; import cn.afterturn.easypoi.excel.ExcelExportUtil; import cn.afterturn.easypoi.excel.ExcelImportUtil; import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.ImportParams; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import org.apache.poi.ss.usermodel.Workbook; import org.apache.commons.lang3.StringUtils; import org.springframework.web.multipart.MultipartFile; import javax.servlet.http.HttpServletResponse; import java.io.File; import java.io.IOException; import java.net.URLEncoder; import java.util.Collections; import java.util.List; import java.util.Map; /** * 石家庄喜高科技有限责任公司 版权所有 © Copyright 2020
* * @Description: Excel 工具类
* @Project:
* @CreateDate: Created in 2020/2/3 15:45
* @Author: liuke */ public class ExcelUtil { private ExcelUtil() { throw new IllegalStateException("Utility class"); } /** * 导出 * * @param list 数据列表 * @param title 标题 * @param sheetName sheet名称 * @param pojoClass 元素类型 * @param fileName 文件名 * @param isCreateHeader 是否创建列头 * @param response * @throws IOException */ public static void exportExcel(List list, String title, String sheetName, Class pojoClass, String fileName , boolean isCreateHeader, HttpServletResponse response) throws IOException { ExportParams exportParams = new ExportParams(title, sheetName, ExcelType.XSSF); exportParams.setCreateHeadRows(isCreateHeader); defaultExport(list, pojoClass, fileName, response, exportParams); } /** * 导出 * * @param list 数据列表 * @param title 标题 * @param sheetName sheet名称 * @param pojoClass 元素类型 * @param fileName 文件名 * @param response * @throws IOException */ public static void exportExcel(List list, String title, String sheetName, Class pojoClass, String fileName , HttpServletResponse response) throws IOException { defaultExport(list, pojoClass, fileName, response, new ExportParams(title, sheetName, ExcelType.XSSF)); } /** * 导出 * * @param list 数据列表(元素是Map) * @param fileName 文件名 * @param response * @throws IOException */ public static void exportExcel(List> list, String fileName, HttpServletResponse response) throws IOException { defaultExport(list, fileName, response); } private static void defaultExport(List list, Class pojoClass, String fileName , HttpServletResponse response, ExportParams exportParams) throws IOException { Workbook workbook = ExcelExportUtil.exportExcel(exportParams, pojoClass, list); if (workbook != null) { downLoadExcel(fileName, response, workbook); } } private static void defaultExport(List> list, String fileName, HttpServletResponse response) throws IOException { Workbook workbook = ExcelExportUtil.exportExcel(list, ExcelType.XSSF); if (workbook != null) { downLoadExcel(fileName, response, workbook); } } private static void downLoadExcel(String fileName, HttpServletResponse response, Workbook workbook) throws IOException { response.setCharacterEncoding("UTF-8"); response.setContentType("application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"); response.setHeader("Content-Disposition", "attachment;filename=" + URLEncoder.encode(fileName, "UTF-8")); workbook.write(response.getOutputStream()); } public static List importExcel(String filePath, Integer titleRows, Integer headerRows, Class pojoClass) { if (StringUtils.isBlank(filePath)) { return Collections.emptyList(); } ImportParams params = new ImportParams(); params.setTitleRows(titleRows); params.setHeadRows(headerRows); return ExcelImportUtil.importExcel(new File(filePath), pojoClass, params); } public static List importExcel(MultipartFile file, Integer titleRows, Integer headerRows, Class pojoClass) throws Exception { if (file == null) { return Collections.emptyList(); } ImportParams params = new ImportParams(); params.setTitleRows(titleRows); params.setHeadRows(headerRows); return ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, params); } }