Python 操作 Excel 这个库开发简单明了

编程语言 Python 现如今如日中天,之所以如此繁荣,除了易学易学的特点之外,应用场景更广也是主要因素之一。除 Web 开发,科学计算,AI 人工智能外,日常办公也有 Python 的用武之地,今天我们来学习 Python 操作 Excel。

Python 用于操作 Excel 的库有很多,如:xlwings、pandas、xlsxwriter 等,今天我们用到的是很受欢迎的 openpyxl,官档地址:https://openpyxl.readthedocs.io/en/latest/ ,该库可以读写 Excel xlsx/xlsm/xltx/xltm。

编程初学者在学习一个新库或框架时,往往会觉得要记的东西比较多,面对满屏的函数、方法、属性不知所措,觉得需要死记的东西太多,导致学习效率很低!有这种现象的一个主要原因是未深入理解面向对象编程,今天我们以 openpyxl 学习为例,换种思维方式,融入OOP 理念,你会发现编程其实很简单。

面向对象编程思想一个主要特点即是以人的思维习惯去分析、分解问题,简单来讲,可以将事物抽象为类,将对象所具备的特征和行为抽象为方法,代码的定义抽象都是为描述、抽象现实中事物交互行为而服务的。

openpyxl 第三方功能库,而非标准库内置,因而使用前先安装到当前 Python 环境,操作系统命令行下 `pip install openpyxl `即可安装,目前最新版本为 2.6.3

作为对比学习,我们打开 MS Office Excel 套件(本例为 Office 2016),看下基本界面:

Python 操作 Excel 这个库开发简单明了

Office Excel 基本界面及术语

先抛开代码,从非开发人员角度,我们可以总结发现几个对象:

  • 工作簿,即整个文档
  • 工作表,工作簿下的表格标签,一个工作簿可以包含多个工作表
  • 行,横行多个单元格的序列,以数字标识序号
  • 列,纵向多个单元格的序列,以字母标示序号
  • 单元格,行列交汇,用于填写值的网格

接下来,同样以非开发人员即普通办公人员角度想象一下创建一个表格的几个步骤:

  • 使用 Excel 软件创建一个工作簿对象
  • 使用默认工作表(Sheet),或自定义新增、编辑,双击修改工作表的标签名称
  • 定位行/列,单元格,填充输入值
  • 保存当前工作簿,可以指定文件名称,如:data.xlsx

前述以普通用户角度分解了操作对象及过程,若以面向对象编程思想来分析,便可以将前面的对象和过程作以下归纳:

  • 工作簿(对象)
  • 特征:名称、包含式个工作表
  • 行为:载入、存储……
  • 工作表(对象)
  • 特征:标题文字、标签颜色……
  • 行为:获取当前、获取所有工作表……
  • 单元格:
  • 特征:所在行、所在列、值……
  • 行为:略……

不论哪种编程语言,符合面向对象编程思想的代码通常总是定义一组相关的类,用于抽象相关的对象,并将该对象具有的特征和行为抽象为属性和方法。openpyxl 即符合这个机制和原则,理解这一点,有助于深入理解代码组织形式,启发思维。

接下来我们以程序的角度来分析分解前述创建工作簿、切换到指定工作表,并在特定单元格填充内容,最终命名保存。原本由原来的 Office Excel 完成的工作,现在有 Python openpyxl 编程实现(内存中操作)。

步骤:

1、内存创建工作簿对象:

Python 操作 Excel 这个库开发简单明了

创建 工作簿

openpyxl.Workbook 类抽象工作簿对象,wb 作为在内存中的对象引用

此时,相当于 Excel 软件创建一个空的工作簿

Python 操作 Excel 这个库开发简单明了

相当于 Excel 执行结果

2、 找到工作簿当前激活的工作表

Python 操作 Excel 这个库开发简单明了

对应工作表操作

此时相当于定位切换至默认的工作表 “Sheet1”

Python 操作 Excel 这个库开发简单明了

对应 Excel 操作结果

此时可以修改内存工作簿工作表 Sheet1 的标题名称

Python 操作 Excel 这个库开发简单明了

修改工作表标题属性

相当于 Excel 双击改变工作表标签文字

Python 操作 Excel 这个库开发简单明了

对应 Excel 操作结果

3. 操作单元格

定位行列单元格(由 Cell 类抽象)

Python 操作 Excel 这个库开发简单明了

定位获取单元格对象引用

在单元格内填充值

Python 操作 Excel 这个库开发简单明了

获取或设置单元格 value 值

Cell.value 表示该单元格值, ws.rows 包含有数据的行集合

此时,相当于 Excel 结果:

Python 操作 Excel 这个库开发简单明了

对应 Excel 结果

如果我们有批量的数据,可以计算好行列索引,以批量写入单元格

