2013年10月9日水曜日

groovyとApache MetaModelでExcelのシートに対してクエリーを実行する

groovyとApache MetaModelでExcelのシートに対してクエリーを実行するには、以下のようなコードを実行します。
@Grab(group='org.eobjects.metamodel', module='MetaModel-full', version='3.4.5')
import org.eobjects.metamodel.*

dc = DataContextFactory.createExcelDataContext(new File("products.xlsx"))
// テーブル(=シート)を指定
table = dc.getDefaultSchema().getTableByName("products")

// 製品IDが1002のデータを抽出
query = dc.query().from(table)
  .select("product_name", "price")
  .where(table.getColumnByName("product_id")).eq(1002).toQuery()
// Queryの表示
println query.toString()
// Queryの実行
ds = dc.executeQuery(query)
for(row in ds){
  // 製品名と価格を表示
  println row.getValue(0) + ":" + row.getValue(1)
}

データ元のExcel

動作環境
groovy 2.1.7, JDK7 update40

0 件のコメント:

コメントを投稿