在我入职新公司没多久,同事让我帮他处理一下execl表格,其实处理步骤很简单,就是把七八十个sheet合并到一个sheet中,我对execl相对还是比较熟悉,所以就傻不伶仃的开始copy,虽然用到了我多年练出来的手速,但是还是花了十多分钟,而且还怕没有复制对。

Python 匹配多个表格 python处理多个sheet表格_开发语言


这个就是我们的原始表格,我们就是要把七八十个类似的sheet复制到一个中,如果手生或者没有技巧,真的还是需要花些时间的, 现在我们就来试试Python该怎么处理这种问题,首先需要安装三个包

  • xlrd
  • xlwt
  • pandas

Python 匹配多个表格 python处理多个sheet表格_Python_02

多sheet合并为一个sheet

import pandas as pd
from pandas import DataFrame
import xlrd

file_path = 'D:/历史项目主表明细表.xls'  # 文件路径

wb = xlrd.open_workbook(file_path)  # 打开execl文件

sheets = wb.sheet_names()  # 获取sheets名称

df = DataFrame()  
for sheet in sheets:
    df = pd.concat([df, pd.read_excel(
        file_path, sheet_name=sheet,  encoding='utf8')]) # 拼接sheets内容

df.to_excel('D:/历史项目主表明细汇总表1.xls')  # 保存execl文件  需要依赖xlwt组件

多文件合并为一个sheet

import pandas as pd
from pandas import DataFrame
import xlrd
import os

file_path = 'D:/execl/'

files = os.listdir('D:/execl/')  # 获取指定目录下的文件

df = DataFrame()

for file in files:
    wb = xlrd.open_workbook(file_path+file)  # 打开execl文件
    sheets = wb.sheet_names()  # 获取sheets名称
    for sheet in sheets:
        df = pd.concat([df, pd.read_excel(
            file_path+file, sheet_name=sheet,  encoding='utf8')])  # 拼接sheets内容

df.to_excel('D:/execl/汇总表.xls')  # 保存execl文件  需要依赖xlwt组件

Python 匹配多个表格 python处理多个sheet表格_Python_03


代码很简单,但是却能大大提升我们的效率,处理几十个表格也就秒级内。这里只是简单的场景,更多实用例子后面继续探讨