所以我正在使用ExcelJS创建一个 Excel 文件。目前我正在将文件保存到磁盘。我添加到文件中的数据来自 API 调用。
let options = {
filename: 'pathtofile',
useStyles: true,
useSharedStrings: true
}
let workbook = new Excel.stream.xlsx.WorkbookWriter(options)
let sheet = workbook.addWorksheet('myWorksheet')
// add some data to the file
sheet.commit()
workbook.commit()
我现在想对其进行更改,以便将其上传到 Azure Blob 存储。ExcelJS 允许指定 astream
而不是filename
要提交的 a。所以我决定使用Memory Streams JS,所以现在选项看起来像这样。
let stream = new streams.WritableStream()
let options = {
stream: stream,
useStyles: true,
useSharedStrings: true
}
通过阅读 Azure 文档,两种最合适的方法似乎是createBlockBlobFromStream()
并且createWriteStreamToBlockBlob()
它们似乎都想要一个可读流(如果我错了,请纠正我)。这是我卡住的地方,因为我有一个使用 ExcelJS 的可写流,但我需要一个用于 Azure Blob 存储的可读流。显然我仍然可以将文件写入磁盘;从文件创建一个可读流;然后在上传到 Azure Blob 存储后最终删除文件,但这是很多开销。我会以一种非常迂回的方式来解决这个问题吗?