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删除列表中重复记录的方法
Apr 28 Python
python使用xlrd模块读写Excel文件的方法
May 06 Python
使用httplib模块来制作Python下HTTP客户端的方法
Jun 19 Python
matplotlib绘制符合论文要求的图片实例(必看篇)
Jun 02 Python
python单例模式实例解析
Aug 28 Python
使用11行Python代码盗取了室友的U盘内容
Oct 23 Python
python中几种自动微分库解析
Aug 29 Python
用python求一重积分和二重积分的例子
Dec 06 Python
Django+Uwsgi+Nginx如何实现生产环境部署
Jul 31 Python
python安装mysql的依赖包mysql-python操作
Jan 01 Python
详解matplotlib绘图样式(style)初探
Feb 03 Python
Python爬虫基础初探selenium
May 31 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
php中echo()和print()、require()和include()等易混淆函数的区别
2012/02/22 PHP
PHP利用正则表达式将相对路径转成绝对路径的方法示例
2017/02/28 PHP
PHP中的Iterator迭代对象属性详解
2019/04/12 PHP
JS中style属性
2006/10/11 Javascript
在textarea文本域中显示HTML代码的方法
2007/03/06 Javascript
基于JQuery的访问WebService的代码(可访问Java[Xfire])
2010/11/19 Javascript
myEvent.js javascript跨浏览器事件框架
2011/10/24 Javascript
深入理解JavaScript系列(7) S.O.L.I.D五大原则之开闭原则OCP
2012/01/15 Javascript
jquery常用特效方法使用示例
2014/04/25 Javascript
javascript制作的网页侧边弹出框思路及实现代码
2014/05/21 Javascript
jquery读取xml文件实现省市县三级联动的方法
2015/05/29 Javascript
Javascript6中字符串的四个新用法分享
2016/09/11 Javascript
需要牢记的JavaScript基础知识
2016/09/25 Javascript
基于jQuery制作小图标上下滑动特效
2017/01/18 Javascript
简单实现js菜单栏切换效果
2017/03/04 Javascript
JavaScript获取URL参数的方法之一
2017/03/24 Javascript
用vue封装插件并发布到npm的方法步骤
2017/10/18 Javascript
babel的使用及安装配置教程
2018/02/22 Javascript
vue-cli常用设置总结
2018/02/24 Javascript
微信小程序ibeacon三点定位详解
2018/10/31 Javascript
JS实现图片拖拽交换效果
2018/11/30 Javascript
AngularJS实现的自定义过滤器简单示例
2019/02/02 Javascript
微信小程序indexOf的替换方法(推荐)
2020/01/14 Javascript
Vuex的各个模块封装的实现
2020/06/05 Javascript
解决vue+router路由跳转不起作用的一项原因
2020/07/19 Javascript
wxPython窗口中文乱码解决方法
2014/10/11 Python
Python Web框架Tornado运行和部署
2020/10/19 Python
Python如何发布程序的详细教程
2018/10/09 Python
通过实例解析python and和or使用方法
2020/11/14 Python
GoDaddy英国:全球排名第一的域名注册商
2018/06/08 全球购物
固特异美国在线轮胎店:Goodyear Tire
2019/02/23 全球购物
美国体育用品商店:Academy Sports + Outdoors
2020/01/04 全球购物
承诺书范文
2014/06/03 职场文书
党员评议思想汇报
2014/10/08 职场文书
html form表单基础入门案例讲解
2021/07/21 HTML / CSS
Python MNIST手写体识别详解与试练
2021/11/07 Python