Как выбрать и смещать весь рабочий лист с помощью Apache POI
Я начинаю с библиотеки POI Apache.
в VBA, я знаю, что я могу выделить и выделить жирным шрифтом весь рабочий лист со следующим кодом
Dim ws As Worksheet
Set ws = ThisWorkbook.Sheets(1)
ws.Cells.Font.Bold = True
Могу ли я узнать, как выбрать и выделить весь лист путем кодирования с помощью библиотеки POI Apache?
спасибо
Ответы
Ответ 1
В этой ссылке есть довольно хороший пример.
Sheet sheet = wb.createSheet("test");
CellStyle cs = wb.createCellStyle();
Font f = wb.createFont();
f.setBoldweight(Font.BOLDWEIGHT_BOLD);
cs.setFont(f);
sheet.setDefaultColumnStyle(1,cs); //set bold for column 1
Ответ 2
Шрифт по умолчанию для рабочей книги можно получить из индекса 0. Итак, чтобы изменить шрифт bold по умолчанию для книги:
private void setWorkbookDefaultFontToBold(Workbook workbook){
Font defaultFont = workbook.getFontAt(0);
defaultFont.setBoldweight(Font.BOLDWEIGHT_BOLD);
}
Это действительно неясная часть информации - она в POI Sheet Javadoc для setColumnWidth, во второй строке:
"... может отображаться в ячейке, которая отформатирована с помощью стандартного шрифта (первый шрифт в книге)."
Мне не пришлось сильно его использовать, так что, возможно, это просто сработало для меня (расположение и нераспространенность документации на нем заставляет меня слегка лелеять, рекомендуя в зависимости от этого), но это где-то вы могли бы начать глядя
Ответ 3
private HSSFFont createAndSetFontStyle(HSSFWorkbook wb) {
HSSFFont font = wb.createFont();
font.setFontName(XSSFFont.DEFAULT_FONT_NAME);
font.setBoldweight(XSSFFont.BOLDWEIGHT_BOLD);
font.setFontHeightInPoints((short)10);
return font;
}
HSSFCellStyle cellStyle = workBook.createCellStyle();
HSSFFont createfont = createAndSetFontStyle(workBook);
cellStyle.setFont(createfont);
cell.setCellStyle(cellStyle);