侧边栏壁纸
博主头像
gale-blog博主等级

少年一贯快马扬帆,道阻且长不转弯,要盛大,要绚烂,要哗然,要用理想的泰坦尼克号去撞现实冰川,要当烧赤壁的风,而非借箭草船,要为了一片海,就肯翻万山

  • 累计撰写 39 篇文章
  • 累计创建 5 个标签
  • 累计收到 5 条评论

目 录CONTENT

文章目录

java之Excel

二月在这里
2024-01-31 / 0 评论 / 0 点赞 / 37 阅读 / 1934 字

Java之excel操作

介绍一下hutool的工具类excel的操作:

通过ExcelUtil获取到对excel操作的ExcelWiter

ExcelWriter writer = ExcelUtil.getWriter(true);
writeAndBuildStyle(writer, data, columnList, builder);
writer.flush(outputStream);
writer.close();


 private static <T> void writeAndBuildStyle(ExcelWriter writer, List<T> data, List<String> columnList, ExcelStyleBuilder builder) {
        if (builder != null){
            builder.beforeSetStyle(writer);
        }
        List<String> headList = fillWriter(writer, data, columnList);
        if (builder != null){
            builder.afterSetStyle(writer, headList);
        }
    }

1.新建一个build自定义execl的格式,不侵入代码

public interface ExcelStyleBuilder {

    /**
     * 在数据写入前设置样式
     * @param writer ExcelWriter
     */
    void beforeSetStyle(ExcelWriter writer);

    /**
     * 在数据写入后设置样式
     * @param writer ExcelWriter
     * @param headList 表头
     */
    void afterSetStyle(ExcelWriter writer, List<String> headList);
}
  1. poi 设置颜色

📎poi颜色对照表.xls

3.设置列宽和行高

在excel中和Java中的单位是不一致的 列宽使用的short类型可以做到和excel表示一致,但是在行高的表示是不一致的

        // 设置表头高度
        Sheet sheet = writer.getSheet();
        // 设置默认列宽
        sheet.setDefaultColumnWidth(12);
        sheet.setDefaultRowHeight((short) (28 *20));
        // 冻结首行
        sheet.createFreezePane(0, 1, 0, 1);

        //设置自动换行
        cellStyle.setWrapText(true);

0

评论区