They are all open source Python packages to control Excel (see python-excel). I am still trying to understand their code. If anyone could give a hint, do how they connect in a low lever to Excel? Via xml, Excel API, or some other basic Python packages?
If we are talking about reading and writing XLS files, basically xlrd
and xlwt
follow the OpenOffice.org document/specification describing Excel's format and BIFF (Binary Interchange File Format) records to read and write XLS files. If you would inspect the xlwt
source code, you would find it manipulates the BIFF records for everything needs to be written: creating workbook, worksheets, writing data, formatting, alignment etc.
With XLSX the story is a bit different. To read XLSX xlrd
relies on the openxmlformats XML schemas and use built into Python ElementTree XML parsers (cElementTree
if available, otherwise ElementTree
) to parse the XLSX file which is, to simplify, a zip archive containing XML files inside. Here is a good overview of what is inside the archive:
I would also recommend studying the xlsxwriter
module - from my point of view, the package is much better documented and the code is much more cleaner and readable than xlwt
or xlrd
.