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检查序列seq是否含有aset中项的方法
Jun 30 Python
使用Python的PIL模块来进行图片对比
Feb 18 Python
Python文件处理
Feb 29 Python
Python备份目录及目录下的全部内容的实现方法
Jun 12 Python
使用Python将数组的元素导出到变量中(unpacking)
Oct 27 Python
itchat接口使用示例
Oct 23 Python
Python实现字典(dict)的迭代操作示例
Jun 05 Python
详细介绍Python进度条tqdm的使用
Jul 31 Python
python 实现矩阵按对角线打印
Nov 29 Python
OpenCV Python实现拼图小游戏
Mar 23 Python
Python抓包并解析json爬虫的完整实例代码
Nov 03 Python
python APScheduler执行定时任务介绍
Apr 19 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 作用域解析运算符(::)
2010/07/27 PHP
PHP IE中下载附件问题解决方法
2014/01/07 PHP
php去掉URL网址中带有PHPSESSID的配置方法
2014/07/08 PHP
PHP中的Streams详细介绍
2014/11/12 PHP
CI框架实现优化文件上传及多文件上传的方法
2017/01/04 PHP
php头像上传预览实例代码
2017/05/02 PHP
jQuery对象和DOM对象使用说明
2010/06/25 Javascript
js局部刷新页面时间具体实现
2013/07/04 Javascript
Javascript写入txt和读取txt文件示例
2014/02/12 Javascript
Node.js的特点和应用场景介绍
2014/11/04 Javascript
Javascript中的匿名函数与封装介绍
2015/03/15 Javascript
jquery单击事件和双击事件冲突解决方案
2016/03/02 Javascript
Jquery轮播效果实现过程解析
2016/03/30 Javascript
jQuery简单实现的HTML页面文本框模糊匹配查询功能完整示例
2018/05/09 jQuery
js自定义input文件上传样式
2018/10/26 Javascript
vue实现微信获取用户信息的方法
2019/03/21 Javascript
JS为什么说async/await是generator的语法糖详解
2019/07/11 Javascript
解决layui动态添加的元素click等事件触发不了的问题
2019/09/20 Javascript
vue使用高德地图点击下钻上浮效果的实现思路
2019/10/12 Javascript
解决vue 使用axios.all()方法发起多个请求控制台报错的问题
2020/11/09 Javascript
JavaScript实现消消乐的源代码
2021/01/12 Javascript
400多行Python代码实现了一个FTP服务器
2012/05/10 Python
浅析Python编写函数装饰器
2016/03/18 Python
解决python中使用plot画图,图不显示的问题
2018/07/04 Python
Python不使用int()函数把字符串转换为数字的方法
2018/07/09 Python
Django代码性能优化与Pycharm Profile使用详解
2018/08/26 Python
python爬虫 批量下载zabbix文档代码实例
2019/08/21 Python
python numpy中cumsum的用法详解
2019/10/17 Python
Python爬取365好书中小说代码实例
2020/02/28 Python
Python变量及数据类型用法原理汇总
2020/08/06 Python
css3 给页面加个半圆形导航条主要利用旋转和倾斜样式
2014/02/10 HTML / CSS
HTML5的结构和语义(1):前言
2008/10/17 HTML / CSS
美国学校校服,儿童和婴儿服装:Cookie’s Kids
2016/10/14 全球购物
介绍一下ICMP(Internet Control Message Protocol)Internet控制信息协议
2016/11/26 面试题
2014年班组长工作总结
2014/11/20 职场文书
导游词之南京中山陵
2019/11/27 职场文书