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下载Bing图片(代码)
Nov 07 Python
Python通过解析网页实现看报程序的方法
Aug 04 Python
Python图片裁剪实例代码(如头像裁剪)
Jun 21 Python
使用python实现tcp自动重连
Jul 02 Python
python实现八大排序算法(1)
Sep 14 Python
用TensorFlow实现多类支持向量机的示例代码
Apr 28 Python
Python中存取文件的4种不同操作
Jul 02 Python
Mac下Anaconda的安装和使用教程
Nov 29 Python
python将list转为matrix的方法
Dec 12 Python
Python实现密码薄文件读写操作
Dec 16 Python
python 爬取古诗文存入mysql数据库的方法
Jan 08 Python
pycharm-professional-2020.1下载与激活的教程
Sep 21 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/11/19 PHP
php中目录,文件操作详谈
2007/03/19 PHP
thinkPHP批量删除的实现方法分析
2016/11/09 PHP
使用ImageMagick进行图片缩放、合成与裁剪(js+python)
2013/09/16 Javascript
jQuery中removeClass()方法用法实例
2015/01/05 Javascript
jQuery实现根据类型自动显示和隐藏表单
2015/03/18 Javascript
jQuery入门之层次选择器实例简析
2015/12/11 Javascript
switch语句的妙用(必看篇)
2016/10/03 Javascript
node.js入门学习之url模块
2017/02/25 Javascript
浅谈js中startsWith 函数不能在任何浏览器兼容的问题
2017/03/01 Javascript
关于jQuery中fade(),show()起始位置的一点小发现
2017/04/25 jQuery
详解js类型判断
2018/05/22 Javascript
js实现前面自动补全位数的方法
2018/10/10 Javascript
详解vue 项目白屏解决方案
2018/10/31 Javascript
JavaScript键盘事件响应顺序详解
2019/09/30 Javascript
JavaScript实现多文件下载方法解析
2020/08/07 Javascript
[44:40]Serenity vs Pain 2018国际邀请赛小组赛BO2 第一场 8.19
2018/08/21 DOTA
Python利用multiprocessing实现最简单的分布式作业调度系统实例
2017/11/14 Python
Python实现Pig Latin小游戏实例代码
2018/02/02 Python
python自动重试第三方包retrying模块的方法
2018/04/24 Python
Pandas 重塑(stack)和轴向旋转(pivot)的实现
2019/07/22 Python
pytorch载入预训练模型后,实现训练指定层
2020/01/06 Python
如何利用Python识别图片中的文字
2020/05/31 Python
Python存储读取HDF5文件代码解析
2020/11/25 Python
利用CSS3实现文字折纸效果实例代码
2018/07/10 HTML / CSS
优衣库英国官网:UNIQLO英国
2016/12/25 全球购物
Mankind西班牙男士护肤品网站:购买皮肤护理、护发和剃须
2017/04/27 全球购物
数字漫画:comiXology
2020/06/13 全球购物
宿舍卫生检讨书
2014/01/16 职场文书
《数星星的孩子》教学反思
2014/04/11 职场文书
技校毕业生自荐书
2014/05/23 职场文书
商务专员岗位职责范本
2014/06/29 职场文书
党员自我剖析材料范文
2014/10/06 职场文书
普通党员个人剖析材料
2014/10/08 职场文书
2015年见习期工作总结
2014/12/12 职场文书
该怎么书写道歉信?
2019/07/03 职场文书