python合并多个excel的详细过程

目录
  • 前言
  • 代码编写
    • 1.导包
    • 2.定义位置和表头
    • 3.获取要合并的所有exce表格
    • 4.打开Exce文件
    • 5.获取exce文件下的所有sheet
    • 6.获取sheet下有多少行数据
    • 7.获取sheet下的数据
    • 8.主函数
  • 完整代码
  • 总结

前言

1.工作中,经常需要合并多个Excel文件。如果文件数量比较多,则工作量大,易出错,此时,可以使用Python来快速的完成合并。

2.使用方法:将需要合并的多个Excel文件放到同一个文件夹下,程序运行后,输入文件夹目录的地址即可,完成合并后会将合并后的文件放在当前目录下。

3.可以查看代码的详细编写,或者直接到最后复制完整代码使用。

代码编写

1.导包

import os
import xlrd
import xlsxwriter
import glob

2.定义位置和表头

biao_tou = "NULL"
wei_zhi = "NULL"

3.获取要合并的所有exce表格

def get_exce():
    global wei_zhi
    wei_zhi = input("请输入Excel文件所在的目录:")
    all_exce = glob.glob(wei_zhi + "*.xls")
    print("该目录下有" + str(len(all_exce)) + "个excel文件:")
    if (len(all_exce) == 0):
        return 0
    else:
        for i in range(len(all_exce)):
            print(all_exce[i])
        return all_exce

4.打开Exce文件

def open_exce(name):
    fh = xlrd.open_workbook(name)
    return fh

5.获取exce文件下的所有sheet

# 获取exce文件下的所有sheet
def get_sheet(fh):
    sheets = fh.sheets()
    return sheets

6.获取sheet下有多少行数据

def get_sheetrow_num(sheet):
    return sheet.nrows

7.获取sheet下的数据

def get_sheet_data(sheet, row):
    for i in range(row):
        if (i == 0):
            global biao_tou
            biao_tou = sheet.row_values(i)
            continue
        values = sheet.row_values(i)
        all_data1.append(values)

    return all_data1

8.主函数

if __name__ == '__main__':
    all_exce = get_exce()
    # 得到要合并的所有exce表格数据
    if (all_exce == 0):
        print("该目录下无.xls文件!请检查您输入的目录是否有误!")
        os.system('pause')
        exit()

    all_data1 = []
    # 用于保存合并的所有行的数据

    # 下面开始文件数据的获取
    for exce in all_exce:
        fh = open_exce(exce)
        # 打开文件
        sheets = get_sheet(fh)
        # 获取文件下的sheet数量

        for sheet in range(len(sheets)):
            row = get_sheetrow_num(sheets[sheet])
            # 获取一个sheet下的所有的数据的行数

            all_data2 = get_sheet_data(sheets[sheet], row)
            # 获取一个sheet下的所有行的数据

    all_data1.insert(0, biao_tou)
    # 表头写入

    # 下面开始文件数据的写入
    new_exce = wei_zhi + "总数据.xlsx"
    # 新建的exce文件名字

    fh1 = xlsxwriter.Workbook(new_exce)
    # 新建一个exce表

    new_sheet = fh1.add_worksheet()
    # 新建一个sheet表

    for i in range(len(all_data1)):
        for j in range(len(all_data1[i])):
            c = all_data1[i][j]
            new_sheet.write(i, j, c)

    fh1.close()
    # 关闭该exce表

    print("文件合并成功,请查看“" + wei_zhi + "”目录下的总数据.xlsx文件!")

    os.system('pause')
    os.system('pause')

完整代码

import os
import xlrd
import xlsxwriter
import glob

biao_tou = "NULL"
wei_zhi = "NULL"

# 获取要合并的所有exce表格
def get_exce():
    global wei_zhi
    wei_zhi = input("请输入Excel文件所在的目录:")
    all_exce = glob.glob(wei_zhi + "*.xls")
    print("该目录下有" + str(len(all_exce)) + "个excel文件:")
    if (len(all_exce) == 0):
        return 0
    else:
        for i in range(len(all_exce)):
            print(all_exce[i])
        return all_exce

# 打开Exce文件
def open_exce(name):
    fh = xlrd.open_workbook(name)
    return fh

# 获取exce文件下的所有sheet
def get_sheet(fh):
    sheets = fh.sheets()
    return sheets

# 获取sheet下有多少行数据
def get_sheetrow_num(sheet):
    return sheet.nrows

# 获取sheet下的数据
def get_sheet_data(sheet, row):
    for i in range(row):
        if (i == 0):
            global biao_tou
            biao_tou = sheet.row_values(i)
            continue
        values = sheet.row_values(i)
        all_data1.append(values)

    return all_data1

