Подсчет количества печатных листов в xlsb файле через Python

Ломаю голову над задачей подсчета печатных листов в Excel файлах. Мне удалось разобраться с форматами xls,xlsx/xlsm. Но ни как не могу придумать, как подсчитать в бинарной книге(xlsb).

Для xlsx написал функцию, которая распаковывает файл и затем парсит xml, в котором содержится нужная информация.

def pages_count_xlsx_xlsm(document,unzip_dir_temp):

    # Распаковываем excel документ
    try:
        with ZipFile(document, 'r') as zipObj:
           zipObj.extractall(unzip_dir_temp)
    except:
        print('Error in file:',document)


    # Список листов в книге
    worksheets = glob.glob(unzip_dir_temp+'/xl/worksheets/*.xml')


    # Извлекаем кол-во страниц на каждом листе
    rowBreaks=0
    colBreaks=0
    pages_count=0
    for i,sheet in enumerate(worksheets):


        element_tree = ET.parse(sheet)
        root = element_tree.getroot()
        for type_tag in root.findall('{http://schemas.openxmlformats.org/spreadsheetml/2006/main}rowBreaks'):
            rowBreaks = int(type_tag.get('count'))
        for type_tag in root.findall('{http://schemas.openxmlformats.org/spreadsheetml/2006/main}colBreaks'):
            colBreaks = int(type_tag.get('count'))

        pages_count+= (rowBreaks + 1) * (colBreaks + 1)


    # Удаляем временную директорию
    shutil.rmtree(unzip_dir_temp)

    return pages_count 

Файл xlsb тоже можно распаковать, но вместо xml файлов там, соответственно, бинарные файлы. Может ли кто- нибудь подсказать, как прочитать бинарный файл, или подсказать библиотеку, которая может извлечь метаданные из файла xlsb. Спасибо!


Ответы (0 шт):