package com.liyankun.api.utils; import cn.hutool.core.collection.CollUtil; import cn.hutool.core.date.DateUtil; import cn.hutool.core.util.RandomUtil; import cn.hutool.poi.excel.BigExcelWriter; import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.StyleSet; import org.apache.poi.ss.usermodel.Font; import org.apache.poi.ss.usermodel.IndexedColors; import java.util.*; public class ExcelOp{ /** * 导出excel * 需要引入hutool工具包 * 引入poi包 * utool-4.x的poi-ooxml 版本需高于 3.17 hutool-5.x的poi-ooxml 版本需高于 4.1.2 xercesImpl版本高于2.12.0 * @return */ public String ExportExcel(List<Map<String,?>> data,String address){ List<List<?>> result = new ArrayList<>(); List<?> tableHeader = new ArrayList<>(); for (String key : data.get(0).keySet()) { tableHeader = (List<?>) CollUtil.addAll(tableHeader,key); } result.add(tableHeader); for( Map<String, ?> mapList : data ) { List<Object> dataList = new ArrayList<>(); dataList.add(mapList.values()); CollUtil.addAll(result,dataList); } String resultUrl = address+DateUtil.today()+ RandomUtil.randomNumbers(6)+".xlsx"; BigExcelWriter writer= ExcelUtil.getBigWriter(resultUrl); SetExcleStyle(writer); writer.write(result); writer.close(); return resultUrl; } /** * 设置excel 样式 */ public void SetExcleStyle(BigExcelWriter writer){ // 定义单元格背景色 StyleSet style = writer.getStyleSet(); // 第二个参数表示是否也设置头部单元格背景 style.setBackgroundColor(IndexedColors.WHITE, true); //设置内容字体 Font font = writer.createFont(); font.setBold(true); //font.setColor(Font.COLOR_RED); font.setItalic(true); //第二个参数表示是否忽略头部样式 writer.getStyleSet().setFont(font, false); } }
java excel 导出简单封装
最新推荐文章于 2023-08-06 21:56:29 发布