中年大叔学编程-Python实现简单的Execl多个Sheet表格合并

  • Post by eyiadmin
  • May 22, 2020
post-thumb

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

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

  • xlrd
  • xlwt
  • pandas

多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组件

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

我只是记录我的学习过程,由于书读的少,可能很多地方表述或者是理解得不对,请轻喷并指正。

LATEST POST
  • Post By eyiadmin
  • Apr 18, 2021
.NET5快速接入支付宝扫码支付
  • Post By eyiadmin
  • Apr 18, 2021
uView练手开发-开发一个图片小程序
TAG
CATEGORIES