iis服务器助手广告广告
返回顶部
首页 > 资讯 > 后端开发 > Python >Python 3 学习笔记:Excel
  • 773
分享到

Python 3 学习笔记:Excel

学习笔记PythonExcel 2023-01-31 07:01:55 773人浏览 安东尼

Python 官方文档:入门教程 => 点击学习

摘要

安装模块 OpenPyXL 模块是一个第三方模块,所以需要使用 pip 工具安装, pip install openpyxl 文件结构 首先,我们需要了解一下 excel 文件的基本结构,一个 Excel 文件被称为一个工作薄,工作薄中可以

安装模块

OpenPyXL 模块是一个第三方模块,所以需要使用 pip 工具安装,

pip install openpyxl

文件结构

首先,我们需要了解一下 excel 文件的基本结构,一个 Excel 文件被称为一个工作薄,工作薄中可以包含多个工作表(sheet),每个 sheet 由列和行组成,列与行的交叉点被称为单元格,实际数据就是存放在单元格中的。单元格中的数据可以是数字、文本、时间或者公式等等。

基本操作

创建工作薄

首先,需要从 OpenPyXL 引入 Workbook 类,

from openpyxl import Workbook

使用该类可以创建一个 Excel 文件,

workBookObject = Workbook()

workBookObject 就是 Workbook 类的实例的名称,也就是一个 Excel 工作薄。

通过 sheetnames 属性获取当前工作薄中的工作表,

workBookobject.sheetnames

还可以通过 active 属性获取当前正在操作的工作表,

workBookobject.active

保存工作薄

创建 Workbook 类的实例之后,其实并没有创建一个真正的 Excel 文件,从一点就可以看出,我们在创建 Workbook 对象时,并没有给它一个实际的文件名,这时候可以通过 save() 方法将工作薄保存成一个实际的 Excel 文件,

workBookobject.save(filename="example.xlsx")

该方法会将文件保存到当前目录下。

如果需要将文件保存至指定位置,filename 参数也可以是一个路径,如:

workBookobject.save(filename=r"D:\桌面\example.xlsx")

使用 save() 方法保存文件时,要注意如果目录下已经存同名文件,该方法不会做出提示,而是会直接覆盖保存。

创建工作表

创建工作薄之后,会默认自动创建一个工作表,我们也可以自己创建一个新的工作表,

workBookobject.create_sheet(sheetName)

sheetName 表示新工作表的名称。如果需要将工作表重新命名,可以修改工作表的 title 属性,

workBookobject["oldSheetName"].title = "newSheetName"

oldSheetName 即该工作表之前的名字,newSheetName 表示重命名之后的名字。而且可以看出,工作薄可以通过类似索引的方式访问它的工作表,只不过这个“索引”是工作表的名字。

复制工作表

如果想创建某个工作表的副本,可以使用下面的方法,

workBookobject.copy_worksheet(sheetName)
复制
sheetName 表示该工作薄中一个已经存在的工作表的名字。

删除工作表

如果某个工作表不再需要,则可以通过 remove() 方法将其删除,

workBookobject.remove(workBookobject["sheetName"])

赋值与取值

赋值

上面的操作都是针对工作薄及工作表的,但是我们知道在 Excel 文件中,真正的数据都是储存在单元格中的。

在 Excel 文件中,列使用字母表示,行使用数字表示,如果将其视为一个坐标系,则列的值就是 X 轴坐标值,行的值就是 Y 轴坐标值,单元格是列与行的交叉点,所以单元格表示成 A1、F5 等。

给单元格赋值同样可以采用类似索引的方式,首先取得工作表,然后再给其中某个单元格赋值即可,

workBookobject["sheetName"]["cellName"] = value

其中,cellName 就是单元格的名称,如 A1、F5 等。

还可以使用 cell() 方法对单元格进行赋值,

workBookobject["sheetName"].cell(column=colNo, row=rowNo, value=value)

该方法需要三个参数,即列、行和值。

其中,列比较特殊,虽然在 Excel 文件中,列是由字母表示的,但是在 cell() 方法中,列和行一样都是使用整数表示,从 1 开始。例如,E3 这个单元格的列是 E,但是在 cell() 方法中需要将其赋值为整数 5,如:

workBookobject["sheetName"].cell(column=5, row=3, value="python")

取值

取值很简单,直接使用单元格的编号即可取出其中的数据,

workBookobject["sheetName"]["cellName"].value

cellName 表示单元格的名字,即它的列和行的坐标点,如 A9。单元格除了 value 这个属性,还有 column(列)和 row(行)两个属性,用法同 value 一样。

上面是取一个单元格的值,如果想要取一行中若干个单元格的值,只要在起始的单元格和结束的单元格之间使用冒号(:)分隔即可,

workBookobject["sheetName"]["startCellName":"endCellName"]

或者,

