2010-05-27 107 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