読者です 読者をやめる 読者になる 読者になる

No Programming, No Life

新しいNPNLです。http://d.hatena.ne.jp/fumokmm/ から引っ越してきました。

GroovyCSVを使ってみた

Groovy

はじめに

id:fitsさんが、こちらにてCSVを処理されているのを拝見しまして、GroovyでCSVを処理する場合、そういえばGroovyCSVがあったなぁと思い出したので使ってみたよという記事です。

こんな感じ

サンプルは元記事と同じです。
@Grabが使えるので楽チンですね。

parseCSV.groovy
// see. http://xlson.com/
//      https://github.com/xlson/groovycsv

@Grab('com.xlson.groovycsv:groovycsv:0.2')
import com.xlson.groovycsv.CsvParser

def csv = new File('test.csv').text
def data = new CsvParser().parse(csv, separator: ',', quoteChar: '"')
data.each {
    println "$it.no : $it.comment"
}
test.csv
no,name,comment
1,テスト1,"改行
含み"
2,test2,"カンマ,含み"
3,てすと3,"ダブルクォーテーション""含み"

注意

CSVファイルの1行目にヘッダが必要なようです。ヘッダを付けると、it.name のような形式でアクセスできるようになります。*1
また、it.values[0] のようにすると、名前を指定しなくても値にアクセスできます。ただしこの場合でもやっぱりヘッダは必要みたいなので注意して下さい。
詳しくはドキュメントをご覧下さい。

*1:ちなみに、ヘッダが無いと、1行目のデータが取得できなくなってしまいました^^;