IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Bibliothèques tierces Python Discussion :

écrire dans un fichier ods


Sujet :

Bibliothèques tierces Python

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Homme Profil pro
    Déssinateur
    Inscrit en
    Mai 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Déssinateur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Par défaut écrire dans un fichier ods
    Bonjour à tous,

    Etant débutant, Je voudrais faire un petit programme qui écrit dans un fichier ods (libreOffice Calc).

    J'utilise ezodf comme bibliothèque, je suis sous W7 avec python 3.10.2.

    J'ai fait quelque test de lecture qui ce sont bien passés, mais lorsque je veux écrire, j'ai un message d'erreur.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    Traceback (most recent call last):
      File "C:\Users\wchan\Dropbox\Geny\ouverture et lecture ods.py", line 22, in <module>
        sheet[0, 9].set_value("test d'écriture")
      File "C:\Users\wchan\AppData\Local\Programs\Python\Python310\lib\site-packages\ezodf\table.py", line 51, in __getitem__
        return self.get_cell(get_cell_index(key))
      File "C:\Users\wchan\AppData\Local\Programs\Python\Python310\lib\site-packages\ezodf\table.py", line 110, in get_cell
        return wrap(self._cellmatrix.get_cell(pos))
      File "C:\Users\wchan\AppData\Local\Programs\Python\Python310\lib\site-packages\ezodf\tablerowcontroller.py", line 40, in get_cell
        return self._rows[row][col]
      File "src\lxml\etree.pyx", line 1176, in lxml.etree._Element.__getitem__
    IndexError: list index out of range
    ci-dessous le code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    import ezodf
     
    mon_fichier = ezodf.opendoc('mon_fichier.ods')
    sheets = mon_fichier.sheets
    nom = sheets[0].name
    print("nom de la 1ere feuille :", nom)
     
    count = len(sheets)
    print("nombre de feuille :",count)
     
    rowcount = sheets[0].nrows()
    print("nombre de lignes de la feuille 1 :", rowcount)
     
    colcount = sheets[0].ncols()
    print("nombre de colonnes de la feuille 1 :", colcount)
     
    a1 = sheets[0][0, 0].value
    print("valeur de la cellule A1 de la feuille 1 :", a1)
     
    # test d'écriture
    sheet = mon_fichier.sheets[0]
    sheet[0, 9].set_value("test d'écriture")
     
     
    rowcount = sheet.nrows()
    print("nombre de lignes de la feuille 1 :", rowcount)
     
    mon_fichier.save()
    Si quelqu'un pouvait m'aiguiller sur la solution, je vous en remercie d'avance.
    Fichiers attachés Fichiers attachés

  2. #2
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Salut,

    Citation Envoyé par williams63 Voir le message
    mais lorsque je veux écrire, j'ai un message d'erreur.
    Le message d'erreur dit que [0, 9] est en dehors des limites du tableau défini, limites que vous devez avoir visualisé en affichant le retour de .ncols() et .nrows().
    A priori, il faut sans doute changer les dimensions du tableau avant de pouvoir écrire "au delà".

    Citation Envoyé par williams63 Voir le message
    Etant débutant, Je voudrais faire un petit programme qui écrit dans un fichier ods (libreOffice Calc).
    IndexError est le message d'erreur qu'on va rencontrer dès qu'on essaie de faire des exercices sur des listes. Il devrait vous être familier...
    Et ouvrir la documentation d'ezodf pour comprendre ce qu'on peut faire avec demande de connaître un peu la programmation Python pour arriver à la lire.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

  3. #3
    Membre averti
    Homme Profil pro
    Déssinateur
    Inscrit en
    Mai 2014
    Messages
    14
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Puy de Dôme (Auvergne)

    Informations professionnelles :
    Activité : Déssinateur
    Secteur : Bâtiment Travaux Publics

    Informations forums :
    Inscription : Mai 2014
    Messages : 14
    Par défaut
    Merci de ta réponse,

    J'avais bien compris qu'il y avait une limite, mais je ne comprenais pas pourquoi et d’où venait cette limite.
    j'avais bien regardé plusieurs exemple de programme et lu des doc mais mon anglais est plus que mauvais, alors l'anglais technique c’est compliqué pour moi.
    De plus je me suis bêtement dit " pourquoi une limite alors que dans calc je peux ajouter autant de lignes que je veux"

    Toutefois je te remercie pour la doc plus complète que celle que j'avais trouvé et tes remarques qui m'ont bien aidé.

    La prochaine étape est d'ajouter différent type de données (monétaire et temps) puis de le faire a partir d'une liste.

    Je reviendrais sur le forum si besoin.

    Encore merci

  4. #4
    Expert éminent
    Homme Profil pro
    Architecte technique retraité
    Inscrit en
    Juin 2008
    Messages
    21 762
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Manche (Basse Normandie)

    Informations professionnelles :
    Activité : Architecte technique retraité
    Secteur : Industrie

    Informations forums :
    Inscription : Juin 2008
    Messages : 21 762
    Par défaut
    Salut,

    Citation Envoyé par williams63 Voir le message
    De plus je me suis bêtement dit " pourquoi une limite alors que dans calc je peux ajouter autant de lignes que je veux"
    Ce n'est pas bête... mais quand on passe de l'autre côté du miroir (programmer et plus simplement utiliser), on réalise qu'il y a du boulot pour respecter nombre de contraintes tout en offrant une interface conviviale à l'utilisateur.

    Dans ce cas particulier, il faut imaginer ce que peut être une feuille de calcul. A la base, c'est un tableau dont les dimensions ne sont pas infinies (car il y a des limites physiques...) et dont le contenu se limite aux données de l'utilisateur (et potentiellement un tas de cases inoccupées).

    Citation Envoyé par williams63 Voir le message
    j'avais bien regardé plusieurs exemple de programme et lu des doc mais mon anglais est plus que mauvais, alors l'anglais technique c’est compliqué pour moi.
    Débuter avec les tutos (français) permet d'avoir un minimum de bagage technique qui permet de s'y retrouver.

    - W
    Architectures post-modernes.
    Python sur DVP c'est aussi des FAQs, des cours et tutoriels

Discussions similaires

  1. Créer et écrire dans un fichier.txt
    Par Furius dans le forum VBScript
    Réponses: 11
    Dernier message: 16/05/2016, 12h27
  2. Ouvrir et écrire dans un fichier .txt en T-SQL
    Par joul's dans le forum MS SQL Server
    Réponses: 11
    Dernier message: 27/10/2008, 21h04
  3. [FTP] Lire et écrire dans un fichier
    Par dj-julio dans le forum Langage
    Réponses: 49
    Dernier message: 12/01/2006, 11h59
  4. [Rech. Comp.] Lire et écrire dans des fichiers XML
    Par Rodrigue dans le forum C++Builder
    Réponses: 4
    Dernier message: 26/08/2005, 20h48
  5. [JAR] Comment écrire dans un fichier properties dans un jar
    Par Alec6 dans le forum Entrée/Sortie
    Réponses: 3
    Dernier message: 05/10/2004, 15h16

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo