Skip to main content

Library for developers to extract data from Microsoft Excel (tm) spreadsheet files

Project description

xlrd3

A fork of original archived xlrd project. This fork aims to fix bugs that existing in xlrd and improve it features. As the name of this fork implies, python2 support is dropped.

At version 1.0.0, xlrd3 on pair with xlrd version 1.2.0 with following bugs fixed:

  • MemoryError: on_demand with mmap still causes some xls to be read the whole file into memory.
  • on_demand not supported for xlsx
  • Parsing comments failed for xlsx on Windows platform.

When to use xlrd3

If you just need to read and deal with both xlsx and xls, use xlrd3. Then if you want to export your data to other excel files, use OpenPyXL or xlsxWriter. If you need to edit xlsx (read and write) and are sure that xls never appear in your workflow, you are advised to use OpenPyXL instead.

Purpose: Provide a library for developers to use to extract data from Microsoft Excel (tm) spreadsheet files. It is not an end-user tool.

Original Author: John Machin

Licence: BSD-style (see licences.py)

Versions of Python supported: 3.6+.

Outside scope: xlrd3 will safely and reliably ignore any of these if present in the file:

  • Charts, Macros, Pictures, any other embedded object. WARNING: currently this includes embedded worksheets.
  • VBA modules
  • Formulas (results of formula calculations are extracted, of course).
  • Comments
  • Hyperlinks
  • Autofilters, advanced filters, pivot tables, conditional formatting, data validation
  • Handling password-protected (encrypted) files.

Installation:$pip install xlrd3

Quick start:

import xlrd3 as xlrd
book = xlrd.open_workbook("myfile.xls")
print("The number of worksheets is {0}".format(book.nsheets))
print("Worksheet name(s): {0}".format(book.sheet_names()))
sh = book.sheet_by_index(0)
print("{0} {1} {2}".format(sh.name, sh.nrows, sh.ncols))
print("Cell D30 is {0}".format(sh.cell_value(rowx=29, colx=3)))
for rx in range(sh.nrows):
    print(sh.row(rx))

Another quick start: This will show the first, second and last rows of each sheet in each file:

python PYDIR/scripts/runxlrd.py 3rows *blah*.xls

Acknowledgements:

  • This package started life as a translation from C into Python of parts of a utility called "xlreader" developed by David Giffin. "This product includes software developed by David Giffin david@giffin.org."
  • OpenOffice.org has truly excellent documentation of the Microsoft Excel file formats and Compound Document file format, authored by Daniel Rentz. See http://sc.openoffice.org
  • U+5F20 U+654F: over a decade of inspiration, support, and interesting decoding opportunities.
  • Ksenia Marasanova: sample Macintosh and non-Latin1 files, alpha testing
  • Backporting to Python 2.1 was partially funded by Journyx - provider of timesheet and project accounting solutions (http://journyx.com/).
  • Provision of formatting information in version 0.6.1 was funded by Simplistix Ltd (http://www.simplistix.co.uk/)

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

xlrd3-1.1.0.tar.gz (58.9 MB view details)

Uploaded Source

Built Distribution

xlrd3-1.1.0-py2.py3-none-any.whl (105.3 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file xlrd3-1.1.0.tar.gz.

File metadata

  • Download URL: xlrd3-1.1.0.tar.gz
  • Upload date:
  • Size: 58.9 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for xlrd3-1.1.0.tar.gz
Algorithm Hash digest
SHA256 20e6ed2e5f7f8b4ab61e30faffebceff6fab348332b4c915373f0a72742dc177
MD5 ea7632f4e79250b643b39656eaae1e0e
BLAKE2b-256 79db88d8d49ddacc203956ecb98dc86c6ffeee6e933ef1f50da9b369de518f7f

See more details on using hashes here.

File details

Details for the file xlrd3-1.1.0-py2.py3-none-any.whl.

File metadata

  • Download URL: xlrd3-1.1.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 105.3 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.4.1 importlib_metadata/4.0.1 pkginfo/1.7.0 requests/2.25.1 requests-toolbelt/0.9.1 tqdm/4.60.0 CPython/3.9.4

File hashes

Hashes for xlrd3-1.1.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 8e8e808f938144e7936a6e07c1d57be7a0f6c6f5b37c9c67974b43246d8aacb6
MD5 73600d7544e2def5aa0de2cdabc9929a
BLAKE2b-256 5d08fce745025e58f160e7dcb5a45d4d43eb0bd44c0d8851425be87ef90271fa

See more details on using hashes here.

Supported by

AWS AWS Cloud computing and Security Sponsor Datadog Datadog Monitoring Fastly Fastly CDN Google Google Download Analytics Microsoft Microsoft PSF Sponsor Pingdom Pingdom Monitoring Sentry Sentry Error logging StatusPage StatusPage Status page