Comments on: Lire et écrire dans un fichier XLS avec Python http://sametmax.com/lire-et-ecrire-dans-un-fichier-xls/ Du code, du cul Mon, 28 Oct 2019 11:54:55 +0000 hourly 1 https://wordpress.org/?v=4.9.7 By: Sam http://sametmax.com/lire-et-ecrire-dans-un-fichier-xls/#comment-167508 Mon, 16 Nov 2015 18:55:10 +0000 http://sametmax.com/?p=5793#comment-167508 Ouai erreur de copier/ coller :)

]]>
By: dad http://sametmax.com/lire-et-ecrire-dans-un-fichier-xls/#comment-167425 Mon, 16 Nov 2015 09:40:26 +0000 http://sametmax.com/?p=5793#comment-167425 Merci . Par contre workbook.save(path) dans le 1er notebook marche pas :

NameError: name ‘workbook’ is not defined

Apparemment on a pas besoin.

Et vraiment génial ton add_sheet(“OCB”) ;)

]]>
By: Sam http://sametmax.com/lire-et-ecrire-dans-un-fichier-xls/#comment-8467 Fri, 26 Apr 2013 06:26:46 +0000 http://sametmax.com/?p=5793#comment-8467 Très sympas tout ça.

]]>
By: kage http://sametmax.com/lire-et-ecrire-dans-un-fichier-xls/#comment-8460 Thu, 25 Apr 2013 17:17:29 +0000 http://sametmax.com/?p=5793#comment-8460 Cette lib m’a bien sauvée today elle en plus très facile à prendre en main, création d’un fichier xls en 2minutes chrono!

]]>
By: Poulet 2.0 http://sametmax.com/lire-et-ecrire-dans-un-fichier-xls/#comment-8427 Wed, 24 Apr 2013 15:16:20 +0000 http://sametmax.com/?p=5793#comment-8427 @Fred: je peux me tromper (lourdement, j’ai l’habitude), mais PyExcelerator n’est plus maintenu. Les légendes numériques racontent que xlrd/xlwt a demarré comme un fork de PyExcelerator, il est maintenu et la transition devrait se faire en douceur.

]]>
By: Sam http://sametmax.com/lire-et-ecrire-dans-un-fichier-xls/#comment-8229 Sat, 20 Apr 2013 20:11:47 +0000 http://sametmax.com/?p=5793#comment-8229 @Guts: a priori, je dirais que unicode(s) devrait être s.decode(‘un_encoding’) et qu’il faudrait le connaitre (et éviter le try / except généraliste qui cache surement un bug d’encoding du à la méconnaissance du format). Sinon, comme il n’y a pas le code de la sauvegarde dans posgres, si le code de récupération de la donnée depuis posgress (deux autres points ou ça peut foirer), on ne peut pas savoir. Un article sur l’encoding en Python arrive demain, si tu te sens d’attendre.

]]>
By: Fred http://sametmax.com/lire-et-ecrire-dans-un-fichier-xls/#comment-8226 Sat, 20 Apr 2013 18:45:28 +0000 http://sametmax.com/?p=5793#comment-8226 Mouais. Moi j’utilise pyexcelerator (http://pyexcelerator.sourceforge.net). Je ne sais pas s’il est mieux ou moins bien mais comme j’étais seul quand il m’a fallu me dém… pour crer de l’Excel ben c’est lui que j’ai choisi…

]]>
By: Guts http://sametmax.com/lire-et-ecrire-dans-un-fichier-xls/#comment-8224 Sat, 20 Apr 2013 17:03:50 +0000 http://sametmax.com/?p=5793#comment-8224 Salut,

@sil : +1000 sur windows tu peux ajouter 5 ans d’études supplémentaires

@Poulet 2.0 : il y a également Python-docx qui se base sur le puissant lxml.

L’API COM est réellement une autoflagellation à l’acide pour faire le moindre truc.

ceci étant dit, je rencontre actuellement un souci sur une fonction d’export d’un xls vers csv, au niveau de l’encoding. L’idée étant d’exporter un fichier d’adresses (hispanophones) au format .xls en entrée vers du .csv afin de pouvoir l’importer dans postgresql (9.2) dont l’encoding de la table est nécessairement fixé sur LATIN1. Les caractères spéciaux, correctement encodés dans le excel finissent par apparaître merdiquement dans la table pg en sortie. Et a priori, ça chie dans la colle au moment de l’export en csv, malgré un encodage à la volée.

Ex d’adresse :
dans le excel : Av. Carlos Alberto Izaguirre Nº 813
dans pg : “Av. Carlos Alberto Izaguirre Nº 813”

Ci-dessous la fonction d’export :

import csv, xlrd, xlwt
    def xls2csv(self, xlspath):
        u""" export an Excel 2003 file (.xls) to a CSV file
        see: http://stackoverflow.com/a/10803229 """
        with xlrd.open_workbook(xlspath) as book:
            sheet = book.sheet_by_index(0)
            with open('temp/' + path.splitext(path.basename(xlspath))[0] + '.csv', 'wb') as f:
                out = csv.writer(f, delimiter='\t', dialect = 'excel')
                for row in range(sheet.nrows):
                    try:
                        out.writerow(sheet.row_values(row))
                    except:
                         out.writerow([unicode(s).encode("utf-8") for s in sheet.row_values(row)])

        # End of function
        return book, f

J’ai bien essayé d’utiliser le paramètre encoding override mais sans succès… Une ch’tite idée dans l’assistance ?

]]>
By: panchua http://sametmax.com/lire-et-ecrire-dans-un-fichier-xls/#comment-8189 Fri, 19 Apr 2013 07:40:11 +0000 http://sametmax.com/?p=5793#comment-8189 Pour écrire du xls ou xlsx, tablib fait du très bon boulot (xlwt en backend). Par contre il n’a pas l’air de pouvoir les lire.

]]>
By: Poulet 2.0 http://sametmax.com/lire-et-ecrire-dans-un-fichier-xls/#comment-8186 Fri, 19 Apr 2013 07:01:11 +0000 http://sametmax.com/?p=5793#comment-8186 Il manque à cet article un paragraphe sur le format “.xlsx” (le format “ouvert” de Microsoft):
Depuis récemment (?), le module xlrd sait lire un fichier Excel 2010, mais son jumeau xlwt ne sait pas encore écrire dans ce format.
Pour cà, il existe la librairie openpyxl, le peu que j’en ai testé c’est qu’elle est moins réactive pour lire un fichier (la faute au format, XML compressé), mais elle semble stable et complète.

La librairie Pandas utilise d’ailleurs ces 3 modules en interne selon le format Excel utilisé.

]]>