因此我使用ExcelJS來創建Excel文件。目前我正在將文件保存到磁盤。我添加到文件的數據來自API調用。將ExcelJS的輸出上傳到NodeJS中的Azure Blob存儲中
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允許指定stream
而不是filename
來承諾。所以我決定使用Memory Streams JS,所以現在選項看起來像這樣。
let stream = new streams.WritableStream()
let options = {
stream: stream,
useStyles: true,
useSharedStrings: true
}
從閱讀天青文件,這兩個最合適的方法似乎是createBlockBlobFromStream()
和createWriteStreamToBlockBlob()
,他們似乎都希望有一個只讀流(糾正我,如果我錯了)。這是我卡住的地方,因爲我有一個使用ExcelJS的可寫入流,但是我需要一個用於Azure Blob存儲的可讀流。很明顯,我仍然可以將文件寫入磁盤;從文件創建一個可讀流;然後在上傳到Azure Blob存儲後最後刪除該文件,但這是很大的開銷。我是以非常迂迴的方式去談論這個嗎?