工作中我们经常会遇到,从EXCEL表格中大量复制粘贴数据至WORD表格中,再存为一个个单独文件,这种枯燥乏味的重复性工作不仅效率低下,还特别容易出错。本人试着做了一个小项目,仅用了19.441秒就自动填写了30张表格并存为单独文件,数据丝毫不差,现分享如下:

一、项目需求

由上述Excel表中的第4行开始,逐行采集C、D、G、K、L、AW、AV、AU共7列信息填入以模板文件XX公司三级安全教育卡中【数据1】、【数据2】、【数据3】、【数据4】【数据5】、【数据6】【数据7】栏目中,共计采集30人次。

二、定位分析

1.因模板文件表格(tables)包含行(rows),行包含单元格(cell),需要调用docx库,使用doc.tables读取文件中第一个表格(doc.tables[0]),读取所有的行,再读取单元格,并打印显示出来,用以确定指定单元格位置(用 table.cell(x,y).text来表示),以便精确定位赋值。

for table in doc.tables:
        for row in table.rows:
            for cell in row.cells:
                print(cell.text)

2.运行以上语句后确定【数据1】、【数据2】、【数据3】、【数据4】【数据5】、【数据6】【数据7】为: table.cell(1,6).text、table.cell(1,9).text 、table.cell(2,1).text 、table.cell(2,9).text 、table.cell(4,3).text 、table.cell(5,3).text 、table.cell(5,7).text 。

三、代码实现

#键之前为源代码,#键之后为代码说明

import time#调用时间函数
start = time.clock()#开始时刻
import docx#调用docx库用于读取docx格式文件
from docx import Document#调用docx库中Document模块
from openpyxl import load_workbook#调用openpyxl库用于读取excel格式文件
wb = load_workbook("C:\\Users\\Administrator\\BaiduNetdiskDownload\\python练手17/XX公司员工入职培训教务管理信息汇总表.xlsx")#读取excel格式数据源文件
ws = wb.active#选取当前活动工作表
for row in range(4,ws.max_row+1):#遍历读取表格中每一行数据
    doc = Document("C:\\Users\\Administrator\\BaiduNetdiskDownload\\python练手17/XX公司员工入职培训三级安全教育卡(模板).docx")#打开docx格式填充数据目标文件

table = doc.tables[0]#打开数据目标文件第一张表格
    table.cell(1,1).text = ws["C"+str(row)].value#Excel-word表间赋值语句1
    table.cell(1,6).text = ws["D"+str(row)].value#Excel-word表间赋值语句2
    table.cell(1,9).text = ws["G"+str(row)].value#Excel-word表间赋值语句3
    table.cell(2,1).text = ws["K"+str(row)].value#Excel-word表间赋值语句4
    table.cell(2,9).text = ws["L"+str(row)].value#Excel-word表间赋值语句5
    table.cell(4,3).text = ws["AW"+str(row)].value#Excel-word表间赋值语句6
    table.cell(5,3).text = ws["AV"+str(row)].value#Excel-word表间赋值语句7
    table.cell(5,7).text = ws["AU"+str(row)].value#Excel-word表间赋值语句8
    doc.save("C:\\Users\\Administrator\\BaiduNetdiskDownload\\python练手17/XX公司员工入职培训三级安全教育卡.docx({}).docx".format(str(ws.cell(row=row,column=3).value))) #以第三列员工姓名为括号备注存储为新 docx格式文件 
    print("XX公司员工入职培训三级安全教育卡({})已自动生成!".format(str(ws.cell(row=row,column=3).value)))#打印显示文件生成进度

end = time.clock()#结束时刻
print("程序运行总计用时: %.03f seconds" %(end-start))#打印显示运行时间

四、运行效果

XX公司员工入职培训三级安全教育卡(王XX)已自动生成!

XX公司员工入职培训三级安全教育卡(庞XX)已自动生成!

XX公司员工入职培训三级安全教育卡(卢XX)已自动生成!

XX公司员工入职培训三级安全教育卡(苏XX)已自动生成!

XX公司员工入职培训三级安全教育卡(欧XX)已自动生成!

XX公司员工入职培训三级安全教育卡(伏XX)已自动生成!

XX公司员工入职培训三级安全教育卡(柴XX)已自动生成!

XX公司员工入职培训三级安全教育卡(刘XX)已自动生成!

XX公司员工入职培训三级安全教育卡(孙XX)已自动生成!

XX公司员工入职培训三级安全教育卡(李XX)已自动生成!

XX公司员工入职培训三级安全教育卡(蒲XX)已自动生成!

XX公司员工入职培训三级安全教育卡(张XX)已自动生成!

XX公司员工入职培训三级安全教育卡(李XX)已自动生成!

XX公司员工入职培训三级安全教育卡(孙XX)已自动生成!

XX公司员工入职培训三级安全教育卡(梁XX)已自动生成!

XX公司员工入职培训三级安全教育卡(秦XX)已自动生成!

XX公司员工入职培训三级安全教育卡(魏XX)已自动生成!

XX公司员工入职培训三级安全教育卡(兰XX)已自动生成!

XX公司员工入职培训三级安全教育卡(唐XX)已自动生成!

XX公司员工入职培训三级安全教育卡(李XX)已自动生成!

XX公司员工入职培训三级安全教育卡(胡XX)已自动生成!

XX公司员工入职培训三级安全教育卡(阔汶XX)已自动生成!

XX公司员工入职培训三级安全教育卡(左XX)已自动生成!

XX公司员工入职培训三级安全教育卡(翟XX)已自动生成!

