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 相关文章推荐
使用Python3编写抓取网页和只抓网页图片的脚本
Aug 20 Python
详解Python函数作用域的LEGB顺序
May 14 Python
python 实现红包随机生成算法的简单实例
Jan 04 Python
Python科学计算之NumPy入门教程
Jan 15 Python
python实现unicode转中文及转换默认编码的方法
Apr 29 Python
Python数据分析之双色球统计两个红和蓝球哪组合比例高的方法
Feb 03 Python
Python2包含中文报错的解决方法
Jul 09 Python
记一次python 内存泄漏问题及解决过程
Nov 29 Python
从运行效率与开发效率比较Python和C++
Dec 14 Python
PyQt Qt Designer工具的布局管理详解
Aug 07 Python
Python对接 xray 和微信实现自动告警
Sep 17 Python
一文详述 Python 中的 property 语法
Sep 01 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
Window下PHP三种运行方式图文详解
2013/06/11 PHP
Yii2 中实现单点登录的方法
2018/03/09 PHP
PHP封装的验证码工具类定义与用法示例
2018/08/22 PHP
php 输出缓冲 Output Control用法实例详解
2020/03/03 PHP
Laravel 框架控制器 Controller原理与用法实例分析
2020/04/14 PHP
PHP网站常见安全漏洞,及相应防范措施总结
2021/03/01 PHP
JSQL  一个 web DB 的封装
2010/05/05 Javascript
使用jQuery的将桌面应用程序引入浏览器
2010/11/19 Javascript
JavaScript高级程序设计 学习笔记 js高级技巧
2011/09/20 Javascript
面向对象的Javascript之一(初识Javascript)
2012/01/20 Javascript
jQuery老黄历完整实现方法
2015/01/16 Javascript
javascript 继承学习心得总结
2016/03/17 Javascript
jquery实现全选和全不选功能效果的实现代码【推荐】
2016/05/05 Javascript
JQuery遍历元素的后代和同胞实现方法
2016/09/18 Javascript
浅谈JS验证表单文本域输入空格的问题
2017/02/14 Javascript
Angular4学习笔记之准备和环境搭建项目
2017/08/01 Javascript
如何编写一个d.ts文件的步骤详解
2018/04/13 Javascript
JavaScript中的事件与异常捕获详析
2019/02/24 Javascript
Vue3.0数据响应式原理详解
2019/10/09 Javascript
Vue记住滚动条和实现下拉加载的完美方法
2020/07/31 Javascript
小程序实现上下切换位置
2020/11/16 Javascript
Python模块搜索概念介绍及模块安装方法介绍
2015/06/03 Python
基于Python对数据shape的常见操作详解
2018/12/25 Python
基于Python实现人脸自动戴口罩系统
2020/02/06 Python
详解anaconda离线安装pytorchGPU版
2020/09/08 Python
利用python如何实现猫捉老鼠小游戏
2020/12/04 Python
利用纯CSS3实现动态的自行车特效源码
2017/01/20 HTML / CSS
世界上最好的儿童品牌:AlexandAlexa
2018/01/27 全球购物
官方授权图形T恤和服装:Fifth Sun
2019/06/12 全球购物
文秘专业自荐信
2013/10/14 职场文书
导购员的岗位职责
2014/02/08 职场文书
门店店长岗位职责
2015/04/14 职场文书
张丽莉事迹观后感
2015/06/16 职场文书
django如何自定义manage.py管理命令
2021/04/27 Python
vue二维数组循环嵌套方式 循环数组、循环嵌套数组
2022/04/24 Vue.js
MySQL数据库之内置函数和自定义函数 function
2022/06/16 MySQL