Récemment, j'ai vu plusieurs personnes du groupe poser des questions sur xlwt et wlrd. Comment dois-je le dire si Office 2007 vient de sortir et que tout le monde n'est pas habitué à utiliser des fichiers xlsx. , c'est compréhensible. Cela fait 10 ans. Même si je n'ai pas évolué vers Office 2016, j'utilise toujours Office 2003. Cela n'a pas de sens. Quelqu'un peut-il utiliser xlsx pour l'enregistrer au format xls ? —— Faire délibérément quelques étapes supplémentaires. Quel est le but ? Pour la compatibilité ? Compatible avec l'ancien office2003 ? De plus, comme nous utilisons Python pour faire fonctionner Excel, nous devons toujours enregistrer le fichier manuellement. Est-ce une idée folle ?
Donc, je pense toujours que nous devrions abandonner le xls et nous transformer en xlsx. C'est pourquoi cet article est écrit : xlwt et wlrd ne peuvent lire et écrire que des fichiers xls, mais ne peuvent pas utiliser de fichiers xlsx.
Solution : openpyxl. Il s'agit d'une bibliothèque très simple qui peut être utilisée en quelques minutes. L'installation est très simple. pip install openpyxl peut se faire en une seule étape. Je parlerai principalement du fonctionnement d'Excel. Bien sûr, avec toutes les absurdités mentionnées ci-dessus, les étudiants peuvent probablement deviner qu'openpyxl ne peut gérer que les fichiers xlsx mais pas les fichiers xls.
1. Concepts de base
Dans openpyxl, trois concepts sont principalement utilisés : Classeurs, Feuilles et Cellules. Workbook est une feuille de calcul Excel ; Sheet est une page de tableau dans la feuille de calcul ; Cell est une cellule simple. openpyxl s'articule autour de ces trois concepts. Indépendamment de la lecture et de l'écriture, il s'agit de « trois choses » : ouvrir le classeur, localiser la feuille et utiliser la cellule. Ci-dessous, nous présentons plusieurs méthodes courantes respectivement pour la lecture et l'écriture.
2. Lire xlsx
Afin de faire l'expérience, j'ai préparé à l'avance un document Excel, qui comporte trois pages : Feuille1, Feuille2 et Feuille3. le contenu suivant est renseigné :
Utilisez d'abord
from openpyxl import load_workbook
pour importer la bibliothèque
wb = load_workbook("template.xlsx")
pour ouvrir un fichier xlsx
print(wb.sheetnames) # ['Sheet1', 'Sheet2', 'Sheet3']
Vous pouvez voir quelles pages de feuille se trouvent dans l'Excel ouvert
sheet = wb.get_sheet_by_name("Sheet3")
Après avoir lu la page de feuille spécifiée, la feuille devient magique et contient le contenu souhaité. tout ici. Par exemple :
print(sheet["C"]) # (<Cell Sheet3.C1>, <Cell Sheet3.C2>, <Cell Sheet3.C3>, <Cell Sheet3.C4>, <Cell Sheet3.C5>, <Cell Sheet3.C6>, <Cell Sheet3.C7>, <Cell Sheet3.C8>, <Cell Sheet3.C9>, <Cell Sheet3.C10>) <-第C列 print(sheet["4"]) # (<Cell Sheet3.A4>, <Cell Sheet3.B4>, <Cell Sheet3.C4>, <Cell Sheet3.D4>, <Cell Sheet3.E4>) <-第4行 print(sheet["C4"].value) # c4 <-第C4格的值 print(sheet.max_row) # 10 <-最大行数 print(sheet.max_column) # 5 <-最大列数 for i in sheet["C"]: print(i.value, end=" ") # c1 c2 c3 c4 c5 c6 c7 c8 c9 c10 <-C列中的所有值
écrit dans xlsx
créez d'abord une feuille de calcul avec
from openpyxl import Workbook wb = Workbook()
, puis recherchez
sheet = wb.active
Feuille active. La page de feuille par défaut d'une feuille Excel vide s'appelle Feuille. Si vous souhaitez modifier le nom, vous pouvez directement attribuer une valeur à l'attribut titre.
sheet.title = "New Shit"
Cet attribut est lisible et inscriptible. Bien entendu, cela ne s'applique qu'à la page active actuelle. Pour les autres pages, vous pouvez utiliser create_sheet et remove_sheet pour les ajouter et les supprimer.
Il est relativement simple d'écrire du contenu dans la page de la feuille, tout comme le lire ci-dessus,
sheet['C3'] = 'Hello world!' for i in range(10): sheet["A%d" % (i+1)].value = i + 1
Nous pouvons également effectuer des opérations sophistiquées, comme écrire des formules :
sheet["E1"].value = "=SUM(A:A)"
Enfin n'oubliez pas de sauvegarder
wb.save('保存一个新的excel.xlsx')
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!