workBookobject["sheetName"]["startCellName:endCellName"]

得到的结果是一个元组的元组,即二维元组,里层元组的元素是 Cell 类型,如下所示:

(
(<Cell 'Sheet'.A1>,),
(<Cell 'Sheet'.A2>,),
(<Cell 'Sheet'.A3>,),
(<Cell 'Sheet'.A4>,),
(<Cell 'Sheet'.A5>,),
(<Cell 'Sheet'.A6>,),
(<Cell 'Sheet'.A7>,),
(<Cell 'Sheet'.A8>,),
(<Cell 'Sheet'.A9>,)
)

所以,访问其中 A3 的值就是,

workBookobject["sheetName"]["A1:A9"][3][0].value

同理,如果是多列多行的单元格,同样是一个二维元组,

(
(<Cell 'Sheet'.A1>, <Cell 'Sheet'.B1>, <Cell 'Sheet'.C1>),
(<Cell 'Sheet'.A2>, <Cell 'Sheet'.B2>, <Cell 'Sheet'.C2>),
(<Cell 'Sheet'.A3>, <Cell 'Sheet'.B3>, <Cell 'Sheet'.C3>),
(<Cell 'Sheet'.A4>, <Cell 'Sheet'.B4>, <Cell 'Sheet'.C4>),
(<Cell 'Sheet'.A5>, <Cell 'Sheet'.B5>, <Cell 'Sheet'.C5>),
(<Cell 'Sheet'.A6>, <Cell 'Sheet'.B6>, <Cell 'Sheet'.C6>),
(<Cell 'Sheet'.A7>, <Cell 'Sheet'.B7>, <Cell 'Sheet'.C7>),
(<Cell 'Sheet'.A8>, <Cell 'Sheet'.B8>, <Cell 'Sheet'.C8>),
(<Cell 'Sheet'.A9>, <Cell 'Sheet'.B9>, <Cell 'Sheet'.C9>)
)

只不过这里是以列为基准,抛开外层元组不看,里层每个元组的元素都是同一列的单元格。

使用公式

在单元格使用公式与在 Office Excel 中操作文件一样,如设置一个 SUM 公式,

workBookobject["sheetName"]["A10"].value = "=SUM(A1:A9)"

则单元格 A10 的值就是 A1 到 A9 的和,前提是其中的数据是可以计算的。

但是,openpyxl 不会检查写的 Excel 公式名称及语法是否正确,如果错误不会给出任何提示,但是可以使用 openpyxl.utils 中的 FORMULAE 检查公式名称是否正确,例如,

from openpyxl.utils import FORMULAE

print("SUM" in FORMULAE)

如果公式名称返回 True,否则返回 False。

加载已有文件

如果需要打开一个已经存在的 Excel 文件,可以先加载该文件,

from openpyxl import load_workbook

workBookobject = load_workbook("example.xlsx")

同样可以使用上面的方法对数据进行操作。

--结束END--

本文标题: Python 3 学习笔记:Excel

本文链接: https://www.lsjlt.com/news/191020.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

本篇文章演示代码以及资料文档资料下载

下载Word文档到电脑,方便收藏和打印~

