条件付き書式の範囲のサイズを変更する必要があります。
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
ますか?