سلام استاد خسته نباشید
ببخشید اگه سوالم مرتبط با جلسه نیست
بنده یک فایل excel با پکیج exceljs ساختم و وقتی که به route مورد نظر بریم فایل دانلود میشه
اینطور عمل کردم آیا این روش درسته چه پیشنهادی برای بهتر شدن ساختار دارید؟
فایلی که فایل excel را میسازد
const Excel = require("exceljs");
exports.create = async (sheetName, data) => {
const workbook = new Excel.Workbook();
const sheet = workbook.addWorksheet(sheetName);
const filterData = data.map((word) => {
delete word.__v;
return word;
});
sheet.columns = Object.keys(filterData[0]).map((col) => {
return { header: col, key: col, width: 20};
});
sheet.addRows(filterData.map((row) => {
const rowArray = Object.values(row).map((value) => value);
return rowArray;
}));
const xlsxFile = await workbook.xlsx.writeBuffer();
return xlsxFile;
};
قسمت دریافت اطلاعات از دیتابیس و تبدیل به excel :
exports.excel = async (req, res) => {
const shops = await shopsModel.aggregate([{ $sort: { _id: 1 } }]);
const excelFile = await excelService.create("new", shops);
res.set("Content-disposition", "attachment; filename=shops.xlsx");
res.set("Content-Type", "text/plain");
res.send(excelFile);
};
اینجا به درستی کار میکنه ولی اگه به جای aggregate از find استفاده کنم به مشکل میخوره