在以前的推文中,我们介绍了操作Excel的模块openpyxl的入门知识,相关推文可以从本公众号的底部相关菜单获取。接下来的推文我们来学习一下openpyxl这个python模块中的其他知识,本次推文我们来学习一下单元格(cell)操作的相关知识。
1.读取和设置单元格内容
上篇关于openpyxl的推文中我们介绍了一些基础的操作,也包含了读取和设置单元格内容的操作。我们先复习一下,假设现在有一个“cell_operation.xlsx”文件,文件中的数据如下:
我们来进行读取和设置单元格内容的操作:
from openpyxl import *
wb = load_workbook('cell_operation.xlsx')
ws = wb['Sheet1']
cell_value_1 = ws.cell(column=1, row=1).value
set_value_1 = ws.cell(column=1, row=9).value = 8
set_value_2 = ws.cell(column=1, row=10).value = '9'
print('cell_value_1:',cell_value_1)
wb.save('cell_operation.xlsx')
wb.close()
第四行到第六行代码是读取和设置单元格的操作,其中第四行代码为读取该单元格的内容,第五到第六行代码是用来设置单元格内容的,运行后Excel文件的结果如下:
我们可以看到单元格A10中的数据是文本格式的,这第五行代码设置值的时候是一致的。现在,我们还有一种方式的进行设置:
ws.cell(column=2, row=9, value="{0}".format(get_column_letter(1)))
这个方式设置的结果是B9单元格被设置了文本“A”。也就是说函数
get_column_letter将对应的数字转为字母letter,也就是单元格列字母,当然还有一种方式也可以进行设置,使用ASCII值进行获取:
letter = chr(i + 65) # 由ASCII值获得对应的列字母
设置超链接:超链接设置也十分常用,比如在C3单元格进行设置一个超链接:
ws.cell(3,3).hyperlink = 'www.baidu.com'
接下来我们查看一个单元格常见的属性值看看:
print(ws.cell(column=2, row=9).column_letter)
print(ws.cell(column=2, row=9).coordinate)
print(ws.cell(column=2, row=9).col_idx)
print(ws.cell(column=2, row=9).encoding)
print(ws.cell(column=2, row&#