前面我们说到,使用代码控制 Excel,其实也是将其作为一个对象,来改变它的属性值,达到我们想要的效果;今天我们先来学习另外的 Excel 对象,行row
和列column
;
首先引入我们要使用的函数
from openpyxl import load_workbook
然后获取当前工作表对象
wb = load_workbook(r'd:\Demo\Demo.xlsx')
ws = wb.active
Openpyxl 中,每一个工作表对象具有 2 个属性:max_row
和max_column
,来获取使用的工作表范围的最大行数和列数;我们将其保存到相应的变量中,输出查看
from openpyxl import load_workbook
wb = load_workbook(r'd:\Demo\Demo.xlsx')
ws = wb.active
row_max = ws.max_row
col_max = ws.max_column
print(row_max)
print(col_max)
# 输出:
# 6
# 5
表明我们的内容有5
行,6
列
如果我们数据中间空了 1 行或者 1 列,那么就会将最下面的那一行(列)看做最终行(列)
# 输出:
# 7
# 5
工作表对象的row_dimensions
和column_dimensions
属性可以方便的调节行高列宽,将行号和列符传入,设置行高列宽数值,注意行高在:0-409,列宽在 0-255 之间
from openpyxl import load_workbook
wb = load_workbook(r'd:\Demo\Demo.xlsx')
ws = wb.active
ws.row_dimensions[1].height = 50
ws.column_dimensions['C'].width = 70
wb.save(r'd:\Demo\Demo.xlsx')
我们可以使用for
循环遍历表格的行或列,然后将其生成到列表中
from openpyxl import load_workbook
wb = load_workbook(r'd:\Demo\Demo.xlsx')
ws = wb.active
for row in ws.rows:
i = [i.value for i in row]
print(i)
# 输出
'''
['序号', '姓名', '年龄', '班级', '分数']
[1, '郭靖', 13, '1班', 78]
[2, '黄蓉', 17, '1班', 90]
[3, '令狐冲', 23, '2班', 67]
[4, '任盈盈', 14, '3班', 89]
[5, '东方不败', 34, '3班', 97]
'''
或者
from openpyxl import load_workbook
wb = load_workbook(r'd:\Demo\Demo.xlsx')
ws = wb.active
for col in ws.columns:
i = [i.value for i in col]
print(i)
# 输出
'''
['序号', 1, 2, 3, 4, 5]
['姓名', '郭靖', '黄蓉', '令狐冲', '任盈盈', '东方不败']
['年龄', 13, 17, 23, 14, 34]
['班级', '1班', '1班', '2班', '3班', '3班']
['分数', 78, 90, 67, 89, 97]
'''
今天的教程,主要学习了:如何读取已使用的单元格范围的行列数,以及调整行高列宽,同时还按行或列读取了数据;大家都学会了吗?
联系客服