Skip to main content

Excel table reader library.

Project description

About xlref

xlref is an useful library to capture by a simple reference (e.g., A1(RD):..:RD) a table with non-empty cells from Excel-sheets when its exact position is not known beforehand.

This code was inspired by the xleash module of the pandalone library. The reason of developing a similar tool was to have a smaller library to install and improve the performances of reading .xlsx files.

Installation

To install it use (with root privileges):

$ pip install xlref

Or download the last git version and use (with root privileges):

$ python setup.py install

Tutorial

A typical example is capturing a table with a “header” row and convert into a dictionary. The code below shows how to do it:

>>> import xlref as xl
>>> _ref = 'excel.xlsx#ref!A1(RD):RD[%s]'
>>> ref = xl.Ref(_ref % '"dict"')
>>> ref.range  # Captured range.
B2:C24
>>> values = ref.values; values  # Captured values.
{...}
>>> values['st-cell-move']
'#D5(RU):H1(DL)'

You can notice from the code above that all the values of the dictionary are references. To parse it recursively, there are two options:

  1. add the “recursive” filter before the “dict”:

    >>> values = xl.Ref(_ref % '"recursive", "dict"').values
    >>> values['st-cell-move'].tolist()
    [[1.0, 2.0, 3.0],
     [4.0, 5.0, 6.0],
     [7.0, 8.0, 9.0]]
    
  2. apply a filter onto dictionary’ values using the extra

    functionality of the “dict” filter:

    >>> values = xl.Ref(_ref % '{"fun": "dict", "value":"ref"}').values
    >>> values['st-cell-move'].tolist()
    [[1.0, 2.0, 3.0],
     [4.0, 5.0, 6.0],
     [7.0, 8.0, 9.0]]
    

You have also the possibility to define and use your custom filters as follows:

>>> import numpy as np
>>> xl.FILTERS['my-filter'] = lambda parent, x: np.sum(x)
>>> xl.Ref('#D5(RU):H1(DL)["my-filter"]', ref).values
45.0

An alternative way is to use directly the methods of the filtered results as follows:

>>> xl.Ref('#D5(RU):H1(DL)["sum"]', ref).values
45.0

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

xlref-1.0.0.tar.gz (13.9 kB view details)

Uploaded Source

Built Distribution

xlref-1.0.0-py2.py3-none-any.whl (16.7 kB view details)

Uploaded Python 2 Python 3

File details

Details for the file xlref-1.0.0.tar.gz.

File metadata

  • Download URL: xlref-1.0.0.tar.gz
  • Upload date:
  • Size: 13.9 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0.post20200309 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for xlref-1.0.0.tar.gz
Algorithm Hash digest
SHA256 8add7474b6198bee770f640f68e58cdcd61110f1f3c53a5a3eca65c533e911a9
MD5 e60cdcc6f0ab1854316f80a391a58dd6
BLAKE2b-256 b4c22310bd7c5f3047981a6719f196abb227099622de62834b737459aa7c231e

See more details on using hashes here.

File details

Details for the file xlref-1.0.0-py2.py3-none-any.whl.

File metadata

  • Download URL: xlref-1.0.0-py2.py3-none-any.whl
  • Upload date:
  • Size: 16.7 kB
  • Tags: Python 2, Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/3.1.1 pkginfo/1.5.0.1 requests/2.23.0 setuptools/46.0.0.post20200309 requests-toolbelt/0.9.1 tqdm/4.42.1 CPython/3.8.1

File hashes

Hashes for xlref-1.0.0-py2.py3-none-any.whl
Algorithm Hash digest
SHA256 24eaa89d781b6e528c6796d44b79b242de28533168f6048a6f9676010c306cfb
MD5 e6056a04d79e5985b89e1807ed2cf8a4
BLAKE2b-256 5c2cb8f6077a3ef8c14484b4a1dc52d5327548054ae04b5ece3a30125507e741

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