Create a CSV file
June 21st, 2010
5 Comments
5 Comments
For this example, let’s assume we have an array of maps as our data.
def planets = [ [id:'1',color:'red',planet:'mars',description:'Mars, the "red" planet'], [id:'2',color:'green',planet:'neptune',description:'Neptune, the "green" planet'], [id:'3',color:'blue',planet:'earth',description:'Earth, the "blue" planet'], ]
Next, we can create our CSV file as follows:
def out = new File('planets.csv') planets.each { def row = [it.id, it.color, it.planet] out.append row.join(',') out.append '\n' }
Which creates a file with the following content:
1,red,mars 2,green,neptune 3,blue,earth
However, this does not contain our description field. If you need to also handle double quotes and commas in your data then you can:
- qualify your values with a double quote, and
- replace double quotes in your data with an escaped double quote.
In this case our code may look like:
def out = new File('planets.csv') planets.each { def row = [it.id, it.color, it.planet, it.description] .collect { '"' + it.replace('"','""') + '"' } out.append row.join(',') out.append '\n' }
Which creates a file with the following content:
"1","red","mars","Mars, the ""red"" planet" "2","green","neptune","Neptune, the ""blue"" planet" "3","blue","earth","Earth, the ""blue"" plan
声明:本站所有文章,如无特殊说明或标注,均为本站原创发布。任何个人或组织,在未征得本站同意时,禁止复制、盗用、采集、发布本站内容到任何网站、书籍等各类媒体平台。如若本站内容侵犯了原著者的合法权益,可联系我们进行处理。
评论(0)