読者です 読者をやめる 読者になる 読者になる

valid,invalid

関心を持てる事柄について

POIで、名前が定義されているセルに値をセットする

Excelファイル(※2007以降の.xlsx形式)から名前が定義されているセルを取得し、値をセットする。

既に対象のWorkbookとSheetを取得している状態から。

XSSFName name = workbook.getName("cell's Name");
CellReference ref = new CellReference(name.getRefersToFormula());
XSSFRow row = sheet.getRow(ref.getRow());
XSSFCell cell = row.getCell(ref.getCol());
cell.setCellValue("value you want to set");

上記コードにて、単一のセルにも結合されたセルにも値をセットできることを確認済み。
結合されたセルは範囲で取得したりする必要があるかと思ったけど、今のところ問題無さそう。

また、存在しないセル名を指定している場合、1行目のworkbook#getNameはNullを返すので注意。

【環境】

 POI 3.10
 Java SE7

【参考】

POIで名前定義されているセルを取得する話 - kelkronsoの日記 -
POIで、名前定義の入ったカラムから値を取得。 - るいもの戯れ言 -