Create a CSV file | Groovy Examples
Create a CSV file
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,earthHowever, 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"" planet"