| |
|
开发:
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基础入门自学——18--操作Excel-工作实践需求 -> 正文阅读 |
|
[Python知识库]Python基础入门自学——18--操作Excel-工作实践需求 |
工作中突然要操作一堆Excel表格,就想着能否用Python来处理,这一篇就学习一下Python操作Excel表。 我需要在一个内网环境安装python开发环境,在网上下载了pycharm2018,好像再新的版本没有windows 32位的版本了。 安装: 安装步骤:先下载安装python3.8,然后安装第三方库openpyxl,openpyxl需要下载openpyxl-3.0.7-py2.py3-none-any.whl,安装还需要其jdcal和et_xmlfile库的支持,下载jdcal-1.4.1-py2.py3-none-any.whl,et_xmlfile-1.1.0-py3-none-any.whl。 将这三个文件放在一个文件夹中,命令窗口切换至这个文件夹,执行pip命令进行安装,前提是在环境变量path中增加了python的路径,能够找到pip命令,pip命令在python目录下的scripts子目录下。 pip install?jdcal-1.4.1-py2.py3-none-any.whl pip install?et_xmlfile-1.1.0-py3-none-any.whl pip install?openpyxl-3.0.7-py2.py3-none-any.whl 然后安装pycharm,安装成功后,有一个问题,虽然前面安装openpyxl成功了,但是在pycharm中还是没有,需要在pycharm的python console中重新执行一遍前面的三条pip命令。 使用: 首先要有一个概念的体系结构,对excel的操作,最大的对象就是工作簿,即Workbook,然后是工作表,即Sheet,最后是单元格,即Cell。 创建一个新的工作簿:使用openpyxl.Workbook,这相当于调用openpyxl.workbook.Workbook ? 这就生成了一个工作簿对象,这个工作簿里面还没有工作表,这跟我们操作excel是打开excel自动会创建3个默认工作表不一样,需要手工创建工作表: ?然后是单元格: ?生成了一个单元格对象。操作单元格 ? ?保存工作簿,就是在磁盘中生成保存excel文件。最后关闭工作簿 打开新生成的文件: ?可以看到在创建的工作表之外,还有一个默认创建的Sheet表。 操作已有表:就使用已创建的test1111.xlsx,修改一下: 打开已有excel文件,使用: ?load_workbook()第一个参数是打开的工作簿的文件名称,后面的参数主要注意data_only选项,这个选项控制读取的单元格内容,如果单元格里是一个公式,那么使用这个选项,读取出来的就是公式计算后的值,否则,读取的是公式本身。 ?获取工作表: 可以看到,get_sheet_by_name方法也不被建议使用,直接使用工作簿加工作表的索引来引用相应的工作表: ?读取单元格: ?跟获得工作表类似,使用索引的方法,中括号中是要读取单元格的地址,但是获得的是单元格对象,要获取其值,需要使用value属性: ?pycharm没有提示出来: 读取C2单元格试一下: 读取的是公式本身 修改一下: ?此时读取的是公式计算后的值。 做一个测试:wb对象能够弹出data_only属性, ?打开工作簿后,不能再次设置data_only。? ?对于取一个区域的单元格,其返回的是一个嵌套的元组,里面的元组是以同一行的多列单元格为元素。 具体项目1:有多个考核明细表,编程实现将多个明细表的数据汇总到一个表中。 明细表、汇总表的结构: ? 程序:
?具体项目2:上面的汇总明细表,以前四项为唯一值,即作为一个考核汇总项,形成一个新的考核表,将汇总明细表中不同的考核人+考核说明填到这个考核表的考核说明中,如单位名称1+1月+?基础工作+小项1共有2个人考核,有两个说明,要把这个两个人的说明合并填写到这个表的一个单元格中。实际工作中有二十多个考核人,并且每个考核人考核的项也不相同,每个人按照不同的分工对自己负责的一部分进行考核打分,用excel本身实现合并很麻烦。编程实现。 ? 解决思路: ?
以上是最简单的excel使用,只是从功能上实现了工作中需求,性能上因为个人刚学习,水平所限,无法判断好坏,如有高手希望指点一二,谢谢。 |
|
|
上一篇文章 下一篇文章 查看所有文章 |
|
开发:
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年12日历 | -2024/12/25 14:19:19- |
|
网站联系: qq:121756557 email:121756557@qq.com IT数码 |
数据统计 |