poi导出实现(多级表头合并单元格,自适应列宽,表格样式修改)

1,使用maven导入依赖:
 

        <dependency>
            <groupId>org.apache.poi</groupId>
            <artifactId>poi-ooxml</artifactId>
            <version>4.1.2</version>
        </dependency>

2,编写对应的表头和样式,注意列宽自适应的配置

SXSSFWorkbook workbook = new SXSSFWorkbook();

        SXSSFSheet sheet = workbook.createSheet("设备打包台账");



        Map<String, CellStyle> styles = createStyles(workbook);

        String[] head0 = new String[]{ "设备信息","木箱包装尺寸", "实际包装尺寸"};

        String[] head1 = new String[]{"采购订单号/行项目号", "实际结算数量/m3", "差值", "下单地区", "下单时间", "需求车间", "申请人",

                "打包方式","工段","线别","内部订单号","设备名称","设备描述","长/mm","高/mm","宽/mm","长/mm","高/mm","宽/mm",

                "包装数量/m3","长/mm","高/mm","宽/mm","实际包装数量/m3","重量/kg","设备数量","车间测量人","计划收料确认人","品质负责人","记录录入人",

                "打包日期","打包公司","打包公司确认人"};

        List<Integer> notMergedList = Arrays.asList(13, 14, 15, 16, 17,18,19,20,21,22,23);

        //设置第一行

        SXSSFRow row = sheet.createRow(0);

        row.setHeight((short) (26.5 * 20));

        for(int  i =0;i<head1.length;i++){

            if (!notMergedList.contains(i)) {

                inputValue( row.createCell(i),head1[i],styles.get("header"));

            }

        }



        inputValue(row.createCell(13),head0[0],styles.get("header"));

        //excel表也是从0行0列开始算起,注意自己设置合并的大小,避免已经设置值了的单元格也被合并导致代码报错

        CellRangeAddress rowRegion = new CellRangeAddress(0, 0, 13, 15);

        sheet.addMergedRegion(rowRegion); //进行合并



        inputValue( row.createCell(16),head0[1],styles.get("header"));

        CellRangeAddress rowRegion2 = new CellRangeAddress(0, 0, 16, 19);

        sheet.addMergedRegion(rowRegion2); //进行合并



        inputValue( row.createCell(20),head0[2],styles.get("header"));

        CellRangeAddress rowRegion3 = new
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值