그래서 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는 커밋 할 filename
대신 stream
을 지정할 수 있습니다. 그래서 Memory Streams JS을 사용하기로 결정했습니다. 이제 옵션이 이렇게 보입니다. 하늘빛 설명서를 읽기에서
let stream = new streams.WritableStream()
let options = {
stream: stream,
useStyles: true,
useSharedStrings: true
}
는 두 개의 가장 적절한 방법은 createBlockBlobFromStream()
및 createWriteStreamToBlockBlob()
것 같다 그들은 모두 읽을 수있는 스트림 (내가 틀렸다면 정정 해줘) 할 것으로 보인다. 이것은 내가 ExcelJS를 사용하여 쓰기 가능한 스트림을 가지고 있기 때문에 멈추었지만 Azure Blob 저장소에 읽기 가능한 스트림이 필요합니다. 분명히 나는 여전히 파일을 디스크에 쓸 수있다. 파일로부터 Readable Stream을 생성한다; Azure Blob Storage에 업로드 한 후에 파일을 삭제하면되지만 오버 헤드가 많습니다. 나는 이것에 대해 정말로 로터리 방식으로 갈 것인가? A는 섹션 Streaming XLSX Writer에 설명이