ExcelJS的writeBuffer不返回Buffer类型

时间:2019-11-22 06:22:57

标签: node.js buffer arraybuffer exceljs

我在项目中使用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

1 个答案:

答案 0 :(得分:0)

实际上,我认为tmpWorkBook.xlsx.writeBuffer();的问题来自错误的返回类型定义。

如果尝试使用Buffer.isBuffer(tmpResultExcel),则会看到tmpResultExcel是实际的JavaScript缓冲区。

您可以通过以下方式解决类型问题

const tmpResultExcel: any = await tmpWorkBook.xlsx.writeBuffer();

,您可以将tmpResultExcel用作代码中的缓冲区。