You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Groovy实现CSV列值添加及JSON导出至CSV的方法咨询

解决方法:给CSV添加新列

你的现有代码基于二维列表生成CSV,要添加新列只需给表头和每行数据补充对应值即可,下面分两种场景说明:

1. 基于现有二维列表修改

如果数据已经是二维列表格式,直接扩展表头和每行数据:

def data = [
        // 表头新增目标列名(比如country)
        ['place', 'firstname', 'lastname', 'team', 'country'],
        // 每行补充对应列的值
        ['1', 'Lorena', 'Wiebes', 'Team DSM', 'Netherlands'],
        ['2', 'Marianne', 'Vos', 'Team Jumbo Visma', 'Netherlands'],
        ['3', 'Lotte', 'Kopecky', 'Team SD Worx', 'Belgium']
]
def file = new File("C:/Temp/data.csv")
file.text = data*.join(',').join(System.lineSeparator())

2. 从JSON转换时添加新列

如果你的原始数据是JSON(符合你"JSON导出至CSV"的需求),先解析JSON为对象列表,再补充新列后生成CSV:

// 模拟JSON解析后的对象列表
def jsonData = [
        [place: '1', firstname: 'Lorena', lastname: 'Wiebes', team: 'Team DSM'],
        [place: '2', firstname: 'Marianne', lastname: 'Vos', team: 'Team Jumbo Visma'],
        [place: '3', firstname: 'Lotte', lastname: 'Kopecky', team: 'Team SD Worx']
]

// 定义包含新列的表头
def headers = ['place', 'firstname', 'lastname', 'team', 'country']
// 处理数据:补充新列值,按表头顺序提取字段
def data = [headers] + jsonData.collect { item ->
    // 可根据业务逻辑动态赋值新列
    item.country = item.firstname == 'Lotte' ? 'Belgium' : 'Netherlands'
    headers.collect { header -> item[header] }
}

// 生成CSV文件
def file = new File("C:/Temp/data.csv")
file.text = data*.join(',').join(System.lineSeparator())

进阶:用官方工具生成标准CSV

如果CSV内容包含逗号、引号等特殊字符,手动拼接会出错,推荐用Groovy自带的CsvBuilder生成标准格式:

@Grab('org.codehaus.groovy:groovy-all:3.0.17')
import groovy.csv.CsvBuilder

def data = [
        [place: '1', firstname: 'Lorena', lastname: 'Wiebes', team: 'Team DSM', country: 'Netherlands'],
        [place: '2', firstname: 'Marianne', lastname: 'Vos', team: 'Team Jumbo Visma', country: 'Netherlands'],
        [place: '3', firstname: 'Lotte', lastname: 'Kopecky', team: 'Team SD Worx', country: 'Belgium']
]

def csv = new CsvBuilder().build {
    row(data[0].keySet()) // 写入表头
    data.each { row(it.values()) } // 写入每行数据
}

new File("C:/Temp/data.csv").text = csv
Groovy优质学习资料推荐
  • Groovy官方文档:覆盖基础语法、核心特性,附带大量可运行示例,从入门到进阶全覆盖。
  • 《Groovy in Action》:经典实战书籍,通过实际案例讲解Groovy的各类用法,适合深入掌握开发技巧。
  • Groovy官方示例集:官方维护的代码库,包含集合操作、IO处理、JSON/XML解析等常见场景的实战代码。
  • 菜鸟教程Groovy板块:入门友好的教程,用简洁示例讲解基础语法和常用API,适合快速上手。

内容的提问来源于stack exchange,提问作者Mikhail Zhuikov

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.16 18:31:06