From Newsgroup: comp.lang.tcl
ANNOUNCE: ooxml 1.13 released
=============================
ooxml is a pure Tcl extension for reading and writing ECMA-376 Office
Open XML files: it reads and writes Excel .xlsx spreadsheets and creates
Word .docx documents. Developed by Alexander Schoepe with contributions
by Rolf Ade, Harald Oehlmann and Miguel Ba|#||n, it requires only Tcl
8.6.7+ and tdom.
Highlight of this release: a built-in zip reader based on Tcl's core
zlib command - reading .xlsx and .docx files no longer needs any
additional package.
Why a new release just one day after 1.12? Because when wrapping up 1.12
we had plain forgotten to look at the open tickets. Sorry for that -
1.13 makes up for it: all of them are fixed.
Download / Repository:
https://fossil.sowaswie.de/ooxml
English
-------
New features since 1.12:
* Built-in zip reader: xlsx and docx files are now read with ooxml's own reader based on the zlib command built into Tcl, on all platforms.
Reading needs no external package anymore - no tcllib, no tclvfs, no
Trf. The former backends (Tcl 9 zipfs, tcllib zipfile::decode, tclvfs
vfs::zip >= 1.0.4) remain as automatic fallbacks for archives the
built-in reader cannot handle (ZIP64, encrypted or exotically compressed entries).
Fixes:
* Reading failed with 'invalid command name "zip"' on installations
where tcllib's zipfile::decode chose the decompression path via the Trf extension and Trf was not installed (ticket 0da3bc4b65). With the
built-in reader this class of problems is gone entirely. Thanks to
Torsten Berg for the report.
* activeTab handling (ticket 3933595861): the validation in the write
method compared the zero based tab index against the sheet count as a one-element list. Every valid "view -activetab" value was silently reset
to 0, while the one invalid value slipped through - so deleting a sheet
with arrayDeleteSheet and writing the workbook back via presetstyles/presetsheets could produce a file that Excel reports as
corrupted and offers to repair. activeTab is now clamped to the valid
range, and arrayDeleteSheet keeps the active tab pointing to the same
sheet after the removal.
* presetsheets errored out with 'key "u" not known in dictionary' on
workbooks containing hyperlinks; hyperlinks and their tooltips now
survive the read/preset/write roundtrip.
* ./configure --prefix works now (ticket 1a64a34982): the TEA framework overwrote the exec_prefix with the one recorded in tclConfig.sh whenever --exec-prefix was not given, so the package always installed into the
Tcl tree no matter what --prefix said. A user-given --prefix is
respected now; without options the package still installs into the tree
of the Tcl found by configure. The README describes the install locations.
Build, tests and documentation:
* make publish uploads the release artifacts under their plain names
into the Fossil unversioned space (no more stray uv/ prefix).
* New regression tests for the activeTab handling and the presetsheets hyperlink transfer (tests/xlsx-view.test); the benchmark test now
measures with floating point precision and a real 10 percent tolerance
instead of failing on integer-truncated noise. The suite has grown to
625 tests (616 passed, 9 skipped, 0 failed).
* The dependency documentation (README, man pages, wiki) reflects that
reading needs no additional package anymore.
Deutsch
-------
Neue Features seit 1.12:
* Eingebauter Zip-Reader: xlsx- und docx-Dateien werden jetzt auf allen Plattformen mit ooxmls eigenem Reader auf Basis des in Tcl eingebauten zlib-Kommandos gelesen. Zum Lesen wird kein externes Paket mehr ben||tigt
- kein tcllib, kein tclvfs, kein Trf. Die bisherigen Backends
(Tcl-9-zipfs, tcllib zipfile::decode, tclvfs vfs::zip >= 1.0.4) bleiben
als automatischer Fallback f|+r Archive erhalten, die der eingebaute
Reader nicht verarbeiten kann (ZIP64, verschl|+sselte oder exotisch komprimierte Eintr|nge).
Fehlerbehebungen:
* Das Lesen scheiterte mit 'invalid command name "zip"' auf
Installationen, bei denen tcllibs zipfile::decode den
Dekomprimierungspfad |+ber die Trf-Erweiterung w|nhlte und Trf nicht installiert war (Ticket 0da3bc4b65). Mit dem eingebauten Reader ist
diese Fehlerklasse komplett verschwunden. Dank an Torsten Berg f|+r die Meldung.
* activeTab-Behandlung (Ticket 3933595861): Die Validierung in der write-Methode verglich den nullbasierten Tab-Index mit der Sheet-Anzahl
als Ein-Element-Liste. Jeder g|+ltige "view -activetab"-Wert wurde stillschweigend auf 0 zur|+ckgesetzt, w|nhrend ausgerechnet der eine ung|+ltige Wert durchrutschte - so konnte das L||schen eines Sheets mit arrayDeleteSheet und anschlie|fendes Zur|+ckschreiben |+ber presetstyles/presetsheets eine Datei erzeugen, die Excel als besch|ndigt meldet und zu reparieren anbietet. activeTab wird jetzt auf den g|+ltigen Bereich geklemmt, und arrayDeleteSheet l|nsst den aktiven Tab nach dem L||schen auf demselben Blatt stehen.
* presetsheets brach bei Workbooks mit Hyperlinks mit 'key "u" not known
in dictionary' ab; Hyperlinks samt Tooltips |+berleben jetzt den Lesen/Preset/Schreiben-Roundtrip.
* ./configure --prefix funktioniert jetzt (Ticket 1a64a34982): Das
TEA-Ger|+st |+berschrieb das exec_prefix mit dem aus der tclConfig.sh,
sobald --exec-prefix nicht angegeben war - das Paket landete damit
unabh|nngig von --prefix immer im Tcl-Baum. Ein vom Benutzer angegebenes --prefix wird jetzt respektiert; ohne Optionen installiert das Paket
weiterhin in den Baum des von configure gefundenen Tcl. Das README
beschreibt die Installationspfade.
Build, Tests und Dokumentation:
* make publish l|ndt die Release-Artefakte unter ihren einfachen Namen in
den Fossil-Unversioned-Bereich hoch (kein verirrtes uv/-Pr|nfix mehr).
* Neue Regressionstests f|+r die activeTab-Behandlung und die Hyperlink-|Lbernahme von presetsheets (tests/xlsx-view.test); der Benchmark-Test misst jetzt mit Gleitkomma-Pr|nzision und echter 10-Prozent-Toleranz, statt an ganzzahlig abgeschnittenem Rauschen zu scheitern. Die Suite ist auf 625 Tests gewachsen (616 passed, 9 skipped,
0 failed).
* Die Abh|nngigkeits-Dokumentation (README, Man-Pages, Wiki) spiegelt
wider, dass zum Lesen kein zus|ntzliches Paket mehr n||tig ist.
--- Synchronet 3.22a-Linux NewsLink 1.2