java excel 导出简单封装

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);
    }
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值