:) 最后,经过研究,我找到了我的问题的解决方案,但尚未得到满足
如果同一行的B列和C列不具有相同的值,我想使用条件格式来显示黄色的行。 这是VBA上的marco我不是用它来帮助我而不是真正的
For i = 3 To fin Step 1
Range("C" & i).Select
Selection.FormatConditions.Delete
Selection.FormatConditions.Add Type:=xlCellValue, Operator:=xlNotEqual, _
Formula1:="=B" & i
Selection.FormatConditions(1).Interior.ColorIndex = 6
这是我的Methode java .it就是这样但是
FileInputStream file = new FileInputStream(new File("D://DEQ//"+selectitem.getRefDeq()+"//Comparatif.xls"));
HSSFWorkbook workbook1 = new HSSFWorkbook(file);
HSSFSheet sheet1 = workbook1.getSheet("page1");
HSSFSheetConditionalFormatting cf =sheet1.getSheetConditionalFormatting();
HSSFConditionalFormattingRule cfrole=cf.createConditionalFormattingRule(org.apache.poi.hssf.record.CFRuleRecord.ComparisonOperator.NOT_EQUAL, "120");
HSSFPatternFormatting fill_pattern = cfrole.createPatternFormatting();
fill_pattern.setFillBackgroundColor(IndexedColors.YELLOW.index);
CellRangeAddress[] my_data_range = {CellRangeAddress.valueOf("B17:B26")};
cf.addConditionalFormatting(my_data_range,cfrole);
FileOutputStream out = new FileOutputStream(new File("D://DEQ//"+selectitem.getRefDeq()+"//Comparatif.xls"));
workbook1.write(out);
out.close();
这个例子效果很好,它显示了黄色的线条。但正如你已经看到的那样,我的值为a = 120,并以黄色显示。问题是我认为我的页面中的值不是数字格式..这不是问题
我真正的问题是我必须要比较的价值,我不知道我是如何表达同一行的每个方框B和C. 我在这里只为测试
设置了一个值= 120我应该怎么做..在价值比较者 提前谢谢你:)
答案 0 :(得分:3)
最后这是我的解决方案,它工作得很好..想你@Philip
FileInputStream file = new FileInputStream(new File("D://DEQ//"+selectitem.getRefDeq()+"//Comparatif.xls"));
HSSFWorkbook workbook1 = new HSSFWorkbook(file);
HSSFSheet sheet1 = workbook1.getSheet("Comparatif");
//Get first sheet from the workbook
HSSFSheetConditionalFormatting cf =sheet1.getSheetConditionalFormatting();
int i;
i=17;
for(;i<=ligne;i++){
HSSFConditionalFormattingRule cfrole=cf.createConditionalFormattingRule(ComparisonOperator.NOT_EQUAL,"$C$"+i );
HSSFPatternFormatting fill_pattern = cfrole.createPatternFormatting();
fill_pattern.setFillBackgroundColor(IndexedColors.YELLOW.index);
CellRangeAddress[] my_data_range = {CellRangeAddress.valueOf("B"+i+":B"+i)};
cf.addConditionalFormatting(my_data_range,cfrole);
}
for(i=17;i<=ligne;i++){
HSSFConditionalFormattingRule cfrole=cf.createConditionalFormattingRule(ComparisonOperator.NOT_EQUAL,"$B$"+i );
HSSFPatternFormatting fill_pattern = cfrole.createPatternFormatting();
fill_pattern.setFillBackgroundColor(IndexedColors.YELLOW.index);
CellRangeAddress[] my_data_range = {CellRangeAddress.valueOf("C"+i+":C"+i)};
cf.addConditionalFormatting(my_data_range,cfrole);
}
FileOutputStream out = new FileOutputStream(new File("D://DEQ//"+selectitem.getRefDeq()+"//Comparatif.xls"));
workbook1.write(out);
out.close();
答案 1 :(得分:1)
您可以获取 Cell 对象的值属性,如果内容是数字,则该值将为数字。