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
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)
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
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)
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")
6. Enregistrez enfin le tableau nouvellement écrit
wbk.save('new_excel.xls')
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 !