从谷歌云存储下载 excel 文件返回一个缓冲区,我怎样才能返回实际的 excel 文件,以便我可以在我的处理程序中写入它?
Posted
技术标签:
【中文标题】从谷歌云存储下载 excel 文件返回一个缓冲区,我怎样才能返回实际的 excel 文件,以便我可以在我的处理程序中写入它?【英文标题】:Downloading excel file from Google Cloud storage returns a buffer, how can I return the actual excel file so I can write to it in my handler? 【发布时间】:2022-01-04 11:20:32 【问题描述】:我正在尝试使用 Firebase Admin SDK 使用以下代码从我的存储桶中检索一个 excel 文件:
export const getTemplate = async (fileName: string) =>
const filePath = admin
.storage()
.bucket()
.file('sheets/template.xlsx')
const [file] = await filePath.download()
return file
然后我将从这个函数返回的内容传递给这个函数:
export const writeToTemplate = (
objects: any[],
sheetNames: string[],
file
) =>
objects.forEach((dataObject, index) =>
const sheetName = sheetNames[index]
const worksheet = templateFile.Sheets[sheetName]
utils.sheet_add_json(worksheet, dataObject)
)
return file
但是,这会引发无法读取我的文件的错误。当我控制台记录文件时,它显示一个缓冲区
<Buffer 50 4b 03 04 14 00 06 00 08 00.........>
我如何才能真正写入文件?干杯:)
【问题讨论】:
【参考方案1】:解决方案是使用 xlsx
包中的 read
函数读取 Buffer
。
【讨论】:
以上是关于从谷歌云存储下载 excel 文件返回一个缓冲区,我怎样才能返回实际的 excel 文件,以便我可以在我的处理程序中写入它?的主要内容,如果未能解决你的问题,请参考以下文章
使用node.js中的firebase从谷歌云存储读取时,ESlint问题“每个都应该返回一个值或抛出”