在使用Python对Excel的单元格进行操作之前,我们需要确保本地python库中成功安装了openpyxl
类库。若没有安装该类库,则需要在【终端】借助pip工具安装:
# win:
pip install openpyxl
# mac
pip3 install openpyxl
# 若提示下载超时,则用以下的方式安装
pip install -i https://pypi.tuna.tsinghua.edu.cn/simple openpyxl
在Excel中,可将关注的对象分为:【工作簿】、【工作页】、【行/列】、【单元格】。openpyxl类库如何去获取他们呢:
from openpyxl import load_workbook
# 加载指定工作簿
workbook = load_workbook(文件路径)
# 新建工作簿
workbook = Workbook()
print(type(workbook)) #
# 保存工作簿
workbook.save(文件路径)
这一步的作用可以理解为我们打开了指定的Excel文件,或者新建了一个Excel表格并打开。
worksheet = workbook.active
print(type(worksheet)) #
这一步可以理解为我们操作Excel的时候,打开了指定Sheet页。
获取的行、列数据最终是以元组形式返回。
获取指定的一行 / 列(如获取第一行 / 列)
# 获取第一行
row = worksheet[1]
print(type(row)) #
# 获取第一列
col = worksheet['A']
print(type(col)) #
通过遍历器获取行 / 列
行遍历方法iter_rows
与列遍历iter_cols
在用法上一致,此处我们选择研究一下行遍历中的方法及其参数:
def iter_rows(self, min_row=None, max_row=None,
min_col=None, max_col=None, values_only=False):
参数 | 说明 |
---|---|
min_row | 开始遍历的行,默认值为None,从第一行开始。 |
max_row | 结束遍历的行,默认值为None,到存在数据的最后一行止。 |
min_col | 获取每行的起始列,默认值为None,从第一列开始。 |
max_col | 获取每行的结束列,默认值为None,到存在数据到最后一列止。 |
values_only | 获取行数据为对象还是纯数值,默认值为False。 若该值为False,则获取的行元组中的每个元素都是Cell对象,若需要获取其中的值,则需要通过 cell.value 的方式获取。若该值为True,则获取的行元组中的每个元素都是表格中的文本。 |
for row in worksheet.iter_rows(min_row=2, max_row=4,
min_col=2, max_col=4, values_only=True):
print(row)
# 输出结果
"""
(1, 38016.14, 45127.2)
(2, 33078.08, 40334.41)
(3, 43791.06, 51433.11)
"""
cell = worksheet['A1']
for cell in worksheet.iter_rows():
print(type(cell)) #