我读过很多 stackoverflow 和其他线程,其中提到了如何读取 excel 二进制文件。
参考:在 Pandas Python 中读取 XLSB 文件
import pandas as pd
df = pd.read_excel('path_to_file.xlsb', engine='pyxlsb')
但是,我找不到任何关于如何在使用 pandas 处理后将其写回 .xlsb 文件的解决方案?任何人都可以使用 python 提出一个可行的解决方案吗?
非常感谢任何帮助!
我还没有找到任何解决方案来写入xlsb文件或使用python创建xlsb文件。
但也许一种解决方法是使用许多可用的库(例如 pandas、xlsxwriter、openpyxl)中的任何一个将文件保存为 xlsx,然后使用 xlsb-converter 将该文件转换为 xlsb。 https://github.com/gibz104/xlsb-converter
注意:此存储库使用 WIN32COM,这就是该脚本仅支持 Windows 的原因
pyxlsb 库不支持从 python 读取 xlsb 文件。 Aspose.Cells for Python 能够构建跨平台应用程序,能够生成、修改、转换、渲染和打印所有 Excel 文件(包括 xlsb 文件)。
需要 Python <=3.13, >=3.8。
这是示例代码:
import jpype
import asposecells
jpype.startJVM()
from asposecells.api import Workbook, FileFormatType
# Create Workbook object.
workbook = Workbook(FileFormatType.XLSB)
# Access the first worksheet of the workbook.
worksheet = workbook.getWorksheets().get(0)
# Get the desired cell(s) of the worksheet and input the value into the cell(s).
worksheet.getCells().get("A1").putValue("ColumnA")
worksheet.getCells().get("B1").putValue("ColumnB")
worksheet.getCells().get("A2").putValue("ValueA")
worksheet.getCells().get("B2").putValue("ValueB")
# Save the workbook as XLSB file.
workbook.save("output.xlsb")
jpype.shutdownJVM()
您可以使用pyxlsb下的open_workbook读取二进制文件。请找到下面的代码:
import pandas as pd
from pyxlsb import open_workbook
path=r'D:\path_to_file.xlsb'
df2=[]
with open_workbook(path) as wb:
with wb.get_sheet(1) as sheet:
for row in sheet.rows():
df2.append([item.v for item in row])
data= pd.DataFrame(df2[1:], columns=df2[0])