Maison  >  Article  >  développement back-end  >  Comment automatiser Excel en Python

Comment automatiser Excel en Python

coldplay.xixi
coldplay.xixioriginal
2020-10-20 09:45:2314840parcourir

Comment automatiser Excel avec Python : installez d'abord la boîte à outils Python ; puis lisez le tableau Excel à partir du chemin de fichier spécifié et effectuez certaines opérations, puis enregistrez-le dans un autre fichier Excel et enfin appelez la méthode [excel_update] ; .

Comment automatiser Excel en Python

Recommandations d'apprentissage gratuites associées : Tutoriel vidéo Python

Comment automatiser Excel avec Python :

1. Boîte à outils

1. adresse : https://xlrd.readthedocs.io/en/latest/

2. xlwt : Écrivez les données dans une feuille de calcul Excel. Adresse du document : https://xlwt.readthedocs.org/en /latest/

3. xlutils : Fournit un ensemble d'utilitaires pour le traitement des fichiers Excel. Adresse du document : https://xlutils.readthedocs.io/en/latest/

2. Installez

python -m pip install xlrd xlwt xlutils

3. Utilisation de base

Les boîtes à outils associées pour Python utilisant Excel peuvent être détaillées dans Manipuler le remplissage style, type de valeur, taille de valeur, etc. de la cellule spécifiée. Cependant, utiliser Excel en python nécessite certaines compétences en traitement de données Pandas. Des chapitres seront ajoutés ultérieurement : compétences en traitement de données Pandas

1. Lisez le tableau Excel à partir du chemin de fichier spécifié, effectuez certaines opérations, puis. enregistrez-le dans un autre fichier Excel : result.xlsx

import xlwt
import xlrd
from xlutils.copy import copy
import pandas as pd
from pandas import DataFrame,Series
import os
os.chdir('./')
# 从指定文件路径读取excel表格
df = pd.read_excel('D:/mypaper/data/data.xlsx')
# 查看df内容
# 根据age算出出生年份,增加一列
import datetime
import os
year = datetime.datetime.now().year#获取当前系统时间对应的年份
df['birth'] = year-df['age']
df.to_excel('result.xlsx')#保存到当前工作目录,可以用os.getcwd()查看
#查看下此时df的内容,可以看到已经生成了birth这一列

À première vue, il semble que seuls les pandas soient utilisés, et les trois boîtes à outils présentées ci-dessus n'ont pas été utilisées. Voici une introduction à l'utilisation de python. pour faire fonctionner la couche sous-jacente d'Excel

2. Opération de cellule

# 定义方法:读取指定目录下Excel文件某个sheet单元格的值
def excel_read(file_path,table,x,y):
     data = xlrd.open_workbook(file_path)
     table = data.sheet_by_name(table)
     return table.cell(y,x).value
# 定义方法:单元格值及样式
write_obj_list = []
def concat_obj(cols,rows,value):
    write_obj_list.append({'cols':cols,'rows':rows,'value':value,\
'style':xlwt.easyxf('font: name 宋体,height 280;alignment: horiz centre')})
# 定义方法:合并单元格
def merge_unit(srows,erows,scols,ecols,value):
    write_obj_list.append({'id':'merge','srows':srows,'erows':erows,'scols':scols,\
'ecols':ecols,'value':value,'style':xlwt.easyxf('font: name 宋体,height 280;alignment: horiz centre')})
# 定义方法:更新excel
excel_update(file_path,write_obj_list,new_path):
    old_excel = xlrd.open_workbook(file_path, formatting_info=True)
    #管道作用
    new_excel = copy(old_excel)
    '''
    通过get_sheet()获取的sheet有write()方法
    '''
    sheet1 = new_excel.get_sheet(0)
    '''
    1代表是修改第几个工作表里,从0开始算是第一个。此处修改第一个工作表
    '''
    for item in write_obj_list:
        if 'id' not in item.keys():
            if 'style' in item.keys():
                sheet1.write(item['rows'], item['cols'], item['value'],item['style'])
            else:
                sheet1.write(item['rows'], item['cols'], item['value'])
        else:
            if 'style' in item.keys():
                sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'],item['style'])
            else:
                sheet1.write_merge(item['srows'],item['erows'],item['scols'], item['ecols'], item['value'])
    '''
    如果报错 dict_items has no attributes sort
    把syle源码中--alist.sort() 修改为----> sorted(alist) 
    一共修改2次
    '''
    new_excel.save(file_path)
#参数详解
# srows:合并的起始行数
# erows:合并的结束行数
# scols:合并的起始列数
# ecols:合并的结束列数 
# value:合并单元格后的填充值
# style:合并后填充风格:
#     font: name 宋体
#     height 280;
#     alignment: horiz centre
#     ... 与excel操作基本保持一致

Remarque : Cette méthode enregistre uniquement les actions qui doivent être effectuées directement dans une liste. l'action n'a pas encore été exécutée. L'action d'exécution se produit dans la méthode excel_update

Enfin, appelez la méthode excel_update et transmettez dans la write_obj_list les opérations et les valeurs de remplissage requises pour chaque cellule et le chemin de sauvegarde du fichier file_path

pour générer le fichier de résultat Excel souhaité dans le répertoire de travail courant .

Remarque :

1.write_obj_list prend en charge la personnalisation de l'utilisateur

2.write_obj_list peut également lire les fichiers Excel existants pour les modifier selon la méthode excel_read (peut être maintenu (format de tableau original) et générer

Il existe de nombreuses autres méthodes de base permettant à Python de faire fonctionner Excel. En raison du manque d'espace, elles ne seront pas indiquées et démontrées. Ceux qui souhaitent étudier en profondeur peuvent cliquer. sur l'adresse du document ci-dessus.

Apprenez à utiliser les cellules Excel en Python et maîtrisez les méthodes ci-dessus pour réaliser essentiellement des opérations de rapport automatisées dans 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