Groovy加载.csv文件

Sri*_*ath 35 csv import groovy

如何在grails上的groovy中读取和导入.csv文件.我有.csv文件包含数据,
需要使用用户界面导入到db.

Chr*_*orf 56

在Groovy中使用CSV文件总是有不同的可能性.

由于Groovy可与Java完全互操作,因此您可以使用现有的CSV库之一,例如OpenCSV.

根据您使用的CSV文件的复杂程度,您还可以使用Groovy的标准文件/字符串处理功能:

def sql = Sql.newInstance("jdbc:mysql://localhost:3306/mydb",
  "user", "pswd", "com.mysql.jdbc.Driver")
def people = sql.dataSet("PERSON")
new File("users.csv").splitEachLine(",") {fields ->
  people.add(
    first_name: fields[0],
    last_name: fields[1],
    email: fields[2]
  )
}
Run Code Online (Sandbox Code Playgroud)

编辑: 凯莉罗宾逊刚刚写了一篇很好的博客文章,关于在Groovy中使用CSV文件的不同可能性.

编辑#2: 由于Leonard Axelsson 最近发布了他的GroovyCVS库1.0版,我认为我绝对应该将它添加到选项列表中.

  • 我在OpenCSV周围编写了一个groovified包装器,称为GroovyCSV,使得在Groovy中使用csv变得更容易和惯用.它可以在http://xlson.com/groovycsv/上找到 (2认同)

Nic*_*oul 9

使用xlson的GroovyCSV:

@Grab('com.xlson.groovycsv:groovycsv:1.1')
import static com.xlson.groovycsv.CsvParser.parseCsv

for(line in parseCsv(new FileReader('countries.csv'), separator: ';')) {
    println "Country=$line.COUNTRY, Capital=$line.CAPITAL"
}
Run Code Online (Sandbox Code Playgroud)

字段名称取自CSV文件的标题.
如果CSV文件没有标题,则可以以编程方式指定字段名称.