当前位置: 首页 > news >正文

Python中openpyxl库的基础解析与代码实例

目录

1. 前言

2. 安装openpyxl

3. 创建一个新的工作簿

4. 打开一个已有的工作簿

5. 读取和写入单元格

6. 操作工作表

7. 样式设置

8. 插入图像

9. 插入图表

10. 数据验证

11. 条件格式

12. 工作簿保护

13. 保存和关闭工作簿

14. 总结


1. 前言

在数据分析和处理的过程中,Excel文件是一种非常常见的数据格式。Python作为一种强大的编程语言,提供了多种库来处理Excel文件,其中openpyxl是一个非常流行的库。openpyxl是一个专门用于读取和写入Excel xlsx/xlsm/xltx/xltm文件的Python库。它提供了丰富的功能,可以满足我们在处理Excel文件时的大部分需求。在本篇博客中,我将详细介绍openpyxl库的基本用法和一些常用功能。无论你是初学者还是有一定经验的开发者,都可以通过本文了解如何使用openpyxl来操作Excel文件。

2. 安装openpyxl

在使用openpyxl之前,我们需要先安装它。可以使用pip命令来安装:

pip install openpyxl

3. 创建一个新的工作簿

from openpyxl import Workbook# 创建一个新的工作簿
wb = Workbook()# 获取当前活动的工作表
ws = wb.active# 给工作表设置标题
ws.title = "My First Sheet"# 保存工作簿
wb.save("example.xlsx")

4. 打开一个已有的工作簿

from openpyxl import load_workbook# 打开一个已有的工作簿
wb = load_workbook('example.xlsx')# 获取所有工作表的名称
print(wb.sheetnames)# 获取特定的工作表
ws = wb['My First Sheet']

5. 读取和写入单元格

# 写入数据到单元格
ws['A1'] = 'Hello'
ws['B1'] = 'World'# 读取单元格的值
print(ws['A1'].value)  # 输出:Hello# 另一种写入方式
ws.append([1, 2, 3])  # 在最后一行追加一行数据

6. 操作工作表

# 创建新的工作表
ws1 = wb.create_sheet("New Sheet")# 复制工作表
ws2 = wb.copy_worksheet(ws1)
ws2.title = "Copied Sheet"# 删除工作表
del wb['New Sheet']

7. 样式设置

from openpyxl.styles import Font, Alignment, PatternFill, Border, Side# 设置字体
font = Font(name='Arial', size=12, 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

8. 插入图像

from openpyxl.drawing.image import Image# 插入图像
img = Image('example.jpg')
ws.add_image(img, 'D1')

9. 插入图表

from openpyxl.chart import BarChart, Reference# 准备数据
data = Reference(ws, min_row=1, min_col=1, max_row=5, max_col=2)# 创建图表
chart = BarChart()
chart.add_data(data, titles_from_data=True)# 设置图表标题
chart.title = "Sales Data"
chart.x_axis.title = 'Month'
chart.y_axis.title = 'Sales'# 添加图表到工作表
ws.add_chart(chart, "E1")

10. 数据验证

from openpyxl.worksheet.datavalidation import DataValidation# 创建数据验证规则
dv = DataValidation(type="list", formula1='"Apple,Banana,Cherry"', showDropDown=True)# 将数据验证应用到单元格
dv.add('A2:A10')
ws.add_data_validation(dv)

在Excel的A2到A10单元格区域,会自动生成一个下拉列表,用户只能从预设的选项中选择值(AppleBananaCherry),而不能输入其他内容。 

11. 条件格式

from openpyxl.styles import Font
from openpyxl.formatting.rule import CellIsRule# 设置条件格式规则
red_font = Font(color='FF0000')
rule = CellIsRule(type='greaterThan', formula=['50'], font=red_font)# 应用条件格式
ws.conditional_formatting.add('B2:B10', rule)

上面代码的功能是为Excel工作表中的特定单元格区域(B2:B10)设置条件格式,实现“当单元格的值大于50时,字体变为红色”的效果。 

12. 工作簿保护

# 保护工作簿
wb.security.workbook_password = 'secret'
wb.security.lockStructure = True# 保护工作表
ws.protection.sheet = True
ws.protection.password = 'sheetsecret'

13. 保存和关闭工作簿

# 保存工作簿
wb.save('example.xlsx')# 关闭工作簿(在某些情况下可能需要)
wb.close()

14. 总结

openpyxl是一个功能强大且易于使用的Python库,用于处理Excel文件。从基本的创建和打开工作簿,到复杂的样式设置、图表插入、数据验证等高级功能,openpyxl都能满足我们的需求。通过本篇博客的介绍,大家应该已经掌握了openpyxl的基本用法和一些常用功能。在实际项目中,openpyxl可以帮助我们高效地处理Excel数据,提高工作效率。我是橙色小博,关注我,一起在人工智能领域进步!

http://www.xdnf.cn/news/734419.html

相关文章:

  • NIO----JAVA
  • API:解锁网络世界的无限可能
  • Leetcode 340. 至多包含 K 个不同字符的最长子串
  • Java并发
  • [特殊字符] 超强 Web React版 PDF 阅读器!支持分页、缩放、旋转、全屏、懒加载、缩略图!
  • Elasticsearch的写入流程介绍
  • vscode实时预览编辑markdown
  • 树莓派安装openwrt搭建软路由(ImmortalWrt固件方案)
  • <3>, 常用控件
  • wheelgames
  • C++17新特性 类型推导
  • 虚拟化数据恢复—XenServer虚拟机虚拟磁盘文件丢失的数据恢复案例
  • 集成测试 maestro-我的第一个flow以及第一次云端测试
  • React和原生事件的区别
  • π0-FAST-针对VLA模型的高效动作token化技术-2025.1.16-开源
  • 使用 Fetch + Streams 处理流式响应(Streaming Response)
  • Odoo OWL 框架深度研究(VIP10万字版)
  • 特伦斯 S75 电钢琴:重构演奏美学的极致表达
  • 小黑大语言模型应用探索:langchain智能体构造源码demo搭建1(初步流程)
  • OptiStruct实例:消声器前盖ERP分析(2)RADSND基础理论
  • 深入解析 Redis Cluster 架构与实现(二)
  • 【sa-token】 sa-token非 web 上下文无法获取 HttpServletRequest。
  • 数据结构:导论
  • SpringBatch+Mysql+hanlp简版智能搜索
  • matlab计算转子系统的固有频率、振型、不平衡响应
  • StringBuilder对象的操作
  • cocos creator资源管理器,资源动态加载和释放
  • 基于Qt封装数据库基本增删改查操作,支持多线程,并实现SQLite数据库单例访问
  • 【google 论文】Titans: Learning to Memorize at Test Time
  • 裂缝仪在线监测装置:工程安全领域的“实时守卫者”