2010-05-27 114 views
0

我使用jxl api生成Excel表格,其中交替行高亮顯示,當我排序的Excel內容和手動排序,單元格背景顏色messup,通常這是因爲我正在編寫單元格的顏色單元格,無論如何,我通過它爲生成它的excel的交替行着色,以這種方式它不影響內容的排序。java生成excel排序顏色混亂

回答

0

您是否嘗試過使用RowView:

Sheet s = ... 
Colour[] colorings = new Colour[]{Colour.GOLD, Colour.OCEAN_BLUE}; 
for(int i=0;i<s.getRows();i++){ 
    CellView rowView = s.getRowView(i); 
    WritableCellFormat newFormat = new WritableCellFormat(rowView.getFormat()); 
    newFormat.setBackground(colorings[i%2]); 
    rowView.setFormat(newFormat()); 
} 

我想這應該完成你正在尋找的效果。注意我已經複製了上面的現有格式,但是如果您尚未將格式應用於行,則可以創建兩種格式並重復使用它們。唯一的另一個警告是我相信任何應用於特定單元格的格式都會覆蓋視圖格式,因此您可能需要確保單個單元格的格式設置爲DEFAULT或AUTOMATIC(我不完全確定這一點,因爲我沒有自己嘗試過)。

+0

感謝您回覆Jessup,我猜這個問題給出的意思不同,我的問題的解決方案可以通過在Excel中使用條件格式來手動解決, jxl生成的excel sheeet具有獨特格式的標題行,剩下的行交替突出顯示,當我通過選擇行 - >數據菜單 - >在Excel中排序,數據被排序,並且backgroound顏色被排序時,通過手動解決方案使用條件格式如「 = mod(row(),2)= 1「,在這種情況下只對內容進行排序,有什麼想法? – afzal 2010-05-28 06:29:26

+0

我的要求是背景顏色不應該排序,只是內容得到排序..希望我不會混淆你.. – afzal 2010-05-28 07:36:45

+0

據我所知,目前版本的庫中不支持條件格式。 – 2010-06-01 13:14:01