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 相关文章推荐
Jupyter安装nbextensions,启动提示没有nbextensions库
Apr 23 Python
Python文本处理之按行处理大文件的方法
Apr 09 Python
利用python对Excel中的特定数据提取并写入新表的方法
Jun 14 Python
Python实现端口检测的方法
Jul 24 Python
通过pycharm使用git的步骤(图文详解)
Jun 13 Python
Python实现TCP探测目标服务路由轨迹的原理与方法详解
Sep 04 Python
python 使用raw socket进行TCP SYN扫描实例
May 05 Python
python实现最短路径的实例方法
Jul 19 Python
python将字典内容写入json文件的实例代码
Aug 12 Python
sublime3之内网安装python插件Anaconda的流程
Nov 10 Python
解决hive中导入text文件遇到的坑
Apr 07 Python
Python import模块的缓存问题解决方案
Jun 02 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
使用zend studio for eclipse不能激活代码提示功能的解决办法
2009/10/11 PHP
php根据身份证号码计算年龄的实例代码
2014/01/18 PHP
php使用cookie实现记住登录状态
2015/04/27 PHP
php简单实现多语言切换的方法
2016/05/09 PHP
ThinkPHP5与单元测试PHPUnit使用详解
2020/02/23 PHP
拖动Html元素集合 Drag and Drop any item
2006/12/22 Javascript
增强的 JavaScript 的 trim 函数的代码
2007/08/13 Javascript
屏蔽Flash右键信息的js代码
2010/01/17 Javascript
javascript定时保存表单数据的代码
2011/03/17 Javascript
在jquery boxy中添加百度地图坐标拾取注意流程
2014/04/03 Javascript
一个不错的仿携程自定义数据下拉选择select
2014/09/01 Javascript
jQuery中prop()方法用法实例
2015/01/05 Javascript
JavaScript的面向对象编程基础
2015/08/13 Javascript
基于JavaScript实现跳转提示页面
2016/09/24 Javascript
Asp.Net之JS生成分页条的方法
2016/11/23 Javascript
详解Vue-axios 设置请求头问题
2018/12/06 Javascript
JavaScript变量提升和严格模式实例分析
2019/01/27 Javascript
python插入排序算法实例分析
2015/07/03 Python
python 用lambda函数替换for循环的方法
2018/06/09 Python
详解Python打包分发工具setuptools
2019/08/05 Python
Python3+Selenium+Chrome实现自动填写WPS表单
2020/02/12 Python
python GUI库图形界面开发之PyQt5下拉列表框控件QComboBox详细使用方法与实例
2020/02/27 Python
基于Python制作一副扑克牌过程详解
2020/10/19 Python
CSS3的calc()做响应模式布局的实现方法
2017/09/06 HTML / CSS
美国网上购买眼镜:Eyeconic
2017/07/29 全球购物
女子锻炼服装和瑜伽服装:Splits59
2019/03/04 全球购物
房产买卖委托公证书
2014/04/04 职场文书
中班幼儿评语大全
2014/04/30 职场文书
小学国旗下的演讲稿
2014/08/28 职场文书
社保转移委托书范本
2014/10/08 职场文书
绿色校园广播稿
2014/10/13 职场文书
2015年学生资助工作总结
2015/05/25 职场文书
辩论赛主持人开场白
2015/05/29 职场文书
小学教师师德培训心得体会
2016/01/09 职场文书
预防职务犯罪警示教育心得体会
2016/01/15 职场文书
面试分析分布式架构Redis热点key大Value解决方案
2022/03/13 Redis