Create a CSV file

系统 2339 0

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,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:

  1. qualify your values with a double quote, and
  2. 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"
      

Create a CSV file


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论