[Résolu][Python] Addin plages de cellules dimension 2

Discussions et questions sur tout ce qui concerne la programmation tous langages et tous modules confondus.

Modérateur : Vilains modOOs

Règles du forum
:alerte: Balisage obligatoire dans cette section !
Aidez-nous à vous aider au mieux en balisant correctement votre question : reportez-vous sur les règles de cette section avant de poster !
Avatar de l’utilisateur
ddorange
Membre hOOnoraire
Membre hOOnoraire
Messages : 121
Inscription : 23 déc. 2015 18:49
Localisation : Annecy

[Résolu][Python] Addin plages de cellules dimension 2

Message par ddorange »

Bonjour,
Tout d'abord un grand merci à Hubert Lambert pour son tutoriel "Construire un addin (avec Python)". Ici https://forum.openoffice.org/fr/forum/v ... 29&t=52388
J'arrive à manipuler sans problème les plages de cellules de dimension 1 mais je bloque pour obtenir une plage de dimension 2 ou matrice carrée.
Prenons la fonction SCINDER définie par Hubert.

Le fichier Idl contient

Code : Tout sélectionner

sequence< sequence< string > > pysplit(
            [in] string basestring,
            [in] any separator
            );
Le fichier Python d'implémentation contient

Code : Tout sélectionner

def pysplit(self, basestring, separator):
        if separator == "":
            return ((basestring,),)
        else:
            r = basestring.split(separator)
            return tuple(zip(r))
Mon texte à scinder : "mes vaches sont dans le pré"
Ma question que faut-il modifier pour obtenir le résultat sur une plage 3 colonnes 2 lignes ?
Je me dis que cela doit se jouer sur les lignes :
sequence< sequence< string > >
et
return tuple(zip(r))

Merci d'avance pour vos réponses.
Dernière modification par ddorange le 07 juil. 2021 17:58, modifié 1 fois.
LibreOffice 24.2 et OpenOffice 4.1.15 sous Ubuntu 23.10, Windows 7, Windows 10, MacOs Sonoma
Avatar de l’utilisateur
ddorange
Membre hOOnoraire
Membre hOOnoraire
Messages : 121
Inscription : 23 déc. 2015 18:49
Localisation : Annecy

(Résolu][Python] Addin plages de cellules dimension 2

Message par ddorange »

Bonjour,
J'ai procédé par tâtonnement et j'ai trouvé une solution :
Il suffit de retourner une liste de liste.
Par exemple return [[1,2], [3,4], [5,6], [7,8]] donne la matrice 4 x 2 composée des lignes (1,2), (3,4), (4,5) et (5,6).
Pour moi c'est donc résolu.
Peut-être Hubert pourrait-il le mettre en complément dans son tutoriel ?

Bonne soirée à tous.
LibreOffice 24.2 et OpenOffice 4.1.15 sous Ubuntu 23.10, Windows 7, Windows 10, MacOs Sonoma