| |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
-> 系统运维 -> Python自动化办公练习——合并工作簿 -> 正文阅读 |
|
[系统运维]Python自动化办公练习——合并工作簿 |
目录 一、题目描述????????将两个工作簿合并为一个工作簿 二、分析1、思路分别将工作簿中的数据拿出来,然后写到一个工作簿中 2、实现????????①创建工作簿对象
????????②创建工作表对象
????????③ 写入表头????????写入的只能是元组或者列表
? ? ? ? ④?写入数据? ? ? ? 首先获取要取出数据的工作簿对象,然后获取对应的表,然后从中拿数据,拿数据的具体原理可在之前的文章——合并单元格中看; ? ? ? ? 此处的一个新知识点是用到了生成器; ? ? ? ? ws存储的是工作表对象,对象中存储的是多个元祖,元组中保存的是每一行的每一列对应的对象的地址; ? ? ? ? 因为表开始的行为第三行而不是第一行,所以需要用到生成器去从第三行开始取元组,然后再从元组中去遍历每一列的地址,再通过value方法去得到其值,再将得到的值写到新的工作表中; ? ? ? ? 此处有一个坑,就是工作表中有空白的数据,如果不进行处理,则合并之后的工作簿的工作表会出现断层的现象,所以此处有一个判断其是否为空,用一个标识符即可,还可以判断行的第一列是否为空,思路一样只是实现稍有不同
????????⑤保存到工作簿? ? ? ? 之前是将数据保存到工作表中,那为什么就保存到对应的工作簿中呢,原因就在于最开始生成工作表对象的时候是在工作簿对象的前提下生成的 ? ? ? ? 此题一共有四个对象,第一个是自己生成的工作簿对象,当做要保存的工作簿对象;第二个对象是生成的工作表对象(在生成的工作簿的前提下),用来存储数据的工作表;第三个对象是获取的文件的工作簿对象;第四个是在获取的工作簿的前提下获取的工作表对象,用于将数据提取出来; 三、第二种方法? ? ? ? 思路其实是一样的,区别①在于获取工作表存储的元组的内容上,上一种方法用的是生成器,而这种方法是通过列的名称的方式,即每次从A列到G列,而最开始的数字3代表的是初始行号,然后一直往下到没有表对象(此时也会出现空值的情况),存储得到的结果是一个元组 ? ? ? ? 区别②添加的方式:上一种是通过逐依的遍历,一个值一个值的写入(通过对应的行列的序号写入),此方法是遍历之前存储的元组,得到每一行的元组,然后再遍历元组得到对象地址,在获得其值,存储到列表中,再将每一行的列表存入的一个大列表中,得到一个二维列表,最后再遍历二维列表,将其以添加表头的方式添加到工作表中 四、源码1、第一种方法
2、 第二种方法
五、效果图1、原表?? ? 2、合并后的表?①方法一?②方法二? |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
C++知识库
Java知识库
JavaScript
Python
PHP知识库
人工智能
区块链
大数据
移动开发
嵌入式
开发工具
数据结构与算法
开发测试
游戏开发
网络协议
系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程 数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁 |
360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 | -2024/11/15 15:36:12- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |