Maison > développement back-end > Tutoriel Python > python utilise xlrd et xlwt pour lire, écrire et formater Excel

python utilise xlrd et xlwt pour lire, écrire et formater Excel

高洛峰
Libérer: 2017-02-20 10:48:26
original
1946 Les gens l'ont consulté

Récemment, certains problèmes sont survenus lors de l'utilisation de Python pour traiter des tableaux Excel, j'ai donc pensé à enregistrer la méthode d'implémentation finale et la méthode de résolution de problèmes. Pour votre propre commodité ou pour que chacun puisse s'y référer en cas de besoin, l'article suivant présente principalement les informations pertinentes sur l'utilisation par python de xlrd et xlwt pour lire, écrire et formater Excel. Apprenons ensemble.

Avant-propos

Python utilise principalement les deux bibliothèques xlrd et xlwt pour faire fonctionner Excel, c'est-à-dire que xlrd est une bibliothèque pour lire Excel et xlwt est une bibliothèque pour écrire exceller. Cet article présente principalement l'utilisation de xlrd et xlwt par Python pour lire, écrire et formater Excel. Sans plus tarder, examinons le processus d'implémentation détaillé.

Indiquez # -*- coding:utf-8 -*- dans le script

1 Confirmez que la source Excel existe et utilisez La valeur dans la première colonne de chaque ligne d'un formulaire.


import xlrd, xlwt 
import os 
 
assert os.path.isfile('source_excel.xls'),"There is no timesheet exist. Exit..." 
 
book = xlrd.open_workbook('source_excel.xls') 
sheet=book.sheet_by_index(0) 
 
for rows in range(sheet.nrows): 
 value = sheet.cell(rows,0).value
Copier après la connexion


2. Utilisez xlwt pour écrire les données lues à partir de la table source dans une nouvelle table et définir la largeur et la largeur des lignes. format de tableau. Après avoir fusionné 2 lignes et 8 colonnes de cellules, écrivez le titre et définissez le format sur title_style défini précédemment.

Utilise write_merge.


wbk = xlwt.Workbook(encoding='utf-8') 
sheet_w = wbk.add_sheet('write_after', cell_overwrite_ok=True) 
sheet_w.col(3).width = 5000 
tittle_style = xlwt.easyxf('font: height 300, name SimSun, colour_index red, bold on; align: wrap on, vert centre, horiz center;') 
sheet_w.write_merge(0,2,0,8,u'这是标题',tittle_style)
Copier après la connexion


3 Lorsque vous utilisez des variables globales dans une fonction, assurez-vous d'ajouter global. Sinon, UnboundLocalError:local variable'xxx' referenced before assignment.


check_num = 0 
 
def check_data(sheet): 
 global check_num 
 check_num=check_num+1
Copier après la connexion


4. Écrivez la date et la valeur formatée. Le format de date d'origine lu sur la feuille est le 10/04/2014. Après traitement, seule la date est conservée et transformée en tableau séparé par des virgules et écrite dans un nouvel Excel.


date_arr = [] 
date=sheet.cell(row,2).value.rsplit('/')[-1] 
if date not in date_arr: 
  date_arr.append(date) 
sheet_w.write_merge(row2,row2,6,6,date_num, normal_style) 
sheet_w.write_merge(row2,row2,7,7,','.join(date_arr), normal_style)
Copier après la connexion


5 Lorsque le format de date lu à partir d'Excel est xldate, vous devez utiliser xldate_as_tuple de xlrd pour le traiter dans la date. format. Déterminez d’abord que le ctype de la table est bien xldate avant de démarrer l’opération, sinon une erreur sera signalée. Le format de date peut ensuite être converti en chaîne à l'aide de strftime. Par exemple : date.strftime("%Y-%m-%d-%H")


from datetime import date,datetime 
from xlrd import xldate_as_tuple 
 
if (sheet.cell(rows,3).ctype == 3): 
  num=num+1 
  date_value = xldate_as_tuple(sheet.cell_value(rows,3),book.datemode) 
  date_tmp = date(*date_value[:3]).strftime("%d")
Copier après la connexion


6. Enregistrez enfin le tableau nouvellement écrit


wbk.save('new_excel.xls')
Copier après la connexion


Pour plus d'articles liés à python utilisant xlrd et xlwt pour lire, écrire et formater Excel, veuillez faire attention au site Web PHP chinois !

Étiquettes associées:
source:php.cn
Déclaration de ce site Web
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
Tutoriels populaires
Plus>
Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal