S_a_k_Uの日記みたいなDB

~サクゥーと呼ばないで~

名前付きセルの操作

POIのAPIにセルの名前で、セルのオブジェクトが取得できるようなメソッドができれば…とか思ってて、その記事を見つけてショートカット作って忘れた。


孔明日記 - 名前付きセルの取得方法
改めて、セルの名前の定義ってワークブック単位なんだってことを知った。
Excel上で、異なるワークシートのセルに同じ名前付けたら、前のセルの名前の定義情報は消えちゃう(上書きされる)のね、とか。


この辺りのAPIで。
セルの名前の定義のインデックスを取得して、
HSSFWorkbook#getNameIndex
そのインデックスから名前の定義(HSSFName)を取得して、
HSSFWorkbook#getNameAt
名前の定義が示す、セルの範囲(getReferenceはDeprecated)を取得して、
HSSFName#getRefersToFormula
セルの範囲の開始から終了をループをすれば取得できるよ。
って書いてるけど、3.5ではRangeAdressクラスがなくなっている!


3.5のAPIを辿ってみると、CellReferenceクラスのgetCellRefPartsメソッドとか使って、できるような気がしないでもない。
またちょっと試してみよう。