如何使用 NodeJS 更改 excel 文件标题列的位置

问题描述 投票:0回答:1

我有一个动态的 JSON 数据,我正在使用

jsno2xls
库 nut 在这里创建一个 Excel 文件,生成的 excel 文件头就像
Year
DOB
Name
Age
,我想要 excel 数据这种格式
Name
Age
DOB
Year
。有什么办法可以执行此操作并以所需格式获取数据。

下面是我正在做的创建 Excel 工作表。

const parsedData = [{},....,{}];
const xls = json2xls(parsedData);
fs.writeFileSync('datasheet.xlsx', xls, 'binary');    

在上面的代码中

parsedData
来自数据库,它可以在JSON对象中包含任意数量的字段。

但是在生成的 Excel 文件中,我总是首先想要

Name
Age
列。

node.js xlsx exceljs json2xls
1个回答
0
投票

尝试提供

options
对象,在其中将
fields
属性设置为要导出的字段数组,这也将按顺序导出它们:

const xls = json2xls(parsedData, {
    fields: ['Name', 'Age', 'DOB', 'Year']
});

如果键不对应(不区分大小写),则尝试转换数据,您将在其中创建一个新对象,其键对应于您在 xlsx 文件中想要的键:

const parsedData = [{
    dob: "dob",
    name: 'bar',
    age: 'moo',
    year: new Date()
}];    

const transformedJson = parsedData.map(obj => {

    const newObject = {};

    newObject['D O B'] = obj['dob'];
    newObject['Name'] = obj['name'];
    newObject['Age'] = obj['age'];
    newObject['Year'] = obj['year'];

    return newObject;

});   
 
var xls = json2xls(transformedJson, {
    fields: ['Name', 'Age', 'D O B', 'Year']
});

fs.writeFileSync('data.xlsx', xls, 'binary');
© www.soinside.com 2019 - 2024. All rights reserved.