# odsexport
odsexport is a Python-native library to create ODS (Open Document Spreadsheet)
documents. In other words, it lets you script creating "Excel" sheets from
within Python. The focus is on providing a feature-rich document creation
abstraction: all kinds of cell formatting options (data and style formatting,
including datetimes) are supported, column and row formatting is supported
(width/height/visibility), conditional formatting, and auto filtering is
implemented as well. odsexport is intended to make it easy to use ODS documents
as a data sink while creating documents that are mutable (i.e., recalculate
their cells according to formulas). An example of what documents it can produce
is given in the `example` directory along with the source code that produced
it.
## Cell formatting
When handing cells or cell ranges from odsexport, there are three format
characters that are understood:
- `a`: Create an absolute reference, i.e., include the sheet name. Needs to
be used when referencing cells between different sheets.
- `c`: Pin the column. I.e., instead of `G4`, it will produce `$G4`.
- `r`: Pin the row. I.e., instead of `G4`, it will produce `G$4`.
All of these can be combined, here is an example of a sheet "Sheet" with cell
`G4`:
- `a`: `Sheet.G4`
- `c`: `$G4`
- `r`: `G$4`
- `cr`: `$G$4`
- `acr`: `Sheet.$G$4`
## Rant
Personally, I hate Excel or LibreOffice with a burning passion. That such an
ugly, stinking turd of software is used by millions of people around the globe
already seems odd. It is pretty much guaranteed that somewhere the salaries of
people depend on this utterly shitty, piss-poor quality application. Worse yet,
possibly some engineer is making structural computations using Excel, where
lives may depend on the accuracy of the results. The thought alone makes me
want to cry out in pain. Software so stupid, broken and obnoxious that
computations may not only not work on the exact same software with a different
locale setting, nooooo, even worse: it may silently ignore the locale errors
and produce wrong results. Don't believe me? Try counting values using
`COUNTIF()` with a condition that counts values greater than/less than a
fractional value and observe what happens when the locale setting (e.g., `4.1`
vs. `4,1`) is different than the number you enter. It really is *that* dumb.
Oh, or have you looked at the `SUBTOTAL` function? You know, that function that
computes different things depending on a given function *index* as a parameter?
Like, if you want a `SUM`, that's function 9 but if you want the maximum value
that's obviously 4. Who ever thought this train wreck of spreadsheeting was
even remotely acceptable?
Excel/LibreOffice Calc is an utter disgrace. And yet, just like thousands of
people before me, I need to cope with it. To me, that compromise is having
actual good data quality in a safe haven and only exporting to Excel when
needed.
## License
GNU GPL-3.
Raw data
{
"_id": null,
"home_page": "https://github.com/johndoe31415/odsexport",
"name": "odsexport",
"maintainer": null,
"docs_url": null,
"requires_python": null,
"maintainer_email": null,
"keywords": "python, ods, excel, spreadsheet",
"author": "Johannes Bauer",
"author_email": "joe@johannes-bauer.com",
"download_url": "https://files.pythonhosted.org/packages/4d/a8/013b2028e99c92067d4592d4747ba4115052e2e02af88753df96eb437103/odsexport-0.0.3.tar.gz",
"platform": null,
"description": "# odsexport\nodsexport is a Python-native library to create ODS (Open Document Spreadsheet)\ndocuments. In other words, it lets you script creating \"Excel\" sheets from\nwithin Python. The focus is on providing a feature-rich document creation\nabstraction: all kinds of cell formatting options (data and style formatting,\nincluding datetimes) are supported, column and row formatting is supported\n(width/height/visibility), conditional formatting, and auto filtering is\nimplemented as well. odsexport is intended to make it easy to use ODS documents\nas a data sink while creating documents that are mutable (i.e., recalculate\ntheir cells according to formulas). An example of what documents it can produce\nis given in the `example` directory along with the source code that produced\nit.\n\n## Cell formatting\nWhen handing cells or cell ranges from odsexport, there are three format\ncharacters that are understood:\n\n - `a`: Create an absolute reference, i.e., include the sheet name. Needs to\n be used when referencing cells between different sheets.\n - `c`: Pin the column. I.e., instead of `G4`, it will produce `$G4`.\n - `r`: Pin the row. I.e., instead of `G4`, it will produce `G$4`.\n\nAll of these can be combined, here is an example of a sheet \"Sheet\" with cell\n`G4`:\n\n - `a`: `Sheet.G4`\n - `c`: `$G4`\n - `r`: `G$4`\n - `cr`: `$G$4`\n - `acr`: `Sheet.$G$4`\n\n\n## Rant\nPersonally, I hate Excel or LibreOffice with a burning passion. That such an\nugly, stinking turd of software is used by millions of people around the globe\nalready seems odd. It is pretty much guaranteed that somewhere the salaries of\npeople depend on this utterly shitty, piss-poor quality application. Worse yet,\npossibly some engineer is making structural computations using Excel, where\nlives may depend on the accuracy of the results. The thought alone makes me\nwant to cry out in pain. Software so stupid, broken and obnoxious that\ncomputations may not only not work on the exact same software with a different\nlocale setting, nooooo, even worse: it may silently ignore the locale errors\nand produce wrong results. Don't believe me? Try counting values using\n`COUNTIF()` with a condition that counts values greater than/less than a\nfractional value and observe what happens when the locale setting (e.g., `4.1`\nvs. `4,1`) is different than the number you enter. It really is *that* dumb.\nOh, or have you looked at the `SUBTOTAL` function? You know, that function that\ncomputes different things depending on a given function *index* as a parameter?\nLike, if you want a `SUM`, that's function 9 but if you want the maximum value\nthat's obviously 4. Who ever thought this train wreck of spreadsheeting was\neven remotely acceptable?\n\nExcel/LibreOffice Calc is an utter disgrace. And yet, just like thousands of\npeople before me, I need to cope with it. To me, that compromise is having\nactual good data quality in a safe haven and only exporting to Excel when\nneeded.\n\n## License\nGNU GPL-3.\n",
"bugtrack_url": null,
"license": "gpl-3.0",
"summary": "Python-native ODS writer library",
"version": "0.0.3",
"project_urls": {
"Download": "https://github.com/johndoe31415/odsexport/archive/0.0.3.tar.gz",
"Homepage": "https://github.com/johndoe31415/odsexport"
},
"split_keywords": [
"python",
" ods",
" excel",
" spreadsheet"
],
"urls": [
{
"comment_text": null,
"digests": {
"blake2b_256": "4da8013b2028e99c92067d4592d4747ba4115052e2e02af88753df96eb437103",
"md5": "dc1d3841a874beedc7737c289c5ba72d",
"sha256": "f4693c873d17345540f17f203a3ef811b3940ac65241aed0ab89ba6387fa0030"
},
"downloads": -1,
"filename": "odsexport-0.0.3.tar.gz",
"has_sig": false,
"md5_digest": "dc1d3841a874beedc7737c289c5ba72d",
"packagetype": "sdist",
"python_version": "source",
"requires_python": null,
"size": 27022,
"upload_time": "2025-07-29T10:18:50",
"upload_time_iso_8601": "2025-07-29T10:18:50.586097Z",
"url": "https://files.pythonhosted.org/packages/4d/a8/013b2028e99c92067d4592d4747ba4115052e2e02af88753df96eb437103/odsexport-0.0.3.tar.gz",
"yanked": false,
"yanked_reason": null
}
],
"upload_time": "2025-07-29 10:18:50",
"github": true,
"gitlab": false,
"bitbucket": false,
"codeberg": false,
"github_user": "johndoe31415",
"github_project": "odsexport",
"travis_ci": false,
"coveralls": false,
"github_actions": false,
"lcname": "odsexport"
}