Office / Python / 编程 / 速查 · 26 1 月, 2024 0

Openpyxl快速上手:用Python轻松实现Excel办公自动化

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