Java/Apache POI - 如何更改/设置特定单元格中的字体大小?

6 java apache-poi

我想更改工作表中单元格中填充的确定数据的字体大小。假设该单元格是第 26 列的第 2 行。以范围方式来说,这将是:Z2。字体大小为11。例如,我想将字体大小更改为72。

我怎样才能做到这一点?

小智 5

您可以使用现有字体(在工作表或工作簿中)并按原样使用它,也可以更改它并将其定义为新字体。实际的活动字体可供您使用,如下所示:(其中 newCell 是您要修改的单元格)

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

要更改字体及其任何属性:

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

可以设置的属性还有很多,当然这只是一个例子。但你还没有完成,现在你需要将 ypou 刚刚创建/找到的字体绑定到你想要的实际单元格。

CellStyle cellStyle = newCell.getSheet().getWorkbook().createCellStyle();
cellStyle.setFont(newFont);
Run Code Online (Sandbox Code Playgroud)

..或者使用(一个方法创建新样式,另一个修改单元格中已有的样式):

CellUtil.setFont(newCell, newFont);
Run Code Online (Sandbox Code Playgroud)