Maison >développement back-end >Tutoriel Python >Comment utiliser Excel dans un environnement Python

Comment utiliser Excel dans un environnement Python

零到壹度
零到壹度original
2018-04-14 10:36:051880parcourir

Le contenu partagé dans cet article explique comment utiliser Excel dans l'environnement python. Il a une certaine valeur de référence. Les amis dans le besoin peuvent s'y référer

1. les bibliothèques

gèrent les tableaux Excel en python. Les bibliothèques couramment utilisées incluent les tableaux xlrd (lire Excel), les tableaux xlwt (écrire Excel), openpyxl (peut lire et écrire des tableaux Excel), etc. xlrd est plus efficace qu'openpyxl lors de la lecture de tableaux Excel contenant des données volumineuses, j'ai donc utilisé les deux bibliothèques xlrd et xlwt lors de l'écriture de scripts. Aucun de ces fichiers de bibliothèque n'offre la fonction de modifier le contenu des tableaux Excel existants. Généralement, le contenu du fichier Excel original ne peut être lu, traité, puis écrit dans un nouveau fichier Excel.

Vous pouvez utiliser pip search excel pour vérifier et vous pouvez voir plus de packages de développement.

2. Questions fréquemment posées

Lors de l'utilisation de Python pour traiter des tableaux Excel, j'ai trouvé deux problèmes plus difficiles : l'encodage Unicode et l'heure enregistrée dans Excel.

Étant donné que le codage de caractères par défaut de Python est Unicode, lors de l'impression de caractères chinois lus à partir d'Excel ou de la lecture de tableaux ou de feuilles Excel avec des noms chinois, le programme affiche l'erreur UnicodeEncodeError : le codec 'ascii' ne peut pas encoder les caractères dans position 0-2 : ordinal hors plage (128). En effet, sous Windows, le chinois utilise la méthode de codage gb2312 et Python la traite comme unicode et ascii pour la décoder, c'est pourquoi il signale une erreur. Utilisez VAR.encode('gb2312') pour résoudre le problème de l'impression du chinois. (Il est étrange que parfois les résultats puissent être imprimés, mais ce qui est affiché n'est pas du chinois, mais un tas de codes.) Si vous souhaitez lire les données d'un tableau Excel avec un nom de fichier chinois, vous pouvez ajouter « u » avant le nom du fichier pour indiquer que le nom du fichier chinois est codé en Unicode.

Dans Excel, l'heure et la date sont représentées par des nombres à virgule flottante. On peut voir que lorsque la cellule du « 20 mars 2013 » est exprimée au format « normal », le contenu devient « 41353 » ; lorsque le format de cellule est modifié à ce jour, le contenu devient « 20 mars 2013 ». Après avoir utilisé xlrd pour lire la date et l'heure dans Excel, un nombre à virgule flottante est obtenu. Peu importe si la date et l'heure écrites dans Excel sont un nombre à virgule flottante. Il vous suffit de modifier la représentation du tableau en date et heure pour obtenir la représentation normale. Dans Excel, utilisez le nombre à virgule flottante 1 pour représenter le 31 décembre 1899.

3. Fonctions communes

Ce qui suit présente principalement les fonctions liées à la date dans xlrd, xlwt et datetime.

import xlrdimport xlwtfrom datetimedef testXlrd(filename):
    book=xlrd.open_workbook(filename)
    sh=book.sheet_by_index(0)    print "Worksheet name(s): ",book.sheet_names()[0]    print 'book.nsheets',book.nsheets    print 'sh.name:',sh.name,'sh.nrows:',sh.nrows,'sh.ncols:',sh.ncols    print 'A1:',sh.cell_value(rowx=0,colx=1)    #如果A3的内容为中文
    print 'A2:',sh.cell_value(0,2).encode('gb2312')def testXlwt(filename):
    book=xlwt.Workbook()
    sheet1=book.add_sheet('hello')
    book.add_sheet('word')
    sheet1.write(0,0,'hello')
    sheet1.write(0,1,'world')
    row1 = sheet1.row(1)
    row1.write(0,'A2')
    row1.write(1,'B2')

    sheet1.col(0).width = 10000

    sheet2 = book.get_sheet(1)
    sheet2.row(0).write(0,'Sheet 2 A1')
    sheet2.row(0).write(1,'Sheet 2 B1')
    sheet2.flush_row_data()

    sheet2.write(1,0,'Sheet 2 A3')
    sheet2.col(0).width = 5000
    sheet2.col(0).hidden = True

    book.save(filename)if __name__=='__main__':
    testXlrd(u'你好。xls')
    testXlwt('helloWord.xls')
    base=datetime.date(1899,12,31).toordinal()
    tmp=datetime.date(2013,07,16).toordinal()    print datetime.date.fromordinal(tmp+base-1).weekday()

Recommandations associées :

Utiliser Python pour traiter les fichiers Excel

Modules Python pour le traitement d'Excel

Comparaison de différents modules Excel en python

Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Le contenu de cet article est volontairement contribué par les internautes et les droits d'auteur appartiennent à l'auteur original. Ce site n'assume aucune responsabilité légale correspondante. Si vous trouvez un contenu suspecté de plagiat ou de contrefaçon, veuillez contacter admin@php.cn