使用 pandas 和 pyxlsb 以 xlsb 文件格式(Excel 二进制文件格式)写入输出

问题描述 投票:0回答:3

我读过很多 stackoverflow 和其他线程,其中提到了如何读取 excel 二进制文件。

参考:在 Pandas Python 中读取 XLSB 文件

import pandas as pd
df = pd.read_excel('path_to_file.xlsb', engine='pyxlsb')

但是,我找不到任何关于如何在使用 pandas 处理后将其写回 .xlsb 文件的解决方案?任何人都可以使用 python 提出一个可行的解决方案吗?

非常感谢任何帮助!

python-3.x pandas xlsb pyxlsb
3个回答
1
投票

我还没有找到任何解决方案来写入xlsb文件或使用python创建xlsb文件。

但也许一种解决方法是使用许多可用的库(例如 pandas、xlsxwriter、openpyxl)中的任何一个将文件保存为 xlsx,然后使用 xlsb-converter 将该文件转换为 xlsb。 https://github.com/gibz104/xlsb-converter

注意:此存储库使用 WIN32COM,这就是该脚本仅支持 Windows 的原因


0
投票

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()

-4
投票

您可以使用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])
© www.soinside.com 2019 - 2024. All rights reserved.