だから私は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 Storage にアップロードするように変更したいと思います。ExcelJS では、コミット先の astream
ではなくa を指定できますfilename
。そこで、Memory Streams JSを使用することにしたので、オプションは次のようになります。
let stream = new streams.WritableStream()
let options = {
stream: stream,
useStyles: true,
useSharedStrings: true
}
Azure のドキュメントを読むと、最も適切な 2 つの方法は と のようcreateBlockBlobFromStream()
でcreateWriteStreamToBlockBlob()
あり、どちらも読み取り可能なストリームが必要なようです (間違っている場合は修正してください)。これは、ExcelJS を使用して書き込み可能なストリームを持っているが、Azure Blob Storage 用の読み取り可能なストリームが必要であるため、私が立ち往生している場所です。明らかに、ファイルをディスクに書き込むことができます。ファイルから読み取り可能なストリームを作成します。Azure Blob Storage にアップロードした後、最後にファイルを削除しますが、これは多くのオーバーヘッドです。私はこれについて本当に回りくどい方法で行っていますか?