使用openpyxl合并多个excel文件

版权声明: 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()

最近CSDN的系统出现了问题,评论看不到了,如有疑问,可以添加我的个人联系方式。

邮箱:[email protected]

有问题请联系我,或者评论即可。

猜你喜欢

转载自blog.csdn.net/qq_40244755/article/details/84756511
今日推荐