This commit is contained in:
caozehui
2024-12-16 09:17:09 +08:00
parent 0bf8a6e19e
commit cb3b8fd01f

View File

@@ -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;
}
}