【python 第三方库】openpyxl

2024-01-25 00:00:00

目录:

openpyxl 模块介绍

openpyxl 是一个专门用于读写 Excel 2010 xlsx/xlsm/xltx/xltm 文件的 Python 库,提供了全面的Excel操作功能,包括单元格数据读写、样式格式化、公式应用、图表插入等。

$ pip3 install openpyxl

验证安装成功:

import openpyxl

print(openpyxl.__version__)

创建 Excel 文件并写入数据

from openpyxl import Workbook

# 创建新的工作簿
wb = Workbook()
# 获取活动工作表
ws = wb.active  

# 写入数据到单元格
ws['A1'] = '姓名'
ws['B1'] = '年龄'
ws['A2'] = '张三'
ws['B2'] = 23
ws['A3'] = '李四'
ws['B3'] = 30

# 使用 cell 方法通过行列索引写入
# row=4 第四行,column=1 第一列
ws.cell(row=4, column=1, value="王五")
ws.cell(row=4, column=2, value=28)

# 使用 append 方法添加整行数据,自动追加到下一行
ws.append([1, 2, 3])

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

读取 Excel 文件并获取数据

from openpyxl import load_workbook

# 加载工作簿
wb = load_workbook('test.xlsx')
ws = wb.active  # 获取活动工作表

# 读取单个单元格
cell_a1 = ws['A1'].value
print(f"A1单元格的值: {cell_a1}")

# 通过行列索引读取
cell_value = ws.cell(row=2, column=1).value
print(f"第二行第一列的值: {cell_value}")

# 遍历所有行数据
for row in ws.iter_rows(values_only=True):
  print(row)  # 输出每行的元组

选择工作表

from openpyxl import Workbook

# 创建新的工作簿
wb = Workbook()

# 选择工作表的不同方式
ws_by_index = wb.worksheets[0]  # 通过索引
ws_by_name = wb["NewTitle"]  # 通过名称
ws_by_active = wb.active # 获取活动工作表

创建工作表

from openpyxl import Workbook

# 创建新的工作簿
wb = Workbook()

# 创建新工作表
ws1 = wb.create_sheet("Sheet2")  # 在末尾创建
ws2 = wb.create_sheet("MySheet", 0)  # 在第一个位置创建

重命名工作表

from openpyxl import Workbook

# 创建新的工作簿
wb = Workbook()
# 获取活动工作表
ws = wb.active  

# 重命名工作表
ws.title = "NewTitle"

删除工作表

from openpyxl import Workbook

# 创建新的工作簿
wb = Workbook()

# 删除工作表
del wb["Sheet2"]  # 方法一
wb.remove(wb["MySheet"])  # 方法二

获取所有工作表名称

from openpyxl import Workbook

# 创建新的工作簿
wb = Workbook()

# 获取所有工作表名称
print(wb.sheetnames)

单元格样式

from openpyxl.styles import Font, Alignment, PatternFill, Border, Side

# 设置字体
font = Font(name='Arial', size=14, bold=True, italic=True, color="FF0000")
ws['A1'].font = font

# 设置对齐方式
alignment = Alignment(horizontal='center', vertical='center')
ws['A1'].alignment = alignment

# 设置填充颜色
fill = PatternFill(start_color="FFFF00", end_color="FFFF00", fill_type="solid")
ws['A1'].fill = fill

# 设置边框
border = Border(left=Side(style='thin'),
                right=Side(style='thin'),
                top=Side(style='thin'),
                bottom=Side(style='thin'))
ws['A1'].border = border

# 设置数字格式
ws['B1'].number_format = '0.00%'  # 百分比格式
ws['C1'].number_format = 'YYYY-MM-DD'  # 日期格式

返回首页

本文总阅读量  次
皖ICP备17026209号-3
总访问量: 
总访客量: