我在项目中使用exceljs和Typescript。但是writeBuffer()
函数返回ExcelJS.Buffer
而不是Buffer
类型。并且由于ExcelJS.Buffer
继承自ArrayBuffer
,因此将ArrayBuffer
转换为Buffer
将破坏excel文件。有谁能解决这个问题?
预先感谢!
declare interface Buffer extends ArrayBuffer { }
let resultExcel: Buffer; // buffer
const tmpResultExcel: ExcelJS.Buffer = await tmpWorkBook.xlsx.writeBuffer(); // arraybuffer
resultExcel = Buffer.from(tmpResultExcel); // doesn't work well
答案 0 :(得分:0)
实际上,我认为tmpWorkBook.xlsx.writeBuffer();
的问题来自错误的返回类型定义。
如果尝试使用Buffer.isBuffer(tmpResultExcel)
,则会看到tmpResultExcel
是实际的JavaScript缓冲区。
您可以通过以下方式解决类型问题
const tmpResultExcel: any = await tmpWorkBook.xlsx.writeBuffer();
,您可以将tmpResultExcel用作代码中的缓冲区。