if __name__ == '__main__':
    all_exce = get_exce()
    # 得到要合并的所有exce表格数据
    if (all_exce == 0):
        print("该目录下无.xls文件!请检查您输入的目录是否有误!")
        os.system('pause')
        exit()

    all_data1 = []
    # 用于保存合并的所有行的数据

    # 下面开始文件数据的获取
    for exce in all_exce:
        fh = open_exce(exce)
        # 打开文件
        sheets = get_sheet(fh)
        # 获取文件下的sheet数量

        for sheet in range(len(sheets)):
            row = get_sheetrow_num(sheets[sheet])
            # 获取一个sheet下的所有的数据的行数

            all_data2 = get_sheet_data(sheets[sheet], row)
            # 获取一个sheet下的所有行的数据

    all_data1.insert(0, biao_tou)
    # 表头写入

    # 下面开始文件数据的写入
    new_exce = wei_zhi + "总数据.xlsx"
    # 新建的exce文件名字

    fh1 = xlsxwriter.Workbook(new_exce)
    # 新建一个exce表

    new_sheet = fh1.add_worksheet()
    # 新建一个sheet表

    for i in range(len(all_data1)):
        for j in range(len(all_data1[i])):
            c = all_data1[i][j]
            new_sheet.write(i, j, c)

    fh1.close()
    # 关闭该exce表

    print("文件合并成功,请查看“" + wei_zhi + "”目录下的总数据.xlsx文件!")

    os.system('pause')
    os.system('pause')

总结

到此这篇关于python合并多个excel的文章就介绍到这了,更多相关python合并多个excel内容请搜索我们以前的文章或继续浏览下面的相关文章希望大家以后多多支持我们!

(0)

