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之玩转字符串(3)
Sep 14 Python
在Python中处理XML的教程
Apr 29 Python
Python selenium 三种等待方式解读
Sep 15 Python
利用python画一颗心的方法示例
Jan 31 Python
关于python写入文件自动换行的问题
Jun 23 Python
Django框架的中的setting.py文件说明详解
Oct 15 Python
selenium2.0中常用的python函数汇总
Aug 05 Python
Python中模块(Module)和包(Package)的区别详解
Aug 07 Python
Python三元运算与lambda表达式实例解析
Nov 30 Python
python基于TCP实现的文件下载器功能案例
Dec 10 Python
django inspectdb 操作已有数据库数据的使用步骤
Feb 07 Python
Python Pandas pandas.read_sql_query函数实例用法分析
Jun 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
ThinkPHP处理Ajax返回的方法
2014/11/22 PHP
php实现微信支付之企业付款
2018/05/30 PHP
jquery tools 系列 scrollable(2)
2009/09/06 Javascript
js parsefloat parseint 转换函数
2010/01/21 Javascript
jQuery EasyUI API 中文文档 - Parser 解析器
2011/09/29 Javascript
用JQuery实现表格隔行变色和突出显示当前行的代码
2012/02/10 Javascript
ExtJS下书写动态生成的xml(兼容火狐)
2013/04/02 Javascript
Jquery方式获取iframe页面中的 Dom元素
2014/05/07 Javascript
使用ajax+jqtransform实现动态加载select
2014/12/01 Javascript
JQuery右键菜单插件ContextMenu使用指南
2014/12/19 Javascript
使用javascript实现Iframe自适应高度
2014/12/24 Javascript
jquery实现的用户注册表单提示操作效果代码分享
2015/08/28 Javascript
基于JavaScript获取鼠标位置的各种方法
2015/12/16 Javascript
js注入 黑客之路必备!
2016/09/14 Javascript
Angularjs实现带查找筛选功能的select下拉框示例代码
2016/10/04 Javascript
浅谈Vue.js中的v-on(事件处理)
2017/09/05 Javascript
nodejs操作mongodb的填删改查模块的制作及引入实例
2018/01/02 NodeJs
Angular利用HTTP POST下载流文件的步骤记录
2020/07/26 Javascript
Python中函数的用法实例教程
2014/09/08 Python
pytorch构建网络模型的4种方法
2018/04/13 Python
python抽取指定url页面的title方法
2018/05/11 Python
python3 打开外部程序及关闭的示例
2018/11/06 Python
Python Pandas数据结构简单介绍
2019/07/03 Python
numpy数组广播的机制
2019/07/12 Python
用css3制作纸张效果(外翻卷角)
2013/02/01 HTML / CSS
跑步爱好者一站式服务网站:Jack Rabbit
2016/09/01 全球购物
澳洲的UGG雪地靴超级市场:Uggs.com.au
2020/04/06 全球购物
如何实现一个自定义类的序列化
2012/05/22 面试题
母婴店促销方案
2014/03/05 职场文书
市场营销调查计划书
2014/05/02 职场文书
小学兴趣小组活动总结
2014/07/07 职场文书
医学专业毕业生推荐信
2014/07/12 职场文书
英语复习计划
2015/01/19 职场文书
2016年万圣节家长开放日活动总结
2016/04/05 职场文书
python实现会员管理系统
2022/03/18 Python
Python matplotlib 利用随机函数生成变化图形
2022/04/26 Python