就是说我生成了excel模板,其中要对比两列,比如A2和C2
如果A2和C2不相等,就使C2单元格背景颜色变成红色
贴一段代码吧,中间的那个IF公式我看是实现不了[这段代码也是从本站中复制了某大牛的]

解决方案 »

  1.   

    下面这段代码,将生成一个新exl,路径是D:\test1.xls,当前两列的合计与第三列不相等时,第三列为红色。
    前提还是和你的另一个帖是一样的。
    http://topic.csdn.net/u/20120616/10/535b294d-3ab4-412c-85ab-0920f37f21f0.html?seed=1990999584&r=78882521#r_78882521import java.io.File;
    import java.io.FileInputStream;
    import java.io.InputStream;import jxl.Cell;
    import jxl.Sheet;
    import jxl.Workbook;
    import jxl.format.Colour;
    import jxl.write.Label;
    import jxl.write.WritableCellFormat;
    import jxl.write.WritableSheet;
    import jxl.write.WritableWorkbook;
    public class JXLTest { public static void main(String[] args) throws Exception{
    JXLUtil j = new JXLUtil();
    j.check("d://test.xls");
    }}
    class JXLUtil{
    public String check(String file) throws Exception{
    InputStream is = new FileInputStream(file);
    //获得workbook 工作簿
            Workbook rwb = Workbook.getWorkbook(is);
            
            //创建可写的工作簿
            WritableWorkbook wwb = null;
            wwb = Workbook.createWorkbook(new File("D:\\test1.xls"));
            WritableSheet ws = wwb.createSheet("sheet0", 0);
            WritableCellFormat wcf = new WritableCellFormat();
            wcf.setBackground(Colour.RED);
            
            // 获取第一张Sheet 工作表
            Sheet rs = rwb.getSheet(0);
            
            Cell[] col0 = rs.getColumn(0);//第一列
            Cell[] col1 = rs.getColumn(1);//第二列
            Cell[] col2 = rs.getColumn(2);//第三列
            
            int rownum = rs.getRows();//总行数
            for(int i = 0;i < rownum;i++){//循环所有行
             int c1 = Integer.parseInt(col0[i].getContents());
             int c2 = Integer.parseInt(col1[i].getContents());
             int c3 = Integer.parseInt(col2[i].getContents());
             ws.addCell(new Label(0,i,col0[i].getContents()));
             ws.addCell(new Label(1,i,col1[i].getContents()));
             if(c1 + c2 != c3){
                    ws.addCell(new Label(2,i,col2[i].getContents(),wcf));
             }else{
              ws.addCell(new Label(2,i,col2[i].getContents()));
             }
            }
            wwb.write();
            wwb.close();
            return "succuss";
    }
    }