【发布时间】:2022-01-18 23:46:42
【问题描述】:
我正在使用 nodejs 应用程序中的 exceljs 包创建一个 excel 工作表。我有一组像这样生成的标头。
const monthsArray = arrDays.map((str) => (
{ header: str, key: str, width: 10 } // Example { header: "12-15-2021", key: "12-15-2021", width: 10}
));
let headers = [
{ header: "Name", key: "Name", width: 10 },
{ header: "Phone", key: "Phone", width: 13 },
{ header: "CNIC", key: "CNIC", width: 13 },
{ header: "City", key: "City", width: 10 },
...monthsArray
];
现在我正在运行一个聚合,它将返回我的用户记录,同时我将在其中获得一个嵌套对象,该对象将包含特定日期的出勤记录,例如 createdAt: "2021-12-15T19:56:37.984Z" 和 present: true。现在标题我可以在第一行正确打印出每列顶部的日期,在此之前打印出姓名、电话、城市等数据。但是我需要知道如何在正确的情况下显示正确的出勤记录柱子?这样,对于特定用户,true 必须写在 12-15-2021 列下。
这是我如何生成 excel 文件
generateAndUploadExcel: async function (worksheetName, headers, rows) {
var workbook = new Excel.Workbook();
var sheet = workbook.addWorksheet(worksheetName);
sheet.columns = headers;
sheet.addRows(rows);
try {
var bufferFile = await workbook.xlsx.writeBuffer();
const fileExt = "xlsx";
const aws = new FileUploadService(
awsConfig.accessKeyId,
awsConfig.secretAccessKey,
awsConfig.bucketName
);
const upload = await aws.uploadBuffer(
"download-center",
bufferFile,
fileExt,
worksheetName
);
return upload;
} catch (err) {
throw new Error(err);
}
}
【问题讨论】:
-
大家对此有什么想法吗?
-
你能创建一个这个问题的沙箱吗?
-
@Spankied 涉及的依赖项太多。您可以查看相关文件的这张图片来了解一下。 drive.google.com/file/d/1McfIO-yaGIQct_bnOxilneOrWzRlGFYa/…
-
我确信这看起来是一个很容易从技术上解决的问题,但我对这个问题本身感到很困惑。也许您可以改写它并获得更多有用的反馈。因为老实说,我不明白这个问题。
标签: javascript node.js exceljs