スポンサーサイト

上記の広告は1ヶ月以上更新のないブログに表示されています。
新しい記事を書く事で広告が消せます。

GroovyでCalc,Excelに保存されているデータをコピーしてソースを作る

項目が多いDBのテーブルなどの、SELECT文やINSERT文を手で作るのはめんどくさすぎですよね。
項目定義とかはExcelやCalcなどで管理していることが多いと思いますので、これを利用してSQL文の構築をしてみます。
POIやXMLの解析をしてやるとが王道だと思いますが、こういうのはスクリプト言語でさくさく作りたいので、スプレッドシートのデータをコピーしてペーストして作ることにします。

def name = "docomo"
def data = """\
HTMLバージョン html_version
シリーズ series
機種 machine
ユーザエージェント user_agent
詳細 description
動画バージョン movie_version
動画ファイルサイズ movie_file_size
テキストテロップ対応 text_telop
3Diモーション threed_motion
"""

def ary = data.split("\n")
def sb = new StringBuilder("INSERT INTO t_" + name + " (\n") //)

ary.each {
def items = it.split("\t")
sb.append("\t" + items[1] + ",\n")
}

sb.delete(sb.length() -2, sb.length())
sb.append("\n) SELECT\n")

ary.each {
def items = it.split("\t")
sb.append("\t\"" + items[0] + "\",\n")
}
sb.delete(sb.length() -2, sb.length())
sb.append("\nFROM w_" + name)

println(sb)

変数dataのところに、スプレッドシートのデータをざっくとコピーすることになります。
この例ようにSQLを作るだけでなく、色々なソースファイルを作るのにも便利です。
今回はSQLなので、余分なカンマが許されないので、
StringBuilderを使いましたが、特にそういうのが気にならないなら、都度printlnで出力することも、よくやります。

一行入魂サイトにまとめがあります。
スポンサーサイト

COMMENTS

COMMENT FORM

TRACKBACK


この記事にトラックバックする(FC2ブログユーザー)

上記広告は1ヶ月以上更新のないブログに表示されています。新しい記事を書くことで広告を消せます。