版权声明: https://blog.csdn.net/qq_40244755/article/details/84756511
使用openpyxl合并多个excel文件
自office 2016后,便可以合并多个excel文件,但是当excel文件过多时,office2016效率并不高,雨是我自己写了个合并excel文件的代码,这里我们需要用到openpyxl 这个第三方库 ,如从未接触过openpyxl这个第三方库,我建议你先去了解一下,这个库的一些知识,当然,你可以跳过这些知识,直接使用以下代码,但我觉得还是先了解一下为好。
如想使用代码,更换文件夹路径即可。
值得注意的是这是合并多个excel文档,且文档只有一个相同结构sheet表,才可使用的代码!
#!/usr/bin/env python
# -*- coding:utf-8 -*-
# time 2018-11-23
# Author fcj
# message 处理数据
from openpyxl import load_workbook
import os
from openpyxl import Workbook
from openpyxl.drawing.image import Image # 注意当你想往excel写入图片时,可使用这个方法。
def del_excel():
file_list = os.walk('D:/集合/银行/') # 获取这个文件夹下所有的excel文档。
for file in file_list:
path_list = file[2]
wb = Workbook()
ws1 = wb.create_sheet('银行', index=0) 创造合并之后的sheet表的名字
title_list = ['名字','个人照片', '二维码'] # sheet表的表头创建
ws1.append(title_list)
for ph in path_list: # 迭代遍历所有excel 文档
print('ph %s' % ph)
ph = ph.replace('~$', '')
if str(ph).endswith('sx'):
res = find_excel(path='D:/集合/银行/' + ph) # 构建单个文档路径
ws1.append(res)
wb.save('D:/FX.xlsx')
def find_excel(path): # 获取excel文档内容的方法
wb = load_workbook(path)
sheet = wb.active
content = []
for index, row in enumerate(sheet.rows):
if index > 0: # 因为 index = 0时,获取到的为表格的值。
# print(row)
for item in row: # 这个迭代无特殊情况 可简化一下
# print(item.value)
content.append(item.value) # 注意,获取到的是一行的值
return content
if __name__ == '__main__':
del_excel()