Я использую POI для создания файла Excel. Мне нужно добавить границы к определенным ячейкам на листе.
Как я могу это сделать?
Я использую POI для создания файла Excel. Мне нужно добавить границы к определенным ячейкам на листе.
Как я могу это сделать?
Настройка границ в стиле, используемом в ячейках, выполнит это. Пример:
style.setBorderBottom(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderTop(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderRight(HSSFCellStyle.BORDER_MEDIUM);
style.setBorderLeft(HSSFCellStyle.BORDER_MEDIUM);
HSSFCellStyle style=workbook.createCellStyle();
style.setBorderBottom(HSSFCellStyle.BORDER_THIN);
style.setBorderTop(HSSFCellStyle.BORDER_THIN);
style.setBorderRight(HSSFCellStyle.BORDER_THIN);
style.setBorderLeft(HSSFCellStyle.BORDER_THIN);
a Вспомогательная функция:
private void setRegionBorderWithMedium(CellRangeAddress region, Sheet sheet) {
Workbook wb = sheet.getWorkbook();
RegionUtil.setBorderBottom(CellStyle.BORDER_MEDIUM, region, sheet, wb);
RegionUtil.setBorderLeft(CellStyle.BORDER_MEDIUM, region, sheet, wb);
RegionUtil.setBorderRight(CellStyle.BORDER_MEDIUM, region, sheet, wb);
RegionUtil.setBorderTop(CellStyle.BORDER_MEDIUM, region, sheet, wb);
}
Если вы хотите добавить Border в Excel, то
String cellAddr="$A$11:$A$17";
setRegionBorderWithMedium(CellRangeAddress.valueOf(cellAddr1), sheet);
В новых версиях apache poi:
XSSFCellStyle style = workbook.createCellStyle();
style.setBorderTop(BorderStyle.MEDIUM);
style.setBorderBottom(BorderStyle.MEDIUM);
style.setBorderLeft(BorderStyle.MEDIUM);
style.setBorderRight(BorderStyle.MEDIUM);
Используйте XSSFCellStyle.BORDER_MEDIUM
или XSSFBorderFormatting.BORDER_MEDIUM
(оба перечисления ссылаются на одно и то же значение):
XSSFCellStyle cellStyle = workbook.createCellStyle();
cellStyle.setBorderTop(XSSFCellStyle.BORDER_MEDIUM);
cellStyle.setBorderRight(XSSFCellStyle.BORDER_MEDIUM);
cellStyle.setBorderBottom(XSSFCellStyle.BORDER_MEDIUM);
cellStyle.setBorderLeft(XSSFCellStyle.BORDER_MEDIUM);
Используйте setBorderColor(XSSFCellBorder.BorderSide.BOTTOM, XSSFColor)
или setBottomBorderColor(XSSFColor)
(эквивалентно сверху, слева, справа):
XSSFCellStyle cellStyle = workbook.createCellStyle();
XSSFColor color = new XSSFColor(new java.awt.Color(128, 0, 128));
cellStyle.setTopBorderColor(color);
cellStyle.setRightBorderColor(color);
cellStyle.setBottomBorderColor(color);
cellStyle.setLeftBorderColor(color);
Из версии 4.0.0 на RegionUtil
-methods появилась новая подпись. Например:
RegionUtil.setBorderBottom(BorderStyle.DOUBLE,
CellRangeAddress.valueOf("A1:B7"), sheet);
Чтобы создать границу в POI Apache, вы должны...
1: создать стиль
final XSSFCellStyle style = workbook.createCellStyle();
2: Затем вам нужно создать границу
style.setBorderBottom( new XSSFColor(new Color(235,235,235));
3: Затем вы должны установить цвет этой границы
style.setBottomBorderColor( new XSSFColor(new Color(235,235,235));
4: Затем примените стиль к ячейке
cell.setCellStyle(style);