在我入职新公司没多久,同事让我帮他处理一下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组件
代码很简单,但是却能大大提升我们的效率,处理几十个表格也就秒级内。这里只是简单的场景,更多实用例子后面继续探讨