python不到50行代码完成了多张excel合并的实现示例
作者:知识追寻者 发布时间:2023-04-11 10:41:39
标签:python,excel,合并
一 前言
公司同事最近在做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')
来源:https://blog.csdn.net/youku1327/article/details/105300668


猜你喜欢
- 初衷NumPy、Pandas、Matplotlib、SciPy 等可以说是最最最常用的 Python 库了。我们在使用 Python 库的时
- 现在Go1.14都已经发布好些日子了,之前发的Go环境搭建教程早已过时,只是因为时间问题一直没来得及更新这次怀着愧疚的心情,在凌晨四点时,将
- 本文实例为大家分享了微信小程序支付前端源码,供大家参考,具体内容如下//index.jsPage({ data: {}, //点击支付按钮进
- 自定义模板标签,过滤器。英文翻译是Customtemplatetagsandfilters。customfilter自定义过滤器今天不在我的
- 本文为大家分享了JavaScript实现省市联动过程中bug的解决方法,供大家参考,具体内容如下先把实现省市联动遇到的问题描述一下1.1.原
- 锁定数据库的一个表SELECT * FROM table WITH (HOLDLOCK)注意: 锁定数据库的一个表的区别SELECT * F
- 目录vuex持久化总结vuex持久化vuex:刷新浏览器,vuex中的state会重新变为初始状态解决办法:使用vuex-persisted
- 本文实例为大家分享了微信小程序实现计算器的具体代码,供大家参考,具体内容如下1、实现效果图2、代码编写index.wxml<!--au
- function.js<!--function getObject(objectId) { &nbs
- 单体最佳实践的由来对于很多初创公司来说,业务的早期我们更应该关注于业务价值的交付,并且此时用户体量也很小,QPS也非常低,我们应该使用更简单
- 从Keras转换成PB模型请注意,如果直接使用Keras2ONNX进行模型转换大概率会出现报错,这里笔者曾经进行过不同的尝试,最后都失败了。
- 目前网络数据库的应用已经成为最为广泛的应用之一了,并且关于数据库的安全性,性能都是企业最为关心的事情。数据库渐渐成为企业的命脉,优化查询就解
- 你有多少次陷入不得不更改别人代码的境地?如果你是一个开发团队的一员,那么你遇到上述境地的次数比你想要的还要多。然而,Python中有一个整洁
- 前段时间看到letcode上的元音字母字符串反转的题目,今天来研究一下字符串反转的内容。主要有三种方法:1.切片法(最简洁的一种)#切片法d
- 前期准备首先,使用Python内置的Turtle绘图库需要在程序前添加以下代码:import turtle也可以写成这样:from turt
- 前言简单的爬虫只有一个进程、一个线程,因此称为单线程爬虫。单线程爬虫每次只访问一个页面,不能充分利用计算机的网络带宽。一个页面最多也就几百K
- 1、from ... import 导入from package import module1, module2, module3, ...
- 熟悉pandas的pythoner 应该知道给dataframe增加一列很容易,直接以字典形式指定就好了,pyspark中就不同了,摸索了一
- 数组都是从0开始。javascript是arrayname[i],而vbscript是arrayname(i) javascript的字符串
- 学习目标1.掌握pytorch模型转换到onnx模型2.顺利运行onnx模型3.比对onnx模型和pytorch模型的输出结果学习大纲pyt