import org.apache.poi.ss.util.RegionUtil; //导入方法依赖的package包/类
private void addRegions(XSSFSheet xlsSheet, List regions, XSSFWorkbook wb ) {
for (int r = 0, size = regions.size(); r < size; r++) {
XlsxRegion xlsRegion = regions.get(r);
CellRangeAddress region = xlsRegion.getCellRangeAddress();
Border border = xlsRegion.getBorder();
xlsSheet.addMergedRegion(region);
try {
if (border != null) {
short xlsBottomBorder = getXlsBorderValue(border.getBottom());
if (xlsBottomBorder > 0) {
RegionUtil.setBorderBottom(xlsBottomBorder, region, xlsSheet, wb);
RegionUtil.setBottomBorderColor(ExcelColorSupport.getNearestColor(border.getBottomColor()),
region, xlsSheet, wb);
}
short xlsTopBorder = getXlsBorderValue(border.getTop());
if (xlsTopBorder > 0) {
RegionUtil.setBorderTop(xlsTopBorder,region, xlsSheet, wb);
RegionUtil.setTopBorderColor(ExcelColorSupport.getNearestColor(border.getTopColor()),
region, xlsSheet, wb);
}
short xlsLeftBorder = getXlsBorderValue(border.getLeft());
if (xlsLeftBorder > 0) {
RegionUtil.setBorderLeft(xlsLeftBorder, region, xlsSheet, wb);
RegionUtil.setLeftBorderColor(ExcelColorSupport.getNearestColor(border.getLeftColor()),
region, xlsSheet, wb);
}
short xlsRightBorder = getXlsBorderValue(border.getRight());
if (xlsRightBorder > 0) {
RegionUtil.setBorderRight(xlsRightBorder, region, xlsSheet, wb);
RegionUtil.setRightBorderColor(ExcelColorSupport.getNearestColor(border.getRightColor()),
region, xlsSheet, wb);
}
}
} catch (Throwable t) {
// report with subreport and borders crashes in XSSF poi
// just log the error and let the report be generated (for now)
LOG.error(t.getMessage(), t);
}
}
regions.clear();
}