我有一个动态的 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
列。
尝试提供
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');