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中循环语句while用法实例
May 16 Python
浅谈Python中copy()方法的使用
May 21 Python
详解使用python crontab设置linux定时任务
Dec 08 Python
Python使用Dijkstra算法实现求解图中最短路径距离问题详解
May 16 Python
numpy.linspace 生成等差数组的方法
Jul 02 Python
Python 16进制与中文相互转换的实现方法
Jul 09 Python
浅谈关于Python3中venv虚拟环境
Aug 01 Python
python调用摄像头拍摄数据集
Jun 01 Python
python实现截取屏幕保存文件,删除N天前截图的例子
Aug 27 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
Jun 12 Python
基于Python实现粒子滤波效果
Dec 01 Python
Python实现中英文全文搜索的示例
Dec 04 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实现框架(一)
2006/10/09 PHP
用PHP和ACCESS写聊天室(四)
2006/10/09 PHP
php 中文字符串首字母的获取函数分享
2013/11/04 PHP
PHP中使用gettext解决国际化问题的例子(i18n)
2014/06/13 PHP
PHP生成唯一订单号
2015/07/05 PHP
php表单处理操作
2017/11/16 PHP
Laravel 框架路由原理与路由访问实例分析
2020/04/14 PHP
JavaScript.Encode手动解码技巧
2010/07/14 Javascript
基于jQuery实现图片的前进与后退功能
2013/04/24 Javascript
js动态切换图片的方法
2015/01/20 Javascript
jscript读写二进制文件的方法
2015/04/22 Javascript
jquery.serialize() 函数语法及简单实例
2016/07/08 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
vue2.0+koa2+mongodb实现注册登录
2018/04/10 Javascript
video.js添加自定义组件的方法
2020/12/09 Javascript
[09:33]2015国际邀请赛第四日TOP10
2015/08/08 DOTA
django1.8使用表单上传文件的实现方法
2016/11/04 Python
Python中turtle作图示例
2017/11/15 Python
Python语言描述最大连续子序列和
2017/12/05 Python
解决csv.writer写入文件有多余的空行问题
2018/07/06 Python
Python绘制并保存指定大小图像的方法
2019/01/10 Python
Python实现的大数据分析操作系统日志功能示例
2019/02/11 Python
Python Django 页面上展示固定的页码数实现代码
2019/08/21 Python
Django3.0 异步通信初体验(小结)
2019/12/04 Python
Pytorch 搭建分类回归神经网络并用GPU进行加速的例子
2020/01/09 Python
pandas DataFrame 数据选取,修改,切片的实现
2020/04/24 Python
基于python爬取梨视频实现过程解析
2020/11/09 Python
python 如何在测试中使用 Mock
2021/03/01 Python
css3实现平移效果(transfrom:translate)的示例
2020/11/13 HTML / CSS
HTML5 对各个标签的定义与规定:body的介绍
2012/06/21 HTML / CSS
AmazeUI 导航条的实现示例
2020/08/14 HTML / CSS
食品安全标语
2014/06/07 职场文书
机关作风建设心得体会
2014/10/22 职场文书
2015年爱国卫生月活动总结
2015/03/26 职场文书
2016八一建军节慰问信
2015/11/30 职场文书
Go语言特点及基本数据类型使用详解
2022/03/21 Golang