openpyxl模块是一个读写Excel的python库,是一个比较综合的工具,能够同时读取和修改Excel文档。
1.安装模块
pip3 install openpyxl
2.基本用法
了解Excel 基本概念,Excel中列以字幕命名,行以数字命名,比如左上角第一个单元格的坐标为A1,下面的为A2,右边的B1。

openpyxl中有三个不同层次的类:

  1. Workbook是一个excel工作表
  2. Worksheet是工作表中的一张表页
  3. Cell就是一个格

每一个类都包含了许多属性和方法

3.操作Excel的一般场景
  • 打开或者创建一个Excel需要创建一个Workbook对象
  • 获取一个表则需要先创建一个Workbook对象,然后使用该对象的方法来得到一个Worksheet对象
  • 获取一个表则需要先创建一个Workbook对象,然后使用该对象的方法来得到一个Worksheet对象
4.Workbook对象

一个Workbook对象代表一个Excel文档,因此在操作Excel之前,都应该先创建一个Workbook对象。

对于创建一个新的Excel文档,直接进行Workbook类的调用即可,对于一个已经存在的Excel文档,可以使用openpyxl模块的load_workbook函数进行读取,该函数包涵多个参数,但只有filename参数为必传参数。

filename 是一个文件名,也可以是一个打开的文件对象。

import openpyxl
excel = openpyxl.load_workbook("aaa.xlsx")

Workbook和load_workbook相同,返回的都是一个Workbook对象。

Workbook对象提供了很多属性和方法,其中,大部分方法都与sheet有关,部分属性如下:

  • active:获取当前活跃的Worksheet
  • worksheets:以列表的形式返回所有的Worksheet(表格)
  • read_only:判断是否以read_only模式打开Excel文档
  • encoding:获取文档的字符集编码
  • properties:获取文档的元数据,如标题,创建者,创建日期等
  • sheetnames:获取工作簿中的表(列表)
5.写入xlsx
from openpyxl import Workbook
# 创建一个excel
wb = Workbook()
# 创建一个工作表
sheet = wb.active
# 给工作表改名
sheet.title = "New Shit"
# C3位置添加数据
sheet['C3'] = 'Hello world!'
# 循环将A1-10添加数据1-10
for i in range(10):
    sheet["A%d" % (i+1)].value = i+1
# 保存xlsx
wb.save("new.xlsx")
6.操作数据
from openpyxl import Workbook

wb = Workbook()
ws = wb.active
# 创建新的工作表
ws1 = wb.create_sheet("MySheet")
ws2 = wb.create_sheet("MySheet", 0)
ws.title = "New Title"
# 改变选项卡标题的背景颜色
ws.sheet_properties.tabColor = '1072BA'
# 将ws设置为关键工作表
ws3 = wb["New Title"]
# 所有工作表的名称
print(wb.sheetnames)
wb.get_sheet_by_name('New Title')
需要写成:
ws4 = wb['New Title']