Maison >développement back-end >Tutoriel Python >Comment lire et écrire des fichiers Excel en python
Il existe de nombreuses façons de lire et d'écrire Excel en python. Différents modules ont des méthodes de lecture et d'écriture légèrement différentes :
Utilisez xlrd et xlwt pour lire et écrire Excel ;
Utilisez openpyxl pour lire et écrire Excel ;
Utilisez pandas pour lire et écrire Excel ;
Pour faciliter la démonstration, j'ai créé un nouveau fichier data.xlsx ici, la première feuille de calcul Le contenu de la zone sheet1 "A1:F5" est le suivant, utilisé pour tester le code de lecture d'Excel :
1. Utilisez xlrd et xlwt pour lire et écrire Excel (xlwt ne prend pas en charge xlsx)
Tout d'abord, installez les modules tiers xlrd et xlwt Entrez simplement les commandes "pip install xlrd" et "pip install xlwt" directement, comme suit (cmd→CD. →c:pythonscripts) :
1. xlrd lit Excel :
import xlrd book = xlrd.open_workbook('data.xlsx') sheet1 = book.sheets()[0] nrows = sheet1.nrows print('表格总行数',nrows) ncols = sheet1.ncols print('表格总列数',ncols) row3_values = sheet1.row_values(2) print('第3行值',row3_values) col3_values = sheet1.col_values(2) print('第3列值',col3_values) cell_3_3 = sheet1.cell(2,2).value print('第3行第3列的单元格的值:',cell_3_3)
Résultat d'exécution :
表格总行数 5 表格总列数 5 第3行值 ['3A', '3B', '3C', '3D', '3F'] 第3列值 ['1C', '2C', '3C', '4C', '5C'] 第3行第3列的单元格的值: 3C
2. écrit Excel
Le code principal est le suivant :
workbook = xlwt.Workbook() worksheet = workbook.add_sheet('test') worksheet.write(0,0,'A1data') workbook.save('excelwrite.xls')
Une fois le programme exécuté, créez un nouveau classeur excelwrite.xls et insérez la feuille de calcul de texte. Le contenu de A1 est A1data.
2. Utilisez openpyxl pour lire et écrire Excel. Notez que cela ne peut être que le type xlsx d'Excel
Pour installer, entrez simplement la commande "pip install openpyxl" et l'installation se déroulera. sera bientôt terminé.
Lire Excel :
import openpyxl workbook = openpyxl.load_workbook('data.xlsx') worksheet = workbook.get_sheet_by_name('Sheet1') row3=[item.value for item in list(worksheet.rows)[2]] print('第3行值',row3) col3=[item.value for item in list(worksheet.columns)[2]] print('第3行值',col3) cell_2_3=worksheet.cell(row=2,column=3).value print('第2行第3列值',cell_2_3) max_row=worksheet.max_row print('最大行',max_row)
Exécuter le résultat :
第3行值 ['3A', '3B', '3C', '3D', '3F'] 第3行值 ['1C', '2C', '3C', '4C', '5C'] 第2行第3列值 2C 最大行 5
Écrire Excel :
import openpyxl workbook = openpyxl.Workbook() sheet=workbook.active sheet['A1']='hi,wwu' workbook.save('new.xlsx')
Après avoir exécuté le programme, créez un nouveau classeur New.xls et insérez la feuille de calcul, le contenu de A1 est salut, wwu.
3. Utilisez des pandas pour lire Excel
Le nom de Pandas vient des données de panel et de l'analyse des données Python.
Tout d'abord, vous devez installer le module pandas. Relativement parlant, l'installation du module pandas est plus compliquée.
S'il y a une erreur après l'installation de pip install pandas, vous pouvez envisager d'installer la version précédente : pip install pandas==0.22
pandas est un package de traitement de données qui fournit lui-même de nombreuses fonctions de lecture de fichiers , tels que read_csv (lire des fichiers csv), read_excel (lire des fichiers Excel), etc., peuvent lire des fichiers avec une seule ligne de code.
Lire Excel :
import pandas as pd df = pd.read_excel(r'data.xlsx',sheetname=0) print(df.head())
Résultat d'exécution :
1A 1B 1C 1D 1F 0 2A 2B 2C 2D 2F 1 3A 3B 3C 3D 3F 2 4A 4B 4C 4D 4F 3 5A 5B 5C 5D 5F
Écrire Excel :
from pandas import DataFrame data={ 'name':['张三','李四','王五'], 'age':[11,12,13] 'sex':'男','女','男'] } df=DataFrame(data) df.to_excel('new.xlsx")
Une fois le programme exécuté, Le nouveau fichier.xlsx sera créé (ou remplacé) et le contenu sera enregistré dans la zone A1:D4 de la feuille 1 comme suit :
Pour en savoir plus sur Python articles techniques, veuillez visiter la colonne Tutoriel Python pour apprendre !
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!