📅  最后修改于: 2023-12-03 14:52:27.615000             🧑  作者: Mango
在 Node.js 中,将 CSV 文件转换为 Excel 文件可以有两种方式:手动处理 CSV 文件并使用相关库生成 Excel 文件或者使用特定的库来实现 CSV 文件到 Excel 文件的转换。下面,将介绍两种常用方法。
为了完成这个过程,需要先安装下列 2 个库:
csv-parser
: 用于处理 CSV 文件,将其转换为 JSON 格式数据。exceljs
: 在 Node.js 中创建 Excel 文件的库。可使用以下代码安装:
npm install csv-parser exceljs
使用 csv-parser
库,可以轻松地将 CSV 文件转换为 JSON 格式数据。可使用以下代码将 CSV 文件转换为 JSON 格式:
const csv = require('csv-parser');
const fs = require('fs');
const results = [];
fs.createReadStream('data.csv')
.pipe(csv())
.on('data', (data) => results.push(data))
.on('end', () => {
console.log(results);
});
使用 exceljs
库,可以在 Node.js 中创建 Excel 文件。可使用以下代码将 JSON 格式数据转换为 Excel 文件:
const Excel = require('exceljs');
const workbook = new Excel.Workbook();
const worksheet = workbook.addWorksheet('My Sheet');
worksheet.columns = [
{ header: 'ID', key: 'id', width: 10 },
{ header: 'Name', key: 'name', width: 32 },
{ header: 'D.O.B.', key: 'dob', width: 15, }
];
results.forEach((result) => {
worksheet.addRow(result);
});
workbook.xlsx.writeFile('data.xlsx')
.then(() => {
console.log('Excel file is written to disk!');
});
const csv = require('csv-parser');
const fs = require('fs');
const Excel = require('exceljs');
const results = [];
fs.createReadStream('data.csv')
.pipe(csv())
.on('data', (data) => results.push(data))
.on('end', () => {
const workbook = new Excel.Workbook();
const worksheet = workbook.addWorksheet('My Sheet');
worksheet.columns = [
{ header: 'ID', key: 'id', width: 10 },
{ header: 'Name', key: 'name', width: 32 },
{ header: 'D.O.B.', key: 'dob', width: 15, }
];
results.forEach((result) => {
worksheet.addRow(result);
});
workbook.xlsx.writeFile('data.xlsx')
.then(() => {
console.log('Excel file is written to disk!');
});
});
除了手动处理 CSV 文件并使用相关库生成 Excel 文件,还可以使用特定的库来实现 CSV 文件到 Excel 文件的转换。以下是其中两个常用的库。
csvtojson
库csvtojson
库是一个广受欢迎的库,它可以将 CSV 文件转换为 JSON 格式数据。同时,该库有助于将 JSON 格式数据导出到 Excel 文件。可使用以下命令进行安装:
npm install csvtojson
以下是代码示例:
const csv = require('csvtojson');
const ExcelJS = require('exceljs');
const csvFilePath = 'data.csv';
const json = [];
// 将 CSV 文件转换为 JSON 格式数据
csv().
fromFile(csvFilePath).
subscribe((jsonObj) => {
json.push(jsonObj);
}, (err) => {
console.log(err);
}, () => {
// 将 JSON 格式数据导入到 Excel 文件
const workbook = new ExcelJS.Workbook();
const worksheet = workbook.addWorksheet('Sheet 1');
worksheet.columns = [
{ header: 'ID', key: 'id', width: 10 },
{ header: 'Name', key: 'name', width: 32 },
{ header: 'D.O.B.', key: 'dob', width: 15 }
];
json.forEach((record) => {
worksheet.addRow(record);
});
workbook.xlsx.writeFile('data.xlsx')
.then(() => {
console.log('Excel file is written to disk!');
});
});
csv-xlsx
库csv-xlsx
库是一个轻松的方式,支持将 CSV 文件转换为 XLSX 文件。可以使用以下命令进行安装:
npm install csv-xlsx
以下是代码示例:
const csv = require('csv');
const csvxlsx = require('csv-xlsx');
const csvFilePath = 'data.csv';
const xlsxFilePath = 'data.xlsx';
// 将 CSV 文件转换为 XLSX 文件
csv().fromFile(csvFilePath).then(function (jsonArrayObj) {
const xlsxData = csvxlsx.csv2xlsx(
[{ data: jsonArrayObj, name: 'Sheet1' }],
{ sheet: { name: 'Sheet1' } }
);
require('fs').writeFileSync(xlsxFilePath, xlsxData, 'binary');
console.log('XLSX file is written to disk!');
});
通过这篇文章,介绍了在 Node.js 中将 CSV 转换为 Excel 的两种方法。可以选择手动处理 CSV 文件并使用相关库生成 Excel 文件,也可以使用特定的库进行转换。手动处理 CSV 文件是更常用的方法之一,但如果需要处理大量的数据或快速处理一些数据,使用 csv-xlsx
库会更方便易用。