XX公司员工入职培训三级安全教育卡(尹XX)已自动生成!

XX公司员工入职培训三级安全教育卡(江XX)已自动生成!

XX公司员工入职培训三级安全教育卡(何XX)已自动生成!

XX公司员工入职培训三级安全教育卡(胡XX)已自动生成!

XX公司员工入职培训三级安全教育卡(王XX)已自动生成!

XX公司员工入职培训三级安全教育卡(方XX)已自动生成!

程序运行总计用时: 19.441 seconds

五、延伸运用

自动生成30份格式相同数据各异的文件,仅用时19.441秒!!!理论上for循环语句在未设定中止条件的情况下,可无限次运行,生成成百上千份文件也只是几分钟的事。以上代码用autopytuexe打包封装成exe格式可执行程序后,可以任意电脑上脱机运行。

使用Python由Excel表格中采集数据填充至Word表格特定单元格并批量生成文件相关推荐

  1. java读取word表格中的数据_JAVA获取word表格中数据的方案

    上一个项目的开发中需要实现从word中读取表格数据的功能,在JAVA社区搜索了很多资料,终于找到了两个相对最佳的方案,因为也得到了不少网友们的帮助,所以不敢独自享用,在此做一个分享. 两个方案分别是: ...

  2. 在html表格中进行计算,如何在word表格中实现计算功能?超级实用,值得细细品味...

    常听同事们说:word就是文字处理,excel就是制表计算.乍一听,也没什么不妥啊,但细细一想,这是对word很大的伤害. 今天得改改这种看法了,其实,word表格也有计算功能,例如:在财务报表.工资 ...

  3. html表格中文字上下左右居中对齐,word表格中文字如何设置左右和上下居中(水平和垂直居中)...

    word表格中文字如何设置左右和上下居中(水平和垂直居中) 时间:06-25   作者:snow   来源:互联网 想使表格中的文字居中,现文字在表格的下方,点单元格属性的垂直居中按钮也不行,文字反倒 ...

  4. word表格图片自动适应表格大小_Excel应用实践20:使用Excel中的数据自动填写Word表格...

    学习Excel技术,关注微信公众号: excelperfect 我在Excel工作表中存放着数据,如下图1所示. 图1 我想将这些数据逐行自动输入到Word文档的表格中并分别自动保存,Word文档表格 ...

  5. python提取excel表中的数据_用python从excel工作表中提取和操作数据

    场景:我正在尝试编写一个python代码,它读取给定文件夹中的所有工作簿,获取每个工作簿的数据并将其放入单个数据帧中(每个工作簿都成为一个数据框,因此我可以单独操作它们).在 问题1:对于此代码,即使 ...

  6. python读取excel表格-python读取excel表格中的数据

    使用python语言实现Excel 表格中的数据读取,需要用到xlrd.py模块,实现程序如下: import xlrd #导入xlrd模块 class ExcelData(): def __init ...

  7. c 语言如何处理表格文件中的数据库,C#程序从Excel表格中读取数据并进行处理

    今天做了一个Excel表格数据处理的事情,因为数据量表较大(接近7000条)所以处理起来有点麻烦,于是写了一个程序, 先将程序记下以便将来查找. using System; using System. ...

  8. matlab中图显示单元格,excel如何根据表格中的数据自动在单元格中画图:

    如何利用matlab根据excel表格里面的数据画图 将待的结构的数据录入Excel中,录入意行列要跟原矩阵一一对应 录入完以后保存数据,为了后续使用方便,命名时我们最好把它命名为我们接下来在MATL ...

  9. Excel对整体数据定位相同的背景颜色单元格?

    今天要和大家分享的是,Excel如何对整体数据定位相同的背景颜色单元格?我们听说过定位空值,定位错误值,那么就来看今天是如何定位背景颜色值的吧 (方方格子插件) ​ 1.先看动图演示吧 2.开始之前我 ...

最新文章

  1. 19个决定性时刻,2030年前,这些黑科技必将发生
  2. 一个简单的socket程序-linux
  3. P2P网络中DHT算法分析
  4. Jquery中将数组转换成Json
  5. 广发证券携手神策数据 多维分析满足复杂业务需求
  6. 网络协议基础:ARP简析
  7. Win7系统防火墙设置方法
  8. 手写一个HTTP图片资源服务器,太容易了叭!
  9. IE8的的文本模式怎么固定
  10. 关于直播,所有的技术细节都在这里了(一)
  11. linux内核学习10:中断和异常
  12. 设计一个O(n2)时间的算法, 找出由n个数组成的序列的最长单调递增子序列。
  13. Linux下文件搜索、查找、查看命令
  14. python学习——关于曲线拟合
  15. 低门槛,多玩法打金游戏 Tiny World
  16. PEEL——深度隐写信息去除攻击——PEEL: A Provable Removal Attack on Deep Hiding
  17. java连接本地数据库命令_Java操作数据库时一次连接只能执行一条SQL命令
  18. “币圈贾跃亭”天价碰瓷巴菲特,王小川隔空回应:骗子!
  19. tp6查询某个字段不等于null
  20. RGB与16进制颜色值互相转换

热门文章

  1. php3cho,PHP Guru
  2. 【Linux】2、systemd 超详细介绍
  3. 重复数据删除技术概述
  4. python加空格_Python在字符串中插入空格
  5. Java 多人聊天室(带界面)
  6. Annotation介绍
  7. c语言编程-高斯日记,高斯日记的C语言解法
  8. 缓存服务器Cache Server 6.0发布
  9. Javascript(十二)javascript 事件详解
  10. 利用高中知识求解最小二乘法