代码之家  ›  专栏  ›  技术社区  ›  user9731072

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

  •  5
  • user9731072  · 技术社区  · 6 年前

    我想更改工作表中单元格中已确定数据的字体大小。假设单元格是第26列的第2行。从射程的角度来说,这将是: Z2 .和11中的字体大小。例如,我想将字体大小更改为72。

    我该怎么做?

    2 回复  |  直到 6 年前
        1
  •  4
  •   Thomas Oleksy    6 年前

    您可以使用现有字体(在工作表或工作簿中)并按原样使用,也可以更改现有字体并将其定义为新字体。实际活动字体如下所示:(其中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);
    
        2
  •  1
  •   Nitin Singhal    6 年前

    POI HSSF字体类有两种字体大小设置方法:

    对于大多数情况,使用setFontHeightInPoints是最简单的方法,在Javadocs中推荐使用。然而,它只能处理整数字体高度。这是大多数字体大小,但不是全部

    要将字体高度设置为7.5,您需要将代码改为:

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

    它使用了另一个值,该值取1/20点大小,因此可以处理非整数值。