cn.hutool.poi.excel.ExcelWriter 基础操作

  • 创建ExcelWriter
String fileName = "F:\\4366.xlsx";
ExcelWriter writer = ExcelUtil.getWriter(fileName);
  • 表格合并操作

    private static void merger(ExcelWriter writer) {
        //合并 选择范围至少要两个cell要不会报错
        //合并的开始列 ,最后一列
        int startCol = 5,lastCol = 10;
        //合并开始行 结束行
        int startRow = 1,endRow = 5;
        String content = "合并后写入的内容";

        //合并后设置样式
        CellStyle row0Style = writer.createRowStyle(0);
        //根据当前行进行合并 0-lastCol 列
        writer.merge(lastCol);
        //合并后写入内容
        writer.merge(lastCol,content);
        //合并后 设置表头样式
        writer.merge(lastCol,content,false);
        //选择合并范围后写入内容 并设置默认的 表头样式
        writer.merge(startRow,endRow,startCol,lastCol,content,true);
        //选择合并范围后写入内容 并设置样式;
        writer.merge(startRow, endRow, startCol,lastCol , content, row0Style);
    }
  • 全局样式
    以下的设置会在后续写入的数据中都按照这个样式进行进行。 设置全局字体

    private static void setWorkbookWriteStyle(ExcelWriter writer) {
        //宋体 9号
        Font allfont = writer.createFont();
        allfont.setFontName("宋体");
        allfont.setFontHeightInPoints((short) 9);
        StyleSet sset = new StyleSet(writer.getWorkbook());
        sset.setAlign(HorizontalAlignment.LEFT, VerticalAlignment.CENTER);
        sset.setFont(allfont, false);

        writer.setStyleSet(sset);
    }
  • 行样式设置

    public static CellStyle rowStyle(ExcelWriter writer) {
        CellStyle row0Style = writer.createRowStyle(0);
        Font row0Font = writer.createFont();
        row0Font.setFontHeightInPoints((short) 18);
        row0Font.setFontName("宋体");
        row0Font.setBold(true);
        row0Style.setFont(row0Font);

        //设置对齐的格式  剧中
        row0Style.setAlignment(HorizontalAlignment.CENTER);
        //设置边框 有以下的格式
//        NONE(0),
//                THIN(1),
//                MEDIUM(2),
//                DASHED(3),
//                DOTTED(4),
//                THICK(5),
//                DOUBLE(6),
//                HAIR(7),
//                MEDIUM_DASHED(8),
//                DASH_DOT(9),
//                MEDIUM_DASH_DOT(10),
//                DASH_DOT_DOT(11),
//                MEDIUM_DASH_DOT_DOT(12),
//                SLANTED_DASH_DOT(13);
        row0Style.setBorderBottom(BorderStyle.DASH_DOT);
        row0Style.setBorderLeft(BorderStyle.DOTTED);
        row0Style.setBorderRight(BorderStyle.DOUBLE);
        row0Style.setBorderTop(BorderStyle.MEDIUM);
        //背景色
        row0Style.setFillBackgroundColor((short) 9888);
        //前景色
        row0Style.setFillForegroundColor((short) 9888);
        //设置填充方式
        row0Style.setFillPattern(FillPatternType.THICK_HORZ_BANDS);
        //设置数据格式
        row0Style.setDataFormat((short) 1);

        return row0Style;
    }
  • 写入列表数据
//每一行的数据 
 List<List<Object>> exportList = Lists.newArrayList();
//跳过行数
writer.passRows(3);
writer.write(exportList);
writer.flush();
  • 指定单元格式写入数据
 writer.getOrCreateCell(x, y).setCellValue("这是一个测试");
  • 结束 

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
使用HutoolExcelUtil工具类可以很方便地导出Excel文件并合并单元格。 首先,需要引入HutoolExcelUtil类: ```java import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelWriter; import cn.hutool.poi.excel.cell.CellUtil; ``` 然后,创建一个ExcelWriter对象: ```java ExcelWriter writer = ExcelUtil.getWriter("output.xlsx"); ``` 接下来,可以设置表头和数据内容: ```java // 设置表头 writer.merge(0, "这是一个合并的单元格"); writer.writeHeadRow(Arrays.asList("姓名", "年龄", "性别")); // 设置数据 List<List<Object>> rows = new ArrayList<>(); rows.add(Arrays.asList("张三", 20, "男")); rows.add(Arrays.asList("李四", 25, "女")); rows.add(Arrays.asList("王五", 30, "男")); writer.write(rows); ``` 在设置表头时,使用`merge`方法合并单元格。该方法的第一个参数是要合并单元格的行号,第二个参数是要合并单元格的内容。 最后,需要关闭ExcelWriter对象: ```java writer.close(); ``` 完整示例代码如下: ```java import cn.hutool.poi.excel.ExcelUtil; import cn.hutool.poi.excel.ExcelWriter; import cn.hutool.poi.excel.cell.CellUtil; import java.util.ArrayList; import java.util.Arrays; import java.util.List; public class ExcelExportDemo { public static void main(String[] args) { // 创建ExcelWriter对象 ExcelWriter writer = ExcelUtil.getWriter("output.xlsx"); // 设置表头 writer.merge(0, "这是一个合并的单元格"); writer.writeHeadRow(Arrays.asList("姓名", "年龄", "性别")); // 设置数据 List<List<Object>> rows = new ArrayList<>(); rows.add(Arrays.asList("张三", 20, "男")); rows.add(Arrays.asList("李四", 25, "女")); rows.add(Arrays.asList("王五", 30, "男")); writer.write(rows); // 关闭ExcelWriter对象 writer.close(); } } ``` 执行以上代码,就可以在当前目录下生成一个名为`output.xlsx`的Excel文件,并且第一行的单元格被合并了。

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

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值