A light weight, zero dependency (only standard libs used), to the point (no bells and whistles) Microsoft Excel reader/writer python 2.7.18 - 3+ library.



  • Reader supports .xlsx and .xlsm file extensions.
  • Writer only supports .xlsx (no macros/buttons/graphs/formatting)


  • Does not support .xls (excel 97-2003 worksheet).
  • Does not support worksheet cell data more than 536,870,912 cells (32-bit list limitation).
  • Writer does not support anything other than writing values/formulas/strings.
  • Writing to existing workbooks will remove any macros/buttons/graphs/formatting!

Why pylightxl over pandas/openpyxl/xlrd

  • Zero non-standard library dependencies
    No compatibility/version control issues.

  • Light-weight single source code file that supports both Python3 and Python2.7.18.
    Single source file that can easily be copied directly into a project for true zero-dependency.
    Great for those that have installation/download restrictions.
    In addition the library's size and zero dependency makes this library pyinstaller compilation small and easy!

  • 100% test-driven development for highest reliability/maintainability with 100% coverage on all supported versions

  • API aimed to be user friendly and intuitive. Structure: database > worksheet > indexing example:'Sheet1').index(row=1,col=2) or'Sheet1').address(address='B1')


pylightxl is officially published on, however one of the
key features of pylightxl is that it is packed light in case the user has pip
and/or download restrictions, see docs - installation

pip install pylightxl

pypi version 1.53

  • bug fix: writing to existing file previously would only write to the current working directory, it
    now can handle subdirs. In addition inadvertenally discovered a bug in python source code ElementTree.iterparse
    where source passed as a string was not closing the file properly. We submitted a issue to python issue tracker.

See full history log of revisions: Here