Maison  >  Article  >  développement back-end  >  Comment implémenter la fusion de plusieurs tables dans Excel en python (avec code)

Comment implémenter la fusion de plusieurs tables dans Excel en python (avec code)

烟雨青岚
烟雨青岚avant
2020-06-30 13:41:045814parcourir

Comment implémenter la fusion de plusieurs tables dans Excel en python (avec code)

Aujourd'hui, j'utiliserai Python pour fusionner plusieurs feuilles de calcul Excel en un seul classeur. J'ai utilisé moins de 40 lignes de code pour fusionner plus de 60 classeurs Excel en un seul. .

Cet article n'utilise pas la bibliothèque openpyx, mais les bibliothèques xlrd et xlwt Bien que les fonctions de ces deux bibliothèques ne soient pas comparables à openpyx, elles peuvent faire fonctionner l'ancienne version d'Excel se terminant par xls, ce qui n'est pas le cas. supporté par openpyx

Le code

L'idée générale est la suivante

  • Parcourir pour obtenir tous les fichiers Excel dans le répertoire racine
  • Selon Match le nom Excel pour obtenir un certain type d'Excel
  • Créer un classeur pour écrire les données copiées
  • Chaque Excel a une feuille 1, parcourir les cellules et écrivez le classeur créé

Le processus détaillé est écrit dans le code

# -*- coding: utf-8 -*-
import xlrd
import xlwt
import os
import re
""" 写入工作本 """
def write_excel(path, write_sheet):
    # 加载工作本
    book = xlrd.open_workbook(path)
    # 获取表单
    read_sheet = book.sheet_by_name('Sheet1')
    # 遍历
    for row in  range(read_sheet.nrows):
        for col in  range(read_sheet.ncols):
            write_sheet.write(row, col, read_sheet.cell_value(row,col))
            
# 获取根目录下所有文件名
def walk(path):
  for root,dirs,names in os.walk(path):
    list = []
    for filename in names:
        path = os.path.join(root, filename)
        list.append(path)
    return list
if __name__ == "__main__":
    # 创建工作本
    write_book = xlwt.Workbook()
    # 根目录
    root = r'C:\mydata\generator\excel'
    path_list = walk(root)
    for path in path_list:
        val = path.find("本专科")
        if val!=-1:
        # 正则匹配
            ser = re.search('.*20200403(.*?).xls',path)
            name = ser.group(1)
            # 创建sheet
            write_sheet = write_book.add_sheet(name)
            # 写入
            write_excel(path, write_sheet)
    # 保存        
    write_book.save(r'本专科.xls')

Merci à tous d'avoir lu, j'espère que vous en bénéficierez beaucoup.

Cet article est reproduit à partir de : https://blog.csdn.net/youku1327/article/details/105300668

Tutoriel recommandé : "Tutoriel Python"

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:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer