2013-10-31 4 views
2

간단한 공식으로 셀의 유효성을 검사해야하며 유효하지 않은 경우 셀 색상을 노란색 또는 빨간색으로 변경해야합니다. 아직 중요하지 않습니다. 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); 
} 
값이 내가 알고, 네 경우 나에게 색상을 변경

하지만

가 어떻게 합의 공식을 적용 할 수 있습니다 중 :

enter image description here

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"에 수식을 입력하면 아무것도하지 않습니다. (도와주세요!

+1

@ JoshC에 감사드립니다! – jompi

답변

2

무엇에 대해 합계를 확인합니까? 그 세포의 합계를 가정

이 시도 할 수있는 몇 가지 수에 대해 comparred되어 모두 함께

// Condition 1: Formula Is =SUM($M2+$N2+$O2+$P2) > 75 
ConditionalFormattingRule rule1 = sheetCF.createConditionalFormattingRule("SUM($M2+$N2+$O2+$P2)>75"); 

여기


SheetConditionalFormatting sheetCF = sheet.getSheetConditionalFormatting(); 

// Condition 1: Formula Is =SUM($M2+$N2+$O2+$P2) > 75 
ConditionalFormattingRule rule1 = sheetCF.createConditionalFormattingRule("SUM($M2+$N2+$O2+$P2)>75"); 

PatternFormatting fill1 = rule1.createPatternFormatting(); 

fill1.setFillBackgroundColor(IndexedColors.RED.index); 
fill1.setFillPattern(PatternFormatting.SOLID_FOREGROUND); 

CellRangeAddress[] regions = { 
    CellRangeAddress.valueOf("L2:L5") 
}; 

sheetCF.addConditionalFormatting(regions, rule1); 
link 보여줍니다 자바를 사용하여 조건부 서식을 만드는 여러 가지 방법.

+0

고맙습니다. 이미 솔루션을 받았지만 조건부 서식 지정 기능을 사용하지 않았습니다 ... 솔루션을 완료하려면 Java에서 작업을 수행 한 다음 셀 스타일을 변경하려면 "ifs"를 입력해야합니다. 대단히 감사합니다. 당신의 시간은 내가 무슨 말을하려고 할거야 :), 좋은 하루 되세요. – jompi

관련 문제