相关推荐

  • python excel多行合并的方法

    一.概述 现有一个wenda1.xlsx文件,内容如下: 需要将faq记录合并为一行,效果如下: 注意:faq记录,每一行用||来拼接. 二.多行转换一行 新建test1.py,内容如下: # !/usr/bin/python3 # -*- coding: utf-8 -*- import xlrd # 打开excel文件,创建一个workbook对象 rbook = xlrd.open_workbook('wenda1.xlsx') # sheets方法返回对象列表,[<xlrd.sheet.

  • Python实现合并excel表格的方法分析

    本文实例讲述了Python实现合并excel表格的方法.分享给大家供大家参考,具体如下: 需求 将一个文件夹中的excel表格合并成我们想要的形式,主要要pandas中的concat()函数 思路 用os库将所需要处理的表格放到同一个列表中,然后遍历列表,依次把所有文件纵向连接起来. 最开始的第一种思路是先拿一个文件出来,然后让这个文件依次去和列表中的剩余文件合并: 第二种是用文件夹中第一个文件和剩余的文件合并,使用range(1,len(file)),可以省去单独取第一个文件的步骤. 遇到的问

  • Python将多个excel文件合并为一个文件

    利用Python,将多个excel文件合并为一个文件 思路 利用python xlrd包读取excle文件,然后将文件内容存入一个列表中,再利用xlsxwriter将内容写入到一个新的excel文件中. 完整代码 # -*- coding: utf-8 -*- #将多个Excel文件合并成一个 import xlrd import xlsxwriter #打开一个excel文件 def open_xls(file): fh=xlrd.open_workbook(file) return fh #

  • 使用python将多个excel文件合并到同一个文件的方法

    应用场景:使用pandas把多个相同结构的Excel文件合并为一个. 原始数据: 相关代码: import os import pandas as pd # 将文件读取出来放一个列表里面 pwd = 'test' # 获取文件目录 # 新建列表,存放文件名 file_list = [] # 新建列表存放每个文件数据(依次读取多个相同结构的Excel文件并创建DataFrame) dfs = [] for root,dirs,files in os.walk(pwd): # 第一个为起始路径,第二

  • Python合并多个Excel数据的方法

    安装模块 1.找到对应的模块   http://www.python-excel.org/ 2.用pip install 安装 pip install xlrd pip install XlsxWriter pip list查看 XlsxWriter示例 import xlsxwriter # 创建一个工作簿并添加一个工作表 workbook = xlsxwriter.Workbook("demo.xlsx") worksheet = workbook.add_worksheet()

  • Python将多个excel表格合并为一个表格

    生活中经常会碰到多个excel表格汇总成一个表格的情况,比如你发放了一份表格让班级所有同学填写,而你负责将大家的结果合并成一个.诸如此类的问题有很多.除了人工将所有表格的内容一个一个复制到汇总表格里,那么如何用Python自动实现这些工作呢~ 我不知道有没有其他更方便的合并方法,先用Python实现这个功能,自己用就很方便了. 比如,在文件夹下有如下7个表格(想象一下有100个或更多的表格需要合并) 作为样例,每个表格的内容均为 运行程序,将7个表格合并成了test.xls 打开test.xls

  • 如何用python合并多个excel文件

    安装模块 1.找到对应的模块  http://www.python-excel.org/ 2.用 pip install 安装 pip3 install xlrd pip3 install XlsxWriter 因为使用的是 python3,所以安装的时候采用 pip3. XlsxWriter 示例 先看看简单的演示: import xlsxwriter # 创建一个工作簿并添加一个工作表 workbook = xlsxwriter.Workbook("c.xlsx") workshe

  • python合并多个excel的详细过程

    目录 前言 代码编写 1.导包 2.定义位置和表头 3.获取要合并的所有exce表格 4.打开Exce文件 5.获取exce文件下的所有sheet 6.获取sheet下有多少行数据 7.获取sheet下的数据 8.主函数 完整代码 总结 前言 1.工作中,经常需要合并多个Excel文件.如果文件数量比较多,则工作量大,易出错,此时,可以使用Python来快速的完成合并. 2.使用方法:将需要合并的多个Excel文件放到同一个文件夹下,程序运行后,输入文件夹目录的地址即可,完成合并后会将合并后的文

  • python合并多个excel文件的示例

    工作中经常遇到要将十几个Excel(不管是xls.或者是CSV)合并到同一个文件中去,手工一个一个复制是不可能的,此时就轮到Python出马了 主要是利用for循环,读取每一个文件,作为df,然后再通过list的append加在一起,然后再通过pd.concat拼接起来,最后将文件读到CSV中去 import os import pandas as pd import numpy as np dir = "D:\\merge"#设置工作路径 #新建列表,存放文件名(可以忽略,但是为了做

  • python 合并多个excel中同名的sheet

    大家好~ 老Amy来啦!已经n久没有给大家输出关于办公自动化的文章了-为什么呢?罗列原因: 太忙!(被领导"压榨") 太忙!(没有额外的精力揣测大家办公的需求) 太忙!(持续吃瓜中) 然鹅,一位朋友的困惑成为了我这种"麻木状态"的终结者,他提出需求如下: 想不断尝试的老Amy,开启了思考模式:"我要怎么实现这个需求呢?". 不用着急,首先我们来分析数据本身. 分析数据特征如下: 数据所在路径 C:\Users\logic\Desktop\myte

  • python合并同类型excel表格的方法

    本文实例为大家分享了python合并同类型excel表格的具体代码,供大家参考,具体内容如下 python脚本如下,验证有效. #!/usr/bin/env python # -*- coding: UTF-8 -*- import os, csv class CSVTopoIreator: def __init__(self, filename): self.infile = open(filename, 'rb') self.reader = csv.reader(self.infile)

  • 利用python实现聚类分析K-means算法的详细过程

    K-means算法介绍 K-means算法是很典型的基于距离的聚类算法,采用距离作为相似性的评价指标,即认为两个对象的距离越近,其相似度就越大.该算法认为簇是由距离靠近的对象组成的,因此把得到紧凑且独立的簇作为最终目标. 算法过程如下: 1)从N个文档随机选取K个文档作为中心点: 2)对剩余的每个文档测量其到每个中心点的距离,并把它归到最近的质心的类: 3)重新计算已经得到的各个类的中心点: 4)迭代2-3步直至新的质心与原质心相等或小于指定阈值,算法结束. 算法优缺点: 优点: 原理简单 速度

  • 使用python matplotlib contour画等高线图的详细过程讲解

    目录 函数画图 颜色取反 数据画图 选择性画图 总结 函数画图 以 z = x 2 + y 2 为例 #导入模块 import numpy as np import matplotlib.pyplot as plt #建立步长为0.01,即每隔0.01取一个点 step = 0.01 x = np.arange(-10,10,step) y = np.arange(-10,10,step) #也可以用x = np.linspace(-10,10,100)表示从-10到10,分100份 #将原始数

  • Python安装和配置uWSGI的详细过程

    目录 Python 安装 uWSGI 添加并发和监控 结合 Web 服务器使用 部署 Django 部署 Flask 本文主要介绍如何部署简单的 WSGI 应用和常见的 Web 框架. 以 Ubuntu/Debian 为例,先安装依赖包: apt-get install build-essential python-dev Python 安装 uWSGI 1.通过 pip 命令: pip install uwsgi 2.下载安装脚本: curl http://uwsgi.it/install |

  • python之DataFrame实现excel合并单元格

    在工作中经常遇到需要将数据输出到excel,且需要对其中一些单元格进行合并,比如如下表表格,需要根据A列的值,合并B.C列的对应单元格 pandas中的to_excel方法只能对索引进行合并,而xlsxwriter中,虽然提供有merge_range方法,但是这只是一个和基础的方法,每次都需要编写繁琐的测试才能最终调好,而且不能很好的重用.所以想自己写一个方法,结合dataframe和merge_range.大概思路是: 1.定义一个MY_DataFrame类,继承DataFrame类,这样能很

随机推荐