2010年11月28日日曜日

groovyとApache POIを使用してセルにハイパーリンクを設定する

groovyとApache POIを使用してセルにハイパーリンクを設定するには、以下のコードを実行します。

import org.apache.poi.ss.usermodel.*;

workbook = WorkbookFactory.create(new FileInputStream("test1.xlsx"))
sheet = workbook.getSheetAt(0)
row = 5
column = 0
// 文字列型でセルの値を設定
if( sheet.getRow(row) == null ){
// 既存の行が存在しない場合は行を作成
sheet.createRow(row)
}
if( sheet.getRow(row).getCell(column) == null ){
// 既存のセルが存在しない場合はセルを作成
sheet.getRow(row).createCell(column)
}
// ハイパーリンクを作成
hyperlink = workbook.getCreationHelper().createHyperlink(Hyperlink.LINK_URL)
hyperlink.setLabel("groovyあれこれ")
hyperlink.setAddress("http://groovyarekore.blogspot.com")
sheet.getRow(row).getCell(column).setCellValue("groovyあれこれ")
sheet.getRow(row).getCell(column).setHyperlink(hyperlink)

// 一重下線と青色を設定
font = workbook.createFont();
font.setFontHeightInPoints((short)10)
font.setFontName("MS ゴシック")
font.setUnderline(Font.U_SINGLE)
font.setColor(IndexedColors.BLUE.getIndex())
cs = workbook.createCellStyle()
cs.setFont(font)
cs = sheet.getRow(row).getCell(column).setCellStyle(cs)

workbook.write(new FileOutputStream("test3.xlsx"))



入力Excel(test1.xlsx)


出力Excel(test3.xlsx)


※$GROOVY_HOME/libにPOI関連のjarを追加しておくこと。
・poi-3.7-20101029.jar
・poi-ooxml-3.7-20101029.jar
・poi-ooxml-schemas-3.7-20101029.jar
・log4j-1.2.13.jar;
・geronimo-stax-api_1.0_spec-1.0.jar
・xmlbeans-2.3.0.jar
・dom4j-1.6.1.jar

動作環境
JDK6 Update 22, groovy 1.7.5, Apache POI 3.7

0 件のコメント:

コメントを投稿