gptables is an opinionated python package for spreadsheet production.
It produces .xlsx files from your pandas dataframes.
gptables uses the Analysis Function spreadsheet guidance.
It advocates a strong adherence to the guidance by restricting the range of operations possible.
The default theme gptheme should accommodate most use cases.
However, the Theme object allows development of custom themes, where other formatting is required.
Users may also be interested in csvcubed, a package for turning data and metadata into machine-readable CSV-W files.
R users should check out aftables, an R native equivalent to gptables.
- Python 3.9+
Using an earlier version? Install gptables version before 2.0.0.
gptables is available from PyPI.
As a user:
- Using a virtual environment? Use pip install gptables in a terminal.
- If you're not using a virtual environment, use python -m pip install gptables instead.
All done!
As a developer:
- Navigate to the directory where this repo is cloned.
- Use pip install -e . to install an editable version of the package.
- Use pip install .[dev] to install the dependencies for developers.
- For working on docs, also use pip install .[docs].
- Set up pre-commit to run automatically with pre-commit install.
- Map your data to the elements of a
GPTable. - Define the format of each element with a custom
Theme- or simply use the defaultgptheme. - Optionally design a
Coverpage to provide information that relates to all of the tables in your Workbook. - Optionally supply a
notes_tablewith information about any notes. - Make you gptable with
write_workbook!
Note: This package create perfectly accessible spreadsheets but will help with many requirements. Users should refer to the Analysis Function spreadsheet guidance and the spreadsheet accessibility checklist.
Found a bug, or would like to suggest a new feature? The best way is to let us know by raising an issue.
Alternatively, please email us - the Analysis Standards at Pipelines team at the Office for National Statistics ([email protected]).
Let us know if you use the package. We'd love to know what's working well, and what could be improved!
Requests and fixes are managed according to resource capacity, and we aim to acknowledge queries within one working week. Please follow up in the case of this taking longer.