【问题标题】:Apply style to range of cells - Apache POI将样式应用于单元格范围 - Apache POI
【发布时间】:2016-06-13 06:13:18
【问题描述】:

我正在寻找一种解决方案,可以将样式应用于一系列单元格,而无需循环。

尝试了在 stackoverflow 上到处找到的其他解决方案,但都没有奏效。 例如,这对我不起作用:

CellRangeAddress region = CellRangeAddress.valueOf("A1:B2");
short borderStyle = CellStyle.BORDER_THIN;
RegionUtil.setBorderBottom(borderStyle, region, activeSheet, excelWorkbook);
RegionUtil.setBorderTop(borderStyle, region, activeSheet, excelWorkbook);
RegionUtil.setBorderLeft(borderStyle, region, activeSheet, excelWorkbook);
RegionUtil.setBorderRight(borderStyle, region, activeSheet, excelWorkbook);

它在选区的外边缘添加边框,而不是在里面的单元格上。 我想为范围内的每个单元格设置一个边框。这甚至可以不循环吗?

谢谢

【问题讨论】:

    标签: java excel apache styles apache-poi


    【解决方案1】:

    我认为您不能将样式应用于 Range 单元格中的所有单元格,而无需将其单独应用于单个单元格。

    尝试循环遍历每个单元格并应用所有边框。

    这是一个可能对您有所帮助的示例:

    CellStyle cellStyle = workbook.createCellStyle();
    cellStyle.setBorderLeft(CellStyle.BORDER_THIN);
    cellStyle.setBorderRight(CellStyle.BORDER_THIN);
    cellStyle.setBorderTop(CellStyle.BORDER_THIN);
    cellStyle.setBorderBottom(CellStyle.BORDER_THIN);
    for(int i=region.getFirstRow();i<region.getLastRow();i++){
        Row row = sheet.getRow(i);
        for(int j=region.getFirstColumn();j<region.getLastColumn();j++){
            Cell cell = row.getCell(j);
            cell.setCellStyle(cellStyle);
        }
    }
    

    【讨论】:

    • 谢谢你,我终于得到了。
    猜你喜欢
    • 2014-10-07
    • 1970-01-01
    • 2023-03-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多