使用python合并excel
当工作碰到需要将几个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的更多相关文章
- python合并多个excel
前言 1.工作中,经常需要合并多个Excel文件.如果文件数量比较多,则工作量大,易出错,此时,可以使用Python来快速的完成合并. 2.使用方法:将需要合并的多个Excel文件放到同一个文件夹下, ...
- Python合并多个Excel数据
安装模块 1.找到对应的模块 http://www.python-excel.org/ 2.用pip install 安装 pip install xlrdpip install XlsxWrite ...
- python操作excel表格(xlrd/xlwt)
最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异,而且不太能满足需求,不过经过一番对源码的"研究&q ...
- [转]用Python读写Excel文件
[转]用Python读写Excel文件 转自:http://www.gocalf.com/blog/python-read-write-excel.html#xlrd-xlwt 虽然天天跟数据打交 ...
- python 处理 Excel 表格
see: http://www.cnblogs.com/sunada2005/p/3193300.html 一.可使用的第三方库 python中处理excel表格,常用的库有xlrd(读excel)表 ...
- python读写Excel文件的函数--使用xlrd/xlwt
python中读取Excel的模块或者说工具有很多,如以下几种: Packages 文档下载 说明 openpyxl Download | Documentation | Bitbucket The ...
- Python操作excel表格
用Python操作Excel在工作中还是挺常用的,因为毕竟不懂Excel是一个用户庞大的数据管理软件 注:本篇代码在Python3环境下运行 首先导入两个模块xlrd和xlwt,xlrd用来读取Exc ...
- 【转】python操作excel表格(xlrd/xlwt)
[转]python操作excel表格(xlrd/xlwt) 最近遇到一个情景,就是定期生成并发送服务器使用情况报表,按照不同维度统计,涉及python对excel的操作,上网搜罗了一番,大多大同小异, ...
- Python处理Excel和PDF文档
一.使用Python操作Excel Python来操作Excel文档以及如何利用Python语言的函数和表达式操纵Excel文档中的数据. 虽然微软公司本身提供了一些函数,我们可以使用这些函数操作Ex ...
随机推荐
- 弃用 wget, 拥抱多线程下载 axel
0x00 事件 对于在 Linux 的下载工具而言,比较常用的就是 wget 或者 curl,吾也一直用 wget 的方式进行网络上的资源下载.偶然发现了 axel 这个支持多线程的下载工具,试用了几 ...
- CGI getenv 参数
变量名 描述 CONTENT_TYPE 这个环境变量的值指示所传递来的信息的MIME类型.目前,环境变量CONTENT_TYPE一般都是:application/x-www-form-urlencod ...
- F#周报2019年第33期
新闻 宣告.NET Core 3.0预览版8 新的fable.io站点伴随着更多文档发布 正在努力使你的团队相信F#的益处?Compositional IT能够提供帮助 提名2019年度F#社区英雄 ...
- 一份程序猿单词列表(updating)
以下单词是个人平时阅读英文文档时遇到的一些“生”单词,该文档将持续更新,可以持续关注https://github.com/hylinux1024/word-list-for-programmer hi ...
- IDEA导入spring-boot-plus(二)
IDEA导入spring-boot-plus 安装lombok插件 !!!请先确保IDEA已安装lombok插件!!! IDEA在线安装lombok插件 IDEA离线下载安装lombok 如果在线安装 ...
- wordcloud库基本介绍和使用方法
一.wordcloud库基本介绍 1.1 wordcloud库概述 wordcloud是优秀的词云展示第三方库 词云以词语为基本单位,更加直观和艺术的展示文本 1.2wordcloud库的安装 pip ...
- Docker:镜像的迁移
从202将现有镜像搬到207的过程. 先说导出,两种方法:Docker save 和 docker export,前者保存镜像,后者导出容器. docker save docker.io/java:7 ...
- .net core 微服务项目-介绍篇
项目介绍 1.各种方式连接API都会连接到 APIGateway 来进行统一的分发 Ocelot 2.当api需要授权时 需要请求授权服务 IdentityServer4 3.授权服务对请求进行调用u ...
- php中++ --运算
$x = 5; echo $x; echo "---"; // echo ++$x + $x; //6+6=12 $x=6 // echo ++$x + 5; //6+5=12 $ ...
- MSIL实用指南-生成break和continue
break和continue本质都是标签的跳转