-
多薄多表合并mergebooks.dll
2015-09-07 09:28:54多薄多表合并——excel 外接程序插件 使 用 说 明 一、功能: 1、多薄合并:将某一文件夹或当前文件夹下所有工作薄合并到一个自动新建的“汇总表”工作薄中。每个工作薄中可含多个不同的工作表,工作表与工作表一一... -
python 写入数据时加入序号列_python办公自动化(二)excel填模板表
2021-01-09 20:35:56目的是自动填写数据源到3-4个excel模板表格里去,模板表格有表头,有表尾巴(签字栏),且有合并单元格,还有公式。所以代码的核心是要保留我模板里原有的格式和内容,进行表单对表单的精准填写,数据源行数不确定,...可能我的需求比较奇怪,找了很多文档,才总结书写了这段代码。
目的是自动填写数据源到3-4个excel模板表格里去,模板表格有表头,有表尾巴(签字栏),且有合并单元格,还有公式。
所以代码的核心是要保留我模板里原有的格式和内容,进行表单对表单的精准填写,数据源行数不确定,所以在模板excel设计时保留了足够多的行数,方便后期用代码把空白行删除。
——————末尾更新加入了把一个多班级无格式表单分别填入多个汇总表的代码,即一对多填写
所幸数据量不大,用win32com也挺快的。
模板如下:(比如我学生可能是3-8人,那我在模板里就留够八行,多的后面删除,保证不会影响蓝色的模板内容)
生成内容如下:(设置的单元格内公式依然保留,且灵活的单元格设置使得它不管数据多少行都是正确的哟)
代码及解释如下:
from win32com import client xlApp_1 = client.Dispatch("Excel.Application") xlApp_1.Visible = False # 软件不可见 True为可见 xlBook_1 = xlApp_1.Workbooks.Open(r"C:UsersXXXDesktopqqqdata.xlsx") ## xlSheet_1 = xlBook_1.Worksheets(1) # 打开第1个表 data = xlBook_1.Worksheets("sheet1") # 打开名为“sheet1”的sheet作为数据源 info_1 = data.UsedRange nrows_1 = info_1.Rows.Count # 行数 ncols_1 = info_1.Columns.Count print(nrows_1,ncols_1) form_book = xlApp_1.Workbooks.Open(r"C:UsersXXXDesktopqqq模板.xlsx") form = form_book.Worksheets("sheet1") 下面的一列对一列的填写,可以套条件,也可以更改列序号,即模板第2列=数据源的第10列 j=1 for i in range(nrows_1): form.Cells(i+4, 2).Value= j ##自增长的一个序号 form.Cells(i+4, 1).Value=data.Cells(i+2,1).Value form.Cells(i+4, 3).Value= data.Cells(i+2,2).Value form.Cells(i+4, 4).Value= data.Cells(i+2,3).Value form.Cells(i+4, 5).Value= data.Cells(i+2,4).Value j+=1 print(nrows_1+2) ## 删除空白行,12为表尾所在行数-1,nrows_1+2为数据源行数加上表头行数) for i in range(12,nrows_1+2,-1): # 此处为左闭右开的倒序遍历,从上面正序删除会因为你删除了上面行导致错误 form.Rows(i).Delete() # 另存为 form_book.SaveAs(r"C:UsersXXXDesktopqqq成绩汇总表.xlsx") # 另存路径
丰富实用场景,一对多填写:
form_book3 = xlApp_1.Workbooks.Open(r"C:UsersxxxDesktop硬件模板.xlsx") form3 = form_book3.Worksheets("Sheet1") form_book4 = xlApp_1.Workbooks.Open(r"C:UsersxxxDesktop软件模板.xlsx") form4 = form_book4.Worksheets("Sheet1") j1=1 j2=1 for i in range(nrows_1-1): if xlSheet_1.Cells(i+2,17).Value=="硬件": ## 此处为判断条件,xlSheet_1是我的数据源,注意逻辑判断需要双等号 form3.Cells(j1+1, 3).Value= xlSheet_1.Cells(i+2,2).Value+","+xlSheet_1.Cells(i+2,3).Value ## 上面公式右边是对两个单元格用逗号进行了串联 form3.Cells(j1+1, 5).Value= xlSheet_1.Cells(i+2,4).Value form3.Cells(j1+1, 6).Value= xlSheet_1.Cells(i+2,13).Value form3.Cells(j1+1, 7).Value= xlSheet_1.Cells(i+2,7).Value form3.Cells(j1+1, 1).Value= j1 ## 自增长序号 j1=j1+1 else: ##可以多加几个if,此处主要说填写,故不写复杂了。 form4.Cells(j2+1,3).Value= str(xlSheet_1.Cells(i+2,2).Value)+","+str(xlSheet_1.Cells(i+2,3).Value) form4.Cells(j2+1, 5).Value= xlSheet_1.Cells(i+2,4).Value form4.Cells(j2+1, 6).Value= xlSheet_1.Cells(i+2,13).Value form4.Cells(j2+1, 7).Value= xlSheet_1.Cells(i+2,7).Value form4.Cells(j2+1, 1).Value= j2 ## 自增长序号 j2=j2+1 # 另存为 form_book3.SaveAs(r"C:Usersxxx硬件.xlsx") form_book4.SaveAs(r"C:Usersxxx软件.xlsx")
以上就是办公自动化的学习分享第二篇。下一步计划学习Python控制浏览器操作的selenium,用它录入数据。
第一篇word操作链接在此
第一小乔乔:python办公自动化(一)批量生成wordzhuanlan.zhihu.com -
Excel新增工具集
2011-12-20 09:30:2710、检查两列同行两单元格是否相同:由ID号意义相同的从表向主表合并列记录时,往往先将从表记录粘贴到主表中,然后删除从表中的ID等与主表重复的列记录,本命令用来比较两列同行单元格(ID号)是否相同。 (九)工作... -
百宝箱4.0简体2003
2008-09-24 15:15:30多工作表瞬间加密 瞬间加密数十个甚至数百个工作表。 工作表反向加密 即对鼠标选中以外之区域进行加密。 批量标示上标 可以对工作表中任意字符标标上标,瞬间完成。 工作表名排序 输入1为升序,0为降序,将工作表... -
GridView大全
2011-04-07 22:48:2415.GridView合并表头多重表头无错完美版(以合并3列3行举例) 30 后台代码: 30 前台: 33 16.GridView突出显示某一单元格(例如金额低于多少,分数不及格等) 34 全部后台代码: 34 前台代码: 36 17.GridView加入... -
Excel百宝箱8.0
2011-06-07 21:32:17【筛选唯一值】【建工作表目录】【批量新建复制工作表】【批量加解密】【工作表批量命名】【破解工作表/簿密码】 【批量命名文件】【可还原的合并】【合并列中相同值】【取消合并还原数据】【合并区域自动换行】... -
excel 工具箱
2012-01-22 15:04:34【修复Excel】:当您的Excel某些功能无法使用时,或者无缘无故多出很多菜单、工具栏时,本工具可以瞬间恢复Excel到默认状态 【破解VBA密码】:将VBA编写的且有密码的程序进行破解,瞬间完成 【生成2003样式菜单】:... -
Excel百宝箱9.0无限制破解版
2012-02-03 19:05:29【增强版跨越合并】:对选区批量逐行合并,合并时保留所有数据 【修正合并单元格】:使已经合并的区域中的每个单元格都有数据,从而在公式引用单元格时不会产生空白 【合并与合计】:可以任意指定两列,对其中一列的... -
Excel百宝箱 9.0 破解版 批量导入图片等200种功能
2013-05-11 22:46:24【修复Excel】当您的Excel某些功能无法使用时,或者无缘无故多出很多菜单、工具栏时,本工具可以瞬间恢复Excel到默认状态 【破解VBA密码】将有密码的VBA代码破解,直接打开即可修改代码。包括工程不可查看类的破解 ... -
Excel百宝箱
2012-10-27 17:09:21【增强版跨越合并】:对选区批量逐行合并,合并时保留所有数据 【修正合并单元格】:使已经合并的区域中的每个单元格都有数据,从而在公式引用单元格时不会产生空白 【合并与合计】:可以任意指定两列,对其中一列的... -
Excel百宝箱9.0无限制破解版.rar
2012-09-05 09:31:51【增强版跨越合并】:对选区批量逐行合并,合并时保留所有数据 【修正合并单元格】:使已经合并的区域中的每个单元格都有数据,从而在公式引用单元格时不会产生空白 【合并与合计】:可以任意指定两列,对其中一列的... -
Excel数据处理与分析实战技巧精粹 附书源码
2010-10-10 19:46:37技巧170 分类项不相同的数据表合并计算 技巧171 让合并计算结果自动动态更新 技巧172 快速录入引用位置区域 技巧173 引用其他工作簿数据 技巧174 在合并计算中使用名称 技巧175 使用合并计算进行分类汇总 ... -
第7章 数据绑定控件
2011-05-27 11:23:57实例214 GridView删除数据时弹出确认对话框 (含内容提示) 340 实例215 GridView数据源为空时显示表头和 提示信息 341 实例216 创建表头固定、表体可滚动的 GridView控件 342 实例217 可拖动列、可排序、可改变宽度... -
2009达内SQL学习笔记
2010-02-10 19:46:58多表查询时,可给表起别名。(给列起别名,列<空格>列别名;给表起别名,表<空格>表别名;)。 如:Select first_name EMPLOYEES, 12*(salary+100) AS MONEY, manager_id "ID1" From s_emp E; 4、字段的拼接,可用双... -
《数据结构 1800题》
2012-12-27 16:52:0311. 顺序存储方式的优点是存储密度大,且插入、删除运算效率高。( )【上海海运学院 1999 一、1(1分)】 12. 数据结构的基本操作的设置的最重要的准则是,实现应用程序与存储结构的独立。( ) 【华南理工大学 2002... -
电子表格Excel使用技巧163种使用技巧大全
2019-03-16 10:41:3830. 对多个工作表快速编辑 20 31. 移动和复制工作表 21 32. 工作表的删除 21 33. 快速选择单元格 21 34. 快速选定EXCEL区域(微软OFFICE技巧大赛获奖作品) 22 35. 备份工件簿 22 36. 自动打开工作簿 23 37. 快速... -
Excel公式大全操作应用实例(史上最全)
2018-03-06 21:09:38快速删除工作表中的空行快速删除空行一次删完Excel里面多出很多的空白行 每30行为一页并加上一个标题如何实现如何实现隔行都加上标题项 如何把标签页去掉的? 去掉默认的表格线(网线)表格的框线 列标的标识变了 符号... -
Excel使用技巧集锦—163种使用技巧大全(超全).doc
2015-05-10 08:08:0730. 对多个工作表快速编辑 20 31. 移动和复制工作表 21 32. 工作表的删除 21 33. 快速选择单元格 21 34. 快速选定EXCEL区域(微软OFFICE技巧大赛获奖作品) 22 35. 备份工件簿 22 36. 自动打开工作簿 23 37. 快速... -
Excel技巧大全
2015-05-06 07:21:3730. 对多个工作表快速编辑 13 31. 移动和复制工作表 13 32. 工作表的删除 13 33. 快速选择单元格 13 34. 快速选定Excel区域(微软Office技巧大赛获奖作品) 13 35. 备份工件簿 14 36. 自动打开工作簿 14 37. 快速... -
数据结构实验
2012-04-13 09:55:47构造两个带有表头结点的有序单链表La、Lb,编写程序实现将La、Lb合并成一个有序单链表Lc。 合并思想是:程序需要3个指针:pa、pb、pc,其中pa,pb分别指向La表与Lb表中当前待比较插入的结点,pc 指向Lc表中当前最后... -
Excel使用技巧大全(超全).doc
2011-07-19 19:13:4030. 对多个工作表快速编辑 13 31. 移动和复制工作表 13 32. 工作表的删除 13 33. 快速选择单元格 13 34. 快速选定EXCEL区域(微软OFFICE技巧大赛获奖作品) 13 35. 备份工件簿 14 36. 自动打开工作簿 14 37. 快速... -
EXCEL函数公式集
2010-03-16 03:26:38快速删除工作表中的空行快速删除空行一次删完Excel里面多出很多的空白行 每30行为一页并加上一个标题如何实现如何实现隔行都加上标题项 如何把标签页去掉的? 去掉默认的表格线(网线)表格的框线 列标的标识变了 符号... -
易语言程序免安装版下载
2011-04-07 09:28:50修改外部数据库在“表中记录数为零”时可能导致程序崩溃的BUG。 10. 修改扩展界面支持库一,修改“超级列表框.取标题()”不能返回长度大于256的包含汉字的文本。 11. 修改扩展界面支持库一,为“超级列表框.查找... -
单表百万数据量导出时样式设置过多,导致速度慢(行、列、单元格样式暂时控制10万行、超过无样式) 大数据量情况下一般不会每个单元格设置样式、不然很难解决内存溢出等问题。 修改输出流(只能输出一次、如 ...
-
Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part3
2016-06-12 11:39:31实例182 简单的文件合并工具 231 8.2 泛型使用的简介 233 实例183 自定义非泛型栈结构 233 实例184 使用泛型实现栈结构 234 实例185 自定义泛型化数组类 235 实例186 泛型方法与数据查询 236 实例187 泛型化方法与... -
Java开发实战1200例(第1卷).(清华出版.李钟尉.陈丹丹).part1
2016-06-12 11:34:39实例182 简单的文件合并工具 231 8.2 泛型使用的简介 233 实例183 自定义非泛型栈结构 233 实例184 使用泛型实现栈结构 234 实例185 自定义泛型化数组类 235 实例186 泛型方法与数据查询 236 实例187 泛型化方法与... -
《Java开发实战1200例(第I卷)》(李钟尉.陈丹丹).part2 高清完整PDF版
2016-06-13 15:53:27实例035 使用嵌套循环在控制台上输出九九乘法表 实例036 用while循环计算1+1/2!+1/3!…1/20! 实例037 for循环输出空心的菱形 实例038 foreach循环优于for循环 实例039 终止循环体 实例040 循环体的过滤器 实例... -
《Java开发实战1200例(第I卷)》(李钟尉.陈丹丹).part3 高清完整PDF版
2016-06-13 16:11:24实例035 使用嵌套循环在控制台上输出九九乘法表 实例036 用while循环计算1+1/2!+1/3!…1/20! 实例037 for循环输出空心的菱形 实例038 foreach循环优于for循环 实例039 终止循环体 实例040 循环体的过滤器 实例... -
excel的使用
2012-11-25 17:06:01图1(5) 多张工作表中输入相同的内容几个工作表中同一位置填入同一数据时,可以选中一张工作表,然后按住Ctrl键,再单击窗口左下角的Sheet1、Sheet2......来直接选择需要输入相同内容的多个工作表,接着在其中的... -
Java经典编程300例(code)
2013-01-09 10:26:53目 录 第1章 Java语言概述 1 实例001 输出“Hello World” 2 实例002 输出控制台传递的参数 2 实例003 输出由“*”组成的三角形 3 实例004 输出符号表情 5 ...实例300 在删除数据时给出提示信息 442
收藏数
44
精华内容
17
-
网络视频音频整理转成文字,你还在自己整理?——微转写
-
PPTP_NNN 服务生产环境实战教程
-
sourceTree添加用户
-
BasicTraining总教程-2020.pdf
-
MySQL 高可用工具 heartbeat 实战部署详解
-
RapidScada从入门到精通
-
关于Django obtain_jwt_token (authenticate自动验证)获取token返回bad request 400的原因
-
ES索引的基础操作.postman_collection.json
-
羽量级在线 HTML 编辑器
-
虚幻4引擎基础
-
一天学完MySQL数据库
-
设计用于超窄线宽激光器超稳法布里珀罗腔的支撑方式
-
随机电磁光束阵列的光束传输变换特性
-
共享图书管理系统数据库实现
-
2020天猫国货食品趋势洞察报告.pdf
-
37岁老码农现身说法:投了500份简历,却只收到了3个面试邀请
-
List<Map<String,Object>> 按 key 进行分组
-
实现 MySQL 读写分离的利器 mysql-proxy
-
PPT大神之路高清教程
-
redis常见面试题