SheetReader Python Bindings
SheetReader allows to read your Excel spreadsheet files (.xlsx) blazingly fast. This repository contains the Python bindings, as the core library is implemented in C++.
Quickstart
Sheetreader is available through:
pip install pysheetreader
After successful installation, spreadsheets can be loaded:
import pysheetreader as sr
sheet = sr.read_xlsx("my_favorite_sheet.xlsx")
To convert a spreadsheet into a pandas Dataframe:
import pysheetreader as sr
import pandas as pd
sheet = sr.read_xlsx("my_favorite_sheet.xlsx")
df = pd.DataFrame.from_dict(sheet[0])
Parameters:
| Parameter | Type | Description | Default |
|---|---|---|---|
path |
string |
The path of the .xlsx file to parse. |
- |
sheet |
integer or string |
The sheet of the file to parse, can be either the index (starting at 1) or the name. | 1 |
headers |
boolean |
Whether to interpret the first parsed row as headers. | True |
skip_rows |
integer |
How many rows to skip before parsing data. | 0 |
skip_columns |
integer |
How many columns to skip before parsing data. | 0 |
num_threads |
integer |
How many threads to use for parsing. Use -1 for automatic threading. |
-1 |
col_types |
dict or list |
How to interpret parsed data, either by names (dict) or by position (list). Types: numeric, text, logical, date, skip, guess. |
None |
Build Instructions
First install the submodules, which contain the sheetreader-core dependency with:
git clone --recurse-submodules https://github.com/polydbms/sheetreader-python.git
To build from source, this repository provides a pyproject.toml.
The SheetReader wheel file can be generated through:
python -m build .
or installed with pip through:
pip install .
More resources
SheetReader is part of the PolyDB Project. We also provide bindings/extensions for several other environments:
- R language: Load spreadsheets into dataframes, also available via CRAN.
- PostgreSQL FDW: Foreign data wrapper for PostgreSQL; allows to register spreadsheets as foreign tables.
- DuckDB Extension: Extension for DuckDB that allows loading spreadsheets into tables. Also available as a community extension.
Paper
SheetReader was published in the Information Systems Journal. Cite as:
@article{DBLP:journals/is/GavriilidisHZM23,
author = {Haralampos Gavriilidis and
Felix Henze and
Eleni Tzirita Zacharatou and
Volker Markl},
title = {SheetReader: Efficient Specialized Spreadsheet Parsing},
journal = {Inf. Syst.},
volume = {115},
pages = {102183},
year = {2023},
url = {https://doi.org/10.1016/j.is.2023.102183},
doi = {10.1016/J.IS.2023.102183},
timestamp = {Mon, 26 Jun 2023 20:54:32 +0200},
biburl = {https://dblp.org/rec/journals/is/GavriilidisHZM23.bib},
bibsource = {dblp computer science bibliography, https://dblp.org}
}
Metadata
Release files for pysheetreader 0.0.1
For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.
Built distributions (wheels)
| File | Reset | |||
|---|---|---|---|---|
| pysheetreader-0.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.13 | CPython 3.13 | Linux glibc 2.17+ x86-64 | Details |
| pysheetreader-0.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.12 | CPython 3.12 | Linux glibc 2.17+ x86-64 | Details |
| pysheetreader-0.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.11 | CPython 3.11 | Linux glibc 2.17+ x86-64 | Details |
| pysheetreader-0.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.10 | CPython 3.10 | Linux glibc 2.17+ x86-64 | Details |
| pysheetreader-0.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.9 | CPython 3.9 | Linux glibc 2.17+ x86-64 | Details |
| pysheetreader-0.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl | CPython 3.8 | CPython 3.8 | Linux glibc 2.17+ x86-64 | Details |
Total release size: 8.8 MB
Release files / pysheetreader-0.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | pysheetreader-0.0.1-cp313-cp313-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.13 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
82ca21399a26bb0bf9c169c2451977bb9490543b5a69fb9155568198eff0eeaa
|
|
BLAKE2b-256 checksum How to use checksums |
87714170427f2b4762ddfe9dd7e1df194c76145a12489a537351ad52aa0dd48c
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.10.13
|
Release files / pysheetreader-0.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | pysheetreader-0.0.1-cp312-cp312-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.12 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
c4dafe75922d9718df81dc651dad9c732c573a340547fae0ca30adbc52612f74
|
|
BLAKE2b-256 checksum How to use checksums |
a8214725b27fe82e1e4045e9befa48dda48922593b74f8ada1053709954db381
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.10.13
|
Release files / pysheetreader-0.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | pysheetreader-0.0.1-cp311-cp311-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.11 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
78bd296cb219b316a25e5b0fdffc5d6b2302a6791e06b4516c5d6203f71d9f08
|
|
BLAKE2b-256 checksum How to use checksums |
61cb8d9e54acb4a01063848f1e1df09bf0b859957113425b964fb394b1b6cabc
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.10.13
|
Release files / pysheetreader-0.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | pysheetreader-0.0.1-cp310-cp310-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.10 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
79d308dc9c9d26e57f0a2a73ff119027020a5bcb9dde7d0487cfc1c6a8c85410
|
|
BLAKE2b-256 checksum How to use checksums |
3408c49313fac89046c61f9fc024324eb6cac9346d436cd8cb979d22fe89b904
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.10.13
|
Release files / pysheetreader-0.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | pysheetreader-0.0.1-cp39-cp39-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.9 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
9fe0429f1f3c374ce8ba403e52e463b995b90a5a0845b732ba3febd86228ff3a
|
|
BLAKE2b-256 checksum How to use checksums |
239e95429542f74a50c727d37b9ef9887b7f8b99d6e733cd74a115aaf333ec39
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.10.13
|
Release files / pysheetreader-0.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl
| Download URL | pysheetreader-0.0.1-cp38-cp38-manylinux_2_17_x86_64.manylinux2014_x86_64.whl |
|---|---|
| Size | 1.5 MB |
| Tags | CPython 3.8 Linux glibc 2.17+ x86-64 |
|
SHA-256 checksum How to use checksums |
9fc53dcd25b0e5b7ed1e4a813adc93b81989dc60432c06b9f0f51f59c10e217b
|
|
BLAKE2b-256 checksum How to use checksums |
9e97864c29e935f88659a0fc8e5131d175674cce78215ed800a18675380a283a
|
| Upload date | |
|
Uploaded using Trusted Publishing? What is trusted publishing? |
No |
| Uploaded via |
twine/5.1.1 CPython/3.10.13
|