【发布时间】:2020-04-16 04:24:16
【问题描述】:
我需要有关如何生成 Excel 的简单帮助,然后在无服务器脱机中单击 API url 将其导出。它应该显示该文件的下载选项。 当我使用 express frework 在普通节点中创建文件时,它正在生成正确的 Excel 文件,我可以轻松下载该文件。 但是,当我在无服务器脱机中使用相同的代码时,我会在下载时收到一个损坏的 .xlsx 文件。 我是离线无服务器的新手,只知道离线创建和使用 lambda 函数的基础知识。 请帮我完成这项任务。
**app.js:**
var Excel = require('exceljs');
var app = express();
var nodeExcel = require('excel-export');
const serverless = require('serverless-http')
app.get("/click", async (req, res) => {
var workbook = new Excel.Workbook();
var worksheet = workbook.addWorksheet('My Sheet');
worksheet.columns = [
{ header: 'Id', key: 'id', width: 10 },
{ header: 'Name', key: 'name', width: 32 },
{ header: 'D.O.B.', key: 'DOB', width: 10 }
];
worksheet.addRow({ id: 1, name: 'John Doe', dob: new Date(1970, 1, 1) });
worksheet.addRow({ id: 2, name: 'Jane Doe', dob: new Date(1965, 1, 7) });
await workbook.xlsx.writeFile('./temp.xlsx')
var fileName = 'temp.xlsx';
res.setHeader('Content-Type', 'application/octet-stream');
res.setHeader("Content-Disposition", "attachment; filename=" + fileName);
await workbook.xlsx.write(res);
})
module.exports.handler = serverless(app);
**Serverless.yml:**
plugins:
- serverless-offline
provider:
name: aws
runtime: nodejs10.x
custom:
serverless-offline:
host: '0.0.0.0'
functions:
app:
handler: route/app.handler
events:
- http:
path: /click
method: get
【问题讨论】:
-
请提供一些你试过的代码,处理函数和处理函数
-
我为此使用 node-excel-export 模块。我正在创建演示 .xlsx 文件,如本模块中所述,最终结果是损坏的 .xlsx 文件。目前我无法发送代码。
标签: node.js excel amazon-web-services serverless serverless-offline