使用openpyxl操作Excel
1.Workbook对象
Workbook相当于是一个文件,WorkSheet就是文件里面的每个具体的表,比如新建Excel文件里面的'Sheet1'这个,一个Workbook里面有一个或多个WorkSheet.
1.1 获取Workbook对象
两种方式
(1)新建对象:
from openpyxl import Workbook wb = Workbook() wb.save('C:\\Users\\Administrator\\PycharmProjects\\excel\\test.xlsx')
(2)导入已存在的对象:
from openpyxl import load_workbook file_path = 'C:\\Users\\Administrator\\PycharmProjects\\excel\\test.xlsx' wb = load_workbook(file_path)
1.2 Workbook属性
print(wb.worksheets) 返回所有WorkSheet的列表,类型为list
print(wb.active) 返回当前默认选中的WorkSheet
print(wb.sheetnames) 返回所有WorkSheet的列表,类型为list
1.3 Workbook方法
get_sheet_names(): 同sheetnames
get_active_sheet(): 同active属性
get_sheet_by_name(name): 根据名称获取WorkSheet
remove(worksheet): 删除一个WorkSheet,注意是WorkSheet对象,不是名字
save(filename): 保存到文件,记住有写入操作记得保存!!!
2 worksheet对象
2.1 获取worksheet对象
ws1 = wb.active # 获取默认打开的(active)的WorkSheet
ws2 = wb.create_sheet() # 创建一个WorkSheet,可传title和index两个参数,不传生成的WorkSheet名在'Sheet'后面递增加数字。
ws3=wb['Sheet1'] # 通过名称获取WorkSheet
2.2 worksheet属性
rows: 返回所有有效数据行,有数据时类型为generator,无数据时为tuple
columns:返回所有有效数据列,类型同rows
max_column:有效数据最大列
max_row:有效数据最大行
min_column:有效数据最小列,起始为1
min_row:有效数据最大行,起始为1
values:返回所有单元格的值的列表,类型为tuple
title:WorkSheet的名称
2.3 worksheet方法
cell(coordinate=None, row=None, column=None, value=None)
获取指定单元格或设置单元格的值,具体使用在cell下面介绍
3 操作cell
3.1 获取cell对象
(1)使用WorkSheet的Cell方法
c1=ws.cell(1,1)
c2=ws.cell(row=1,column=1) #获取A1单元格
(2)通过坐标获取Cell
c3=ws['A1']# 获取多个
c3=ws['A1:A3'] #返回多行数据,类型为tuple
注意此处获取的不是单元格的值。
3.2 设置Cell的值
(1)直接使用WorkSheet的cell方法设置
ws.cell(row=1,column=1,value=10)
(2)设置Cell对象value属性
c1=ws.cell('A1')
c1.value=100
3.3 Cell属性
column:所在列,起始为1
row:所在行,起始为1
coordinate: 所在坐标,如'A1'
parent: 所属的WorkSheet
value: 单元格的值
3.4 Cell方法
offset(row=0, column=0): 偏移
# -*- coding:utf-8 -*- import os from openpyxl import Workbook from openpyxl import load_workbook file_path = 'C:\\Users\\Administrator\\PycharmProjects\\excel\\test.xlsx' if os.path.exists(file_path): print("excel file exist") else: wb = Workbook() wb.create_sheet('Sheet1')#新建sheet页 wb.save(file_path) """ a = wb.worksheets b = wb.active c = wb.sheetnames d = wb.get_active_sheet e = wb.get_sheet_names f = wb.get_sheet_by_name """ wb = load_workbook(file_path) #加载workbook对象 ws = wb.active ws.cell(row=1, column=1, value=10) #写入单元格 ws.cell(row=2, column=1, value=10) ws.cell(row=3, column=1, value=10) wb.save(file_path) #保存文件 a1 = ws.cell(1, 1) print(a1.column, a1.row, a1.value, a1.parent) a2 = ws.cell(row=1, column=1) print(a2.column, a2.row, a2.value, a2.parent) a3 = ws['A1:A3'] print(a3)