Python批量复制一个文件夹中的全部excel数据并粘贴至一个excel文件中-openpyxl模块

 最近工作经常要把多张相同表头,不同内容的数据汇总到一张excel中,为节省复制粘贴时间,我找到了Python中的openpyxl模块进行处理,读取一个文件夹下所有的excel文件并写入一张excel中。

话不多说没直接上代码-->

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文档。
    file_list = os.walk('C:\\Users\\Administrator\\Desktop\\ceshi\\')  # 获取这个文件夹下所有的excel文档。

    for file in file_list:

        path_list = file[2]
        wb = Workbook()
        ws1 = wb.create_sheet('合并', index=0)    # 创造合并之后的sheet表的名字
        title_list = ["分类ID", "产品属性", "Parent SKU", "产品标题", "产品描述", "sku", "变种名称", "变种属性名称一", "变种属性名称二",
                      "变种属性值一", "变种属性值二", "价格", "促销价", "折扣活动ID", "库存", "重量", "主图(URL)地址", "附图1",
                      "附图2", "附图3", "附图4", "附图5", "附图6", "附图7", "附图8地址", "变种图", "长(cm)", "宽(cm)", "高(cm)",
                      "发货期", "来源URL", "尺码图", "产品id", "销量", "浏览", "收藏", "工作簿名称"]  # sheet表的表头创建
        ws1.append(title_list)

        for ph in path_list:  # 迭代遍历所有excel 文档
            print('ph %s' % ph)
            # ph = ph.replace('~$', '')
            if str(ph).endswith('sx') and not str(ph).startswith('~$'):
                # res = find_excel(path='D:/集合/银行/' + ph)  # 构建单个文档路径
                res = find_excel(path='C:\\Users\\Administrator\\Desktop\\ceshi\\' + ph)  # 构建单个文档路径

                wb2 = load_workbook('C:\\Users\\Administrator\\Desktop\\ceshi\\' + ph)
                sheet = wb2.active    # 操作单元格
                for index, row in enumerate(sheet.rows):
                    if index > 0:  # 因为 index = 0时,获取到的为表头的值。
                        # print("####", row)
                        c = []
                        for item in row:  # 这个迭代无特殊情况 可简化一下
                            print("++++", item.value)
                            c.append(item.value)  # 注意,获取到的是一行的值
                            # print("=====", c)
                            # print("*****", c)
                            # return c
                        ws1.append(c)

                print("----->", res)
                # ws1.append(res)
                wb.save('C:\\Users\\Administrator\\Desktop\\ceshi\\result.xlsx')


def find_excel(path):  # 获取excel文档内容的方法
    wb = load_workbook(path)
    sheet = wb.active
    c = []
    # content = []

    for index, row in enumerate(sheet.rows):
        if index > 0:  # 因为 index = 0时,获取到的为表格的值。
            # print("####", row)
            for item in row:  # 这个迭代无特殊情况 可简化一下
                # print("++++", item.value)
                c.append(item.value)  # 注意,获取到的是一行的值
            c.append(str(ph).replace('.xlsx', ''))
                # print("=====", c.append(item.value))
                # print("*****", c)
                # return c
    # print("!!!!!!!!!!", c)
    return c

    # return content


if __name__ == '__main__':
    del_excel()
    print("执行结束")

评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值