通过Python处理合并excel文件
随着Python的普及,使用Python进行自动化办公的人也越来越多,这里就和大家分享一下自己使用Python处理Excel的一些心得体验。
在学习使用python进行Excel之前我们需要先了解的就是调用的函数库
首先我们在使用Python对Excel进行处理时需要调用函数openpyxl,也有其他朋友喜欢调用其他Excel相关库函数的,不过我这次使用的是openpyxl库文件,这里要注意的是需要下载最新的3.0.3版本,安装完成后可以在编译器中输入以下代码(我个人比较喜欢在VS Code中编译)
pip install openpyxl
安装完成后我么可以通过一串代码检验一下我们当前的openpyxl库的版本
import openpyxl
print(openpyxl.__version__)
完成openpyxl库文件的安装后我们来了解一下本次操作需要调用的函数以及他们的用法,如下:
名称 | 函数 |
---|---|
创建工作簿 | wb=openpyxl.Workbook() |
选择工作表 | sheet = wb.action 或 sheet = wb[‘工作表名’] |
操作单元格 | sheet[‘A1’] = 1 或 sheet.append[1,2,3] |
保存工作簿 | wb.save(‘文件名.xlsx’) |
打开工作簿 | wb = openpyxl.load_workbook() |
选择工作表 | sheet = wb[‘工作表名’] |
读取单元格 | sheet.[‘A1’].value |
大致了解基本的函数功能后我们直接步入正题——合并Excel
首先我们需要从openpyxl中引入 Workbook以及load_workbook
from openpyxl import Workbook , load_workbook
假设我们需要合并的文件是01—31,我们设一个文件列表
filenames = ['%02d.xlsx'%(i+1)for i in range(31)]
通过一个for循环将所有的文件用filenames表示,其中%02d的意思表示这里是一个两位数表述的参数,即01,02等,通过for循环将我们的参数范围赋值给%02d这里得出我们需要的文件列表(如果文件数量较少可以直接使用列表手动写入)。接着我们需要选择我们选定进行处理的工作表,操作如下:
total_web = Workbook() #实例化一个工作簿
total_sheet =total_web.action #选择默认工作表
total_sheet.tital ='总和' #给工作表命名为总和
处理完第一个工作表后下面我们依次将剩余工作表的数据加入到第一张工作表中:
for filename in filenames:
wb = load_workbook(filename) #打开选中的Excel
sheet = wb.active #这一步等同于前面写下的total_sheet =total_web.action
for index, row in enumerate(sheet.values):
if filename != filenames[0] and index == 0: # 因为表头是共用文件,所以跳过表头从第二行开始
continue
total_sheet.append(row) #append函数将传入对象(附加)添加在现有列表后
最后我们将新的Excel进行保存和重命名:
total_wb.save('最终文件.xlsx')