Python 可以使用第三方模块openpyxl来处理 Excel 表格。
openpyxl官方文档:https://openpyxl.readthedocs.io/en/stable/
安装 openpyxl 模块
Windows 用户使用命令行输入下面命令回车:
pip install openpyxl
还可以使用豆瓣的源,安装速度更快一些,可以用下面命令:
pip install openpyxl -i https://pypi.douban.com/simple
Mac 用户使用终端输入下面命令回车:
pip3 install openpyxl
Excel 表格基本术语
row 行,以数字表示,从1开始 column 列,以字母表示,从A开始 cell 单元格 sheet 工作表
打开 Excel 表格并读取工作表名称
需要用 load_workbook() 方法打开一个已存在的表格,用 .sheetnames 来读取其中工作表的名称。
# 引入load_workbook from openpyxl import load_workbook e_xlsx = load_workbook('top10.xlsx') print(e_xlsx.sheetnames) # 运行结果:['Sheet1', 'Sheet2']
有了工作表名称之后,就可以打开相应的工作表
e_xlsx = load_workbook('demo.xlsx') # 读取工作表 Sheet1 的内容,工作表名大小写敏感,一定要注意 s1 = e_xlsx['Sheet1'] # 输出工作表 Sheet1 的尺寸 print(s1.dimensions) # 运行结果:A1:C10
读取工作表中某个单元格的内容
sheet['A1'] 打开相应工作表的A1单元格
cell.value 输出单元格的值(内容)
e_xlsx = load_workbook('demo.xlsx') s1 = e_xlsx['Sheet1'] cell = s1['A1'] print(cell.value) # 运行结果:第1行第一列
如果表格中只有一个工作表,或者想打开默认工作表,则可以用.active 打开。
e_xlsx = load_workbook('demo.xlsx') s1 = e_xlsx.active cell = s1['A1'] print(cell.value) # 运行结果:第1行第一列
输出工作表中某个单元格的行、列和坐标
cell.row 行,cell.column 列,cell.coordinate 坐标
e_xlsx = load_workbook('demo.xlsx') s1 = e_xlsx.active cell = s1['B5'] print(f'{cell.row}行\n{cell.column}列\n坐标是{cell.coordinate}') ''' 输出结果: 5行 2列 坐标是B5'''
通过第几行和第几列定位单元格
sheet.cell(行数,列数) 可以读取相应行数和列数对应的单元格
e_xlsx = load_workbook('demo.xlsx') s1 = e_xlsx.active cell = s1.cell(5,3) print(f'{cell.coordinate}的内容是{cell.value}') # 输出结果:C5的内容是第5行第三列
获取某个范围内的单元格
sheet['A1':'A5'] 可以获取从A1到A5的单元格
e_xlsx = load_workbook('demo.xlsx') s1 = e_xlsx.active cells = s1['A1':'A5'] print(cells) # 输出结果是一个元组: # ((<Cell 'Sheet1'.A1>,), (<Cell 'Sheet1'.A2>,), (<Cell 'Sheet1'.A3>,), (<Cell 'Sheet1'.A4>,), (<Cell 'Sheet1'.A5>,))
sheet['A':'C'] 可以获取从A列到C列的单元格
e_xlsx = load_workbook('demo.xlsx') s1 = e_xlsx.active cells = s1['A':'C'] print(cells)
输出结果:
((<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.A2>, <Cell 'Sheet1'.A3>, <Cell 'Sheet1'.A4>, <Cell 'Sheet1'.A5>, <Cell 'Sheet1'.A6>, <Cell 'Sheet1'.A7>, <Cell 'Sheet1'.A8>, <Cell 'Sheet1'.A9>, <Cell 'Sheet1'.A10>), (<Cell 'Sheet1'.B1>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.B3>, <Cell 'Sheet1'.B4>, <Cell 'Sheet1'.B5>, <Cell 'Sheet1'.B6>, <Cell 'Sheet1'.B7>, <Cell 'Sheet1'.B8>, <Cell 'Sheet1'.B9>, <Cell 'Sheet1'.B10>), (<Cell 'Sheet1'.C1>, <Cell 'Sheet1'.C2>, <Cell 'Sheet1'.C3>, <Cell 'Sheet1'.C4>, <Cell 'Sheet1'.C5>, <Cell 'Sheet1'.C6>, <Cell 'Sheet1'.C7>, <Cell 'Sheet1'.C8>, <Cell 'Sheet1'.C9>, <Cell 'Sheet1'.C10>))
sheet[1:4] 可以获取从1行到4行的单元格
e_xlsx = load_workbook('demo.xlsx') s1 = e_xlsx.active cells = s1[1:4] print(cells)
输出结果:
((<Cell 'Sheet1'.A1>, <Cell 'Sheet1'.B1>, <Cell 'Sheet1'.C1>), (<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.C2>), (<Cell 'Sheet1'.A3>, <Cell 'Sheet1'.B3>, <Cell 'Sheet1'.C3>), (<Cell 'Sheet1'.A4>, <Cell 'Sheet1'.B4>, <Cell 'Sheet1'.C4>))
另外还可以用 sheet['B'] 获取B列的单元格,sheet[3] 获取第3行的单元格。
.iter_rows(min_row=最低行,max_row=最高行,min_col=最低列,max_col=最高列) 获取指定行列范围之间的单元格
# 指定行列范围,以行读取 from openpyxl import load_workbook e_xlsx = load_workbook('demo.xlsx') s1 = e_xlsx.active for row in s1.iter_rows(2,5,1,3): print(row)
输出结果:
(<Cell 'Sheet1'.A2>, <Cell 'Sheet1'.B2>, <Cell 'Sheet1'.C2>)
(<Cell 'Sheet1'.A3>, <Cell 'Sheet1'.B3>, <Cell 'Sheet1'.C3>)
(<Cell 'Sheet1'.A4>, <Cell 'Sheet1'.B4>, <Cell 'Sheet1'.C4>)
(<Cell 'Sheet1'.A5>, <Cell 'Sheet1'.B5>, <Cell 'Sheet1'.C5>)
同理 .iter_cols() 是以列返回指定范围的单元格。
.rows 可以返回整个表格所有的行
from openpyxl import load_workbook e_xlsx = load_workbook('demo.xlsx') s1 = e_xlsx.active for row in s1.rows: print(row)
相关 Python 学习日志:
Python 基础知识:
Python 元组与集合
Python 函数与函数的自定义
Python while 循环与 for 循环
利用 Python 处理文件和文件夹:
Python 自动化处理 Excel 表格
Python 批量调整 Excel 表格中字体和样式
......
下一篇:Python 使用openpyxl模块编辑 Excel 表格
- 相关文章 -
Python 基础知识入门演示 - 2017-12-31
Python 数字与数字型运算 - 2020-09-08
Python 基础知识之数据类型 - 2020-09-07
Python 学习中非常好用的编辑器 Sublime Text 3 - 2020-09-07
Python 基础知识之变量 - 2020-09-03
Python 详细安装步骤图解 - 2020-09-01
Python 数据分析模块 Pandas 之 DataFrame 数据 - 2020-02-09
Python 数据分析模块 Pandas 之 Series 数据 - 2020-02-05
- 文章评论 -
- 最新评论[0条评论] -
版权所有©逍遥峡谷 - 星际中心超自然局 · 地球总部 |
逍遥峡谷 ·
酷品优选
Copyright©Interstellar Central Occult Agency (I.C.O.A)
本局纯属虚构,如有雷同,纯属巧合