目录
编辑
一、下载安装与引用
二、创建工作簿并写入数据
创建工作簿
创建工作表
写入数据
保存数据
三、读取表格并查找数据
读取表格
读取指定工作表
重命名指定工作表
获取单元格数据
四、其他操作
多个工作表之间的切换
处理行和列
格式化单元格
修改工作表标题背景
设置单元格颜色和字体
pip install openpyxl
import openpyxl
wb= openpyxl.Workbook()
# 创建目录
ws = wb.create_sheet(title, index)
参数定义:
title:工作表的名称
index:新生成的工作表放在那个位置上
不填写:默认将新工作表插入到工作簿的最后一个位置
0:表示将新工作表插入到工作簿的第一个位置
1:表示将新工作表插入到工作簿的第二个位置
-1:表示将新工作表插入到工作簿的倒数第二个位置
#方法一:
ws.cell(row, column, values)
#方法二:
ws.cell(row,column).value=values
#方法三:
ws['J1']=values
参数定义:row:工作表的行号,第一行从1开始
column:工作表的列号,第一列从1开始
values:要写入单元格的数据
J1:第J列,第1行
wb.save(filename)
其中:filename为要保存成为的文件名,如果文件名带有路径,则文件会保存在对应的路径下
wb=openpyxl.load_workbook(filename)
filemane:可以为文件名,也可以是所对应路径的文件地址
ws=wb[sheetname]
ws.title=New_sheetname
#方法一:
val=ws.cell(row,column).value
#方法二:
cell_value = ws['A1'].value
#方法三:
ws = wb['用户工作表']
for row in ws.rows: # 获取每一行的数据
for data in row: # 获取每一行中单元格的数据
print(data.value) # 打印单元格的值
获取第row行,第column列的数据赋值给变量val
如果有多个工作表,之前如何相互切换 :比如有工作表sheet1、sheet2
打开工作簿默认激活的是第一个工作表sheet1,可以不用设置激活状态了;
但是当你想切换到第二个工作表sheet2;对sheet2里的数据进行操作,则
ws2=wb[sheet2name]
wb.active = ws2
- 迭代行:
for row in ws.iter_rows(min_row=1, min_col=1, max_row=10, max_col=3):
- 迭代列:
for col in ws.iter_cols(min_row=1, min_col=1, max_row=10, max_col=3):
- 插入行:
ws.insert_rows(idx=2, amount=1)
ws
: 要插入行的工作表idx
: 要在哪个位置插入新行,该值为行索引(从1开始)
- 在第一行前面插入,则idx=1
- 在第一行后面插入,则idx=2
- 在第二行后面插入,则idx=3
amount
: 要插入的行数- 删除行:
ws.delete_rows(idx=2, amount=1)
idx
: 要删除的第一行的索引(从1开始)。amount
: 要删除的行数。- 插入列:
ws.insert_cols(idx=2, amount=1)
- 删除列:
ws.delete_cols(idx=2, amount=1)
- 设置单元格格式:
ws['A1'].number_format = '0.00%'
- 设置单元格字体:
ws['A1'].font = Font(size=12, bold=True)
- 设置单元格边框:
ws['A1'].border = Border(left=Side(border_style='thin', color='FF000000'), right=Side(border_style='thin', color='FF000000'), top=Side(border_style='thin', color='FF000000'), bottom=Side(border_style='thin', color='FF000000'))
- 合并单元格:
ws.merge_cells('A1:B2')
- 拆分单元格:
ws.unmerge_cells('A1:B2')
from openpyxl import Workbook
wb = Workbook()
ws1 = wb.create_sheet('用户信息表', 0)
ws1.sheet_properties.tabColor = 'FF6666' # 将标题背景改为指定RRGGBB颜色代码
'''用代码保存一下后,如下图所示'''
from openpyxl import Workbook
from openpyxl.styles import Font, Color, PatternFill, colors
# 创建一个新工作簿
wb = Workbook()
# 获取活动工作表
ws = wb.active
# 设置第二行第二列单元格的值为“Hello World!”
ws.cell(row=2, column=2).value = 'Hello World!'
#font1 = Font(name="微软雅黑", size=20, bold=True, italic=True, color="FF0000")
# name:字体类型,size:字体大小,bold:是否加粗,italic:是否斜体,color:字体颜色
# 创建字体对象和填充对象
font = Font(color=colors.RED, bold=True)
fill = PatternFill(start_color='FFFF00', end_color='FFFF00', fill_type='solid')
# 将字体和填充应用到单元格
ws.cell(row=2, column=2).font = font
ws.cell(row=2, column=2).fill = fill
# 保存工作簿
wb.save('example.xlsx')
在这个例子中,我们首先创建一个新工作簿并获取活动工作表。然后,我们将第二行第二列单元格的值设置为“Hello World!”。接着,我们创建了一个字体对象和一个填充对象,并将它们应用到单元格。最后,我们保存工作簿。
在这个例子中,我们将字体设置为粗体红色,将填充颜色设置为黄色