Skip to main content
#+TITLE: tabular-reader

* tabular_reader

** Description
A module that maps information from each row in XLSX, XLS, or CSV
files to a ~SimpleNamespace~ object, providing a uniform interface
across different spreadsheet and data formats. Similar to Python's
native [[https://docs.python.org/3/library/csv.html#csv.DictReader][csv.DictReader]] but with support for multiple file types.

** Installing
#+begin_src bash
pip install tabular-reader
#+end_src

** Examples

*** Basic usage with XLSX
#+begin_src python
from tabular_reader import TabularReader

reader = TabularReader("names.xlsx", worksheet="Sheet1")
for row in reader:
print(row.first_name, row.last_name)
#+end_src

Output:
#+begin_src
Boris Johnson
Donald Trump
Mark Rutte
#+end_src

*** Reading CSV files
#+begin_src python
from tabular_reader import TabularReader

reader = TabularReader("data.csv")
for row in reader:
print(row.email, row.phone)
#+end_src

*** Reading XLS files
#+begin_src python
from tabular_reader import TabularReader

reader = TabularReader("legacy_data.xls")
for row in reader:
print(row.id, row.name)
#+end_src

** Custom fieldnames
You can specify fieldnames manually:

#+begin_src python
reader = TabularReader(
"data.xlsx",
fieldnames=["id", "email", "username"]
)
for row in reader:
print(row.id, row.email)
#+end_src

** Skip blank lines
Filter out empty rows:

#+begin_src python
reader = TabularReader(
"data.csv",
skip_blank_lines=True
)
for row in reader:
print(row)
#+end_src

** Keyword arguments

*** For Excel files (XLSX/XLS)
Pass any ~openpyxl.load_workbook~ keyword arguments:

#+begin_src python
reader = TabularReader(
"names.xlsx",
worksheet="Sheet1",
read_only=False,
keep_vba=False,
data_only=False,
keep_links=True
)
#+end_src

*** For CSV files
Pass any ~csv.reader~ keyword arguments:

#+begin_src python
reader = TabularReader(
"data.csv",
delimiter=";",
quotechar='"',
encoding="utf-8"
)
#+end_src

** Features
- Automatic format detection by file extension
- Empty column filtering (only processes columns with headers)
- Uniform interface across XLSX, XLS, and CSV
- ~SimpleNamespace~ objects with attribute access (~row.field_name~)
- Python 3.6 - 3.14 support

** Supported formats
| Format | Extension | Status |
|--------|-----------|-------------|
| Excel | .xlsx | ✓ Supported |
| Excel | .xls | ✓ Supported |
| CSV | .csv | ✓ Supported |

** Acknowledgements
- [[https://openpyxl.readthedocs.io/][openpyxl]]
- [[https://docs.python.org/3/library/csv.html][csv]] - Python's standard library

Metadata

Release files for tabular-reader 0.1.4

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for tabular-reader 0.1.4
File Size Uploaded Provenance
tabular_reader-0.1.4.tar.gz 4.1 kB With provenance Details

Built distribution (wheel)

Table of built distributions (wheels) for tabular-reader 0.1.4
File Interpreter ABI Platform
tabular_reader-0.1.4-py3-none-any.whl Python 3 none any Details

Total release size: 9.0 kB

Release files / tabular_reader-0.1.4.tar.gz

Download URL tabular_reader-0.1.4.tar.gz
Size 4.1 kB
Tags Source
SHA-256 checksum
How to use checksums
1fdc463523b0942e5c741f30aebd7c2c9fb2f52c770e612f0b9dec2d3d6de47d
BLAKE2b-256 checksum
How to use checksums
d15b1784731dbe05605ab44f90589b6b332b33ee150f16695f36e5a45719a609
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 11, 2026.

Transparency log

Release files / tabular_reader-0.1.4-py3-none-any.whl

Download URL tabular_reader-0.1.4-py3-none-any.whl
Size 4.9 kB
Tags Python 3
SHA-256 checksum
How to use checksums
0bd15cde576c4d339223d08c66e69430918babf05b44fc8d88ad0006cc26bd78
BLAKE2b-256 checksum
How to use checksums
e201d6bd07bb19f2f3428b236c95ac932ff92b5694f42346fe01b7f753b49019
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
Yes
Uploaded via twine/6.1.0 CPython/3.13.12

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 11, 2026.

Transparency log

Security for tabular-reader 0.1.4

Provenance

Provenance describes where a file came from. On PyPI, provenance is shared via attestations, which provide a verifiable record of the build or publishing details. View details, limitations and caveats.

Full provenance

All 2 files in this release have been uploaded with provenance metadata.

Select from 2 files

Attestation for tabular_reader-0.1.4.tar.gz

PyPI Publish Attestation

PyPI verified that this artifact, at this checksum, originated from the publisher listed below.

Signed by GitHub Actions, verified by PyPI on Jun 11, 2026.

Transparency log

A note on package security

PyPI is a repository for distributing packages, not a service for auditing them. While third-party security researchers and our staff do their best to detect and remove malicious packages, PyPI cannot guarantee the quality, security or suitability of any given package.

To learn more about protecting yourself from malicious actors, visit our package security documentation.

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page