原生的POI使用SXSSF设置单元格颜色
程序员文章站
2022-03-01 12:57:02
...
@GetMapping("/temp/export/plan/detail")
public AjaxResult<String> test1() {
ObjectMapper MAPPER = new ObjectMapper();
MAPPER.setSerializationInclusion(JsonInclude.Include.NON_NULL);
MAPPER.configure(DeserializationFeature.FAIL_ON_UNKNOWN_PROPERTIES, false);
JsonNode jsonNode = MAPPER.valueToTree(new KpiDetailPlanEo());
Workbook workbook = getWorkBook(jsonNode);
String fileName = workbook.getSheetName(0) + ".xlsx";
writeFileToLoaction(workbook, "", "/Users/orange/", fileName);
return AjaxResult.success("成功完成");
}
public static void writeFileToLoaction(Workbook workbook, String content,String path,String filename) {
try {
File file = new File(path);
if (!file.exists()) {
file.mkdirs();
}
File f = new File(path+"//"+filename);
if(!f.exists())
f.createNewFile();
FileOutputStream fw = new FileOutputStream(f.getAbsoluteFile(),true);//追加
workbook.write(fw);
fw.close();
} catch (Exception e) {
e.printStackTrace();
}
}
private Workbook getWorkBook(JsonNode jsonNode) {
SXSSFWorkbook wb = new SXSSFWorkbook();
SXSSFSheet sheet = wb.createSheet();
SXSSFRow row = sheet.createRow(0);
Cell cell = row.createCell(0);
cell.setCellValue("自定义 XSSF 颜色");
XSSFCellStyle style = wb.getXSSFWorkbook().createCellStyle();
style.setFillForegroundColor(new XSSFColor(new java.awt.Color(128, 0, 128)));
style.setFillPattern(FillPatternType.SOLID_FOREGROUND);
sheet.addMergedRegion(new CellRangeAddress(0,0,0,3));
cell.setCellStyle(style);
return wb;
}
主要是 `getWorkBook` 这个方法
官方文档 , 我觉得这个就够了
Busy Developers' Guide to HSSF and XSSF Features
中文的别人整理的.
三种类型的文件的区别
HSSF、XSSF和SXSSF区别以及Excel导出优化 - PC君 - 博客园
SXSSF的分析, 大概就是保存临时文件, 所以记得使用 wb.dispose(); 删除临时文件,
基于流的EXCEL文件导出,SXSSFWorkbook源码解析(一) - 简书w
为什么还会溢出? 这就是涉及到JVM初始参数的设置, 保存多少在内存中
关于SXSSFWorkbook导出大批量数据的问题_Dreamiy的博客-CSDN博客
颜色转化
上一篇: 「解析」正则化 DropPath
下一篇: Adyen海外支付 - 获取支付方式列表