Сохранить .xlsb как формат xlsx [Python 3.8, pandas? xlrd? Другой?] - PullRequest
0 голосов
/ 12 июля 2020

Проблема:

У меня есть подписка на несколько таблиц Excel с важными данными, я использую 4 отдельных листа: два .xlsm, один .xlsx и один .xlsb. Я использовал pandas, чтобы открыть .xlsb и сохранить его с новым расширением файла, однако на самом деле он не преобразует его из типа файла. myfile.xlsx по-прежнему является двоичной книгой, которую модуль xlrd не может прочитать.

Мои попытки:

Я использовал следующий код, как упоминалось выше, возможно, это был ответ на предыдущий аналогичный вопрос, однако я не спросил, как изменить тип файла, только расширение, которое не сработало, и я виноват в написании плохого вопроса.

import pandas as pd
df = pr.read_excel('myfile.xlsb', engine='pyxlsb')
df.to_excel('myfile.xlsx')

Почему это не работает:

Основная проблема с этим методом заключается в том, что myfile.xlsx по-прежнему является двоичной книгой (.xlsb), даже если в расширении файла указано иное . Мы можем доказать это, вручную открыв myfile.xlsx и выбрав файл> сохранить как и увидев, что текущий тип файла является двоичной книгой, несмотря на то, что предлагает расширение файла.

Другая проблема заключается в том, что это создает новый файл с несколько сомнительно выглядящими данными: информация есть, просто проблема с заполнением столбца «A» номерами строк, а строки «1» и «2» не могут получить заголовки моей электронной таблицы. «1» заполнено «unanmed: X», где X - количество столбцов, а «2» имеет аналогичную проблему. Другая проблема, с которой я столкнулся, заключается в том, что форматирование ячеек не копируется, у меня остается беспорядочная, плохо читаемая электронная таблица с неправильным названием. Конечно, я буду использовать xlrd, xlwt и xlutils для переноса данных на мастер-лист, но если я не могу прочитать даже половину данных, я не могу создать скрипт для его обработки.

Мой вопрос:

Используя любой python модуль , как мне «выбрать» файл myfile.xlsb и изменить фактический тип файла чтобы данные внутри были в формате .xlsx?

Я знаю, что могу сделать это вручную, но давай, кто учится кодировать, чтобы делать что-то вручную.

Даже всего лишь Мы будем очень благодарны за название модуля, который может это сделать, время от времени исследования, проведенные за последнюю неделю или около того, подарили мне пару скриптов, которые ничего не делают, и часы напрасного чтения, похожего на кроличью нору.

...