python拷贝excel工作簿_几百个Excel表格需要复制粘贴,如何用Python一键搞定?
在工作中经过会遇到大量格式一致,内容不同的Excel表格文件,需要将这里面的内容整理到一个Excel文件中的情形。一般情况下,都是将这些Excel表格文件一个一个地打开,将里面的内容复制,然后粘贴到一个新的Excel表格文件中。不仅费时费力还容易出错,Excel文件比较少还好,要是有几十个几百个,那会把自己逼疯了去。今天,
一、应用场景
很多贸易类型的公司都会不定期地对公司的产品进行内购处理,既能给实惠予员工,又能清理库存。在这里,我们假设行政小姐姐需要制作一个“员工内购信息登记表”的模板Excel,让所有员工填好之后,私信发给自己,自己再进行整理汇总所有的内购信息。模板如下图所示:
原本以为没有多少员工会买,但是却收到了将近一百份的Excel。这要是一个一个复制粘贴,那不得整得手抽筋。
嗯,是时候让Python上场了。
二、批处理Excel
在这里,我们需要使用到两个核心的模块:xlrd和xlsxwriter。
xlrd用于读取Excel文件内容,xlsxwriter用于创建和写入Excel内容。引入相关的模块:
import xlsxwriter
import os.path
import xlrd
我们首先实例化一个xlsxwriter的Workbook(),这将创建一个Excel文件:
workbook = xlsxwriter.Workbook('./员工内购信息登记表-汇总.xlsx')
然后,利用add_worksheet()方法添加一个工作簿:
worksheet = workbook.add_worksheet()
我们看到表格模板中的第一行是标题,它的格式是加粗居中,并且合并了几个单元格,我们通过代码来实现:
# 粗体居中格式
boold_center = workbook.add_format({'bold':True,'align':'center'})
# 写入标题
worksheet.merge_range("A1:E1", "员工内购信息登记表",boold_center)
在这里,我们通过add_format()方法创建了一个格式,通过merge_range()方法合并了几个单元格。下面是各个数据项的名称,它们是:部门、姓名、物品编号、数量和收货地址,均需要设置加粗格式:
# 添加一个粗体格式
bold = workbook.add_format({'bold': True})
# 在Excel中写入项目名称
worksheet.write('A2',"部门",bold)
worksheet.write('B2',"姓名",bold)
worksheet.write('C2',"物品编号",bold)
worksheet.write('D2',"数量",bold)
worksheet.write('E2',"收货地址",bold)
通过write()方法可以直接在指定单元格中写入内容,这样就完成了标题和数据项的写入,下面轮到实际的数据值了。
我们通过os.listdir()方法遍历指定目录下的文件,然后通过xlrd模块的open_workbook()方法打开遍历到的Excel文件,随后读取相应单元格的内容,接着将内容写入到新创建的Excel文件的工作簿,最后关闭新建的Excel:
n = 3
for i in os.listdir('./'):
# print(n)
if i.startswith('~') is False and i.endswith('xlsx'):
# print(i)
file = xlrd.open_workbook(i)
info = file.sheet_by_index(0)
department = info.cell(2,0).value # 部门
name = info.cell(2,1).value # 姓名
product_no = info.cell(2,2).value # 物品编号
num = info.cell(2,3).value # 数量
address = info.cell(2,4).value # 地址
worksheet.write("A{}".format(n),department)
worksheet.write("B{}".format(n),name)
worksheet.write("C{}".format(n),product_no)
worksheet.write("D{}".format(n),num)
worksheet.write("E{}".format(n),address)
print("完成{}数据提取".format(i))
n += 1
workbook.close()
这样,就完成了这个Excel表格内容批处理代码的编写。
运行上述代码,几秒钟后,我们就可以得到一个名为“员工内购信息登记表-汇总.xlsx”的Excel文件:
里面已经把所有Excel文件里面的数据都整理汇总到了一起,如下图所示:
这样,我们就通过Python用几十行代码轻松地处理了这个繁琐的Excel整理工作。
学会了吗?欢迎留言讨论~
python拷贝excel工作簿_几百个Excel表格需要复制粘贴,如何用Python一键搞定?相关推荐
- vb怎样同时打开2个excel工作簿_【赠书】不打开工作簿也能批量合并不同文件夹下多个表格的数据...
最近推送的五篇文章: <偷懒的技术:打造财务Excel达人>到底有多畅销? <偷懒的技术2>推荐序:未来已来,你准备好了吗? 将"偷懒"进行到底,还在到处找 ...
- excel数据自动录入网页_Excel自动抓取网页数据,数据抓取一键搞定
网站上的数据源是我们进行统计分析的重要信息源.我们在生活中常常听到一个词叫"爬虫",能够快速抓取网页上的数据,这对于数据分析相关工作来说极其重要,也是必备的技能之一.但是爬虫大多需 ...
- python合并excel工作簿_使用Python将多个excel的多个sheet页合并到一个excel
使用Python将多个excel的多个sheet页合并到一个excel ##读取Excel文件 import xlrd ##将文本写入excel文件 import xlsxwriter ##读取exc ...
- word公式编辑器快捷键_科研利器|编辑公式,就用这款免费软件,一键搞定!
大家写论文的时候,多多少少都会遇到在论文里面输入公式的情况,然而,word笨拙的公式插入着实是让我们费劲,每次输入公式的时候,为了一个符号都要找来找去,遇到复杂一点的公式,半天的时间就交代在了公式输入 ...
- python合并excel工作簿_Python合并多个Excel工作簿
# -*- coding: utf-8 -*- #导入需要使用的包 import xlrd #读取Excel文件的包 import xlsxwriter #将文件写入Excel的包 #打开一个exce ...
- python语言的游戏引擎_在steam吧,你甚至可以讨论如何用python写一个2D游戏引擎...
该楼层疑似违规已被系统折叠 隐藏此楼查看此楼 目前完整代码放送~ "#"后面的是注释 写注释像我这么良心的人很少了! #AbEngie Graphis Module #By Red ...
- element ui怎么调图标的大小_大明:网页字体大小怎么调?教你方法一键搞定
大家好,我是大明,网页的字体太大或太小都影响我们正常的浏览,导致网页字体大小不合适的主要原因是"显示适配器分辨率","显卡驱动问题","网页字体设置不 ...
- hbuilder怎么设置网页的大小_大明:网页字体大小怎么调?教你方法一键搞定
大家好,我是大明,网页的字体太大或太小都影响我们正常的浏览,导致网页字体大小不合适的主要原因是"显示适配器分辨率","显卡驱动问题","网页字体设置不 ...
- excel表格锁定怎么解锁_让用户锁定或解锁Excel工作簿
excel表格锁定怎么解锁 Some people like an Excel workbook that's locked down, so they can't accidentally mess ...
最新文章
- java jdbc datetime_Java JDBC 操作二进制数据、日期时间
- matlab watershed函数简单实现_函数指针方法实现简单状态机(附代码)
- php中nodethirtythree,node常用模块 - LinearLaw的个人空间 - OSCHINA - 中文开源技术交流社区...
- [Silverlight]奇技银巧系列-5 捕获路由事件
- tcp的3次握手4次挥手
- 我所知道的前端组件化与模块化
- mysql ibdata1 损坏_mysql innodb文件ibdata1损坏导致mysql无法启动
- php session 统计在线人数,利用文件属性结合session实现在线人数统计_php实例
- Binary tree paths-深度优先遍历DFS
- c语言中优先级队列_C ++中的优先级队列
- 时间操作(JavaScript版)—根据不同区时显示相应的时间
- oracle按特定字符截取字符串_LeetCode基础算法题第159篇:找出由特定字符数组组成的字符串...
- kindle字体设置
- Python+uiautomation 查找微信僵尸粉
- URL 长链地址转短链 URL地址
- matlab plot函数详解
- pygame之Surface模块
- android多个module打包aar,Android 多 Module 合并打包 AAR
- [electron]Electron安装报错connect ETIMEDOUT
- 在Windows上使用Cygwin源码安装tig