Вы правы в том, что xlwings
полагается на pywin32
, тогда как openpyxl
не делает.
openpyxl
Файл Excel ".xlsx", по сути, представляет собой zip-файл, содержащий несколько файлов XML, отформатированных в соответствии со спецификацией Microsoft OOXML . С помощью этой спецификации можно создать программу, способную напрямую читать / писать файлы Excel практически на любом языке программирования. Этот подход применяется в openpyxl
: он использует код Python для непосредственного чтения / записи файлов Excel.
xlwings
Приложение Microsoft Excel может запускаться и управляться внешней программой через Win32 COM API . Пакет pywin32
обеспечивает интерфейс между Win32 COM и Python. С помощью сценария Python с правильными командами pywin32 вы можете полностью контролировать приложение Excel (открывать файлы Excel, запрашивать данные из ячеек, записывать данные в ячейки, сохранять файлы Excel и т. Д.). Команды pywin32
, которые можно использовать, отражают команды Excel VBA , хотя и с синтаксисом python.
xlwings
(среди прочего) является удобной оболочкой для pywin32
,Он вводит несколько кратких, но мощных методов. Примером могут служить методы прямого преобразования диапазона ячеек Excel в массив данных или массив данных pandas (и наоборот).
Сводка
Принципиальное различие междуxlwings
и openpyxl
означает, что первый требует, чтобы на вашем компьютере был установлен MS Excel, а второй - нет.