openpyxl - 类型错误:需要类似字节的对象,而不是“_io.BytesIO”

Tur*_*boC 4 python openpyxl

使用 openpyxl 我在一个二元对象中编写了 excel 文件,但是当我尝试通过“write”方法保存它时,出现以下异常:

回溯(最近一次调用最后一次):文件“stack.py”,第 13 行,在 file.write(output) 中 TypeError:需要类似字节的对象,而不是“_io.BytesIO”

我该如何解决这个问题?下面是一个简单的例子:

import openpyxl
from io import BytesIO

wb = openpyxl.Workbook()
ws = wb.active
ws.title = "TEST"
output = BytesIO() 

wb.save(output)


file = open("ciao.xlsx", "wb")
file.write(output) # <--- this instruction doesn't work..

file.close()
Run Code Online (Sandbox Code Playgroud)

注意:我已经知道我可以直接使用 openpyxl 保存 excel 文件,但在我的真实代码中,我需要将其保存在二进制文件中。

小智 9

您可以使用 getvalue 函数从 BytesIO 输出中获取类似字节的对象。

file.write(output.getvalue())