Python 操作 Excel 这个库开发简单明了

计算好行列索引,批量写入单元格内容

此时,相当于 Excel 结果:

Python 操作 Excel 这个库开发简单明了

对应 Excel 结果

4. 保存工作簿至文档

截止目前,所有的操作均映射在内存中,wb.save(\’名称.xlsx\’) 可以保存文档至当前位置

Python 操作 Excel 这个库开发简单明了

wb.save() 保存工作簿

使用 Excel 打开程序保存的 scores.xlsx 文件,我们发现最终生成的文档与期望结果保持一致

Python 操作 Excel 这个库开发简单明了

最终保存的 Excel 文档结果

本文以面向对象编程思维方式介绍了 openpyxl 库的 Excel 基本操作处理,更多操作如:批量单元格处理、图片插入、加载文档等,小伙伴们可以使用同样的思维方式思考对应功能在库中可能会有什么样的对象类来抽象,以及什么样的属性方法分别映射特征和行为!理解这一样,即使对查询帮助也有更清晰的认识!

关于面向对象编程方法的特点、步骤以及更多实践,可以参考我的专栏课程:

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容, 请发送邮件至 举报,一经查实,本站将立刻删除。

(0)
上一篇 2023年4月27日 上午10:56
下一篇 2023年4月27日 上午11:12

相关推荐

  • 门窗企业管理软件哪个好(门窗企业管理软件)

    门窗企业管理软件:提升企业效率的利器 随着经济的发展和市场竞争的加剧,门窗企业面临着越来越多的挑战。如何提升企业效率和竞争力成为了门窗企业必须面对的问题。而门窗企业管理软件则是解决…

    科研百科 2024年9月1日
    20
  • 宾馆酒店管理软件(旅馆管理系统软件)

    旅馆管理系统软件:提升旅馆服务质量的利器 随着旅游业的不断发展,旅馆作为旅游业的重要组成部分,也越来越受到人们的关注。然而,传统的旅馆管理方式已经不能满足现代旅游业的需求,因此,旅…

    科研百科 2024年6月5日
    63
  • 软件安全管理包括哪些内容(软件项目安全管理)

    软件项目安全管理 随着软件开发的不断发展,软件项目已经成为企业的重要资产之一。然而,由于软件项目的复杂性和风险性,软件项目安全管理已经成为了一个不可忽视的问题。本文将介绍软件项目安…

    科研百科 2024年8月31日
    29
  • aspice流程VDA

    aspice流程VDA: 深入解析ASpice流程 ASpice流程是一种用于数据分析的可视化工具,它可以用于构建复杂的数据分析模型,帮助用户快速发现数据中的潜在关系和模式。在AS…

    科研百科 2024年11月18日
    0
  • 探索非公经济组织党建工作绩效考核体系(探索非公经济组织党建工作绩效考核体系的意义)

    探索非公经济组织党建工作绩效考核体系。积极探索建立非公党建工作考核奖惩机制,制定并实施《党建工作绩效评价考核办法》,发挥考核评价“风向标”作用,把开展非公有制企业党建工作情况,与企…

    科研百科 2023年7月26日
    90
  • 岗位廉政风险事中内控

    岗位廉政风险事中内控 随着社会主义市场经济的发展和经济全球化趋势的加强,企业岗位廉政风险问题越来越受到重视。在企业中,岗位廉政风险是指不同岗位的员工在执行职务过程中可能存在的违反廉…

    科研百科 2024年10月19日
    1
  • 客户关系管理的起源

    客户关系管理(Customer Relationship Management,CRM)起源于20世纪70年代的美国。当时,公司开始意识到,通过记录和跟踪客户信息和互动,可以帮助公…

    科研百科 2025年1月7日
    2
  • 广西科技大学高校科研项目管理费用标准

    广西科技大学高校科研项目管理费用标准 随着科学技术的不断发展,高校科研项目越来越受到关注。科研项目的管理费用也成为了高校教学和科研的重要支出之一。广西科技大学作为一所综合性大学,一…

    科研百科 2024年12月2日
    1
  • 成果和课题的区别

    成果和课题的区别成果和课题的区别1.培养领导者高级领导者是发展领导者,管理者就是具有领导者的风范。2.提高效率管理者核心领导者,包括管理者。管理者需要管理核心领导者。3.具备领导者…

    科研百科 2024年11月25日
    1
  • 海南农垦:党建深融入 发展加速度

    海南农垦各企业以党建为引领,全力推进重点工作落实落地 党建深融入 发展加速度 ■ 海南日报记者 邓钰 风吹稻浪涌千里,10月27日,三亚崖州区,海南农垦南繁产业集团有限公司(以下简…

    科研百科 2023年9月15日
    142