XLS – Formatage conditionnel – Exemple POI Java

🙂 Enfin, après la search, j'ai trouvé la solution à mon problème, qui n'est pas encore satisfait

J'aimerais utiliser un formatting conditionnel pour montrer une ligne avec une couleur jaune si la colonne B et C dans la même ligne n'a pas la même valeur. C'est le cadre sur VBA Je ne l'utilise pas seulement pour m'aider inégalé

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 

Ceci est My Methode java. C'est comme ça, mais

 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(); 

Cet exemple fonctionne bien, il me montre la ligne de couleur jaune. mais comme vous l'avez déjà vu, j'ai des valeurs qui sont = 120 qui s'affichent avec la couleur jaune. Le problème est que je pense que les valeurs ne sont pas dans le format numérique de ma page … ce n'est pas un problème

Mon vrai problème est la valeur à laquelle je dois comprendre, je ne sais pas comment j'ai exprimé que chaque case B et C de la même ligne. J'ai mis ici une seule valeur = 120 uniquement pour le test

Comment dois-je faire … à la valeur, buyer, merci d'avance 🙂

Finalement, c'est ma solution, ça marche bien … pensez-y @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(); int i; 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(); } 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(); } 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(); 

vous pouvez get la valeur propriété de l'object Cell , et si le contenu est numérique, la valeur sera numérique.