通过JavaScript将数据导出成多个工作表的CSV文件

5

可以生成多数据的CSV吗? 我有两个分页,其中包含不同类型的问题,如一般和高级。填写表单后,我希望将数据导出到一个包含2个工作表的CSV文件中。 例如,mydata.csv将是文件名,包括一般信息和高级信息的两个工作表。


1
不太确定我是否理解正确:你知道CSV文件是一个纯文本文件,不能有工作表(即使它可以被电子表格应用程序打开)吗? - Jean-Baptiste Rudant
你可以查看这个 fiddle:http://jsfiddle.net/terryyounghk/kpegu/ - subi_speedrunner
可能是使用jQuery和HTML导出CSV的重复问题。 - Kunal Kakkad
我并不是要求将数据导出到单个文件中的单个工作表。我是在要求在单个CSV文件中有多个工作表。@KunalKakkad - panwar
@Jean-BaptisteRudant:谢谢...这意味着我不能在单个CSV中拥有多个工作表。 - panwar
1个回答

1

您可以使用以下代码来完成


function concatCSVAndOutput(csvFilePaths, outputFilePath) {
const promises = csvFilePaths.map((path) => {
    return new Promise((resolve) => {
    const dataArray = [];
    return csv
        .parseFile(path, {headers: true})
        .on('data', function(data) {
            dataArray.push(data);
        })
        .on('end', function() {
            resolve(dataArray);
        });
    });
});

return Promise.all(promises)
    .then((results) => {

        const csvStream = csv.format({headers: true});
        const writableStream = fs.createWriteStream(outputFilePath);

        writableStream.on('finish', function() {
        console.log('DONE!');
        });

        csvStream.pipe(writableStream);
        results.forEach((result) => {
        result.forEach((data) => {
            csvStream.write(data);
        });
        });
        csvStream.end();

    });
    }

concatCSVAndOutput(['1.csv', '2.csv'], 'outputfile.csv');

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接