python筑基之Excel操作:openpyxl

什么是openpyxl

openpyxl是python中常用于处理Excel的库,另一个是xlrd。

openpyxl支持对Excel文件的读和写,xlrd仅支持读取,写入操作需要用到xlwt库;

openpyxl支持.xlsx格式的文件,xlrd仅能支持.xls格式的文件(Excel 2003 及更早版本);

Openpyxl能够处理Excel中的复杂功能,例如图表、公式、数据验证、条件格式化等,这使得它在处理高级Excel功能时非常有用,但在处理大Excel文件时性能上可能不如xlrd这种专门的库。

安装

pip install openpyxl

使用

操作工作簿

创建工作簿

wb = openpyxl.Workbook()

保存工作簿

wb.save('example.xlsx')

读取工作簿

wb = openpyxl.load_workbook('example.xlsx')

操作工作表

获取工作表

ws = wb["sheet_name"]  # 指定工作表名称
wb.sheetnames  # 全部的工作表名称
wb.active      # 当前活跃的工作表

 创建工作表

ws = wb.create_sheet("sheet")      # 插入到最后 (默认)
ws = wb.create_sheet("sheet", 0)   # 插入到最前  
ws = wb.create_sheet("sheet", -1)  # 插入到倒数第二

复制工作表

target = wb.active
new = wb.copy_worksheet(target)

修改工作表表名

ws.title = "new_sheet_name"

修改工作表标签颜色

ws.sheet_properties.tabColor = "F6A57C"   # RRGGBB格式的颜色代码

操作单元格

读取单个单元格的值

cell_value = ws['A1'].value

读取多个单元格的值

# 指定区域
for row in ws["A1:E5"]:
    for cell in row:
        print(cell.value)

# 指定行和列
for row in ws.iter_rows(min_row=1, max_row=5, min_col=1, max_col=5):
    for cell in row:
        print(cell.value)

# 不指定范围  获取全部值
for row in ws.values:
    for value in row:
        print(value)
        
# 全部行  ws.rows
# 全部列  ws.columns

写入单个单元格数据

ws['A1'] = 'Hello World'

写入多个单元格数据

data = [
    [1, 2, 3],
    [4, 5, 6],
    [7, 8, 9],
]

for row in data:
    ws.append(row)

拆分合并单元格

ws.merge_cells('A1:D1')    # 合并单元格
ws.unmerge_cells('A1:D1')  # 拆分单元格

调整列宽和行高

ws.column_dimensions['A'].width = 20  # 调整列宽
ws.row_dimensions[1].height = 30      # 调整行高

添加和删除行列

ws.insert_rows(1)  # 在第一行的位置插入一行
ws.delete_rows(3)  # 删除第三行的行
ws.insert_cols(1)  # 在第一列的位置插入一列
ws.delete_cols(3)  # 删除第三列的列

边框设置

from openpyxl import Workbook
from openpyxl.styles import Border, Side

# 创建一个新的工作簿和工作表
wb = Workbook()
ws = wb.active

# 定义边框线属性
thin = Side(border_style="thin", color="000000")
thick = Side(border_style="thick", color="FF0000")

# 创建边框对象
border = Border(left=thin, right=thick, top=thin, bottom=thick)

# 将边框应用到单元格A1
ws['A1'].border = border

# 保存到文件
wb.save('border_example.xlsx')

字体设置

from openpyxl import Workbook
from openpyxl.styles import Font

# 创建一个新的工作簿和工作表
wb = Workbook()
ws = wb.active

# 定义字体样式
font = Font(name='Arial', size=14, bold=True, italic=True, color='FF0000')

# 将字体应用到单元格 A1
ws['A1'].font = font
ws['A1'].value = 'Hello, World!'

# 保存到文件
wb.save('font_example.xlsx')

背景设置

from openpyxl import Workbook
from openpyxl.styles import PatternFill

# 创建一个新的工作簿和工作表
wb = Workbook()
ws = wb.active

# 定义填充样式
fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")

# 将填充样式应用到单元格 A1
ws['A1'].fill = fill

# 保存到文件
wb.save('fill_example.xlsx')
  • 3
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值