前言
作为一名资深程序员,通过代码熟练操作Excel是必不可少的技能,本章主要讲解Python通过openpyxl第三方库(官方文件说明)对Excel进行操作,使Excel程序化操作更为简单快捷。
openpyxl
1:安装
Win+R调出cmd.exe,输入 pip install openpyxl 等待程序安装完成,如下图:
2:实例代码 - 小试牛刀
# 从workbook导入openpyxl
from openpyxl import Workbook
# 导入时间库
import datetime
# 创建一个Excel文件
wb = Workbook()
# 选择 sheet
ws = wb.active
# 设置值到某一个单元格(cells)
ws['A1'] = "Jeremy1"
ws['B1'] = 23
ws['B2'] = "男"
ws['B3'] = "1111999000"
ws['A2'] = datetime.datetime.now()
# 存储文件
# 默认保存到当前目录下
wb.save("pyExcelTest.xlsx")
执行完成后,在工程目录下找到pyExcelTest.xlsx文件,并打开:
读数据
1 # 导入openpyxl 2 from openpyxl import load_workbook 3 # 读取文件 4 wb = load_workbook('pyExcelTest.xlsx') 5 # 根据 sheet 名称获取,返回 Worksheet 对象 6 sheet = wb.get_sheet_by_name("Sheet") 7 # 选择一列 8 columns = sheet['B'] 9 # 遍历这列的所有行,每个columCell都是一个Cell对象 10 for columCell in columns: 11 print(columCell.value)
写数据
1 from openpyxl import Workbook 2 wb = Workbook() 3 # 指定当前显示(活动)的sheet对象 4 ws = wb.active 5 # 一行添加多列数据 6 for rows in [(1, 2, 3)]: 7 ws.append(rows) 8 # 存储文件 9 wb.save("pyExcelTest.xlsx")
附录,常用API
Worksheet.columns():获取 sheet 所有列
Worksheet.iter_cols():通过列截断
Worksheet.rows():获取 sheet 所有行
Worksheet.iter_rows():通过行截断
Worksheet.cell():操作单元格
Workbook.save():存储文件
workbook.Workbook.create_sheet():创建新的 sheet
Workbook.sheetnames():获取 sheet 名称