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定时采集摄像头图像上传ftp服务器功能实现
Dec 23 Python
在Python中使用lambda高效操作列表的教程
Apr 24 Python
python开发之IDEL(Python GUI)的使用方法图文详解
Nov 12 Python
OpenCV2从摄像头获取帧并写入视频文件的方法
Aug 03 Python
对python制作自己的数据集实例讲解
Dec 12 Python
在Pycharm中执行scrapy命令的方法
Jan 16 Python
Python 依赖库太多了该如何管理
Nov 08 Python
使用pytorch和torchtext进行文本分类的实例
Jan 08 Python
jupyter notebook实现显示行号
Apr 13 Python
Keras构建神经网络踩坑(解决model.predict预测值全为0.0的问题)
Jul 07 Python
Flask使用SQLAlchemy实现持久化数据
Jul 16 Python
Python实现猜拳与猜数字游戏的方法详解
Apr 06 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
PHP 类型转换函数intval
2009/06/20 PHP
PHP实现动态创建XML文档的方法
2018/03/30 PHP
Javascript的一种模块模式
2008/03/22 Javascript
浅析Node.js查找字符串功能
2014/09/03 Javascript
js比较日期大小的方法
2015/05/12 Javascript
第九章之路径分页标签与徽章组件
2016/04/25 Javascript
require.js 加载 vue组件 r.js 合并压缩的实例
2016/10/14 Javascript
ionic进入多级目录后隐藏底部导航栏(tabs)的完美解决方案
2016/11/23 Javascript
jQuery实现背景滑动菜单
2016/12/02 Javascript
深入理解javascript中concat方法
2016/12/12 Javascript
基于bootstrap按钮式下拉菜单组件的搜索建议插件
2017/03/25 Javascript
详解node.js搭建代理服务器请求数据
2017/04/08 Javascript
jquery插件canvaspercent.js实现百分比圆饼效果
2017/07/18 jQuery
微信小程序getPhoneNumber获取用户手机号
2017/09/29 Javascript
JavaScript实现新年倒计时效果
2018/11/17 Javascript
vue项目首屏加载时间优化实战
2019/04/23 Javascript
node 标准输入流和输出流代码实例
2019/09/19 Javascript
如何在postman中添加cookie信息步骤解析
2020/06/30 Javascript
vue 使用微信jssdk,调用微信相册上传图片功能
2020/11/13 Javascript
Python的Flask框架中web表单的教程
2015/04/20 Python
用Python编写脚本使IE实现代理上网的教程
2015/04/23 Python
Python中表达式x += y和x = x+y 的区别详解
2017/06/20 Python
分享一个可以生成各种进制格式IP的小工具实例代码
2017/07/28 Python
Python实现一个简单的验证码程序
2017/11/03 Python
python爬取足球直播吧五大联赛积分榜
2018/06/13 Python
python爬虫实现中英翻译词典
2019/06/25 Python
Python大批量搜索引擎图像爬虫工具详解
2020/11/16 Python
一款CSS3实现多功能下拉菜单(带分享按)的教程
2014/11/05 HTML / CSS
Hotels.com英国:全球领先的酒店住宿提供商
2019/01/24 全球购物
面向对象编程是如何提高软件开发水平的
2014/05/06 面试题
请编写一个 C 函数,该函数在给定的内存区域搜索给定的字符,并返回该字符所在位置索引值
2014/09/15 面试题
2015年五四青年节活动总结
2015/02/10 职场文书
2015年治庸问责工作总结
2015/07/27 职场文书
python库sklearn常用操作
2021/08/23 Python
GO语言字符串处理函数之处理Strings包
2022/04/14 Golang