Node.js-如何在csv中提取特定列

时间:2018-09-18 03:01:10

标签: javascript node.js

我需要提取CSV文件中的特定列,然后将输出文件创建为index.conf。在这种情况下,我需要提取Service ManagerSystem Owner下的列,并将它们作为输出文件作为index.conf。有人可以帮忙吗?

我的CSV图片: csv

Client|*Description|Environment|LifeCycle|Service Manager|System Owner|
xxxxxx| xxxxxx     |Production |Active   |Mark Wright    |David harvey| 
xxxxxx| xxxxxx     |Production |Active   |John Stone     |  

我不是开发人员,只是接管了一部分工作,包括维护网站。

2 个答案:

答案 0 :(得分:1)

您可以为此使用 csv npm软件包。它有助于生成,解析,转换和字符串化CSV数据。这是一种广泛使用的npm软件包。

答案 1 :(得分:1)

  1. 使用csvtojson库将csv转换为JSON格式。

    npm我-保存csvtojson

  2. 使用通过以上步骤解析的JSON,您可以根据需要创建.conf文件。

有关实现,请参考以下代码段。

  

在以下程序中,我仅考虑csv的第一条记录。您可以根据需要编写自己的逻辑。

index.js

PATH

input.csv

// import csvtojson package
const csvtojson = require('csvtojson');
// import fs pacakge to write .conf file
const fs = require('fs')

/**
 * read csv file and save .conf file
 * @param {*} filePath path to the csv file
 */
async function readCSVAndSaveConf(filePath){
    // read csv file on the given path and get csv as json
    const parsedCSV = await readCSV(filePath);
    // save conf as per first record of csv. ** you can write your own logic
    saveConf(parsedCSV[0])
}

/**
 * read csv on given path
 * @param {*} filePath path to csv file
 */
function readCSV(filePath){
return csvtojson({ delimiter: '|' }).fromFile(filePath); 
}

/**
 * save conf file as per json
 * @param {*} jsonConfig 
 */
function saveConf(jsonConfig){
    // create .conf content
    const conf=`# This is conf file
    ServiceManager=${jsonConfig['Service Manager']}
    ServiceOwner=${jsonConfig['System Owner']}`
    // save .conf to the file
    fs.writeFileSync(__dirname+'/index.conf', conf);
}

// path to csv
const filePath="./input.csv"

// read csv and save conf
readCSVAndSaveConf(filePath)
.then(()=>console.log("completed"))
.catch(err=>console.error(err))

index.conf

Client|*Description|Environment|LifeCycle|Service Manager|System Owner|
xxxxxx| xxxxxx     |Production |Active   |Mark Wright    |David harvey| 
xxxxxx| xxxxxx     |Production |Active   |John Stone     |