编程语言
首页 > 编程语言> > java-将样式应用于单元格范围-Apache POI

java-将样式应用于单元格范围-Apache POI

作者:互联网

我正在寻找一种无需在其上循环即可将样式应用于一系列单元格的解决方案.

尝试在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);

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

谢谢

解决方法:

我认为您不能将样式应用于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);
    }
}

标签:styles,apache,apache-poi,java,excel
来源: https://codeday.me/bug/20191118/2028942.html