1. 原表、启动!
from openpyxl import load_workbook
wb = load_workbook(filename = FNAME, read_only=False)
# read_only如果为True会以只读方式读取文件
# 对大文件很有用。对小文件只读模式好像并没有变快,不如不用
ws = wb[SHEETNAME]
1.1 遍历工作簿(sheet)
for sheetname in wb.sheetnames:
ws = wb[sheetname]
2. 行列遍历操作模式
2.1 遍历工作表中的行(按行操作)
for row in ws.iter_rows():
for cell in row:
print(cell.value)
2.2 遍历工作表中的列(按列操作)
# 注意:只读模式下不可用
for column in ws.iter_cols():
for cell in column:
print(cell.value)
2.3 共通操作
2.3.1 划定遍历范围
iter_rows()
和iter_cols()
均可以通过传入以下参数指定遍历范围:
min_row
max_row
min_col
max_col
2.3.2 个别单元格操作
上述例子中,可以用cel[N].value
取某一行第N+1列,或某一列第N+1行的值,也可对cel[N].value
进行赋值操作。
3. 用Excel索引操作某个特定单元格
可以用诸如ws['A1'].value
对A1单元格进行直接读取或赋值。
4. 保存
wb.save(SAVENAME)
5. 一些实用操作
5.1 列字母列序号转换
from openpyxl.utils import get_column_letter, column_index_from_string
# 获取列的字母
print(get_column_letter(1)) # 输出:'A'
print(get_column_letter(27)) # 输出:'AA'
# 获取列的索引
print(column_index_from_string('A')) # 输出:1
print(column_index_from_string('AA')) # 输出:27