zoukankan      html  css  js  c++  java
  • 办公自动化2:使用Python合并不同文件夹中的多个Excel文件

    -- coding: utf-8 --

    """
    Spyder 编辑器

    这是一个临时脚本文件。

    来源网络资料,仅供学习使用。

    """
    ##############实例2_使用Python合并不同文件夹中的多个Excel文件######################
    import os #用于获取文件路径
    import xlrd #用于一次读取Excel中的整行数据
    from openpyxl import load_workbook #用于写入数据

    file_path="data" # 文件所在文件夹

    1.获取路径下所有文件,并存入列表

    pathss=[] # 存储文件夹内所有文件的路径(包括子目录内的文件)
    for root, dirs, files in os.walk(file_path):
    path = [os.path.join(root, name) for name in files]
    pathss.extend(path)

    2.只提取出需要的Excel文件的路径

    files_for_merge=[]
    for i in pathss:
    if 'Tracker-sub' in i: #因文件夹内还有存储图片的Excel文件,需排除
    #路径下文件如FM Reduction Activities image- A.xlsx,
    #和FM Reduction Activities Tracker-sub A.xlsx
    files_for_merge.append(i)

    3.读取各个Excel中的数据,并存入列表

    data=[]
    for i in files_for_merge:
    wb=xlrd.open_workbook(i) #按相应路径读取工作簿
    ws=wb.sheet_by_index(0) #选取工作表
    for j in range(10,ws.nrows): #这里文件1-9行是空白,第10含是标题,11含才是信息,计算机编号是10
    data.append(ws.row_values(j)) #读取整行数据,并存入列表

    4.汇总数据到主Excel文件

    打开路径下的汇总表。

    wb_main=load_workbook(file_path+"/FM Reduction Activities Tracker-main.xlsx") #file_path前面已指定路径名,打开需要写入数据的文件
    ws_main=wb_main['Raw Findings'] #选取需要写入数据的工作表
    for row in range(3,len(data)+3):
    for col in range(1,18):
    ws_main.cell(row=row,column=col,value=data[row-3][col-1]) #写入数据
    wb_main.save(file_path+"/FM Reduction Activities Tracker-main.xlsx") #保存数据
    print("程序执行完成!")

    print("ok")

    因为不懂,所以要学; 因为平凡,所以努力。 因为有为,所以有位。 因为执着,所以精彩。
  • 相关阅读:
    Docker部署Tomcat
    Docker部署MySQL
    kettle 共享数据库连接(解决每次都需要创建数据库连接问题)
    Kettle8.2的安装与使用
    Kettle 使用JS脚本 增加UUID输出列
    kettle使用(mysql导入MongoDB)
    Eclipse从Git上下载代码
    Eclipse中使用git
    在windows下安装git中文版客户端并连接gitlab
    eclipse中git的安装、配置和使用
  • 原文地址:https://www.cnblogs.com/quezesheng/p/13284813.html
Copyright © 2011-2022 走看看