我正在使用ExcelJS模块生成Excel文件,但是难以实现所需的流程。
我想拥有的是:
现在发生的事情是,Node并未在前端提示用户,而是在与服务器文件相同的文件夹中创建Excel文件。创建文件的代码是“ workbook.xlsx.writeFile('Project.xlsx')”
我当前的代码如下。
相关的服务器端代码块:
function generateSpreadsheet(req, res) {
const workbook = new Excel.Workbook();
workbook.creator = 'Project';
workbook.created = new Date();
const worksheet = workbook.addWorksheet("Definitions");
worksheet.columns = [
{ header: 'Word', key: 'word', width: 36 },
{ header: 'Definition', key: 'def', width: 120 }
];
worksheet.addRows(storedResults);
workbook.xlsx.writeFile('Project.xlsx');
}
app.get('/downloads/results', (req, res) => {
try {
generateSpreadsheet();
} catch(err) {
console.log(err);
}
})
相关的前端代码:
renderDownloadButton() {
if (this.state.queriesList.length > 0) {
return (
<button onClick={this.download}>
Export Results
</button>
)
}
}
download() {
fetch('/downloads/results');
}
过去几天的大部分时间里我一直在研究,但仍未找到令人满意的解决方案。
我试着让generateSpreadsheet函数返回一个流,以为我可以将其通过管道传递到app.get中的res,但是我有点被绊倒了。
感谢您提供的任何见解/指导!