精华内容
下载资源
问答
  • 提示:文章写完后,目录可以自动生成,如何生成可参考右边的帮助文档 文章目录前言、pandas是什么?二、使用步骤1.引入库总结 前言 提示:这里可以添加本文要记录的大概内容: ...代码如下(示例)


    前言

    在学习或工作中,我们有时需要将多个Execl表格的数据需要汇总到一个Execl表中,小编在学习中也遇到了这个需求,需要将一个文件夹下所有Execl表汇总到一个表中,下面看看如何实现?


    提示:前提是所有表的数据格式是一样的。

    一、如何将多个Execl表格中的数据汇总到一个表中?

    首先:将要汇总的所有Execl表格放入同一个文件夹下

    二、使用步骤

    1.全部代码

    代码如下(示例):

    # encoding: utf-8
    
    '''
    本代码的作用是将多个表格合并为一个表格。
    '''
    
    import os
    import xlrd
    import xlwt
    import logging
    import pandas as pd
    import datetime
    # 设置logging.basicConfig()方法的参数和配置logging.basicConfig函数
    FORMAT = '[%(funcName)s: %(lineno)d]: %(message)s'
    LEVEL = logging.INFO
    logging.basicConfig(level = LEVEL, format=FORMAT)
    
    excel_content = []
    output_file = 'test/huizong.xls'  #输出汇总表路径
    
    # 打开文件夹,获取表格信息
    def get_obj_list(dir_name):
        filelist = os.listdir(dir_name)
        for item in filelist :
            item = dir_name + item
            if os.path.isfile(item) and (item[-4:] == '.xls' or item[-5:] == '.xlsx' or item[-5:] == '.xlsm'):
                if item.find("$") != -1:
                    continue
                merge_excel(item)
            elif os.path.isdir(item):
                item = item + '/'
                get_obj_list(item)
    
    # 获取单个表格的信息
    def merge_excel(excelName):
        excelfd = xlrd.open_workbook(excelName)
        for sheet in excelfd.sheet_names():
            if sheet == '同行网站关键词':
                print (excelName)
                sheet_content = excelfd.sheet_by_name(sheet)
                header = sheet_content.cell(0, 0).value
                if header == u'关键词':   # 去掉标题行
                    row = 1
                else:
                    row = 0
                while row < sheet_content.nrows:
                    keywords    = sheet_content.cell(row, 0).value #这里是3列表格数据,行数不限制,想要读取多列可增加变量数。
                    pc  = sheet_content.cell(row, 1).value
                    num = sheet_content.cell(row, 2).value
                    item = [keywords, pc, num]
                    excel_content.append(item)
                    row += 1
    
    
    # 将获取到的表格信息保存到一个表格中
    def save_info():
        workbook = xlwt.Workbook(encoding = 'ascii')
        worksheet = workbook.add_sheet('同行网站关键词')
        style = xlwt.XFStyle() # 初始化样式
        font = xlwt.Font() # 为样式创建字体
        font.name = 'Arial'
        #font.bold = True # 黑体
        font.underline = True # 下划线
        font.italic = True # 斜体字
        style.font = font # 设定样式
        worksheet.write(0, 0, '关键词')
        worksheet.write(0, 1, 'PC指数')
        worksheet.write(0, 2, '排名')
    
        for i, item in enumerate(excel_content):
            for j in range(3):  #3列,对应上面的列数
                worksheet.write(i+1, j, item[j])
        workbook.save(output_file) # 保存文件
    
    
    def execl():
        if os.path.exists(output_file):
            os.remove(output_file)
    
        get_obj_list('./test/')
        save_info() #这里已经实现多个表格汇总成一个表
        stexcel = pd.read_excel('./test/huizong.xls') #读取汇总表
        stexcel = stexcel.drop_duplicates()		#对表中重复数据进行去重
        stexcel.sort_values(by='PC指数', inplace=True, ascending=False)  #按PC指数进行倒序排序
        filename = str(datetime.datetime.now().strftime('%Y%m%d-%H-%M-%S'))
        stexcel.to_excel("./同行网站关键词" + filename + ".xls")  # 最终生成execl表
    
    
    if __name__ == "__main__":
         execl()
    
    

    总结

    这里对文章进行总结:
    1.读取文件下所有execl表
    2.进一步读取每个表中的数据
    3.将所有表的数据进行汇总保存
    4.对表进行去重并按照“PC指数”倒序排列
    5.生成最终execl表

    展开全文
  • 在做助理的时候,会遇到很同学一人交一份电子版的某申请,word里面是一个表格,我们需要把这些统计Excel表格里面汇总一个,手动录入很不方便,于是写了一个vba代码,可以自动录入。这里面我插了一个按钮...
  • 现要求:给出一个汇总表,给出若干单独的Excel文件,每个文件里头有一个表格里存有一个人的信息,要将这些文件里的信息全部对应地导入到汇总表里. 以前写的,也不给实际例子了,直接上代码,逻辑不复杂,看看就明白.记在...

        现要求:给出一个空汇总表,给出若干单独的Excel文件,每个文件里头有一个表格里存有一个人的信息,要将这些文件里的信息全部对应地导入到汇总表里.

        以前写的,也不给实际例子了,直接上代码,逻辑不复杂,看看就明白.记在这里备以后查.

    展开全文
  • 尝试将多个excel 文件中的特定列汇总,例如多个文件的A列汇总到一个表格中,这种单纯复制粘贴的事情就交给代码吧。 例如有12个文件,每个文件的格式相同,如下,都共有16列数据,其中A列我是不需要的,故从B列...

    python 汇总多个excel文件的特定列到同一新文件多个表

    #编程小白的初尝试#

    尝试将多个excel 文件中的特定列汇总,例如多个文件的A列汇总到同一个表格中,这种单纯复制粘贴的事情就交给代码吧。

    件
    例如有12个文件,每个文件的格式相同,如下,都共有16列数据,其中A列我是不需要的,故从B列开始。
    在这里插入图片描述

    代码如下

    import numpy  as np
    import xlrd
    import xlwt
    import time
    
    
    
    time_start=time.time()
    
    #创建一个Workbook对象,相当于创建了一个Excel文件
    book=xlwt.Workbook(encoding="utf-8",style_compression=0)
    
    for b in range(1,16,1):   #b为读取的列数,从B列开始
    
    
    
     # 创建一个sheet对象,一个sheet对象对应Excel文件中的一张表格。
     sheetb = book.add_sheet('sheet'+str(b)+'', cell_overwrite_ok=True)
    
    
     for a in range(1,13,1):   #读取文件
    
      rawdatabook = xlrd.open_workbook(r'd:\\data\\wenjian'+str(a)+'.xls')
      # 获取所有sheet
      sheet_name = rawdatabook.sheet_names()[0]
    
      # 根据sheet索引或者名称获取sheet内容
      sheet = rawdatabook.sheet_by_index(0)       # sheet索引从0开始
      
      # sheet的名称,行数,列数
      print (sheet.name,sheet.nrows,sheet.ncols)
    
    
    
      for i in  range(1,sheet.nrows,1):
    
       data = sheet.col_values(b)[0:]    #读取数据
       sheetb.write(i,a,data[i])  #写入数据
     
     print(b)  #每复制完一列显示一次
    
    
    
    book.save('d:\11.xls')    #保存文件
    
    
    
    time_end=time.time()
    print('totally cost',time_end-time_start)    #运行时间
    
    print("全部搞掂~!")
    

    在这里插入图片描述

    最后效果如图,之前的每一特定列都分别汇总到独立的sheet中。

    12个文件,每个文件15列数据,最后总用时在一个小时左右。总体还是比手动快,不知道是不是还有更加简便快捷的处理方式,希望各位大神多多指教~!

    PS:编程小白的单纯分享,不喜勿喷~!(狗头保命)

    碰巧今天是老贝的生日,祝红魔永远的7号生日快乐~!(附图一张)

    在这里插入图片描述

    展开全文
  • 最近一个同学想要写一段VBA代码实现以下功能(我简化了要求):一个表中有很多个excel文件,每个文件有类似的表格代码实现把每个文件的表格复制另一个excel文件中。折腾开始...... 之前没搞过VBA,我用的是wps抢...
  • 将很的电子表格(xlsx或xls)放一个文件夹内,运行这个代码,就可以批量读取并汇总所有表格内的数据,一个新生成的大中,超级实用!自己修改一下文件夹路径即可。
  • 办公室老师给了我很张表格,但是每个表格里只有行信息,我需要把张表的信息汇总到一张里面,该如何做呢? 、文件目录结构 如上图,“国家励志”文件夹下面有不同学生的文件夹,每位学生的文件夹中有两份...


    场景

    办公室老师给了我一个压缩包,解压后里面有很多个文件夹,每个文件夹里面有一张Excel表格,每个表格里只有一行信息,我需要把多个文件夹里的多张Excel表的信息汇总到一张Excel表里面,该如何做呢?

    一、文件目录结构

    卷序列号为 F227-F9A4
    C:.
    └─国家励志
        ├─国家励志奖学金申请   xxx
        │  └─国家励志奖学金申请   xxx
        │          国家励志奖学金申请汇总表.xls
        │          表2.2019-2020学年国家励志奖学金申请表.doc
        │
        ├─国家励志奖学金申请 xx
        │      国家励志奖学金申请汇总表.xlsx
        │      英才实验学院2019-2020学年国家奖学金、国家励志奖学金评选的通知.docx
        │
        ├─国家励志奖学金申请 xxx
        │      国家励志奖学金申请汇总表.xls
        │      表2.2019-2020学年国家励志奖学金申请表.doc
        │
        
    

    如上图,“国家励志”文件夹下面有不同学生的文件夹,每位学生的文件夹中有两份文件,一份是申请表(.doc), 一份是我们要用到汇总表(.xls/.xlsx)。下面我们介绍两种满足需求的做法:1. 直接在Excel中做 2. 用Python编程做。

    二、实现方法

    1. Excel

    待更

    2. Python/Pandas

    之所以选用pandas,是因为pandas.concat()函数来做合并这件事是非常合适的:
    在这里插入图片描述
    如上图,使用pandas.concat(),可以直接将三个不同的dataframe按表头合并。
    而且,利用python的os库,我们可以很轻松地提取出.xls/.xlsx文件,避开了其他不相关的文件(.doc)。
    最终写成代码如下:

    
    # 导入必要的库
    import pandas as pd
    from pandas import DataFrame
    import os
    
    # 当前目录作为base目录
    base = "./"
    # 存放要处理的表格文件
    file_list = []
    # 存放读到的dataframes
    dfs = []
    # os.walk遍历base目录, root为当前所在根目录,ds为当前目录名,fs为当前非目录文件
    for root, ds, fs in os.walk(base):
        for f in fs:
            if f.endswith('.xls') or f.endswith('xlsx'):
                fp = os.path.join(root,f)
                df = pd.read_excel(fp,header=1)
                dfs.append(df)
    df = pd.concat(dfs,axis=0,sort=False) # axis=0表示按行拼接,sort=False表示列序按原始顺序排
    # 将合并后的dataframe单元格式转成字符串,避免转excel的时候数字变成科学计数法
    df = df.astype(str)
    df.to_excel('../result.xls',index=False)
    

    总结

    当我们需要合并多个excel表格到一个excel表格,而且多个excel表格又分散在不同的目录中时,可以考虑用python/pandas高效地完成

    展开全文
  • 1将需要合并的表格提前汇总到一个文件夹中; 2使用os.listdir获取文件夹中各表格的名称; 2使用openpyxl循环打开各工作,并将各工作表头以外的内容添加到新中 3保存新表格的格式可以打开新后修改,汇总...
  • 【Target】:将这100个表格整合到一个汇总表中去。 代码如下: import requests import openpyxl import xlrd import xlwt wb=openpyxl.Workbook() #创建工作薄 sheet=wb.active #获取工作薄的活动 sheet['A1'] ...
  • 如何将多个Excel合并到一个Excel中?

    万次阅读 2019-12-18 18:00:51
    今天遇到这么一个问题,需要将多个Excel表格中的数据汇总表,合并在一个Excel中,并且显示一致。 因此编写了以下代码来解决这个问题, 1.在Excel中按Alt+F11,快速调出命令控制台 2.工具栏选择插入——模块——将...
  • 多个excel合成一个

    2018-11-03 22:20:58
    最近学校需要统计学生信息,要将多个excel表格中的第二行复制出来到一个汇总表中,由于全是重复性操作,费时又费力,于是想用代码来代替我做这件事情,不知道为什么excel中VB代码运行不起来,于是换用下面方式: ...
  • 1、新建一个文件夹、将要合并的表格放里面、新建一个表格、用excel打开、右击Sheet12、选择查看代码(PS:excel有着一项,WPS没有)3、将下列代码复制文本框中:Sub 合并当前目录下所有工作簿的全部工作()Dim ...
  • vba excel 表格 合并

    2021-04-27 10:37:40
    多个工作薄汇总到一个 在总组合所有表格 开启查看代码 三个模块 汇总 组合 粘贴表头 私信提供测试表格 和讲解
  • 前几天遇见这么一个问题,手上有很多张表格,这些表格中都只有一个 sheet,需要把这些表汇总到一张。 一张中有多个 sheet,每一个 sheet 的名称是每张表格的文件名。 如果手动合并,往往需要花不少时间。如有 ...
  • 该教程是Excel表格数据导出到多个Word软件的使用说明,软件自行下载,可以直接使用。 注意:该软件只能导出Excel第张表的内容 步骤: 删除中无用的列(Word中不需要的列),如序号列 步骤二: 删除无用的行,...
  • 2005-05-26 02:18 4070 1472 易语言模块大全\ACCESS高级表格.ec 2001-12-31 21:24 7664 1967 易语言模块大全\Access操作.ec 2005-10-21 15:30 4303 1500 易语言模块大全\ACCSEE记录显示超级列表框模块.ec 2005-...
  • 支持XP至WIN10多个操作系统完美兼容,实现无缝隙对接,U盘版用户除了在原有可换机使用的基础上,实现XP/WIN7/WIN8/WIN10通行无阻。批量打印二维码与条形码、批量二维码识别(可带Logo)、批量二维码生成(可带Logo)、批量...
  • 1.问题背景在日常工作中我们经常遇到具有相同表头的 Excel 文件,需要将...今天我就来分享一个专业的外部数据工具——集算器,掌握了集算器处理 Excel 多表合并的方法,就不用再编写复杂且低效的 VBA 代码了,简单的...
  • 该存储库包含EMNLP2020论文的数据集和代码,这是第一个针对包含表格和文本数据的异构数据的大规模跳问答数据集。整个数据集包含基于13,000张表格的70,000条问答对,每张表格平均链接44个段落,有关更详细...
  • 1、重写DataGridView导出Excel的代码,5.7版控件使用开源的NPOI库导出Excel,完全不依赖Office,不会再有因为没装Office或Office安装有问题而导出失败的情况,而且导出速度非常快,支持大于65536条记录的导出(自动...
  • 同学的打包代码

    2012-06-22 13:48:26
    Database类是一个表的集合,而表又由行和列组成。例如,下面的雇员信息表包含三个记录,每个记录有四个字段( Employee、Name、Department和Boss)。 雇员 姓名 部门 部门经理 111-11-1234 Cruz ACC Warder 213-44-...
  • 12.2.8 怎样将一个排名数值字段添加数据透视 288 12.2.9 怎样隐藏数据透视中的计算错误 290 12.2.10 怎样使数据透视报表更小 291 12.2.11 怎样为每个市场创建一个单独的数据透视 292 12.2.12 ...
  • 12.2.8 怎样将一个排名数值字段添加数据透视 288 12.2.9 怎样隐藏数据透视中的计算错误 290 12.2.10 怎样使数据透视报表更小 291 12.2.11 怎样为每个市场创建一个单独的数据透视 292 12.2.12 ...
  • 12.2.8 怎样将一个排名数值字段添加数据透视 288 12.2.9 怎样隐藏数据透视中的计算错误 290 12.2.10 怎样使数据透视报表更小 291 12.2.11 怎样为每个市场创建一个单独的数据透视 292 12.2.12 ...
  • 12.2.8 怎样将一个排名数值字段添加数据透视 288 12.2.9 怎样隐藏数据透视中的计算错误 290 12.2.10 怎样使数据透视报表更小 291 12.2.11 怎样为每个市场创建一个单独的数据透视 292 12.2.12 ...
  • Java笔试题大汇总

    2010-01-09 22:46:49
    在此所说的有序是指线性表中的元素按值非递减排列(即从小大,但允许相邻元素值相等)。 2 在软件设计中,不属于过程设计工具的是__D____。 A、PDL(过程设计语言) B、PAD图 C、N-S图 D、DFD图 解析:软件...

空空如也

空空如也

1 2 3 4 5 ... 8
收藏数 152
精华内容 60
关键字:

多个表格汇总到一个表代码