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操作mongodb根据_id查询数据的实现方法
May 20 Python
Python使用设计模式中的责任链模式与迭代器模式的示例
Mar 02 Python
使用DataFrame删除行和列的实例讲解
Apr 08 Python
python 匹配url中是否存在IP地址的方法
Jun 04 Python
python ipset管理 增删白名单的方法
Jan 14 Python
Python给图像添加噪声具体操作
Mar 03 Python
Python3环境安装Scrapy爬虫框架过程及常见错误
Jul 12 Python
python实现简单成绩录入系统
Sep 19 Python
使用python把xmind转换成excel测试用例的实现代码
Oct 12 Python
Django 用户认证Auth组件的使用
Nov 30 Python
python日志通过不同的等级打印不同的颜色(示例代码)
Jan 13 Python
python爬虫scrapy框架的梨视频案例解析
Feb 20 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
简单实用的网站PHP缓存类实例
2014/07/18 PHP
PHP中array_keys和array_unique函数源码的分析
2016/02/26 PHP
php同时使用session和cookie来保存用户登录信息的实现代码
2016/05/13 PHP
Thinkphp5.0 框架实现控制器向视图view赋值及视图view取值操作示例
2019/10/12 PHP
php设计模式之迭代器模式实例分析【星际争霸游戏案例】
2020/04/07 PHP
PHP数组实际占用内存大小原理解析
2020/12/11 PHP
jquery 图片轮换效果
2010/07/29 Javascript
用显卡加速,轻松把笔记本打造成取暖器的办法!
2013/04/17 Javascript
使用js的replace()方法查找字符示例代码
2013/10/28 Javascript
JS中window.open全屏命令解析及使用示例
2013/12/11 Javascript
Javascript实现图片轮播效果(二)图片序列节点的控制实现
2016/02/17 Javascript
jQuery简单实现列表隐藏和显示效果示例
2016/09/12 Javascript
AngularJS中的DOM操作用法分析
2016/11/04 Javascript
Bootstrap学习笔记之环境配置(1)
2016/12/07 Javascript
vue-cli配置文件——config篇
2018/01/04 Javascript
js canvas实现红包照片效果
2018/08/21 Javascript
微信小程序实现的一键连接wifi功能示例
2019/04/24 Javascript
vue制作抓娃娃机的示例代码
2020/04/17 Javascript
js实现翻牌小游戏
2020/07/31 Javascript
Ajax获取node服务器数据的完整步骤
2020/09/20 Javascript
python中requests小技巧
2017/05/10 Python
Python实现获取照片拍摄日期并重命名的方法
2017/09/30 Python
Python中将dataframe转换为字典的实例
2018/04/13 Python
django解决订单并发问题【推荐】
2019/07/31 Python
python使用pygame实现笑脸乒乓球弹珠球游戏
2019/11/25 Python
python实现多进程按序号批量修改文件名的方法示例
2019/12/30 Python
树莓派4B安装Tensorflow的方法步骤
2020/07/16 Python
利用html5 canvas动态画饼状图的示例代码
2018/04/02 HTML / CSS
详解html5 postMessage解决跨域通信的问题
2018/08/17 HTML / CSS
CK美国官网:Calvin Klein
2016/08/26 全球购物
领导检查欢迎词
2014/01/14 职场文书
酒后驾车标语
2014/06/30 职场文书
英语通知范文
2015/04/22 职场文书
毕业实习证明范本
2015/06/16 职场文书
2015年中秋寄语
2015/07/31 职场文书
WIN10使用IIS部署ftp服务器详细教程
2022/08/05 Servers