Java / Apache POI - Как я могу изменить / установить размер шрифта в определенной ячейке? - PullRequest
0 голосов
/ 14 мая 2018

Я хочу изменить размер шрифта определенных данных, заполненных в ячейке моего рабочего листа.Предположим, что ячейка - это строка 2 столбца 26. Если говорить в диапазоне, это будет: Z2.И размер шрифта в 11. Я хочу изменить размер шрифта на 72, например.

Как я могу это сделать?

Ответы [ 2 ]

0 голосов
/ 14 мая 2018

Вы можете использовать существующий шрифт (на листе или в рабочей книге) и использовать его как есть, либо изменить его и определить как новый шрифт. Актуальные активные шрифты доступны вам следующим образом: (где newCell - это ячейка, которую вы хотите изменить)

Font newFont = newCell.getSheet().getWorkbook().findFont(oldFont.getBold(),
 oldFont.getColor(), oldFont.getFontHeight(), oldFont.getFontName(), oldFont.getItalic(),
 oldFont.getStrikeout(), oldFont.getTypeOffset(), oldFont.getUnderline());

Чтобы изменить шрифт и любые его атрибуты:

Font newFont = newCell.getSheet().getWorkbook().createFont();
     newFont.setBold(true);
     newFont.setColor(10);
     newFont.setFontHeightInPoints(72);
     newFont.setItalic(false);
     // ... etc.

Существует довольно много атрибутов, которые вы можете установить, конечно, это только пример. Но вы все еще не закончили, теперь вам нужно привязать шрифт, который вы только что создали / нашли, к фактической ячейке, которую вы хотели.

CellStyle cellStyle = newCell.getSheet().getWorkbook().createCellStyle();
cellStyle.setFont(newFont);

.. или альтернативно использовать (метод создает новые стили, другой изменяет стиль, уже присутствующий в ячейке):

CellUtil.setFont(newCell, newFont);
0 голосов
/ 14 мая 2018

В классе шрифта POI HSSF есть два метода настройки размера шрифта:

Использование setFontHeightInPoints проще в большинстве случаев и рекомендуется в Javadocs.Тем не менее, он будет справляться только с высотой шрифта целого числа.Это большинство размеров шрифта, но не все

Чтобы установить высоту шрифта 7,5, вам нужно изменить код так:

xtFont.setFontHeight((short)(7.5*20));

, который использует альтернативный код, который принимаетРазмеры 1/20, поэтому справляется с нецелыми значениями.

...