0
 shouldn't this be working? fac is the uncolored workbook and facsheet is its uncolored sheet

シートは色付きのシートです。一方のワークブックから色を取得して、もう一方のワークブックに設定しようとしています

for(int i=2;rowIterator.hasNext();i++){
                      CellStyle style=fac.createCellStyle();
                      style.setFillForegroundColor(sheet.getRow(i).getRowStyle().getFillForegroundColor());
                      style.setFillBackgroundColor(sheet.getRow(i).getRowStyle().getFillBackgroundColor());
               facsheet.getRow(i).setRowStyle(style);

                  }
4

1 に答える 1

1

Excel スプレッドシートはどのようにsheet作成されましたか? Excel または POI で作成しましたか? POIの場合、使用しましたsetRowStyleか?

通常、行全体ではなく、個々のセルがスタイル設定されるため、getRowStyle()が返されnullます。

からの Javadoc の引用Row#getRowStyle():

行全体のセル スタイルを返します。ほとんどの行にはこれらのいずれも含まれないため、null が返されます。最初にチェックするために isFormatted() を呼び出します。

CellStylefor eachをコピーして、各行のすべての個々のセルをループする必要がありますCellCellStylesただし、スプレッドシートで作成できる数には制限があることに注意してください。したがって、すでに同一の を作成している場合CellStyleは、それを再利用してください。

于 2013-05-01T18:03:43.113 に答える