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
<https://github.com/pandalone/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):
.. code:: console
$ pip install xlref
Or download the last git version and use (with root privileges):
.. code:: console
$ 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:C28
>>> 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
Raw data
{
"_id": null,
"home_page": "https://github.com/vinci1it2000/xlref",
"name": "xlref",
"maintainer": "",
"docs_url": null,
"requires_python": "",
"maintainer_email": "",
"keywords": "python,utility,library,data,scientific,range,engineering,data,excel,tables,reader,reference",
"author": "Vincenzo Arcidiacono",
"author_email": "vinci1it2000@gmail.com",
"download_url": "https://files.pythonhosted.org/packages/dc/8b/a50a2d9571940330a28c2d3b072a2d86e322fe76100f320d2acff079096c/xlref-1.2.4.tar.gz",
"platform": null,
"description": "\nAbout xlref\n***********\n\n**xlref** is an useful library to capture by a simple reference (e.g.,\n*A1(RD):..:RD*) a table with non-empty cells from Excel-sheets when\nits exact position is not known beforehand.\n\nThis code was inspired by the *xleash* module of the `pandalone\n<https://github.com/pandalone/pandalone>`_ library. The reason of\ndeveloping a similar tool was to have a smaller library to install and\nimprove the performances of reading *.xlsx* files.\n\n\nInstallation\n************\n\nTo install it use (with root privileges):\n\n.. code:: console\n\n $ pip install xlref\n\nOr download the last git version and use (with root privileges):\n\n.. code:: console\n\n $ python setup.py install\n\n\nTutorial\n********\n\nA typical example is *capturing* a table with a \u201cheader\u201d row and\nconvert into a dictionary. The code below shows how to do it:\n\n>>> import xlref as xl\n>>> _ref = 'excel.xlsx#ref!A1(RD):RD[%s]' \n>>> ref = xl.Ref(_ref % '\"dict\"')\n>>> ref.range # Captured range.\nB2:C28\n>>> values = ref.values; values # Captured values.\n{...}\n>>> values['st-cell-move']\n'#D5(RU):H1(DL)'\n\nYou can notice from the code above that all the values of the\ndictionary are references. To parse it recursively, there are two\noptions:\n\n 1. add the \u201crecursive\u201d filter before the \u201cdict\u201d:\n\n >>> values = xl.Ref(_ref % '\"recursive\", \"dict\"').values\n >>> values['st-cell-move'].tolist()\n [[1.0, 2.0, 3.0],\n [4.0, 5.0, 6.0],\n [7.0, 8.0, 9.0]]\n\n 2. apply a filter onto dictionary\u2019 values using the extra\n functionality of the \u201cdict\u201d filter:\n\n >>> values = xl.Ref(_ref % '{\"fun\": \"dict\", \"value\":\"ref\"}').values\n >>> values['st-cell-move'].tolist()\n [[1.0, 2.0, 3.0],\n [4.0, 5.0, 6.0],\n [7.0, 8.0, 9.0]]\n\nYou have also the possibility to define and use your custom filters as\nfollows:\n\n>>> import numpy as np\n>>> xl.FILTERS['my-filter'] = lambda parent, x: np.sum(x)\n>>> xl.Ref('#D5(RU):H1(DL)[\"my-filter\"]', ref).values\n45.0\n\nAn alternative way is to use directly the methods of the filtered\nresults as follows:\n\n>>> xl.Ref('#D5(RU):H1(DL)[\"sum\"]', ref).values\n45.0\n",
"bugtrack_url": null,
"license": "EUPL 1.1+",
"summary": "Excel table reader library.",
"version": "1.2.4",
"project_urls": {
"Documentation": "http://xlref.readthedocs.io",
"Donate": "https://donorbox.org/xlref",
"Download": "https://github.com/vinci1it2000/xlref/tarball/v1.2.4",
"Homepage": "https://github.com/vinci1it2000/xlref",
"Issue tracker": "https://github.com/vinci1it2000/xlref/issues"
},
"split_keywords": [
"python",
"utility",
"library",
"data",
"scientific",
"range",
"engineering",
"data",
"excel",
"tables",
"reader",
"reference"
],
"urls": [
{
"comment_text": "",
"digests": {
"blake2b_256": "b7efd0dcd59cf38190cbd304d4fde1fa21fffa52d4a6d4946bc705a4bff08e11",
"md5": "bf8194bea7d17ca8bfc5957289011b65",
"sha256": "3f23f1ce2c4e56ba66f82dd82cc6b1fc66cbb00d9bde66d29b0cd7b30936afcb"
},
"downloads": -1,
"filename": "xlref-1.2.4-py2.py3-none-any.whl",
"has_sig": false,
"md5_digest": "bf8194bea7d17ca8bfc5957289011b65",
"packagetype": "bdist_wheel",
"python_version": "py2.py3",
"requires_python": null,
"size": 17612,
"upload_time": "2024-02-27T14:28:09",
"upload_time_iso_8601": "2024-02-27T14:28:09.098608Z",
"url": "https://files.pythonhosted.org/packages/b7/ef/d0dcd59cf38190cbd304d4fde1fa21fffa52d4a6d4946bc705a4bff08e11/xlref-1.2.4-py2.py3-none-any.whl",
"yanked": false,
"yanked_reason": null
},
{
"comment_text": "",
"digests": {
"blake2b_256": "dc8ba50a2d9571940330a28c2d3b072a2d86e322fe76100f320d2acff079096c",
"md5": "e6eecfe8cc523adde3c0dee0b95c2457",
"sha256": "026db7296d5e85bc0afd6bdf22273db802bab0b70cf51d0582db9ea14103cfb4"
},
"downloads": -1,
"filename": "xlref-1.2.4.tar.gz",
"has_sig": false,
"md5_digest": "e6eecfe8cc523adde3c0dee0b95c2457",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 21093,
"upload_time": "2024-02-27T14:28:13",
"upload_time_iso_8601": "2024-02-27T14:28:13.399459Z",
"url": "https://files.pythonhosted.org/packages/dc/8b/a50a2d9571940330a28c2d3b072a2d86e322fe76100f320d2acff079096c/xlref-1.2.4.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2024-02-27 14:28:13",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "vinci1it2000",
"github_project": "xlref",
"travis_ci": false,
"coveralls": false,
"github_actions": true,
"lcname": "xlref"
}