Apache POI设置单元格字体和字体颜色

时间:2012-05-17 06:07:26

标签: java apache-poi

我正在使用Apache POI的XSSF阅读xlsx文件。当读取特定单元格的字体并在新单元格中应用时,对于整个工作表应用字体而不是针对该特定单元格。我想要例如:

        column1 column2      column3 
row1    ARIAL   TIMES ROMAN  ARIAL

row2    TIMES ROMAN ARIAL   ARIAL   

row3     ARIAL   ARIAL   ARIAL   

我想在原始文件中的每个单元格中使用相同的字体。

我的代码是:

public XSSFCellStyle setFontOnCell(XSSFCellStyle cellStyle, XSSFCell cell)
    {
        try {
            font = cell.getCellStyle().getFont();
            new_font.setFontName(font.getFontName());
            new_font.setBoldweight(font.getBoldweight());
            new_font.setFontHeight((short)font.getFontHeight());
            new_font.setFamily(font.getFamily());
            cellStyle.setFont(new_font);
            return cellStyle;
        } catch (Exception e) {
            //System.out.println(e.getMessage());
            return cellStyle;
        }
    }

1 个答案:

答案 0 :(得分:1)

您的new_font似乎是一个全局变量,您不断更改它,然后将其注入单元格。它应该是setFontOneCell()的本地,以便每个单元格都有自己的Font实例,而不是所有实例都使用相同的对象,