关于这个问题有很多问题,但是关于如何将xlsb文件读入pandas并没有简单的答案.是否有捷径可寻?
Gle*_*son 56
随着1.0.0pandas -的发布,January 29, 2020增加了对二进制 Excel 文件的支持。
import pandas as pd
df = pd.read_excel('path_to_file.xlsb', engine='pyxlsb')
Run Code Online (Sandbox Code Playgroud)
笔记:
pip install pandas --upgradepyxlsb-pip install pyxlsbFin*_*und 22
嗨,实际上有一种方法.只需使用pyxlsb库.
import pandas as pd
from pyxlsb import open_workbook as open_xlsb
df = []
with open_xlsb('some.xlsb') as wb:
with wb.get_sheet(1) as sheet:
for row in sheet.rows():
df.append([item.v for item in row])
df = pd.DataFrame(df[1:], columns=df[0])
Run Code Online (Sandbox Code Playgroud)
Pyxlsb 确实是读取 xlsb 文件的一个选项,但是相当有限。
我建议使用 xlwings 包,它可以读取和写入 xlsb 文件,而不会丢失 xlsb 文件中的工作表格式、公式等。有大量可用文档。
import pandas as pd
import xlwings as xw
app = xw.App()
book = xw.Book('file.xlsb')
sheet = book.sheets('sheet_name')
df = sheet.range('A1').options(pd.DataFrame, expand='table').value
book.close()
app.kill()
Run Code Online (Sandbox Code Playgroud)
本例中的“A1”是 Excel 表格的起始位置。要写入 xlsb 文件,只需编写:
sheet.range('A1').value = df
Run Code Online (Sandbox Code Playgroud)