2013-05-01 106 views
0
shouldn't this be working? fac is the uncolored workbook and facsheet is its uncolored sheet 

片是彩色紙,我想從一個工作簿中的顏色,並將其設置到另一個POI,色彩行不工作

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); 

        } 

回答

1

如何爲Excel電子表格sheet來自哪裏?你是用Excel還是POI創建它的?如果POI,你使用setRowStyle

通常情況下,單個單元格的樣式不是整行,因此getRowStyle()將返回null

Row#getRowStyle()引述的Javadoc:

返回整個行的單元格樣式。大多數行不會有這些, 因此將返回null。調用isFormatted()首先檢查。

您需要遍歷每行中的所有單個單元格,並複製每個CellCellStyle。但要小心,可以爲電子表格創建的CellStyles的數量是有限制的。所以,如果你已經創建了一個相同的CellStyle,然後重新使用它。

+0

FileInputStream file = new FileInputStream(new File(str +「」+「。xls」)); HSSFWorkbook workbook = new HSSFWorkbook(file); HSSFSheet sheet = workbook.getSheetAt(0); – 2013-05-01 18:08:50