针对不同场景的Python合并多个Excel方法

大家好,我是辰哥~
在辰哥看来,技术能够减少繁琐工作带来的枯燥,技术+实际=方便。最近辰哥也是在弄excel文件的时候发现手动去整理有点繁琐枯燥,想着技术可以代替我去处理这部分繁琐的工作那何乐而不为呢~~~
三种场景:
多个同字段的excel文件合并成一个excel
多个不同字段的excel文件拼接成一个excel
一个excel的多个sheet合并成一个sheet
辰哥目前想到的仅是辰哥遇到的这三种情况(如果还有很多其他情况的,欢迎在下方留言,因为辰哥日常非经常涉及多种excel处理的内容,所以想不到其他情况)
01 合并多个同字段的excel
这里辰哥先新建三个excel文件:11.xlsx;12.xlsx;13.xlsx;并往里填充数据,数据如下:
11.xlsx

12.xlsx

13.xlsx

需求:将这三个excel文件合并到一个excel中。
导入库
# 读取模块
import xlrd
# 写入模块
import xlwt
这里需要用到两个库:xlrd读取excel; xlwt写入到合并的excel;
# 文件列表
xlxs_list = ["1/11.xlsx","1/12.xlsx","1/13.xlsx"]
# 创建合并后的文件
workbook = xlwt.Workbook(encoding='ascii')
worksheet = workbook.add_sheet('Sheet1')
定义合并哪些excel文件,以及合并后的excel
# 行数
count = 0
#表头(只写入第一个xlsx的表头)
bt = 0
for name in xlxs_list:
wb = xlrd.open_workbook(name)
#按工作簿定位工作表
sh = wb.sheet_by_name('Sheet1')
#遍历excel,打印所有数据
if count>1:
bt=1
for i in range(bt,sh.nrows):
k = sh.row_values(i)
# 遍历每一行中的每一列
for j in range(0,len(k)):
worksheet.write(count,j, label=str(k[j]))
count = count +1
workbook.save('1/合并1_辰哥.xlsx')
最后合并到:**合并1_辰哥.xlsx **中,其结果如下:

02 拼接多个不同字段的excel
新建三个excel文件:21.xlsx;22.xlsx;23.xlsx;并往里填充数据
21.xlsx

22.xlsx

23.xlsx

将这三个excel文件拼接带一个excel中(从左往右)
# 列数
col = 0
for name in xlxs_list:
wb = xlrd.open_workbook(name)
#按工作簿定位工作表
sh = wb.sheet_by_name('Sheet1')
#遍历excel,打印所有数据
for i in range(0,sh.nrows):
k = sh.row_values(i)
# 遍历每一行中的每一列
for j in range(0,len(k)):
worksheet.write(i,col+j, label=str(k[j]))
col = col +len(k)
workbook.save('2/合并2_辰哥.xlsx')
最后合并到:**合并2_辰哥.xlsx **中,其结果如下:

03 合并一个excel的多个sheet
新建一个excel文件:31.xlsx;并新增sheet1、sheet2、sheet3,往里填充数据
sheet1

sheet2

sheet3

将同一个excel文件中的这三个sheet并到一个sheet中。
sheet_list = ['Sheet1','Sheet2','Sheet3']
# 行数
count = 0
# 表头(只写入第一个xlsx的表头)
bt = 0
for st in sheet_list:
#按工作簿定位工作表
sh = wb.sheet_by_name(st)
#遍历excel,打印所有数据
if count > 1:
bt = 1
for i in range(bt, sh.nrows):
k = sh.row_values(i)
# 遍历每一行中的每一列
for j in range(0, len(k)):
worksheet.write(count, j, label=str(k[j]))
count = count + 1
workbook.save('3/合并3_辰哥.xlsx')
最后合并到:合并3_辰哥.xlsx 中,其结果如下:

