4

条件付き書式の範囲のサイズを変更する必要があります。

Excel ファイル (.xlsm、.xlsx) を読み取り、条件付き書式の範囲を変更して、新しいファイルとして保存します。

SheetConditionalFormatting sheetFormatting = sheet.getSheetConditionalFormatting();
for( int i = 0; i < sheetFormatting.getNumConditionalFormattings() ; i++ )
    for( CellRangeAddress region : 
            sheetFormatting.getConditionalFormattingAt(i).getFormattingRanges() )
        if( region.getFirstRow() == 1 )
            region.setLastRow( 1+data.length );

そのため、すべての条件付き書式オブジェクトを取得し、それらの範囲オブジェクトを取得して、 を呼び出して範囲を変更するだけCellRangeAddress.setLastRow()です。

問題は、この変更が結果ファイルに存在しないことです。実際、操作直後の sheet.getSheetConditionalFormatting() に変化はありません。

どういうわけか変更を「コミット」する必要がありConditionalFormattingますか?

4

1 に答える 1

3

はい、シートの書式設定に条件付き書式を追加する必要があります。

sheetFormatting.addConditionalFormatting(newRange,arrayOfRules);
于 2013-12-13T11:17:07.160 に答える