jxl导出Excel设置背景色错行

时间:2021-06-09 14:51:26
导出Excel,根据状态(open/closed)设置背景色,open,背景色为白色,closed灰色

导出结果

jxl导出Excel设置背景色错行

第二行closed本为灰色却变成了白色,第六行状态open背景色应为白色却成了灰色,


代码:

private void rowsPrint(ExcelXmlParser parser, HttpServletResponse resp) throws WriteException, IOException {
ExcelRow[] rows = parser.getGridContent();

for (int i = 0; i <rows.length; i++) {
String[] cells = rows[i].getCells();

//标记当前行是否为Closed
boolean isClosed=false;
sheet.setRowView(i + headerOffset, 400);

Cell cell=sheet.getCell(11, i);//业务状态
if(cell.getContents().equals("Closed")){
isClosed=true;
}
for (int j = 0; j < cells.length; j++) {
WritableFont font = new WritableFont(WritableFont.TAHOMA, 10);
WritableCellFormat f = new WritableCellFormat (font);


if(isClosed){
f.setBackground(Colour.GRAY_25);//#E3EFFF
}else{
f.setBackground(Colour.WHITE);
}

7 个解决方案

#1



 Cell cell=sheet.getCell(11, i+1)//业务状态

#2


引用楼主 archie2010 的回复:
导出Excel,根据状态(open/closed)设置背景色,open,背景色为白色,closed灰色

导出结果



第二行closed本为灰色却变成了白色,第六行状态open背景色应为白色却成了灰色,


代码:

Java code


    private void rowsPrint(ExcelXmlParser parser, HttpServletRe……

+1

#3


引用 1 楼 q384264619 的回复:
Java code


 Cell cell=sheet.getCell(11, i+1)//业务状态


这样会错得更远.....

#4



for (int j = 0; j < cells.length; j++) {
                WritableFont font = new WritableFont(WritableFont.TAHOMA, 10);
                WritableCellFormat f = new WritableCellFormat (font);
                

                if(isClosed){
                    f.setBackground(Colour.GRAY_25);//#E3EFFF
                }else{
                    f.setBackground(Colour.WHITE);
                }




你这个背景颜色设置到哪个CELL上了???

#5


 Cell cell=sheet.getCell(11, i);//业务状态
            if(cell.getContents().equals("Closed")){
                isClosed=true;
            }
调试下,看下取出来得第一行的状态是Closed么?是不是取出的数据有问题。

#6


唉............

#7


Cell cell=sheet.getCell(11, i);//业务状态
  if(cell.getContents().equals("Closed")){
  isClosed=true;
  }
调试下,看下取出来得第一行的状态是Closed么?是不是取出的数据有问题。

#1



 Cell cell=sheet.getCell(11, i+1)//业务状态

#2


引用楼主 archie2010 的回复:
导出Excel,根据状态(open/closed)设置背景色,open,背景色为白色,closed灰色

导出结果



第二行closed本为灰色却变成了白色,第六行状态open背景色应为白色却成了灰色,


代码:

Java code


    private void rowsPrint(ExcelXmlParser parser, HttpServletRe……

+1

#3


引用 1 楼 q384264619 的回复:
Java code


 Cell cell=sheet.getCell(11, i+1)//业务状态


这样会错得更远.....

#4



for (int j = 0; j < cells.length; j++) {
                WritableFont font = new WritableFont(WritableFont.TAHOMA, 10);
                WritableCellFormat f = new WritableCellFormat (font);
                

                if(isClosed){
                    f.setBackground(Colour.GRAY_25);//#E3EFFF
                }else{
                    f.setBackground(Colour.WHITE);
                }




你这个背景颜色设置到哪个CELL上了???

#5


 Cell cell=sheet.getCell(11, i);//业务状态
            if(cell.getContents().equals("Closed")){
                isClosed=true;
            }
调试下,看下取出来得第一行的状态是Closed么?是不是取出的数据有问题。

#6


唉............

#7


Cell cell=sheet.getCell(11, i);//业务状态
  if(cell.getContents().equals("Closed")){
  isClosed=true;
  }
调试下,看下取出来得第一行的状态是Closed么?是不是取出的数据有问题。