Maison >développement back-end >Tutoriel Python >Opérations Python pour les tableaux Excel

Opérations Python pour les tableaux Excel

卡哇伊
卡哇伊original
2020-07-10 11:20:406831parcourir

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.

Opérations Python pour les tableaux Excel

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
Opérations Python pour les tableaux Excel
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)

Opérations Python pour les tableaux Excel
La sortie est un objet
2> la feuille de calcul à utiliser

# 2.选择要操作的工作表,返回工作表对象sheet=wb['Sheet1']
#获取工作表的名称print(sheet.title)

Opérations Python pour les tableaux Excel
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)

Opérations Python pour les tableaux Excel
4> lignes et colonnes de la feuille de calcul

# 4. 获取工作表中行和列的最大值print(sheet.max_column)print(sheet.max_row)
sheet.title = '学生信息'print(sheet.title)

Opérations Python pour les tableaux Excel
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()

Opérations Python pour les tableaux Excel
6> 🎜>

Ainsi, le fonctionnement des tableaux Excel peut être résumé en détail comme suit : Opérations Python pour les tableaux Excel1. 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')

Opérations Python pour les tableaux Excel

* 3. Changez le contenu du tableau*

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 :

Céleri 1,19

Ail 3,07 Citron 1.27

现在假设 Garlic、 Celery 和 Lemons 的价格输入的不正确。这让你面对一项无聊
的任务:遍历这个电子表格中的几千行,更新所有 garlic、celery 和 lemon 行中每磅
的价格。你不能简单地对价格查找替换,因为可能有其他的产品价格一样,你不希
望错误地“更正”。对于几千行数据,手工操作可能要几小时
下载文件 :  produceSales.xlsx
原文件打开情况:
Opérations Python pour les tableaux Excel
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="商品信息")

Opérations Python pour les tableaux Excel
表示写入新数据成功
Opérations Python pour les tableaux Excel


这是更改后的保存的新表格

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!

Déclaration:
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