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高并发异步服务器核心库forkcore使用方法
Nov 26 Python
Python二分法搜索算法实例分析
May 11 Python
Python3读取UTF-8文件及统计文件行数的方法
May 22 Python
图文讲解选择排序算法的原理及在Python中的实现
May 04 Python
Python基础教程之tcp socket编程详解及简单实例
Feb 23 Python
python opencv实现切变换 不裁减图片
Jul 26 Python
tensorflow 中对数组元素的操作方法
Jul 27 Python
用pycharm开发django项目示例代码
Oct 24 Python
详解pandas库pd.read_excel操作读取excel文件参数整理与实例
Feb 17 Python
详解有关PyCharm安装库失败的问题的解决方法
Feb 02 Python
python GUI库图形界面开发之PyQt5打印控件QPrinter详细使用方法与实例
Feb 28 Python
python之pygame模块实现飞机大战完整代码
Nov 29 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
global.php
2006/12/09 PHP
php中根据变量的类型 选择echo或dump
2012/07/05 PHP
PHP中spl_autoload_register()函数用法实例详解
2016/07/18 PHP
php将文件夹打包成zip文件的简单实现方法
2016/10/04 PHP
纯js实现仿QQ邮箱弹出确认框
2015/04/29 Javascript
nodejs实现遍历文件夹并统计文件大小
2015/05/28 NodeJs
JavaScript实现复制文章自动添加版权
2016/08/02 Javascript
浅谈JS使用[ ]来访问对象属性
2016/09/21 Javascript
使用开源工具制作网页验证码的方法
2016/10/17 Javascript
Vue.JS入门教程之处理表单
2016/12/01 Javascript
three.js快速入门【推荐】
2017/01/21 Javascript
jQuery Plupload上传插件的使用
2017/04/19 jQuery
深入理解vue-router之keep-alive
2017/08/31 Javascript
使用DataTable插件实现异步加载数据
2017/11/19 Javascript
详解javascript脚本何时会被执行
2021/02/05 Javascript
[09:13]2014DOTA2国际邀请赛 中国区预选赛coser表演
2014/05/23 DOTA
Python实例一个类背后发生了什么
2016/02/09 Python
深入解读Python解析XML的几种方式
2016/02/16 Python
Python 中的range(),以及列表切片方法
2018/07/02 Python
python 读取文件并替换字段的实例
2018/07/12 Python
Keras-多输入多输出实例(多任务)
2020/06/22 Python
简单的命令查看安装的python版本号
2020/08/28 Python
Python操作dict时避免出现KeyError的几种解决方法
2020/09/20 Python
CSS3 圆角效果
2009/07/15 HTML / CSS
GNC健安喜美国官网:美国第一营养品牌
2016/07/22 全球购物
美国当红的名品折扣网:Gilt Groupe
2016/08/15 全球购物
越南电子产品购物网站:FPT Shop
2017/12/02 全球购物
Nike加拿大官网:Nike.com (CA)
2019/04/09 全球购物
英语道歉信范文
2014/01/09 职场文书
咖啡书吧创业计划书
2014/01/13 职场文书
会计电算化应届生自荐信
2014/02/25 职场文书
大专应届毕业生求职信
2014/07/15 职场文书
庆七一活动总结
2014/08/27 职场文书
法人代表证明书
2014/09/18 职场文书
仲裁协议书
2014/09/26 职场文书