Je tente de modifier des tableurs ODS existants pour remplir des cellules avec odfpy (paquet pas mis à jour récemment, mais ça a l’air d’être le plus stable et sérieux de PyPI néanmoins ?).
Mon postulat initial était que pour accéder à une cellule, il suffisait de parcourir les éléments du XML dans l’ordre : C5 serait donc la ligne à l’indice 4 (5) puis la colonne 2 (C).
Cette théorie marche bien tant qu’il n’y a pas de cellule fusionnée dans le document. Le cas contraire, ça se complique et je ne comprends plus grand chose.
J’ai fait un test.ods et un notebook ici pour illustrer mon incompréhension. Cela montre que, après des cellules fusionnées (en ligne ou en colonne), les autres cellules subissent un offset, que je ne sais pas expliquer.
C’est un bazooka : il spawn un vrai libreoffice pour éditer le document. Mais c’est maintenu et ça fonctionne. Je ne me souviens pas si j’ai testé odfpy.
Si ma mémoire est bonne j’avais testé odfpy, et j’avais abandonné, mais je ne me souviens pas pourquoi
J’utilise odfpy par habitude historique (je fais pas d’ods, mais des odp). Il a un énorme défaut : sa doc est pas géniale. C’est une lib bas niveau, donc souvent je me suis retrouvé à lire la norme Open Document, ou le XML généré par LibreOffice.
Je suis partiellement fautif, j’ai ajouté il y a quelques années dans odfpy une fonctionnalité très pratique, mais non documentée… Et ça fait des années que je me dis qu’il faut que je la documente…
Faudra aussi que je regarde les autres bibliothèques.