간단한 공식으로 셀의 유효성을 검사해야하며 유효하지 않은 경우 셀 색상을 노란색 또는 빨간색으로 변경해야합니다. 아직 중요하지 않습니다. Java로 셀 색상을 변경하십시오.
지금까지 내가 본이 시도했습니다SheetConditionalFormatting sheetCF = sheet.getSheetConditionalFormatting();
// formula = =SUMA(L13+M13+N13+O13)
//=SUMA(M4+N4+O4+P4+L:L
ConditionalFormattingRule rule2 = sheetCF.createConditionalFormattingRule(ComparisonOperator.EQUAL, "4");
PatternFormatting fill2 = rule2.createPatternFormatting();
fill2.setFillBackgroundColor(IndexedColors.GREEN.index);
fill2.setFillPattern(PatternFormatting.SOLID_FOREGROUND);
CellRangeAddress[] regions = { CellRangeAddress.valueOf("L2:L5")};
sheetCF.addConditionalFormatting(regions, rule2);
}
값이 내가 알고, 네 경우 나에게 색상을 변경
하지만
가 어떻게 합의 공식을 적용 할 수 있습니다 중 :
I 컬럼 L, m2 + N2 + O2 + P2 및 m3 + N3 + 03 + P3 등의 합 ...의 모든 행에 확인해야
0,123,는 참고로, 나는 DB에서 값을 가져, 그 값은 십진수로 그림처럼하지만이 같은 int로서 자바로 그들을 얻을 :
while((j < fallas) && rset.next()){
row = sheet.createRow(j+1);
row.createCell(0).setCellValue((rset.getBigDecimal(1)).toString());
row.createCell(1).setCellValue(rset.getString(2));
row.createCell(2).setCellValue(rset.getString(3));
row.createCell(3).setCellValue(rset.getString(4));
row.createCell(4).setCellValue(rset.getString(5));
row.createCell(5).setCellValue(rset.getString(6));
row.createCell(6).setCellValue(rset.getString(7));
row.createCell(7).setCellValue((rset.getBigDecimal(8)).toString());
row.createCell(8).setCellValue((rset.getBigDecimal(9)).toString());
row.createCell(9).setCellValue((rset.getBigDecimal(10)).toString());
row.createCell(10).setCellValue(rset.getString(11));
//row.createCell(11).setCellFormula("SUMA(L13+M13+N13+O13)");
row.createCell(11).setCellValue(String.valueOf((rset.getBigDecimal(12)).toString()));
row.createCell(12).setCellValue(String.valueOf((rset.getBigDecimal(13)).toString()));
row.createCell(13).setCellValue(String.valueOf((rset.getBigDecimal(14)).toString()));
row.createCell(14).setCellValue(String.valueOf((rset.getBigDecimal(15)).toString()));
row.createCell(15).setCellValue(String.valueOf((rset.getBigDecimal(16)).toString()));
row.createCell(16).setCellValue((rset.getString(17)));
row.createCell(17).setCellValue((rset.getString(18)));
row.createCell(18).setCellValue(rset.getString(19));
row.createCell(19).setCellValue(rset.getString(20));
row.createCell(20).setCellValue("-");
row.createCell(21).setCellValue(new java.sql.Date(rset.getDate(22).getTime()).toString());
row.createCell(22).setCellValue((rset.getBigDecimal(23)).toString());
row.createCell(23).setCellValue("-");
row.createCell(24).setCellValue("-");
row.createCell(25).setCellValue("-");
row.createCell(26).setCellValue("-");
row.createCell(27).setCellValue((rset.getBigDecimal(28)).toString());
row.createCell(28).setCellValue((rset.getBigDecimal(29)).toString());
row.createCell(29).setCellValue(rset.getString(30));
row.createCell(30).setCellValue(rset.getString(31));
row.createCell(31).setCellValue(rset.getString(32));
L, M, N, O, P를 createCell (11), 12, 13, 14 등등입니다.
방금 "createConditionalFormattingRule"에 수식을 입력하면 아무것도하지 않습니다. (도와주세요!
@ JoshC에 감사드립니다! – jompi