基于poi的excel合并单元格

204 阅读1分钟
    //开始拉屎
    public static void main(String[] args) throws IOException {

        List<List<String>> list = new ArrayList<>(2);
        list.add(new ArrayList<>());
        list.add(new ArrayList<>());
        list.add(new ArrayList<>());
        list.add(new ArrayList<>());
        list.get(0).add("严晶涛");
        list.get(0).add("4201011***********");
        list.get(0).add("班主任");
        list.get(0).add("6a6bhv");
        list.get(0).add("7wxbmztp");

        list.get(1).add("严晶涛");
        list.get(1).add("4201011***********");
        list.get(1).add("语文老师");
        list.get(1).add("6a6bhv");
        list.get(1).add("7wxbmztp");

        list.get(2).add("严晶涛");
        list.get(2).add("4201011***********");
        list.get(2).add("数学老师");
        list.get(2).add("6a6bhv");
        list.get(2).add("7wxbmztp");

        list.get(3).add("严晶涛");
        list.get(3).add("4201011***********");
        list.get(3).add("体育老师");
        list.get(3).add("6a6bhv");
        list.get(3).add("7wxbmztp");

        //创建workbook
        XSSFWorkbook workbook = new XSSFWorkbook();

        //创建sheet页
        XSSFSheet sheet = workbook.createSheet("老师账号密码表");
        //创建单元格
        XSSFRow row = sheet.createRow(0);
        XSSFCell xm = row.createCell(0);
        xm.setCellValue(new XSSFRichTextString("姓名"));
        XSSFCell sfz = row.createCell(1);
        sfz.setCellValue(new XSSFRichTextString("身份证号码"));
        XSSFCell js = row.createCell(2);
        js.setCellValue(new XSSFRichTextString("角色"));
        XSSFCell zh = row.createCell(3);
        zh.setCellValue(new XSSFRichTextString("账号"));
        XSSFCell mm = row.createCell(4);
        mm.setCellValue(new XSSFRichTextString("密码"));
        autoSizeColumns(sheet, list.size() + 1);
        for (int i = 0; i < list.size(); i++) {
            XSSFRow itemRow = sheet.createRow(i + 1);
            for (int j = 0; j < list.get(i).size(); j++) {
                XSSFCell itemCell = itemRow.createCell(j);
                itemCell.setCellValue(new XSSFRichTextString(list.get(i).get(j)));
                if (j == 3 && i > 0) {
                    if(list.get(i).get(j).equals(list.get(i - 1).get(j))){
//                        int firstRow, int lastRow, int firstCol, int lastCol
                        CellRangeAddress region1 = new CellRangeAddress(i, i+1, 3, 3);
                        sheet.addMergedRegion(region1);
                    }
                }
                if (j == 4 && i > 0) {
                    if(list.get(i).get(j).equals(list.get(i - 1).get(j))){
                        CellRangeAddress region1 = new CellRangeAddress(i, i+1, 4, 4);
                        sheet.addMergedRegion(region1);
                    }
                }
            }
        }

        FileOutputStream stream = new FileOutputStream("d:/teacherAccount.xls");
        workbook.write(stream);
    }
    //拉完了