我如何遍历该行并在节点 js 中打印 excel 中的 objects 值?
How can i iterate over the row and print the objects value in excel in node js?
我有一个 object 数组,如下所示:
[
{ "FirstName": "John",
"LastName": "Parker",
"Age": "23",
"Cat": "23g",
"SOP": "Active"
},
{ "FirstName": "Rose",
"LastName": "Jackson",
"Age": "44",
"Cat": "44g",
"SOP": "InActive"
}
]
我正在使用 excel4node 创建 object 的数据并将其写入 excel
async generateExclReport(req, res) {
try {
var wb = new xl.Workbook();
// Add Worksheets to the workbook
var ws = wb.addWorksheet('Report');
ws.cell(1, 1).string('FirstName');
ws.cell(1, 2).string('LastName');
ws.cell(1, 3).string('Age');
ws.cell(1, 4).string('Cat');
ws.cell(1, 5).string('SOP');
var fileName = "Report" + Date.now().toString() + '.xlsx';
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.setHeader("Content-Disposition", "attachment; filename=" + fileName);
wb.write(fileName, res);
} catch (err) {
this.handleError(res, err);
}
}
我可以在 excel 中打印 headers 并下载,但是如何在 excel 中打印 object 的数据?
非常感谢任何帮助。
您可以遍历数据并确保跳过您创建的 header 行。
Excel 行从行 1
开始并且您的数组是索引 0
因此您需要确保在写入时始终从 1
开始 Excel 或者在你的情况下从第 2
行开始,因为你创建了 header 行(这就是为什么你会看到 ws.cell(i + 2, 1).string(data[i].FirstName);
)。
这是一个示例快递应用程序:
依赖关系:
npm install express
npm install excel4node
代码:
const express = require('express');
const xl = require('excel4node');
const app = express();
app.get('/', (req, res) => {
try {
const data = [
{ "FirstName": "John",
"LastName": "Parker",
"Age": "23",
"Cat": "23g",
"SOP": "Active"
},
{ "FirstName": "Rose",
"LastName": "Jackson",
"Age": "44",
"Cat": "44g",
"SOP": "InActive"
}
];
const wb = new xl.Workbook();
// Add Worksheets to the workbook
const ws = wb.addWorksheet('Report');
ws.cell(1, 1).string('FirstName');
ws.cell(1, 2).string('LastName');
ws.cell(1, 3).string('Age');
ws.cell(1, 4).string('Cat');
ws.cell(1, 5).string('SOP');
for (let i = 0; i < data.length; i += 1) {
ws.cell(i + 2, 1).string(data[i].FirstName);
ws.cell(i + 2, 2).string(data[i].LastName);
ws.cell(i + 2, 3).string(data[i].Age);
ws.cell(i + 2, 4).string(data[i].Cat);
ws.cell(i + 2, 5).string(data[i].SOP);
}
const fileName = `Report_${Date.now().toString()}.xlsx`;
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.setHeader("Content-Disposition", "attachment; filename=" + fileName);
wb.write(fileName, res);
} catch (err) {
console.error(res, err);
}
});
app.listen(3000, () => console.log('Example app listening on port 3000!'))
我有一个 object 数组,如下所示:
[
{ "FirstName": "John",
"LastName": "Parker",
"Age": "23",
"Cat": "23g",
"SOP": "Active"
},
{ "FirstName": "Rose",
"LastName": "Jackson",
"Age": "44",
"Cat": "44g",
"SOP": "InActive"
}
]
我正在使用 excel4node 创建 object 的数据并将其写入 excel
async generateExclReport(req, res) {
try {
var wb = new xl.Workbook();
// Add Worksheets to the workbook
var ws = wb.addWorksheet('Report');
ws.cell(1, 1).string('FirstName');
ws.cell(1, 2).string('LastName');
ws.cell(1, 3).string('Age');
ws.cell(1, 4).string('Cat');
ws.cell(1, 5).string('SOP');
var fileName = "Report" + Date.now().toString() + '.xlsx';
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.setHeader("Content-Disposition", "attachment; filename=" + fileName);
wb.write(fileName, res);
} catch (err) {
this.handleError(res, err);
}
}
我可以在 excel 中打印 headers 并下载,但是如何在 excel 中打印 object 的数据?
非常感谢任何帮助。
您可以遍历数据并确保跳过您创建的 header 行。
Excel 行从行 1
开始并且您的数组是索引 0
因此您需要确保在写入时始终从 1
开始 Excel 或者在你的情况下从第 2
行开始,因为你创建了 header 行(这就是为什么你会看到 ws.cell(i + 2, 1).string(data[i].FirstName);
)。
这是一个示例快递应用程序:
依赖关系:
npm install express
npm install excel4node
代码:
const express = require('express');
const xl = require('excel4node');
const app = express();
app.get('/', (req, res) => {
try {
const data = [
{ "FirstName": "John",
"LastName": "Parker",
"Age": "23",
"Cat": "23g",
"SOP": "Active"
},
{ "FirstName": "Rose",
"LastName": "Jackson",
"Age": "44",
"Cat": "44g",
"SOP": "InActive"
}
];
const wb = new xl.Workbook();
// Add Worksheets to the workbook
const ws = wb.addWorksheet('Report');
ws.cell(1, 1).string('FirstName');
ws.cell(1, 2).string('LastName');
ws.cell(1, 3).string('Age');
ws.cell(1, 4).string('Cat');
ws.cell(1, 5).string('SOP');
for (let i = 0; i < data.length; i += 1) {
ws.cell(i + 2, 1).string(data[i].FirstName);
ws.cell(i + 2, 2).string(data[i].LastName);
ws.cell(i + 2, 3).string(data[i].Age);
ws.cell(i + 2, 4).string(data[i].Cat);
ws.cell(i + 2, 5).string(data[i].SOP);
}
const fileName = `Report_${Date.now().toString()}.xlsx`;
res.setHeader('Content-Type', 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet');
res.setHeader("Content-Disposition", "attachment; filename=" + fileName);
wb.write(fileName, res);
} catch (err) {
console.error(res, err);
}
});
app.listen(3000, () => console.log('Example app listening on port 3000!'))