『java』の『poi』で行を削除したい!
で、調べるとそんな機能が無いのが判明…。
行を削除するには、『removeRow』が紹介されるが
これは、指定行のデータを削除する機能で、
行を削除する機能ではない…。
…
とは言え、まあ、データを削除するので、間違いはないのだが…。
で、色々調べたら、『shiftRows』が使えるとの事。
で、小細工したらこんな感じで使えるようになった。
public void deleteRow(HSSFSheet sheet, int row) {
int lastRow = sheet.getLastRowNum();
sheet.shiftRows(row+1,lastRow,-1);
}
簡単に説明すると…
削除したい行を『row』で指定。
で、『row+1』行を『-1』で『row』に移動させるって処理。
この時、移動させる範囲を、
『sheet.getLastRowNum()』で取得する。
『sheet.getLastRowNum()』は、一番終わりにある
セルの行。
なので、結果的に『row』行は、削除される。
って感じ…。
こうして考えると、『poi』には、
機能が無いのでなく、必要な機能が揃っているので
あとは、組み合わせて実現しろって事なのかな。
頭の固い俺には、難しいです…。(汗)
| 固定リンク
« 『Windows10』にしたら『VOICEROID+結月ゆかりEX』が動かなくなった…。(汗) | トップページ | 『java』の『poi』から、表計算ソフトのプログラム構造が見えて来た…。 »
コメント