diff --git a/njcn-springboot/spingboot2.3.12/src/main/java/com/njcn/web/utils/ExcelUtil.java b/njcn-springboot/spingboot2.3.12/src/main/java/com/njcn/web/utils/ExcelUtil.java index 3ab8e1c..0ba99bf 100644 --- a/njcn-springboot/spingboot2.3.12/src/main/java/com/njcn/web/utils/ExcelUtil.java +++ b/njcn-springboot/spingboot2.3.12/src/main/java/com/njcn/web/utils/ExcelUtil.java @@ -5,11 +5,15 @@ import cn.afterturn.easypoi.excel.entity.ExportParams; import cn.afterturn.easypoi.excel.entity.enmus.ExcelType; import cn.hutool.core.util.CharsetUtil; import lombok.extern.slf4j.Slf4j; +import org.apache.poi.hssf.usermodel.HSSFWorkbook; import org.apache.poi.ss.usermodel.Workbook; +import org.apache.poi.xssf.usermodel.XSSFWorkbook; +import org.springframework.web.multipart.MultipartFile; import javax.servlet.ServletOutputStream; import javax.servlet.http.HttpServletResponse; import java.io.IOException; +import java.io.InputStream; import java.net.URLEncoder; import java.util.Collection; import java.util.List; @@ -76,10 +80,36 @@ public class ExcelUtil { response.reset(); response.setHeader("Content-Disposition", "attachment; filename=\"" + fileName + "\""); response.setContentType("application/octet-stream;charset=UTF-8"); - Workbook workbook = ExcelExportUtil.exportExcel(sheetsList, ExcelType.HSSF); + Workbook workbook = ExcelExportUtil.exportExcel(sheetsList, ExcelType.XSSF); workbook.write(outputStream); } catch (IOException e) { log.error(">>> 导出数据异常:{}", e.getMessage()); } } + + /** + * 获取workbook对象 + * + * @param file + * @return + * @throws IOException + */ + public static Workbook getWorkBook(MultipartFile file) { + //这样写excel能兼容03和07 + InputStream is = null; + Workbook workbook = null; + String filename = file.getOriginalFilename(); + try { + is = file.getInputStream(); + if (filename.endsWith(".xls")) { + workbook = new HSSFWorkbook(is); + } + if (filename.endsWith(".xlsx")) { + workbook = new XSSFWorkbook(is); + } + } catch (IOException e) { + log.error(">>> 获取workbook对象异常:{}", e.getMessage()); + } + return workbook; + } }