Comment utiliser Python pour créer des tableaux Excel : utilisez d'abord le module openpyxl pour ouvrir un document Excel, spécifiez les informations de cellule des lignes et des colonnes, puis appelez [wb.sheetnames] et [wb.active] pour obtenir les détails du classeur ; Enfin, utilisez la lecture d'index pour obtenir l'objet Cell.
1 tableau python et Excel
Excel est un tableur populaire et puissant dans l'environnement Windows. Le module openpyxl permet aux programmes Python de lire et de modifier des fichiers de feuille de calcul Excel
1) Définition de base du document Excel
- classeur (classeur)
- feuille de calcul (feuille)
- feuille active (feuille active)
- ligne : 1,2,3,4,5,6……..
- colonne : A,B,C,D……..
- Cellule (cellule) : B1, C1
2) Il existe de nombreux modules python pour les opérations sur les tables Excel. Le module openpyxl est sélectionné ici
, mais le module openpyxl doit être installé
pip install openpyxl
Utilisez la commande ci-dessus pour installer le module openpyxl
Il s'agit du tableau sélectionné pour l'opération
1> Ouvrir un document Excel
import openpyxl# 1. 打开一个excel文档, class 'openpyxl.workbook.workbook.Workbook'实例化出来的对象wb = openpyxl.load_workbook('Book.xlsx') print(wb, type(wb))# 获取当前工作薄里所有的工作表,和正在使用的表;print(wb.sheetnames) print(wb.active)
La sortie est un objet
2> la feuille de calcul à utiliser
# 2.选择要操作的工作表,返回工作表对象sheet=wb['Sheet1'] #获取工作表的名称print(sheet.title)
3> Spécifiez les informations de cellule de la ligne et de la colonne spécifiées
# 3. 返回指定行指定列的单元格信息print(sheet.cell(row=1, column=2).value) cell = sheet['B1']print(cell)print(cell.row, cell.column, cell.value)
4> lignes et colonnes de la feuille de calcul
# 4. 获取工作表中行和列的最大值print(sheet.max_column)print(sheet.max_row) sheet.title = '学生信息'print(sheet.title)
5> Accéder à toutes les informations de la cellule
# 5. 访问单元格的所有信息print(sheet.rows) # 返回一个生成器, 包含文件的每一行内容, 可以通过便利访问. # 循环遍历每一行for row in sheet.rows: # 循环遍历每一个单元格for cell in row: # 获取单元格的内容 print(cell.value, end=',') print()
6> 🎜>
Ainsi, le fonctionnement des tableaux Excel peut être résumé en détail comme suit : 1. Importez le module openpyxl.
2. Appelez la fonction openpyxl.load_workbook().
3. Obtenez l'objet Workbook.
4. Appelez wb.sheetnames et wb.active pour obtenir les détails du classeur.
5. Obtenez l'objet Feuille de calcul.
6. Utilisez la méthode cell() de l'index ou de la feuille de calcul avec les paramètres de mot-clé de ligne et de colonne.
7. Obtenez l'objet Cell.
8. Lire l'attribut value de l'objet Cell
2 Exemple simple Excel
- Définir une fonction, readwb(wbname, sheetname=None) - Si l'utilisateur le précise sheetname Ouvrez la feuille de calcul spécifiée par l'utilisateur. Si elle n'est pas spécifiée, ouvrez la feuille active
- Triez selon le prix du produit (du petit au grand) et enregistrez-la dans le fichier : Prix du produit : Produit ; quantité
- Toutes les informations et enregistrez-les dans la base de données
#6.保存修改信息wb.save(filename='Boom.xlsx')
Chaque ligne représente une vente distincte. Les colonnes sont le type de produit vendu (A), le prix par livre du produit (B), le nombre de livres vendues (C) et le revenu total de la vente. La colonne TOTAL est configurée comme une formule Excel qui multiplie le coût par livre par le nombre de livres vendues,
et arrondit le résultat au centime le plus proche. Avec cette formule, si la colonne B ou C change, les cellules de la colonne TOTAL seront automatiquement mises à jour
Les prix qui doivent être mis à jour sont les suivants :
Ail 3,07 <🎜. >Citron 1.27
现在假设 Garlic、 Celery 和 Lemons 的价格输入的不正确。这让你面对一项无聊
的任务:遍历这个电子表格中的几千行,更新所有 garlic、celery 和 lemon 行中每磅
的价格。你不能简单地对价格查找替换,因为可能有其他的产品价格一样,你不希
望错误地“更正”。对于几千行数据,手工操作可能要几小时
下载文件 : produceSales.xlsx
原文件打开情况:
1> 首先需要打开电子表格文件
2> 然后查找每一行内容,检查列 A (即列表的第一个索引)的值是不是 Celery、Garlic 或 Lemon
3> 如果是,更新列 B 中的价格(即列表第二个索引)
4> 最后将该表格保存为一个新的文件
import osimport openpyxldef readwb(wbname, sheetname=None): # 打开工作薄 wb = openpyxl.load_workbook(wbname) # 获取要操作的工作表 if not sheetname: sheet = wb.active else: sheet = wb[sheetname] # 获取商品信息保存到列表中 all_info = [] for row in sheet.rows: child = [cell.value for cell in row] all_info.append(child) if child[0] == 'Celery': child[1] = 1.19 if child[0] == 'Garlic': child[1] = 3.07 if child[0] == 'Lemon': child[1] = 1.27 return all_infodef save_to_excel(data, wbname, sheetname='sheet1'): """ 将信息保存到excel表中; """ print("写入Excel[%s]中......." % (wbname)) # 打开excel表, 如果文件不存在, 自己实例化一个WorkBook对象 wb = openpyxl.Workbook() # 修改当前工作表的名称 sheet = wb.active # 修改工作表的名称 sheet.title = sheetname for row, item in enumerate(data): # 0 [' BOOK', 50, 3] for column, cellValue in enumerate(item): # 0 ' BOOK' sheet.cell(row=row + 1, column=column + 1, value=cellValue) # ** 往单元格写入内容 # sheet.cell['B1'].value = "value" # sheet.cell(row=1, column=2, value="value") # 保存写入的信息 wb.save(filename=wbname) print("写入成功!") data = readwb(wbname='/home/kiosk/Desktop/day17/produceSales.xlsx') save_to_excel(data, wbname='new_Sales.xlsx', sheetname="商品信息")
表示写入新数据成功
这是更改后的保存的新表格
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!