Все они с открытым исходным кодом Python для управления Excel (см. python-excel). Я все еще пытаюсь понять их код. Если кто-нибудь может дать подсказку, как они соединяются с низким рычагом в Excel? Через XML, Excel API или некоторые другие базовые пакеты Python?Как xlrd, xlwt, xlutils работают с Excel на низком уровне?
ответ
Если мы говорим о чтении и записи XLS файлов, в основном xlrd
и xlwt
следовать OpenOffice.org document/specification описания формата в Excel и Биф(Binary Interchange Format File) записи для чтения и записи файлов XLS. Если вы проверите xlwt
source code, вы обнаружите, что он манипулирует BIFF-записями, потому что все должно быть написано: создание рабочей книги, рабочих листов, запись данных, форматирование, выравнивание и т. Д.
С XLSX история немного отличается. Для чтения XLSX xlrd
полагается на openxmlformats XML schemas и use built into Python ElementTree XML parsers (cElementTree
, если доступно, в противном случае ElementTree
) для анализа файла XLSX, который упрощает создание архива ZIP, содержащего XML-файлы внутри. Вот хороший обзор того, что находится внутри архива:
Я также рекомендую изучать xlsxwriter
module - с моей точки зрения, этот пакет гораздо лучше документированной и the code гораздо более более чистый и читаемый, чем xlwt
или xlrd
.