zoukankan      html  css  js  c++  java
  • java poi导出Excel合并单元格并设置边框

    import org.apache.poi.hssf.usermodel.HSSFCell;
    import org.apache.poi.hssf.usermodel.HSSFCellStyle;
    import org.apache.poi.hssf.usermodel.HSSFRow;
    import org.apache.poi.hssf.usermodel.HSSFSheet;
    import org.apache.poi.hssf.usermodel.HSSFWorkbook;
    import org.apache.poi.ss.util.CellRangeAddress;
    import org.apache.poi.ss.util.RegionUtil;
    
    //写入Excel,读取模板
    InputStream    stram= view.getDesktop().getWebApp().getResourceAsStream(File.separator+"Template"+File.separator+"interviewPublicity.xls");
    HSSFWorkbook workbook = new HSSFWorkbook(stram);
    HSSFSheet sheet = workbook.getSheetAt(0);
    //写入数据
    HSSFRow row = sheet.getRow(0);
    HSSFCell cell = row.getCell(0);
    index = 4;
    //单元格格式
    row = sheet.getRow(index);
    cell= row.getCell(0);
    HSSFCellStyle cellStyle = cell.getCellStyle();
    int num = 1;
    for (Entry<String, Map<String, List<BasicDBObject>>> bmd : bmdMap.entrySet()) {
        //单位
        int deptRowIndex = index;
        int deptRowEndIndex = deptRowIndex;
        //岗位集合
        for (Entry<String, List<BasicDBObject>> empList : bmd.getValue().entrySet()) {
            //岗位
            int jobRowIndex = index;
            //考生
            for (BasicDBObject emp : empList.getValue()) {
                if (index > 4) {
                    row = sheet.createRow(index);
                    cell= row.createCell(0);
                }
                cell.setCellValue(num++);
                cell.setCellStyle(cellStyle);
                cell= row.createCell(3);
                cell.setCellValue(emp.getString("姓名"));
                cell.setCellStyle(cellStyle);
                cell= row.createCell(4);
                cell.setCellValue(emp.getString("examCardId"));
                cell.setCellStyle(cellStyle);
                index++;
            }
            row = sheet.getRow(jobRowIndex);
            if (empList.getValue().size() > 1) {
                int jobRowEndIndex = jobRowIndex + empList.getValue().size() - 1;
                //合并单元格
                CellRangeAddress cellRange = new CellRangeAddress(jobRowIndex, jobRowEndIndex, (short) 2, (short) 2);
                sheet.addMergedRegion(cellRange);
                //添加边框
                RegionUtil.setBorderTop(1, cellRange, sheet, workbook);
                RegionUtil.setBorderBottom(1, cellRange, sheet, workbook);
                RegionUtil.setBorderLeft(1, cellRange, sheet, workbook);
                RegionUtil.setBorderRight(1, cellRange, sheet, workbook);
            }
            cell= row.createCell(2);
            cell.setCellValue(empList.getKey());
            cell.setCellStyle(cellStyle);
            
            deptRowEndIndex += empList.getValue().size();
        }
        row = sheet.getRow(deptRowIndex);
        if (deptRowEndIndex-1 > deptRowIndex) {
            //合并单元格
            CellRangeAddress cellRange = new CellRangeAddress(deptRowIndex, deptRowEndIndex-1, (short) 1, (short) 1);
            sheet.addMergedRegion(cellRange);
            //为合并单元格添加边框
            RegionUtil.setBorderTop(1, cellRange, sheet, workbook);
            RegionUtil.setBorderBottom(1, cellRange, sheet, workbook);
            RegionUtil.setBorderLeft(1, cellRange, sheet, workbook);
            RegionUtil.setBorderRight(1, cellRange, sheet, workbook);
        }
        cell= row.createCell(1);
        cell.setCellValue(bmd.getKey());
        cell.setCellStyle(cellStyle);
    }
    String fileName = getExamPlan().getString("bmbName")+"面试人员名单公示.xls";
    ByteArrayOutputStream byteOut = new ByteArrayOutputStream();
    workbook.write(byteOut);
    byteOut.close();
    
    InputStream is = new ByteArrayInputStream(byteOut.toByteArray());
    Filedownload.save(is, null, fileName);//OFBIZ导出
  • 相关阅读:
    蓝牙协议分析(11)_BLE安全机制之SM
    蓝牙协议分析(10)_BLE安全机制之LE Encryption
    蓝牙协议分析(9)_BLE安全机制之LL Privacy
    蓝牙协议分析(8)_BLE安全机制之白名单
    蓝牙协议分析(7)_BLE连接有关的技术分析
    蓝牙协议分析(6)_BLE地址类型
    蓝牙协议分析(5)_BLE广播通信相关的技术分析
    蓝牙协议分析(4)_IPv6 Over BLE介绍
    蓝牙协议分析(3)_BLE协议栈介绍
    ActiveMq
  • 原文地址:https://www.cnblogs.com/BobXie85/p/11174787.html
Copyright © 2011-2022 走看看