失业程序员复习python笔记——Excel合并处理

实际工作中,我们可能会遇到一个场景,就是需要将很多excel文件的数据合并到一个excel文件中。那么今天就来看看怎么用python来实现这个功能。


生成待合并的excel文件

为了实现excel实现的这个功能,我们需要一批excel文件。看看我们怎么用代码生成一批excel文件

from openpyxl import Workbook
def genExcelFile(dst_file, sheet_name):

 #待生成的excel数据
 data_list = [['Name','Age','Sex'],
 ['Regina',34,'female'],
 ['Bob',35,'male']]

 workbook = Workbook()
 xlsheet = workbook.active # 获取默认的工作表
 xlsheet.title = sheet_name # 设置工作表名称

 for i,row in enumerate(data_list,start=1):
 for j,item in enumerate(row,start=1):
 xlsheet.cell(row=i, column=j, value=item)

 # 保存文件
 workbook.save(dst_file)

for i in range(10):
 genExcelFile(f"./execlfiles/{i+1}.xlsx", f"result{i+1}")


执行完上面那段代码后,就可以在execlfiles目录下,获得10个excel文件。其中enumerate是python内置函数,用于在遍历可迭代对象(如列表、元组、字符串等)时同时获取索引和值。其中参数start表示索引起始值。


遍历excel文件

刚才生成的10个excel文件,怎么才能它们的文件路径呢?

from pathlib import Path, PurePath
def getExeclFiles(src_path):
 p = Path(src_path)
 files = [x for x in p.iterdir() if PurePath(x).match('*.xlsx')]
 return files

files = getExeclFiles("./execlfiles")

for file in files:
 print(file)

上面代码依次获取 src_path 变量指向的路径下所有的文件。同时,为了避免这个目录里的文件类型过多,使用了一个 if 语句用于条件判断,只提取.xlsx 结尾的文件。通过print函数可以看到所有生成文件的路径。


合并excel文件中的数据

先对生成excel的函数,做一下修改。把excel数据作为参数传递进来。

def genExcelFile(dst_file, sheet_name,data_list):
 workbook = Workbook()
 xlsheet = workbook.active # 获取默认的工作表
 xlsheet.title = sheet_name # 设置工作表名称

 for i,row in enumerate(data_list,start=1):
 for j,item in enumerate(row,start=1):
 xlsheet.cell(row=i, column=j, value=item)

 # 保存文件
 workbook.save(dst_file)

然后执行下面代码合并excel:

import openpyxl
content = []
for file in files:
 wb = openpyxl.load_workbook(file) # 替换为你的文件路径
 ws = wb.active
 #content = []
 for row in ws.iter_rows(values_only=True): # values_only=True 只获取值,不获取单元格对象
 content.append(list(row))

print(content)

genExcelFile("./execlfiles/result.xlsx","合并结果",content)


执行完后,在excelfiles目录可以看到一个result.xlsx文件,里面有最开始生成的10个文件的所有数据

相关文章

Python3 列表list合并的4种方法

下面是列表合并的4种方法,其中的代码都在Python3下测试通过,在Python2下运行应该也没问题,时间关系就没测试。方法1: 直接使用"+"号合并列表aList = [1,2,3]...

python list列表拼接合并的三种方法

python 列表list拼接合并的三种方法使用“+”运算符,直接将所要拼接的列表list进行相加,比如[1]+[2],该方法并不修改原列表,而是以一个新的列表来返回;使用python内置的列表方法e...

用python实现两个链表的合并和排序

1、需求:已知有两个链表a和b,每个链表中的节点包括学号和成绩,要求把两个链表合并,按学号升序排序。2、输入和输出:请分别输入链表a、b元素的数量: 2 3**********************...

10行python代码系列——合并多个PDF

介绍这是一个使用Python的10行代码将多个PDF文件合并为一个PDF的应用程序。只需将源代码与PDF文件放置在同一位置,运行该代码,所有的单个PDF文件将被合并成一个新的大PDF文件。程序的功能:...

合并excel表格(使用python)

上次介绍了用Power Query合并excel表格(合并excel表格(使用Power Query)),今天,介绍用python合并excel表格。准备测试数据准备3个excel工作簿:明细1.xl...

三种常用方法合并 Python 字典,你学会了吗?

在使用 Python 字典时,你有时需要将多个字典合并成一个,以便后续处理。本教程将介绍三种常见的 Python 字典合并方法。我们将重点学习以下三种方式:使用 update() 方法字典解包并集运算...