python模块详解 | openpyxl

前言

常规使用

1. 工作簿的使用

wb = openpyxl.Workbook() # 新建
wb = openpyxl.load_workbook('filename') # 加载本地的文件
all_sheet = wb.sheetnames # 获取所有的sheet,返回list
wb.remove(sheetname)
wb.save(filename)

2. 工作表的使用

## 创建工作表对象的四种方法
ws = wb.create_sheet('Sheet1') # 创建sheet,指定位置使用index参数,从0开始
ws = wb.get_sheet_by_name('Sheet1') # 通过sheet名称获取sheet对象
ws = wb.active # 激活当前sheet页
ws = wb['Sheet1'] # 通过sheet名称获取
ws = wb[0] # 通过下标来获取

ws.title # 获取sheet名称
ws.title = "" # 设置sheet名称
ws.max_column # 获取表最大列数
ws.max_row # 获取表最大行数
ws.sheet_properties.tabColor = '1072BA' # 设置sheet名称背景颜色
ws.dimensions # 获取sheet内容的维度(例'A1:D37')
ws.columns # 获取以列分组的所有单元格
ws.append([1,2,3]) # 写入一行数据

3. 单元格的使用

cell.row/column/coordinate # 获取单元格的行/列/坐标
# 获取单元格对象的两种方法
cell = ws['A1']
cell = ws.cell(row=1,column=1)
# 获取多个单元格内容
ws['A':'D'] # 获取A列到D列的单元格
ws[1,5] # 获取第1行到第5行的单元格
ws['A1':'A5'] # 获取A1到A5的单元格
ws['A'] # 获取A列所有单元格
ws[1] # 获取第1行所有单元格
ws.iter_rows().__next__() # 获取第1行所有单元格
ws['A1'].value # 获取“A1“单元格的值
ws.iter_rows(min_row,max_row,min_col,max_col) # (以行)获取指定行列范围之间的单元格
ws.iter_cols(min_row,max_row,min_col,max_col) # (以列)获取指定行列范围之间的单元格
## 设置单元格数值的三种方法
ws.cell(row=1,column=1,value='a')
ws.cell(row=1,column=1).value = 'a' 
ws['A1'].value = 'a'
## 设置单元格填充
from openpyxl.styles import PatternFill
cell.fill = PatternFill("solid", fgColor="ffff00")
"""
fill_type 有如下的方式 一般纯色填充使用 solid 
{'lightGrid', 'gray0625', 'lightTrellis', 'lightDown', 'lightVertical', 'darkTrellis', 'darkHorizontal', 'darkVertical', 'darkGrid', 'darkGray', 'solid', 'darkUp', 'lightGray', 'mediumGray', 'darkDown', 'lightHorizontal', 'lightUp', 'gray125'}
"""
from openpyxl.styles import Font,colors,Alignment
## 设置字体
font = Font(name="",size=22,italic=True,color=colors.RED,bold=True)
cell.font = font
## 设置对齐
cell.alignment = Alignment(horizontal="center",vertical="center") # 水平、垂直
## 设置行高
ws.row_dimensions[1].height = 10
## 设置列高
ws.column_dimensions["A"].width = 10
## 合并单元格
ws.merge_cells("A1:C6")

方法大全

「openpyxl对象」

image-20210328162332508

「工作簿(workbook)对象」

image-20210328162451361

「工作表(worksheet)对象」

image-20210328162702732

「单元格(cell)对象」

image-20210328163511762


651 字