Python办公 知识量:2 - 22 - 78
在openpyxl库中,获取单个单元格的方法非常直接。可以通过Worksheet对象的cell()方法来获取特定单元格。以下是如何使用此方法的步骤:
# 假设我们已经有了一个Workbook对象,我们将其命名为wb # wb = openpyxl.load_workbook('your_file.xlsx') # 选择一个工作表,例如第一个工作表 ws = wb.active # 使用cell()方法获取特定单元格,例如获取A1单元格 cell = ws['A1'] # 现在,'cell'对象就是A1单元格的Cell对象,你可以读取或修改它的值 print(cell.value) # 输出A1单元格的值 # 你也可以通过坐标获取单元格,例如获取(1, 1)位置的单元格 cell_by_coordinate = ws[1, 1] print(cell_by_coordinate.value) # 输出A1单元格的值
在上述代码中,首先获取了工作簿的活动工作表。然后,使用cell()方法通过单元格的字母引用(如'A1')或坐标(如(1, 1))来获取单元格。然后可以读取或修改这些单元格的值。
在openpyxl中,通过ws.cell(row, column)方法获取的单元格的引用中,row和column的索引都是从1开始的,而不是从0开始。所以,ws.cell(2,5)获取的是第2行,第5列的单元格,也就是E1单元格。
要获取单元格的属性,可以使用Cell对象的各种属性。以下是一些常用的Cell属性:
cell.value: 返回单元格的值。例如,cell.value会返回E1单元格的值。
cell.row: 返回单元格所在的行。例如,cell.row会返回2。
cell.column: 返回单元格所在的列。例如,cell.column会返回5。
cell.coordinate: 返回单元格的坐标(以字母表示)。例如,cell.coordinate会返回'E1'。
cell.style: 返回应用于单元格的样式。可以使用这个属性来改变单元格的格式,例如字体、颜色等。
单元格的值就是Cell对象的value属性,所以可以通过修改Cell对象的value属性来修改单元格的值。例如,要将E1单元格的值修改为'Hello',可以这样做:
cell = ws.cell(2, 5) cell.value = 'Hello'
这样,E1单元格的值就被修改为'Hello'了。
openpyxl库提供了多种方法来获取多个单元格。
1. 获取单行或单列:
获取单行:ws.iter_rows(min_row=row_start, max_row=row_end, values_only=True)
获取单列:ws.iter_cols(min_col=col_start, max_col=col_end, values_only=True)
示例:
python`# 获取第2至5行的内容(只获取值) for row in ws.iter_rows(min_row=2, max_row=5, values_only=True): print(row) # 获取A至C列的内容(只获取值) for col in ws.iter_cols(min_col='A', max_col='C', values_only=True): print(col)`
2. 获取多个单元格:
如果想一次获取多个特定的单元格,可以直接使用切片语法。但需要注意的是,这种方法返回的是一个迭代器,所以需要遍历它来获取所有的单元格。
# 获取第2行的前3个单元格 for cell in ws[2][:3]: print(cell.value)
3. 使用cell()方法与范围:
还可以结合cell()方法和range对象来获取一个范围内的所有单元格。
for row in ws.iter_rows(min_row=2, max_row=5, min_col=1, max_col=3): for cell in row: print(cell.value)
上面的代码会获取第2至5行,第1至3列的所有单元格的值。
Copyright © 2017-Now pnotes.cn. All Rights Reserved.
编程学习笔记 保留所有权利
MARK:3.0.0.20240214.P35
From 2017.2.6