Чтение файла XLSB в Pandas Python
На это много вопросов, но простого ответа на вопрос о том, как читать файл xlsb в pandas, не было. Есть простой способ сделать это?
Ответы
Ответ 1
Привет, на самом деле есть способ. Просто используйте библиотеку 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])
Ответ 2
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()
"А1" в этом случае является начальной позицией таблицы Excel. Чтобы записать в файл xlsb, просто напишите:
sheet.range('A1').value = df
Ответ 3
Если вы хотите прочитать большой двоичный файл или любой файл Excel с некоторыми диапазонами, вы можете прямо указать этот код
range = (your_index_number)
first_dataframe = []
second_dataframe = []
with open_xlsb('Test.xlsb') as wb:
with wb.get_sheet('Sheet1') as sheet:
i=0
for row in sheet.rows():
if(i!=range):
first_dataframe.append([item.v for item in row])
i=i+1
else:
second_dataframe.append([item.v for item in row])
first_dataframe = pd.DataFrame(first_dataframe[1:], columns=first[0])
second_dataframe = pd.DataFrame(second_dataframe[:], columns=first.columns)