1

xlsxApachePOIのXSSFを使用してファイルを読み取っています。特定のセルのフォントを読み取り、新しいセルに適用する場合、そのフォントはその特定のセルではなくシート全体に適用されます。例が欲しい:

        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;
        }
    }
4

1 に答える 1

1

あなたnew_fontはグローバル変数のようです、そしてあなたはそれを変え続けそしてそれからそれをセルに注入し続けます。setFontOneCell()すべてのセルが実際に同じオブジェクトを使用するのではなく、各セルが独自のFontインスタンスを取得できるように、ローカルである必要があります。

于 2012-05-17T06:13:29.900 に答える