openxlpy学习笔记

1. 生成Excel文件对象

语法格式:文件对象 = openpyxl.load_workbook('文件名')

利用该方法打开一个Excel文件,并生成workbook对象,该对象用于操作打开的Excel文件

2.1 通过表名得到表对象

语法格式:表对象 = 文件对象['表名']

2.2 获取活动表对象

语法格式:表对象 = 文件对象.active

3. 获取表格中数据所占大小

语法格式:表对象.dimensions

该方法可以得到表格中数据占据了几行几列,如:5行5列 就表示为 A1:E5

4. 获取单元格中的数据

语法格式:单元格对象.value

通过该方法得到该单元格内的数据

5. 通过指定行和列,获得单元格对象

语法格式:单元格对象 = 表对象.cell(row=,column=)

其中,row表示行,column表示列,通过该方法可以得到第几行第几列的单元格对象

注意:

获取的单元格内没有数据,返回的结果为 None

6.获取表中单元格的行、列、坐标

语法格式:

1、单元格对象.row :得到该单元格是第几行

2、单元格对象.columns :得到该单元格是第几列

3、单元格对象.coordinate:得到该单元格的坐标

python 复制代码
# 导入模块
import openpyxl

# 1、打开文件,生成文件对象
workbook = openpyxl.load_workbook('test.xlsx') # 这里文件名,也可以是文件路径,如:D:day/test.xlsx
# 注意:该文件必须存在,不然会报错
# 2、获取活动表对象
sheet = workbook.active
# 3、得到指定单元格对象
cell1 = sheet.cell(row=3,column=2) # 表示获得第3行第2列的单元格对象
cell2 = sheet['C2'] # 表示得到B3位置的单元格对象

# 4、获得单元格的行、列、坐标
print(cell1.row, cell1.column, cell1.coordinate) # 输出结果:3 2 B3
print(cell2.row, cell2.column, cell2.coordinate) # 输出结果:2 3 C2
7. 获取指定区间的数据

语法格式:表对象.['区间'],如:sheet.['A1:A5']

通过该方法可以得到区间范围内的所有单元格对象,以元组的形式返回,通过这些对象可以得到其单元格对应的数据

8.获取指定行或列的数据

语法格式:

1、表对象.['A']:表示获取第A列所有单元格对象

2、表对象.['A:C']:表示获取A、B、C三列所有单元格对象

3、表对象.[2]:表示获取第2行所有单元格对象

注意:只会获取到有数据的单元格对象

9.按行或按列读取单元格数据(迭代器)

语法格式:

1、表对象.iter_rows(min_row=,max_row,min_col=,max_col=),按找顺序一行一行的读取数据

2、表对象.iter_cols(min_row=,max_row,min_col=,max_col=),按照顺序一列一列的读取数据

参数说明:

min_row:表示从第几行开始读取

max_row:表示读取到第几行借结束

min_col:表示从第几列开始读取

max_col:表示读取到第几列结束

python 复制代码
# 导入模块
import openpyxl

# 1、打开文件,生成文件对象
workbook = openpyxl.load_workbook('test.xlsx') # 这里文件名,也可以是文件路径,如:D:day/test.xlsx
# 注意:该文件必须存在,不然会报错
# 2、获取活动表对象
sheet = workbook.active
print(f'当前活动表为:{sheet}')

# 3、按行的顺序读取数据
data1 = sheet.iter_rows(min_row=2,max_row=4,min_col=1,max_col=2) # data接收的是这块区间单元格对象
print(f'行区间单元格对象:{data1}')
# 将读取的数据通过for循环遍历出来,需要两个for循环
print('按行的顺序读取的数据:')
for i in data1:
    for x in i:
        print(x.value)

# 4、按列的顺序读取数据
data2 = sheet.iter_cols(min_row=2,max_row=4,min_col=1,max_col=2) # data接收的是这块区间单元格对象
print(f'列区间单元格对象:{data2}')
# 将读取的数据通过for循环遍历出来,需要两个for循环
print('按列的顺序读取的数据:')
for i in data2:
    for x in i:
        print(x.value)
python 复制代码
当前活动表为:<Worksheet "Sheet1">
行区间单元格对象:<generator object Worksheet._cells_by_row at 0x000001D8757D3DD0>
按行的顺序读取的数据:
张三
唱
李四
跳
王五
rap
列区间单元格对象:<generator object Worksheet._cells_by_col at 0x000001D8757D3F90>
按列的顺序读取的数据:
张三
李四
王五
唱
跳
rap
10.获取表中数据所占的行列数

语法格式:

1、表对象.max_row,获取到表中数据有几行

2、表对象.max_column,获取到表中数据有几列

11. 获取到表中所有行和列的数据

语法格式:

1、表对象.rows:获取表中所有行的对象

2、表对象.columns:获取表中所有列的对象

只会获取到有数据的行和列

本文参考自:python之openpyxl模块和CSV模块------实现Excel表格的处理(万字教学,全网最全,超详细!!!)-CSDN博客

相关推荐
لا معنى له1 分钟前
学习笔记:卷积神经网络(CNN)
人工智能·笔记·深度学习·神经网络·学习·cnn
蒙奇D索大5 分钟前
【数据结构】考研408 | 冲突解决精讲: 拉链法——链式存储的艺术与优化
数据结构·笔记·考研·改行学it
_Minato_15 分钟前
数据结构知识整理——复杂度的计算
数据结构·经验分享·笔记·算法·软考
x_lrong28 分钟前
交叉验证笔记
笔记
لا معنى له1 小时前
学习笔记:注意力机制(Attention)、自注意力(Self-Attention)和多头注意力(Multi-Head Attention)
笔记·学习
走在路上的菜鸟1 小时前
Android学Dart学习笔记第十六节 类-构造方法
android·笔记·学习·flutter
代码游侠1 小时前
学习笔记——线程控制 - 互斥与同步
linux·运维·笔记·学习·算法
爱吃泡芙的小白白1 小时前
Agent学习——xiaomi MiMo V2 Flash大模型的API申请
学习·agent·xiaomi mimo
四谎真好看1 小时前
MySQL 学习笔记(进阶篇1)
笔记·学习·mysql·学习笔记
三品吉他手会点灯1 小时前
STM32F103学习笔记-19-SysTick-系统定时器(第1节)-功能框图讲解和优先级配置
笔记·stm32·单片机·嵌入式硬件·学习