Python-native ODS writer library
Project description
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 ofG4, it will produce$G4.r: Pin the row. I.e., instead ofG4, it will produceG$4.b: Put the cell expression in braces, e.g., produce[.G4]instead ofG4. This is required inside all fomula expressions.
All of these can be combined, here is an example of a sheet "Sheet" with cell
G4:
a:Sheet.G4c:$G4r:G$4cr:$G$4acr:Sheet.$G$4abcr:[Sheet.$G$4]
Formulas
Inside formulas, brace notation must be used for all cell references. odsexport
does treat all formulas just as strings and acts completely dumb. It will
happily accept anything you throw at it. However, note that a misformatted
formula (e.g., a cell that uses Sheet.G4 instead of the correct [Sheet.G4])
will lead to interoperability issues. OpenOffice will read such a document just
fine while Excel will reject it and throw an error. It is the responsibility
of the odsexport user to use cell references correctly.
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? Why is this whole standard so terribly inconsistent
and requires [brackets] for cell references in certain cases, but not others?
Why does Excel hide a column just right if table:visibility is set to
collapse but doesn't do the same for rows unless there is a style name set
(even if that style is completely empty)? Who can actually, seriously, work
with this raging dumpster fire?
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.
Acknowledgements
The cute watermelon 16x16 icon is courtesy of Suzana Assets (Fruits Icons - 16x16). Thanks!
License
GNU GPL-3.
Project details
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
File details
Details for the file odsexport-0.0.5.tar.gz.
File metadata
- Download URL: odsexport-0.0.5.tar.gz
- Upload date:
- Size: 29.0 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: twine/6.1.0 CPython/3.13.7
File hashes
| Algorithm | Hash digest | |
|---|---|---|
| SHA256 |
d9393651653dfb450a67a1fc768101b77e6926c87eea25a56d63b346b387e41f
|
|
| MD5 |
782572a8d537026ec26a67077ac8aecd
|
|
| BLAKE2b-256 |
a3fba87cba78abe9cc0e1f07b61db9dd301cec9ae3dac073232ea836b3d7fbdd
|