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

Node.js自动化中如何将对象数组导出为CSV文件?

将对象数组转换并保存为CSV文件到当前目录

下面提供两种主流编程语言的实用实现方案,直接适配你的需求:

Python 实现

用Python内置的csv模块即可完成,无需额外依赖:

import csv

# 替换成你的对象数组
data = [
    {"name": "张三", "age": 25, "city": "北京"},
    {"name": "李四", "age": 30, "city": "上海"},
    {"name": "王五", "age": 28, "city": "广州"}
]

# 提取表头(取第一个对象的键)
headers = data[0].keys()

# 写入当前目录的output.csv文件
with open("output.csv", "w", newline="", encoding="utf-8") as csv_file:
    writer = csv.DictWriter(csv_file, fieldnames=headers)
    writer.writeheader()  # 写入表头行
    writer.writerows(data)  # 批量写入所有数据
  • 关键点:newline=""避免Windows系统下生成的CSV出现空行;encoding="utf-8"确保中文等非ASCII字符正常显示。

Node.js 实现

方案1:使用成熟的CSV处理库(推荐)

先安装依赖包:

npm install csv-stringify

然后编写代码:

const fs = require('fs');
const { stringify } = require('csv-stringify');

// 替换成你的对象数组
const data = [
    { name: "张三", age: 25, city: "北京" },
    { name: "李四", age: 30, city: "上海" },
    { name: "王五", age: 28, city: "广州" }
];

const headers = Object.keys(data[0]);

// 转换并写入文件
stringify(data, { header: true, columns: headers }, (err, csvOutput) => {
    if (err) throw err;
    fs.writeFileSync('./output.csv', csvOutput, 'utf-8');
});

方案2:手动拼接CSV(无需额外依赖)

如果不想安装第三方包,可以手动处理字段拼接,注意给包含逗号的字段加双引号:

const fs = require('fs');

const data = [
    { name: "张三", age: 25, city: "北京" },
    { name: "李四", age: 30, city: "上海" },
    { name: "王五", age: 28, city: "广州" }
];

const headers = Object.keys(data[0]);
// 构建CSV内容
let csvContent = headers.join(',') + '\n';
data.forEach(item => {
    // 给每个字段加双引号,避免字段含逗号时出错
    const rowValues = headers.map(key => `"${item[key]}"`);
    csvContent += rowValues.join(',') + '\n';
});

// 写入当前目录的文件
fs.writeFileSync('./output.csv', csvContent, 'utf-8');

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.18 05:52:45