当工作碰到需要将几个excel合并时,比如一个表,收集每个人的个人信息,陆续收回来就是十几张甚至几十张表,少了还好解决,但是很多的话就不能一个一个去复制了,这时候就想到了python,Python大法好啊。短短100行代码解决,无论几十张,几百张表,瞬间搞定。

首先需要安装两个模块:xlrd(读取excel),xlsxwriter(写入excel)

pip install xlrd
pip install xlsxwriter

安装好以后,直接上代码。如下:

 # -*- coding: UTF-8 -*-
# Filename : Merge_excel.py
# author by : Awrrays import xlrd,xlsxwriter # 打开表格
def openxls(file):
try:
fx = xlrd.open_workbook(file)
return fx
except Exception as e:
print('读取文件错误,错误为:{0}'.format(e)) # 获取所有sheet
def getsheets(fx):
return fx.sheets() # 获取某个sheet的行数
def getrows(fx,sheet_num):
table = fx.sheets()[sheet_num]
rows = table.nrows
return rows # 获取某个文件的内容并返回所有行的内容
def getdump(fl,sheet_num):
fx = openxls(fl)
table = fx.sheet_by_name(sheet_name[sheet_num])
row_num = getrows(fx,sheet_num)
row_len = len(rows)
for row in range(0,row_num):
data = table.row_values(row)
rows.append(data)
dump.append(rows[row_len:])
return dump
# 定义要合并的所有文件
allxls = ["E:/test/test1.xlsx",'E:/test/test2.xlsx','E:/test/test3.xlsx']
# 定义合并后的文件
endxls = "E:/test/test.xlsx" # 存储一个sheet的结果
sheet_value = []
# 存储各sheet的名称
sheet_name = []
# 存储一行内容
rows = []
# 存储所有读取的结果
dump = [] # 读取第一个待读文件,获取sheet数
fx = openxls(allxls[0])
sheets = getsheets(fx)
x = 0
for sheet in sheets:
sheet_name.append(sheet.name)
sheet_value.append([])
x += 1 # 依次读取各sheet的内容
for sheet_num in range(0,x):
# 依次获取每个文件当前sheet的内容
for fl in allxls:
print('正在读取文件{0}的第{1}个标签....'.format(fl,sheet_num))
dump = getdump(fl,sheet_num)
sheet_value[sheet_num].append(dump) file_num = len(allxls)
endvlue = [] # 获取各sheet的内容
def get_sheet_value(k):
for z in range(k,k+file_num):
endvlue.append(sheet_value[0][0][z])
return endvlue # 打开合并完成后的文件
wb = xlsxwriter.Workbook(endxls)
# 创建一个工作表
ws = wb.add_worksheet()
polit = 0
line_num = 0
# 依次遍历每个sheet中的内容
for s in range(0,x * file_num,file_num):
file_value = get_sheet_value(s)
table_value = file_value[polit:]
# 将每一个sheet中的内容写入新文件
for a in range(0,len(table_value)):
# 将sheet行写入到新文件
for b in range(0,len(table_value[0])):
# 将每一行的内容写入新文件
for c in range(0,len(table_value[0][0])):
data = table_value[a][b][c]
ws.write(line_num,c,data)
line_num += 1
# 设置分隔点
polit = len(file_value)
wb.close()

ok,最后结果:

使用python合并excel的更多相关文章

  1. python合并多个excel

    前言 1.工作中,经常需要合并多个Excel文件.如果文件数量比较多,则工作量大,易出错,此时,可以使用Python来快速的完成合并. 2.使用方法:将需要合并的多个Excel文件放到同一个文件夹下, ...

  2. Python合并多个Excel数据

    安装模块 1.找到对应的模块  http://www.python-excel.org/ 2.用pip install 安装 pip install xlrdpip install XlsxWrite ...

  3. python操作excel表格(xlrd/xlwt)

    最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...

  4. [转]用Python读写Excel文件

    [转]用Python读写Excel文件   转自:http://www.gocalf.com/blog/python-read-write-excel.html#xlrd-xlwt 虽然天天跟数据打交 ...

  5. python 处理 Excel 表格

    see: http://www.cnblogs.com/sunada2005/p/3193300.html 一.可使用的第三方库 python中处理excel表格,常用的库有xlrd(读excel)表 ...

  6. python读写Excel文件的函数--使用xlrd/xlwt

    python中读取Excel的模块或者说工具有很多,如以下几种: Packages 文档下载 说明 openpyxl Download | Documentation | Bitbucket  The ...

  7. Python操作excel表格

    用Python操作Excel在工作中还是挺常用的,因为毕竟不懂Excel是一个用户庞大的数据管理软件 注:本篇代码在Python3环境下运行 首先导入两个模块xlrd和xlwt,xlrd用来读取Exc ...

  8. 【转】python操作excel表格(xlrd/xlwt)

    [转]python操作excel表格(xlrd/xlwt) 最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异, ...

  9. Python处理Excel和PDF文档

    一.使用Python操作Excel Python来操作Excel文档以及如何利用Python语言的函数和表达式操纵Excel文档中的数据. 虽然微软公司本身提供了一些函数,我们可以使用这些函数操作Ex ...

随机推荐

  1. flink 1.7.2 安装详解

    ##flink 1.7.2 安装需要java环境 下载地址 https://flink.apache.org/downloads.html#1.单机版 #创建用户flinkuseradd flink ...

  2. EMCAscript6随心所记

    es6的支持情况http://kangax.github.io/compat-table/es6/ 1.let命令 基本用法 ES6新增了let命令,用来声明变量.它的用法类似于var,但是所声明的变 ...

  3. 并发模型与IO模型梳理

    并发模型 常见的并发模型一般包括3类,基于线程与锁的内存共享模型,actor模型和CSP模型,其中尤以线程与锁的共享内存模型最为常见.由于go语言的兴起,CSP模型也越来越受关注.基于锁的共享内存模型 ...

  4. Spring源码剖析6:Spring AOP概述

    原文出处: 五月的仓颉 我们为什么要使用 AOP 前言 一年半前写了一篇文章Spring3:AOP,是当时学习如何使用Spring AOP的时候写的,比较基础.这篇文章最后的推荐以及回复认为我写的对大 ...

  5. 记录一则DG遭遇ORA-00088的案例

    测试环境:RHEL 5.4 + Oracle 11.2.0.3 DG 现象:起初是在使用DG Broker进行switchover切换测试时,报错ORA-16775,提示有可能有数据丢失,不允许swi ...

  6. Memcached的原理分析与配置

    一.Why Memcached? • 高并发访问数据库的痛楚:死锁! • 硬盘IO之痛:本机:AspNet:HttpRuntime.Cache • 多客户端共享缓存 • Net+Memory>& ...

  7. cf 1102 B

    题意:求字符串中任意相邻两位是否可以可以由前一个加上任意个x或y屏蔽十位与后一位相等,如果可以需要添加的最少数字是多少,x值为0-9,y值也为0-9,求出任意x,y对应情形下字符串需要添加的最少数字, ...

  8. MySQL之修改默认引擎和字符集

    一.数据库引擎 1.1 查看数据库引擎 mysql> show engines; +--------------------+---------+------------------------ ...

  9. 使用fine-uploader上传文件

    步骤1:下载fine-uploader 步骤2:加入引用 <link href="/fine-uploader/fine-uploader-gallery.min.css" ...

  10. 通过PHP与Python代码对比浅析语法差异

    一.背景 人工智能这几年一直都比较火,笔者一直想去学习一番:因为一直是从事PHP开发工作,对于Python接触并不算多,总是在关键时候面临着基础不牢,地动山摇的尴尬,比如在遇到稍微深入些的问题时候就容 ...