2016-02-21 10 views
1

Все они с открытым исходным кодом Python для управления Excel (см. python-excel). Я все еще пытаюсь понять их код. Если кто-нибудь может дать подсказку, как они соединяются с низким рычагом в Excel? Через XML, Excel API или некоторые другие базовые пакеты Python?Как xlrd, xlwt, xlutils работают с Excel на низком уровне?

ответ

3

Если мы говорим о чтении и записи 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.