就是说,当我用jxl通过自己配置字段生成excel模板之后我填写了模板中数据,然后点击保存的时候提如果我的第一列加上第二列的总和不等于我第三列数据值,提示并且不能保存
JXL或者POI能实现吗?优先JXL。求大侠帮帮忙,星期六也看看技术帖子说明你很专业哦!!!

解决方案 »

  1.   

    思路就是获得三列,然后按行循环,判断每一行的第一列+第二列的值是否等于第三列。
    下面的代码假设你的exl里存的都是int型的数据。
    另外注意一下,每一列的行数是否相等,不相等的话情况注意判断一下。(下面代码假设每一列的行数都是相等的)
    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);
            // 获取第一张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());
             if(c1 + c2 != c3){//
             return "error";
             }
            }
            return "succuss";
    }
    }
      

  2.   

    可以。
    在你另一个帖子里有代码。
    无非就是在写excel各单元格时判断一下前两列合是否等于第三列,如果不相等就第三列背景设置为红色。