2013年10月15日火曜日

groovyとApache POIを使用してExcelにテキストボックスを描画する

groovyとApache POIを使用してExcelにテキストボックスを描画するには、以下のコードを実行します。
@Grab(group='org.apache.poi', module='poi', version='3.9')
import org.apache.poi.hssf.usermodel.*;

workbook = new HSSFWorkbook()
sheet = workbook.createSheet("sheet1")

HSSFPatriarch patriarch = sheet.createDrawingPatriarch()

// テキストボックスを描画
ca1 = new HSSFClientAnchor( 0, 0, 0, 0,  
  /* top-left */ (short)1, 2,  /* right-bottom */ (short)3, 4 )
ca1.setAnchorType(ca1.MOVE_AND_RESIZE)
textbox1 = patriarch.createTextbox(ca1)
textbox1.setString(new HSSFRichTextString("サンプル"))

// 中央寄せした色つきテキストボックスを描画
ca2 = new HSSFClientAnchor( 0, 0, 0, 0, 
  /* top-left */ (short)1, 5,  /* right-bottom */ (short)3, 7 )
ca2.setAnchorType(ca2.MOVE_AND_RESIZE)
textbox2 = patriarch.createTextbox(ca2)
textbox2.setString(new HSSFRichTextString("中央寄せサンプル"))
// 水平中央寄せ
textbox2.setHorizontalAlignment(HSSFTextbox.HORIZONTAL_ALIGNMENT_CENTERED)
// 垂直中央寄せ
textbox2.setVerticalAlignment(HSSFTextbox.VERTICAL_ALIGNMENT_CENTER)
// 線の色を設定
textbox2.setLineStyleColor(0x77, 0x99, 0xdd)
// 塗りつぶし色を設定
textbox2.setFillColor(0xcc, 0xdd, 0xff)

workbook.write(new FileOutputStream("test.xls"))
出力ファイル

動作環境
groovy 2.1.7, JDK7 update40

0 件のコメント:

コメントを投稿