python不到50行代码完成了多张excel合并的实现示例


Posted in Python onMay 28, 2020

一 前言

公司同事最近在做excel相关的工作;今天来求助知识追寻者合并多个excel为一个一个工作本,原本是java操作poi太蛋疼了,笨重不堪,内存消耗严重,知识追寻者使用python不到40行代码完成了60多张excel工作本合并为一张;python真香

牛皮吹完了,如果看过知识追寻者系列文章的读者肯定知道之前知识追寻者发过一篇

python专题使用openpyxl操作excel;本篇使用的不是openpyx库,使用的使是xlrd,xlwt库,虽然这两库功能没法根openpyx相比,但可以操作xls结尾的旧版excel而openpyx不支持;

二 代码

大体思路如下

  • 遍历获取根目录下的所有excel文件
  • 根据excel名称进行匹配获取某类excel
  • 创建工作本用于写入拷贝的数据
  • 每个excel都有一张Sheet1,循环遍历单元格写入创建的工作本

详细过程写在代码里面;读者可以参考一下思路和使用方式,后续知识追寻者有空会出这2库基础系列文章的使用方式;

# -*- coding: utf-8 -*-
import xlrd
import xlwt
import os
import re

""" 写入工作本 """
def write_excel(path, write_sheet):
  # 加载工作本
  book = xlrd.open_workbook(path)
  # 获取表单
  read_sheet = book.sheet_by_name('Sheet1')
  # 遍历
  for row in range(read_sheet.nrows):
    for col in range(read_sheet.ncols):
      write_sheet.write(row, col, read_sheet.cell_value(row,col))
      
# 获取根目录下所有文件名
def walk(path):
 for root,dirs,names in os.walk(path):
  list = []
  for filename in names:
    path = os.path.join(root, filename)
    list.append(path)
  return list

if __name__ == "__main__":
  # 创建工作本
  write_book = xlwt.Workbook()
  # 根目录
  root = r'C:\mydata\generator\excel'
  path_list = walk(root)
  for path in path_list:
    val = path.find("本专科")
    if val!=-1:
     # 正则匹配
      ser = re.search('.*20200403(.*?).xls',path)
      name = ser.group(1)
      # 创建sheet
      write_sheet = write_book.add_sheet(name)
      # 写入
      write_excel(path, write_sheet)
  # 保存    
  write_book.save(r'本专科.xls')

到此这篇关于python不到50行代码完成了多张excel合并的实现示例的文章就介绍到这了,更多相关python 多张excel合并内容请搜索三水点靠木以前的文章或继续浏览下面的相关文章希望大家以后多多支持三水点靠木!

Python 相关文章推荐
python基于mysql实现的简单队列以及跨进程锁实例详解
Jul 07 Python
Python中isnumeric()方法的使用简介
May 19 Python
Python 序列的方法总结
Oct 18 Python
简单谈谈Python中的闭包
Nov 30 Python
在pytorch 中计算精度、回归率、F1 score等指标的实例
Jan 18 Python
使用python-Jenkins批量创建及修改jobs操作
May 12 Python
keras分类之二分类实例(Cat and dog)
Jul 09 Python
pytorch使用horovod多gpu训练的实现
Sep 09 Python
python和node.js生成当前时间戳的示例
Sep 29 Python
详解Python中的编码问题(encoding与decode、str与bytes)
Sep 30 Python
scrapy实践之翻页爬取的实现
Jan 05 Python
用Python实现定时备份Mongodb数据并上传到FTP服务器
Jan 27 Python
python使用openpyxl操作excel的方法步骤
May 28 #Python
基于python实现破解滑动验证码过程解析
May 28 #Python
PythonPC客户端自动化实现原理(pywinauto)
May 28 #Python
基于Pyinstaller打包Python程序并压缩文件大小
May 28 #Python
Python selenium 加载并保存QQ群成员,去除其群主、管理员信息的示例代码
May 28 #Python
Python爬虫requests库多种用法实例
May 28 #Python
在pycharm中创建django项目的示例代码
May 28 #Python
You might like
ThinkPHP公共配置文件与各自项目中配置文件组合的方法
2014/11/24 PHP
Yii2中设置与获取别名的函数(setAlias和getAlias)用法分析
2016/07/25 PHP
php array_udiff_assoc 计算两个数组的差集实例
2016/11/12 PHP
js tab 选项卡
2009/04/26 Javascript
Jquery 获取表单text,areatext,radio,checkbox,select值的代码
2009/11/12 Javascript
jquery 检测元素是否存在的实例代码
2013/11/19 Javascript
JavaScript中的比较操作符>、=、
2014/12/31 Javascript
Vue.js简易安装和快速入门(第二课)
2017/10/17 Javascript
仿京东快报向上滚动的实例
2017/12/13 Javascript
JavaScript 中定义函数用 var foo = function () {} 和 function foo()区别介绍
2018/03/01 Javascript
利用原生的JavaScript实现简单拼图游戏
2018/11/18 Javascript
Vue render函数实战之实现tabs选项卡组件
2019/04/22 Javascript
小程序开发踩坑:页面窗口定位(相对于浏览器定位)(推荐)
2019/04/25 Javascript
微信小程序实现批量倒计时功能
2020/11/01 Javascript
vue 实现tab切换保持数据状态
2020/07/21 Javascript
浅析vue中的nextTick
2020/12/28 Vue.js
Python入门篇之对象类型
2014/10/17 Python
Python中使用scapy模拟数据包实现arp攻击、dns放大攻击例子
2014/10/23 Python
详解Python3中yield生成器的用法
2015/08/20 Python
pyshp创建shp点文件的方法
2018/12/31 Python
使用python os模块复制文件到指定文件夹的方法
2019/08/22 Python
使用OpenCV实现仿射变换—旋转功能
2019/08/29 Python
Python大数据之从网页上爬取数据的方法详解
2019/11/16 Python
python 使用cx-freeze打包程序的实现
2020/03/14 Python
django 获取字段最大值,最新的记录操作
2020/08/09 Python
浅析Python 字符编码与文件处理
2020/09/24 Python
欧洲著名的珠宝和手表网上商城:uhrcenter
2017/04/10 全球购物
艺术设计专业个人求职信
2014/04/10 职场文书
办公室主任竞聘演讲稿
2014/05/15 职场文书
贷款委托书
2014/08/01 职场文书
县政府领导班子“四风”方面突出问题整改措施
2014/09/23 职场文书
党员领导干部民主生活会批评与自我批评发言
2014/09/28 职场文书
四风批评与自我批评范文
2014/10/14 职场文书
2014年社区党建工作总结
2014/11/11 职场文书
运动会广播稿300字
2015/08/19 职场文书
Django开发RESTful API实现增删改查(入门级)
2021/05/10 Python