Python конвертировать файл Excel (xls или xlsx) в / из ODS
Я искал сеть, чтобы найти библиотеку Python или инструмент, который может конвертировать файл Excel в / из формата ODS, но не смог ничего найти.
Мне нужна возможность ввода и вывода данных в любом формате. Нам не нужно беспокоиться о слитых ячейках, формулах или чем-то непростом.
2 ответа
Решение
Если у вас установлен libreoffice, вы можете сделать обертку для выполнения Python в режиме без заголовка:
$ /usr/bin/libreoffice --headless --invisible -convert-to ods /home/cwgem/Downloads/QTL_Sample_data.xls
convert /home/cwgem/Downloads/QTL_Sample_data.xls -> /home/cwgem/QTL_Sample_data.ods using OpenDocument Spreadsheet Flat XML
$ /usr/bin/libreoffice --headless --invisible -convert-to xls /home/cwgem/QTL_Sample_data.ods
convert /home/cwgem/QTL_Sample_data.ods -> /home/cwgem/QTL_Sample_data.xls using
Что было бы немного проще, чем пытаться сделать это через библиотечный маршрут.
Мне удалось преобразовать файл xlsx в файл ods с помощью этого метода:
- установить pyexcel-xlsx
- установить pyexcel-ods3
И используйте следующий код:
from pyexcel_ods3 import save_data
from pyexcel_xlsx import get_data
dataXlsx = get_data("file.xlsx")
save_data("file.ods", dataXlsx)
Внимание : цвета/дизайн файла xlsx удалены в файле ouput ods... так что это не настоящий успех.