下载Word文档
猜你喜欢
  • Python 3 学习笔记:Excel
    安装模块 OpenPyXL 模块是一个第三方模块,所以需要使用 pip 工具安装, pip install openpyxl 文件结构 首先,我们需要了解一下 Excel 文件的基本结构,一个 Excel 文件被称为一个工作薄,工作薄中可以...
    99+
    2023-01-31
    学习笔记 Python Excel
  • python学习笔记(3)
    在大概了解了程序之后,我也买了本python书学习一下,因为现在新版的python3.4.0已经不再兼容2.x.x的内容,书虽然很新,但是有些例子还是用的过去的。1.比如在3.0中print 42不能再产生输出了,要改成print(42)&...
    99+
    2023-01-31
    学习笔记 python
  • Python学习笔记(3)--- Fla
    在安装flask前,首先安装pip安装地址:https://pip.pypa.io/en/stable/installing.html#install-pip下载(保存):在dos命令下执行 python get-pip.py安装然后 执行...
    99+
    2023-01-31
    学习笔记 Python Fla
  • Python学习笔记(3)Python中
    Escape What it does. 含义  \\ Backslash () 反斜杠 \' Single-quote (') 单引号 \" Double-quote (") 双引号 \a ASCII bell (BEL) 响铃符 \b...
    99+
    2023-01-31
    学习笔记 Python
  • 学习笔记3
    一文件查找和压缩1文件查找locate 搜索依赖于数据库,非实时搜索,搜索新建文件需手动更新,适于搜索稳定不频繁修改文件 find 实时搜索,精确搜索,默认当前目录递归搜索 find用法 -maxdepth...
    99+
    2023-01-31
    学习笔记
  • 学习笔记(3)
    1.* 匹配零个或多个字符(通配符中)2.ls 的-d选项不仅仅可以显示指定目录的信息,还可以用来表示不递归子文件夹。  # ls -dl /etc 显示/etc目录的信息  # ls -d /etc 只显示/etc下面的文件夹3.显示/v...
    99+
    2023-01-31
    学习笔记
  • python 学习笔记 3 -- 数据
    当你创建一个对象并给它赋一个变量的时候,这个变量仅仅 引用 那个对象,而不是表示这个对象本身!也就是说,变量名指向你计算机中存储那个对象的内存。这被称作名称到对象的绑定。eg. # -*- coding: utf-8 -*-  shopli...
    99+
    2023-01-31
    学习笔记 数据 python
  • Python 3 学习笔记:序列
    序列 索引 序列是一块用于放置多个值得连续存储空间,并且按特定顺序排列,每个值(称为元素)都分配一个整数(由左至右则从 0 开始;由右至左则从 -1 开始),称为索引(index)或位置,如下所示: 可以根据索引获取每个元素实际的值 st...
    99+
    2023-01-31
    序列 学习笔记 Python
  • python 学习笔记(3)-转载
    Python中只有一个赋值模型一、缺少类型声明语句的情况在Python中,类型是在运行过程中自动决定的,而不是通过代码声明。这意味着没有必要事声明变量。只要记住,这个概念实质上对变量,对象和它们之间的关系都适用。那么这个概念也容易理解并掌握...
    99+
    2023-01-31
    学习笔记 python
  • cisco学习笔记(3)
    1. 交换机支持的命令:交换机基本状态: switch: ;ROM状态, 路由器是rommon>hostname> ;用户模式hostname# ;特权模式...
    99+
    2023-01-31
    学习笔记 cisco
  • OSPF 学习笔记3
    ospf特殊区域 减少LSA洪泛,达到优化路由表的目的 sub区域特点 1、过滤了LSA4/5 2、通过ABR的LSA3学习到一条到达域外的缺省路由(O*IA) 3、区域内所有的路由器都得设置为stub路由器 ...
    99+
    2023-01-31
    学习笔记 OSPF
  • perl学习笔记(3)
    条件结构: if(...){       ...; }elsif(...){       ...; }else{       ...; } 数值关系运算符 ==,>...
    99+
    2023-01-31
    学习笔记 perl
  • shell 学习笔记3
    ####shell结构 #!指定执行脚本的shell #注释行 命令和控制结构  第一步:创建一个包含命令和控制结构的文件  第二步:修改这个文件的权限使它可以执行,chmod u+x...
    99+
    2023-01-31
    学习笔记 shell
  • GEF学习笔记3
    八、创建嵌套的视图 前面的步骤,创建了公司视图,下面再创建一个国家视图用来容纳公司视图。这就需要按前面的方法把MVC都重新创建一遍。 Model View(Figure) Control(EditPart) 注意重写红框中标...
    99+
    2023-01-31
    学习笔记 GEF
  • PowerShell 学习笔记(3)
    获取对象的过程中,最好先筛选出对象,再进行操作。(即筛选在排序左边)不区分大小写get-process | where {$_.handles –ge 1000}使用where获取所有对象,用对象执行大括号里的代码,如果...
    99+
    2023-01-31
    学习笔记 PowerShell
  • PHP 学习笔记 (3)
    昨天笔记2说道了PHP的标记以及短标记,今天记录下如何吧PHP从HTML分离手册参考:http://www.php.net/manual/zh/language.basic-syntax.phpmode.phpPHP手册告诉我们,PHP凡是...
    99+
    2023-01-31
    学习笔记 PHP
  • CCNP学习笔记(3)
    一、RIPv2:Routing Information Protocol 路由信息协议 1.特性: ①属于“距离矢量”路由协议 ②定期发送路由更新(30S一次,路由表中所有路由) ③依据“跳数”衡量路径好坏 ...
    99+
    2023-01-31
    学习笔记 CCNP
  • shell学习笔记(3)
    一、if基础 1、单分支 1.1 语法 if语句语法 单分支结构语法: if [条件]; then 指令 fi 或 if [条件] then ...
    99+
    2023-01-31
    学习笔记 shell
  • Python学习笔记(办公篇Excel)
    简介:      今日接了个小单,把数据从xlsx读取到本地生成散点图,在读取日期数据时发现,读取下来的日期是数字,不是日期的格式    所要用的库: xlrd :1.1.0 time: datetime: 解决方法: ...
    99+
    2023-01-30
    学习笔记 Python Excel
  • Python第二周 学习笔记(3)
    1.运用数组实现求10万以内质数: prime = [2] for i in range(3,100000,2): flag = False up = int(i**0.5)+1 for j in prime: ...
    99+
    2023-01-31
    学习笔记 Python
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作