POIでテキストボックス

  1. Apache POI 3.0.2
  2. Excel2002

POIでテキストボックス使えないと思っていたが、使えるようになっていた!

poiのzipに入っている、
poi-3.0.2-FINAL/docs/hssf/quick-guide.html#DrawingShapes
には、

HSSFTextbox textbox = new HSSFTextbox(textbox, null);
HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();
HSSFTextbox textBox = patriarch.createTextbox(new HSSFClientAnchor(0, 0, 1023, 255, (short)1, 2, (short)1, 2));
textBox.setString(new HSSFRichTextString("textbox"));

となっていたので、やってみた。
Javaは正常に終了。
しかし、作成されたExcelを開いて見ると、ExcelがおかしくなってOPENできない。


いろいろ調べた結果、1行追加すると正常にOPENできる。

HSSFPatriarch patriarch = sheet1.createDrawingPatriarch();
HSSFTextbox textbox1 = patriarch.createTextbox(new HSSFClientAnchor(0, 0, 1023, 255, (short) 1, 0, (short) 1, 0));
HSSFRichTextString text = new HSSFRichTextString("test");
text.applyFont((short)0); // ★この行を追加
textbox1.setString(text);


注)新しくシートを作成しないとできないらしい。


元ネタ
http://www.mail-archive.com/user@poi.apache.org/msg01129.html