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  连接字符串(join %)
Sep 06 Python
python3.3教程之模拟百度登陆代码分享
Jan 16 Python
python使用三角迭代计算圆周率PI的方法
Mar 20 Python
Python使用metaclass实现Singleton模式的方法
May 05 Python
python将文本中的空格替换为换行的方法
Mar 19 Python
python增加矩阵维度的实例讲解
Apr 04 Python
tensorflow 中对数组元素的操作方法
Jul 27 Python
利用Python如何批量更新服务器文件
Jul 29 Python
安装docker-compose的两种最简方法
Jul 30 Python
浅析PyTorch中nn.Linear的使用
Aug 18 Python
PyCharm 2020 激活到 2100 年的教程
Mar 25 Python
PyQT5速成教程之Qt Designer介绍与入门
Nov 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
改变Apache端口等配置修改方法
2008/06/05 PHP
PHP EOT定界符的使用详解
2008/09/30 PHP
php中获取指定IP的物理地址的代码(正则表达式)
2011/06/23 PHP
openPNE常用方法分享
2011/11/29 PHP
php对包含html标签的字符串进行截取的函数分享
2014/06/19 PHP
PHP文件及文件夹操作之创建、删除、移动、复制
2016/07/13 PHP
对联广告js flash激活
2006/10/19 Javascript
javascript模仿msgbox提示效果代码
2008/06/10 Javascript
html组件不可输入(只读)同时任何组件都有效
2013/04/01 Javascript
JavaScript中的console.dir()函数介绍
2014/12/29 Javascript
jquery实现漂亮的二级下拉菜单代码
2015/08/26 Javascript
JSON与String互转的实现方法(Javascript)
2016/09/27 Javascript
JavaScript实现重力下落与弹性效果的方法分析
2017/12/20 Javascript
iview table高度动态设置方法
2018/03/14 Javascript
Node.js进阶之核心模块https入门
2018/05/23 Javascript
微信小程序实现横向增长表格的方法
2018/07/24 Javascript
Vue实现input宽度随文字长度自适应操作
2020/07/29 Javascript
Python collections模块实例讲解
2014/04/07 Python
跟老齐学Python之类的细节
2014/10/13 Python
python提取字典key列表的方法
2015/07/11 Python
Python中is与==判断的区别
2017/03/28 Python
Python2.X/Python3.X中urllib库区别讲解
2017/12/19 Python
python实现冒泡排序算法的两种方法
2018/03/10 Python
python 实现对文件夹内的文件排序编号
2018/04/12 Python
python3实现字符串操作的实例代码
2019/04/16 Python
离线状态下在jupyter notebook中使用plotly实例
2020/04/24 Python
利用Python实现Json序列化库的方法步骤
2020/09/09 Python
香港万宁官方海外旗舰店:香港健与美连锁店
2018/09/27 全球购物
全球性的在线鞋类品牌:Public Desire
2019/04/03 全球购物
西班牙鞋子和箱包在线销售网站:zapatos.es
2020/02/17 全球购物
双立人美国官方商店:ZWILLING集团餐具和炊具
2020/05/07 全球购物
毕业生个人求职信范例分享
2013/12/17 职场文书
学雷锋先进个人事迹
2014/05/26 职场文书
小学趣味运动会加油稿
2014/09/25 职场文书
简易离婚协议书范本
2014/10/24 职场文书
vue使用element-ui按需引入
2022/05/20 Vue.js