Openpyxl 简单教学

Python 有众多操作 excel 的库,各有其优缺点,但是他们可以大致分为两类:第一类打开 Excel 程序模拟人类操作,第二类直接对 Excel 文件进行操作。今天要介绍的库 openpyxl 就属于第二类,它可以对 xlsx 文件进行很方便的操作,但是不支持 xls 格式。如果客户端使用 WPS 而非 Office 的话,艺赛旗自带的 Excel 操作命令有很多会无法正常运行,这时可以考虑用 Openpyxl 来操作 xlsx 文件。


# 创建Excel
from openpyxl import Workbook
book = Workbook() # 在内存中创建Excel文件
sheet = book.active # 选中第一个Sheet
sheet['A1'] =  56
sheet['A2'] =  43 # 设定A1与A2的值
sheet.cell(row=2, column=2).value =  2 # 设定2行2列处的值为2
book.save("sample.xlsx") # 保存Excel文件

# 添加行
rows = (
(88, 46, 57),
(89, 38, 12),
(23, 59, 78),
(56, 21, 98),
(24, 18, 43),
(34, 15, 67)
)
for row in rows:
    sheet.append(row)
    book.save('appending.xlsx')
	
# 读取文件并读取Cell
book = openpyxl.load_workbook('sample.xlsx') # 读取文件
sheet = book.active
a1 = sheet['A1']
a2 = sheet['A2']
a3 = sheet.cell(row=3, column=1) # 以上代码列举了两种获取Cell值的方式
print(a1.value)
print(a2.value)
print(a3.value)

# 遍历行(遍历列的操作与其类似,在此不作赘述)
for row in sheet.iter_rows(min_row=1, min_col=1, max_row=6, max_col=3):
    for cell in row:
        print(cell.value, end=" ")
    print()
	
# 操作多个Sheet
book.create_sheet('April')
print(book.get_sheet_names())
sheet = book.get_sheet_by_name("March")
print(sheet.title)

# 隐藏/取消隐藏Sheet
sheet = book['人民币基础性存款日均']
print(sheet.sheet_state) # 假设该sheet为隐藏,则sheet_state会显示hidden
sheet = book['全辖汇总表']
print(sheet.sheet_state) # 假设该sheet不为隐藏,则sheet_state会显示visible
sheet = book['人民币基础性存款日均']
sheet.sheet_state = 'visible' # 取消该sheet隐藏