我已经把Excel表的每一行的数据封装到了一个对象里,并且一个Sheet里的数据放到了List里。现在需要对比两个Excel里的数据,不同的数据(根据对象里的一个属性定位两个表里的对象)用红色标出来。请问这个功能该如何操作?

解决方案 »

  1.   

    我已经自己解决了,我的需求有问题,但是现在有一个比较棘手的问题,我只想改变字体的颜色,其他的样式使用模版的默认样式,下面是我的代码:
    for (int i = 0; i < list.size(); i++) {
       Transation tran = list.get(i);   HSSFRow row = sheetnew.getRow(i + lastrow);
       HSSFCellStyle cellStyle = wbnew.createCellStyle();    //创建一个样式
       HSSFFont f  = wbnew.createFont();   
       f.setColor(HSSFColor.RED.index); //设置颜色为红色
       cellStyle.setFont(f);  
       
       HSSFCell cell_0 = row.getCell(0);
       cell_0.setCellValue(new HSSFRichTextString(tran.getAsOfData()));
       cell_0.setCellStyle(cellStyle);//给单元格cell1填充红色
       HSSFCell cell_1 = row.getCell(1);
       cell_1.setCellValue(new HSSFRichTextString(tran.getText()));
       cell_1.setCellStyle(cellStyle);//给单元格cell1填充红色
    }
    FileOutputStream fos = new FileOutputStream(newPath);
    wbnew.write(fos);
    fos.close();
    现在的情况,字体是变红了。但在模板上的样式都没了!
      

  2.   

    下断点watch 一下cellStyle的值
      

  3.   

    style和font等最好是放在循环外面定义好
    再调用,一来不会互相影响,而来避免创建大量相同的字体而导致excel创建错误