04 小结
目前想到的仅是辰哥遇到的这三种情况(如果还有很多其他情况的,欢迎在下方留言,因为辰哥日常并非经常涉及多种excel处理的内容,所以想不到其他情况)
针对不同场景的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合并
最近看视频学习,老师布置了个作业,关于如何使用python将多个excel进行合并,老师写的代码我感觉比较复杂,下面是我自己改良之后较简单的方式. 实现这个功能主要有两种方法,一种是用xlwd,xls ...
- aliyun 日志服务(Log Service,Log)是针对日志场景的一站式服务
日志服务(Log Service,Log)是针对日志场景的一站式服务,在阿里巴巴集团内部被广泛使用.用户无需开发就能快捷完成日志生命周期中采集.消费.投递以及查询功能. 日志服务当前提供如下功能 日志 ...
- python合并多个txt文件
python合并多个txt文件 #合并一个文件夹下的多个txt文件 #coding=utf-8 import os #获取目标文件夹的路径 filedir = os.getcwd()+'\\数据' # ...
- Python将多个excel表格合并为一个表格
Python将多个excel表格合并为一个表格 生活中经常会碰到多个excel表格汇总成一个表格的情况,比如你发放了一份表格让班级所有同学填写,而你负责将大家的结果合并成一个.诸如此类的问题有很多.除 ...
- python pandas合并多个excel(xls和xlsx)文件(弹窗选择文件夹和保存文件)
# python pandas合并多个excel(xls和xlsx)文件(弹窗选择文件夹和保存文件) import tkinter as tk from tkinter import filedial ...
- python 作业 批量读取excel文件并合并为一张excel
1 #!/usr/bin/env python 2 # coding: utf-8 3 4 def concat_file(a,b): 5 #如何批量读取并快速合并文件夹中的excel文件 6 imp ...
- Python——合并指定文件夹下的所有excel文件
前提:该文件夹下所有文件有表头且具有相同的表头. import glob # 同下 from numpy import * #请提前在CMD下安装完毕,pip install numppy impor ...
随机推荐
- 利用 V8 深入理解 JavaScript 设计
JavaScript 代码运行 以大家开发常用的 chrome 浏览器或 Node 举例,我们的 JavaScript 代码是通过 V8 运行的.但 V8 是怎么执行代码的呢?当我们输入 const ...
- 『无为则无心』Python基础 — 14、Python流程控制语句(while循环语句)
目录 1.什么是循环结构 2.while循环 (1)while循环的语法 (2)while循环的应用 3.while语句的死循环 4.break和continue 5.while循环嵌套 (1)应用场 ...
- excel VBA返回选中单元格区域的行数、列数,以及活动单元格的行号和列号
Private Sub Worksheet_SelectionChange(ByVal Target As Range) '可以直接sub(),不然选择就会触发vba Dim rows_coun ...
- cURL命令使用指南
cURL是什么 curl是Linux命令行工具,可以使用任何可支持的协议(如HTTP.FTP.IMAP.POP3.SCP.SFTP.SMTP.TFTP.TELNET.LDAP或FILE)在服务器之间传 ...
- Sherlock and His Girlfriend题解
题目描述 Sherlock 有了一个新女友(这太不像他了!).情人节到了,他想送给女友一些珠宝当做礼物. 他买了 n件珠宝.第i 件的价值是i+1.那就是说,珠宝的价值分别为2,3,4,-,n+1 . ...
- Exponentiation java大数
Exponentiation 大数a的n次幂,直到读到EOF(文件结尾)为止,其中忽略小数后面的0 1 import java.util.*; 2 import java.math.*; 3 impo ...
- Linux基础 -01
01Linux快速入门 1.计算机组成原理 1.1什么是计算机 计算机一般被称为"电脑",即通电的大脑 电脑二字蕴含了人类对计算机的终极期望; 希望它能像人脑一样为我们工作,从而取 ...
- 基于uni-app全端弹框组件uaPopup「兼容h5+小程序+app端|nvue」
uniapp兼容多端自定义模态弹框组件UAPopup ua-popup 一款轻量级的uniapp自定义弹窗组件.汇集了android.ios和微信弹窗效果(msg消息.alert提示框.dialog对 ...
- 如何消除inline-block元素之间的间隙?
一.问题现象 在CSS布局中,如果我们想要将多个行内块元素并排,会发现同行显示的inline-block元素之间会出现一定的空隙,这就是换行符/空格导致的,叫做换行符/空格间隙. 1 <!DOC ...
- 暑假自学java第三天
1,java中有个c++中没有的数据类型 bite:byte的取值范围为-128~127,占用1个字节(-2的7次方到2的7次方-1) 在通常情况下,如果JAVA中出现了一个整数数字比如35,那么这个 ...