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和php通信乱码问题解决方法
Apr 15 Python
python根据时间生成mongodb的ObjectId的方法
Mar 13 Python
Python 模拟登陆的两种实现方法
Aug 10 Python
python编程羊车门问题代码示例
Oct 25 Python
使用python爬虫获取黄金价格的核心代码
Jun 13 Python
Python多线程应用于自动化测试操作示例
Dec 06 Python
Python小游戏之300行代码实现俄罗斯方块
Jan 04 Python
详解Python3除法之真除法、截断除法和下取整对比
May 23 Python
详解基于Jupyter notebooks采用sklearn库实现多元回归方程编程
Mar 25 Python
python搜索算法原理及实例讲解
Nov 18 Python
使用python将微信image下.dat文件解密为.png的方法
Nov 30 Python
总结Python常用的魔法方法
May 25 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
vBulletin Forum 2.3.xx SQL Injection
2006/10/09 PHP
MYSQL数据库初学者使用指南
2006/11/16 PHP
破解.net程序(dll文件)编译和反编译方法
2013/01/31 PHP
基于PHP magic_quotes_gpc的使用方法详解
2013/06/24 PHP
php用正则表达式匹配中文实例详解
2013/11/06 PHP
如何在HTML 中嵌入 PHP 代码
2015/05/13 PHP
CI框架数据库查询之join用法分析
2016/05/18 PHP
js之WEB开发调试利器:Firebug 下载
2007/01/13 Javascript
javascript取消文本选定的实现代码
2010/11/14 Javascript
js中parseInt函数浅谈
2013/07/31 Javascript
JS如何将数字类型转化为没3个一个逗号的金钱格式
2014/01/27 Javascript
seaJs的模块定义和模块加载浅析
2014/06/06 Javascript
基于JavaScript实现生成名片、链接等二维码
2015/09/20 Javascript
Javascript表单特效之十大常用原理性样例代码大总结
2016/07/12 Javascript
原生js实现无限循环轮播图效果
2017/01/20 Javascript
提高Node.js性能的应用技巧分享
2017/08/10 Javascript
手把手教你使用vue-cli脚手架(图文解析)
2017/11/08 Javascript
element-ui 表格实现单元格可编辑的示例
2018/02/26 Javascript
vue+element实现批量删除功能的示例
2018/02/28 Javascript
nodejs+mongodb aggregate级联查询操作示例
2018/03/17 NodeJs
重新认识vue之事件阻止冒泡的实现
2018/08/02 Javascript
浅析JavaScript异步代码优化
2019/03/18 Javascript
python网络编程之数据传输UDP实例分析
2015/05/20 Python
Python设计模式中单例模式的实现及在Tornado中的应用
2016/03/02 Python
浅谈python抛出异常、自定义异常, 传递异常
2016/06/20 Python
Python新手入门最容易犯的错误总结
2017/04/24 Python
Python基于正则表达式实现文件内容替换的方法
2017/08/30 Python
python中模块的__all__属性详解
2017/10/26 Python
python-xpath获取html文档的部分内容
2020/03/06 Python
PIL.Image.open和cv2.imread的比较与相互转换的方法
2020/06/03 Python
Pycharm操作Git及GitHub的步骤详解
2020/10/27 Python
使用spring mvc+localResizeIMG实现HTML5端图片压缩上传的功能
2016/12/16 HTML / CSS
学习之星事迹材料
2014/05/17 职场文书
授权委托书协议书
2014/10/16 职场文书
导游词之永泰公主墓
2019/12/04 职场文书
使用Nginx的访问日志统计PV与UV
2022/05/06 Servers