node利用 fs 模块生成 csv

node 的 fs 模块是非常常用的模块,用来操作文件,文件夹等非常方便。

在前后端开发中,时常需要将数据导出为 csv,txt,甚至 pdf,网上很多案例都是使用了第三方库。

其实,fs 模块就足以帮我们完成简单的数据导出到文件操作。

下面,让我们用案例来看下,如何将数据导出为 csv 文件。

  1. 新建文件夹 node-csv
  2. 在文件夹内新建文件 demo.js
  3. 用编辑器打开,编辑 demo.js
// demo.js
const { promises: { readFile, writeFile, mkdir } } = require('fs');

(async () => {
  // 创建模拟数据
  let list = []
  for (let i = 0; i < 10; i += 1) {
    list.push({
      id: i,
      name: '小明',
      age: 18,
      address: '北京市海淀区农业科学院',
      phone: '13313366789',
    })
  }
  /*
   * 生成表头,\ufeff 是防止乱码
   * csv中以 `,` 换列,`\n`换行
   */ 
  let title = Object.keys(list[1])
  let csvContent = '\ufeff' + title.join(',') + '\n'
  
  // 添加表体
  list.forEach((item, index) => {
    let c = Object.values(item).join(',') + '\n'
    csvContent += c
  })
  // 生成文件夹存储生成的文件
  await mkdir('download')

  // 生成csv文件
  await writeFile('./download/data.csv', csvContent)

  // 生成JOSN
  await writeFile('./download/data.json', JSON.stringify(list))
  console.log('File generated successfully,open download to check')
})()

保存后在 cmd 或者 terminal 中运行如下命令

node demo

当你看到这样的提示

ExperimentalWarning: The fs.promises API is experimental
File generated successfully,open download to check

就说明成功了,然后打开 download 文件夹,查看生成的 csv 和 json 文件即可

在这里插入图片描述
在这里插入图片描述

如果想了解 fs 的 promise ,或者如何生成 txt,请点击这里

码字不易,送一个赞可好~~

猜你喜欢

转载自blog.csdn.net/zhai_865327/article/details/105704403