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中的strftime()方法的使用
May 22 Python
Python创建xml文件示例
Mar 22 Python
Python实现购物车购物小程序
Apr 18 Python
python 把列表转化为字符串的方法
Oct 23 Python
python移位运算的实现
Jul 15 Python
Django中ajax发送post请求 报403错误CSRF验证失败解决方案
Aug 13 Python
python 实现多线程下载m3u8格式视频并使用fmmpeg合并
Nov 15 Python
Python散点图与折线图绘制过程解析
Nov 30 Python
python读取ini配置的类封装代码实例
Jan 08 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
Jun 08 Python
python实现图片,视频人脸识别(dlib版)
Nov 18 Python
Python实战之实现康威生命游戏
Apr 26 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中通过ADODB库实现调用Access数据库之修正版本
2006/12/31 PHP
php中3des加密代码(完全与.net中的兼容)
2012/08/02 PHP
PHP 5.3和PHP 5.4出现FastCGI Error解决方法
2015/02/12 PHP
php5.5使用PHPMailer-5.2发送邮件的完整步骤
2018/10/14 PHP
javaScript checkbox 全选/反选及批量删除
2010/04/28 Javascript
jQuery隔行变色与普通JS写法的对比
2013/04/21 Javascript
jquery鼠标滑过提示title具体实现代码
2013/08/06 Javascript
jQuery实现点击该行即可删除HTML表格行
2014/10/17 Javascript
JavaScript简单表格编辑功能实现方法
2015/04/16 Javascript
javascript实现设置、获取和删除Cookie的方法
2015/06/01 Javascript
基于Bootstrap实现tab标签切换效果
2020/04/15 Javascript
Javascript操作表单实例讲解(下)
2016/06/20 Javascript
jQuery使用getJSON方法获取json数据完整示例
2016/09/13 Javascript
浅谈js的ajax的异步和同步请求的问题
2016/10/07 Javascript
微信小程序 教程之模板
2016/10/18 Javascript
JavaScript数据结构之二叉查找树的定义与表示方法
2017/04/12 Javascript
Angular4.0中引入laydate.js日期插件的方法教程
2017/12/25 Javascript
对vue2.0中.vue文件页面跳转之.$router.push的用法详解
2018/08/24 Javascript
vue router的基本使用和配置教程
2018/11/05 Javascript
通过实例了解Render Props回调地狱解决方案
2020/11/04 Javascript
Python入门篇之面向对象
2014/10/20 Python
Python Django给admin添加Action的方法实例详解
2019/04/29 Python
Django集成celery发送异步邮件实例
2019/12/17 Python
Python利用 utf-8-sig 编码格式解决写入 csv 文件乱码问题
2020/02/21 Python
python统计文章中单词出现次数实例
2020/02/27 Python
python制作微博图片爬取工具
2021/01/16 Python
HTML5实现晶莹剔透的雨滴特效
2014/05/14 HTML / CSS
米兰必去买手店排行榜首位:Antonioli
2016/09/11 全球购物
英国儿童图书网站:Scholastic
2017/03/26 全球购物
考博专家推荐信模板
2013/12/02 职场文书
2015年重阳节活动总结
2015/03/24 职场文书
汽车质检员岗位职责
2015/04/08 职场文书
关于召开会议的通知
2015/04/15 职场文书
幼儿园秋季开学通知
2015/07/16 职场文书
为什么中国式养孩子很累?
2019/08/07 职场文书