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 29 Python
python中OrderedDict的使用方法详解
May 05 Python
python微信跳一跳系列之自动计算跳一跳距离
Feb 26 Python
python psutil库安装教程
Mar 19 Python
python下载微信公众号相关文章
Feb 26 Python
Python3之不使用第三方变量,实现交换两个变量的值
Jun 26 Python
Python一键安装全部依赖包的方法
Aug 12 Python
PyCharm设置注释字体颜色以及是否倾斜的操作
Sep 16 Python
详解如何在pyqt中通过OpenCV实现对窗口的透视变换
Sep 20 Python
python 密码学示例——凯撒密码的实现
Sep 21 Python
Python截图并保存的具体实例
Jan 14 Python
Python OpenCV实现传统图片格式与base64转换
Jun 13 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
留言板翻页的实现详解
2006/10/09 PHP
Pain 全世界最小最简单的PHP模板引擎 (普通版)
2011/10/23 PHP
thinkPHP中钩子的使用方法实例分析
2017/11/16 PHP
php 替换文章中的图片路径,下载图片到本地服务器的方法
2018/02/06 PHP
PHP receiveMail实现收邮件功能
2018/04/25 PHP
PHP实现将base64编码字符串转换成图片示例
2018/06/22 PHP
jquery 屏蔽一个区域内的所有元素,禁止输入
2009/10/22 Javascript
jquery选择器之基本过滤选择器详解
2014/01/27 Javascript
jQuery 遍历函数详解
2015/07/05 Javascript
js阻止浏览器默认行为触发的通用方法(推荐)
2016/05/15 Javascript
jQuery布局组件EasyUI Layout使用方法详解
2017/02/28 Javascript
ReactNative列表ListView的用法
2017/08/02 Javascript
小程序实现多列选择器
2019/02/15 Javascript
微信小程序如何实现五星评价功能
2019/10/15 Javascript
解决小程序无法触发SESSION问题
2020/02/03 Javascript
jquery实现轮播图特效
2020/04/12 jQuery
Python中Iterator迭代器的使用杂谈
2016/06/20 Python
windows10系统中安装python3.x+scrapy教程
2016/11/08 Python
Python实现中文数字转换为阿拉伯数字的方法示例
2017/05/26 Python
python django 增删改查操作 数据库Mysql
2017/07/27 Python
使用Python开发SQLite代理服务器的方法
2018/12/07 Python
详解Python的数据库操作(pymysql)
2019/04/04 Python
python利用opencv实现SIFT特征提取与匹配
2020/03/05 Python
零基础小白多久能学会python
2020/06/22 Python
pandas使用函数批量处理数据(map、apply、applymap)
2020/11/27 Python
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
就业推荐自我鉴定
2013/10/06 职场文书
客服实习的个人自我鉴定
2013/10/20 职场文书
企业内控岗位的职责
2014/02/07 职场文书
创业融资计划书
2014/04/25 职场文书
服装仓管员岗位职责
2014/06/17 职场文书
工作失误检讨书
2015/01/26 职场文书
初一年级组工作总结
2015/08/12 职场文书
Pyqt5将多个类组合在一个界面显示的完整示例
2021/09/04 Python
python 中的jieba分词库
2021/11/23 Python
Meta增速拉垮,元宇宙难当重任
2022/04/29 数码科技