| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748495051525354555657585960616263646566676869707172737475767778798081828384858687888990919293949596979899100101102103104105106107108109110111112113114115116117118119120 |
- package com.ydtech.utils.excel;
- 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 com.ydtech.exception.SystemException;
- import org.apache.poi.ss.usermodel.Workbook;
- import org.springframework.web.multipart.MultipartFile;
- import javax.servlet.ServletOutputStream;
- import javax.servlet.http.HttpServletResponse;
- import java.io.IOException;
- import java.io.UnsupportedEncodingException;
- import java.net.URLEncoder;
- import java.util.List;
- /**
- * @Author: lig
- * @create: 2023-07-25
- * description: Excel easypoi 导入导出工具类
- */
- public class ExcelEasypoiUtils {
- /**
- * excel 导出 重写
- *
- * @param list 数据列表
- * @param pojoClass pojo类型
- * @param fileName 导出时的excel名称
- * @param response
- */
- public static void exportExcel(List<?> list, Class<?> pojoClass, String fileName, HttpServletResponse response) throws IOException {
- ExportParams ep = new ExportParams();
- Workbook workbook = ExcelExportUtil.exportExcel(ep, pojoClass,list);
- // try {
- // //3.返回表格
- // //设置表格文件名字
- //// String fileName = batchNum + "-保司数据导出";
- // fileName = URLEncoder.encode(fileName,"UTF8");
- //
- // //设置返回数据类型
- //// response.setContentType("application/vnd.ms-excel;charset=utf-8");
- // response.setContentType("multipart/form-data");
- // response.setHeader("Content-Disposition", "attachment;filename=" + fileName + ".xls");
- //
- // //将表格输出
- // workbook.write(response.getOutputStream());
- //
- // } catch (UnsupportedEncodingException e) {
- // throw new RuntimeException(e);
- // } catch (IOException e) {
- // throw new RuntimeException(e);
- // }
- // fileName = URLEncoder.encode(fileName,"GBK");
- // fileName = URLEncoder.encode(fileName,"UTF8");
- fileName = URLEncoder.encode(fileName,"UTF8");
- response.reset();
- // response.setContentType("application/vnd.ms-excel;charset=utf-8");
- response.setContentType("application/x-msdownload");
- response.addHeader("Access-Control-Allow-Origin", "*");
- response.addHeader("Access-Control-Allow-Methods", "GET, POST, PUT, DELETE");
- response.addHeader("Access-Control-Allow-Headers", "Content-Type");
- response.setHeader("Content-Disposition", "attachment; filename=" + fileName +".xlsx");
- // response.setHeader("Content-Disposition", "attachment; filename=" + java.net.URLEncoder.encode(fileName+".xlsx", "UTF-8"));
- ServletOutputStream outStream = null;
- try {
- outStream = response.getOutputStream();
- workbook.write(outStream);
- } finally {
- outStream.close();
- }
- }
- /**
- * excel 导入 重写
- *
- * @param file excel文件
- * @param pojoClass pojo类型
- * @param titleRows 表格标题行数
- * @param headRows 表头行数,默认1
- * @param sheetNum 上传表格需要读取的sheet 数量,默认为1
- * @return
- */
- public static <T> List<T> importExcel(MultipartFile file, Class<T> pojoClass,Integer titleRows,Integer headRows,Integer sheetNum) throws IOException {
- ImportParams importParams = new ImportParams();
- if(null != titleRows) importParams.setTitleRows(0);
- if(null != headRows) importParams.setHeadRows(1);
- if(null != sheetNum) importParams.setSheetNum(1);
- try {
- return ExcelImportUtil.importExcel(file.getInputStream(), pojoClass, importParams);
- } catch (Exception e) {
- throw new SystemException("导入excel失败:" + e.getMessage());
- // throw new RuntimeException(e);
- }
- }
- }
|