openpyxl,一个超强的Python库(openpyxl库的主要用途)
itomcoil 2025-04-30 17:34 17 浏览
前言
openpyxl 是一个用于读写 Excel 文件(.xlsx)的 Python 库。它支持 Excel 2010 及更高版本的文件格式。openpyxl 提供了一种方便的方式来操作 Excel 文件,包括读取和写入单元格数据、创建和修改工作表、设置样式以及执行其他与 Excel 相关的操作。
以下是一些 openpyxl 的主要特点:
1.支持 .xlsx 格式:openpyxl 主要用于处理 Excel 2010 及更新版本的 .xlsx 文件。
2.读写 Excel 文件:你可以使用 openpyxl 读取现有的 Excel 文件,获取数据,修改数据,并保存到新的文件中。
3.操作单元格:openpyxl 允许你按行、列或具体的单元格进行数据的读取和写入。
4.创建和修改工作表:你可以创建新的工作表,复制和删除现有的工作表,设置工作表的属性等。
5.样式设置:openpyxl 允许你设置单元格的字体、颜色、边框等样式。
6.图表和公式:你可以通过 openpyxl 创建图表、添加公式等。
7.支持数字和日期格式:openpyxl 能够正确处理数字和日期格式,确保在 Excel 中显示正确的格式。
一.安装
pip install openpyxl
二.导入
from openpyxl import Workbook
二.基本用法
1.写入excel数据
from openpyxl import Workbook
# 创建一个工作簿(Workbook)
workbook = Workbook()
# 获取默认的活动工作表(Worksheet)
sheet = workbook.active
# sheet = workbook.get_sheet_by_name('Sheet1')
# 在单元格 A1,B1 写入数据
sheet['A1'] = 'Hello'
sheet['B1'] = 'World'
# 保存工作簿到文件
workbook.save('writeExcle.xlsx')
2.写入一行数
# 定义要写入的一行数据
data_row = ['a', 'b', 'c']
# 将一行数据写入工作表
sheet.append(data_row)
3.写入指定行数据
# 定义要写入的一行数据
data_row = ['a', 'b', 'c']
# 指定要写入的行号
row_number = 2 # 例如,写入到第二行
# 将一行数据写入指定行
for col_num, value in enumerate(data_row, start=1):
sheet.cell(row=row_number, column=col_num, value=value)
4.读指定单元格数据
from openpyxl import load_workbook
# 加载现有的工作簿
workbook = load_workbook('example.xlsx')
# 获取默认的活动工作表
sheet = workbook.active
# 读取单元格数据
value_A1 = sheet['A1'].value
value_B1 = sheet['B1'].value
print(f'A1: {value_A1}, B1: {value_B1}')
5.遍历每一行数据
from openpyxl import load_workbook
# 加载现有的工作簿
workbook = load_workbook('example.xlsx')
# 获取默认的活动工作表
sheet = workbook.active
# 遍历每一行
for row in sheet.iter_rows(min_row=1, max_row=sheet.max_row, values_only=True):
print(row)
6.遍历指定列数据
# 指定要遍历的列(例如,列 A)
target_column = 'A'
# 遍历指定列的每一行
for cell in sheet[target_column]:
print(cell.value)
7.遍历多列数据
# 指定要遍历的列范围(例如,列 A 到列 C)
start_column = 'A'
end_column = 'B'
# 遍历指定列范围的每一行
for row in sheet.iter_cols(min_col=sheet[start_column][0].column, max_col=sheet[end_column][0].column, values_only=True):
print(row)
8.设置字体样式
from openpyxl.styles import Font
# 创建字体样式
font = Font(name='Arial', size=12, bold=True, italic=True)
# 将字体样式应用到单元格
cell.font = font
9.设置颜色
from openpyxl.styles import Font
# 创建字体样式,设置颜色为红色
font = Font(color='FF0000')
# 将字体样式应用到单元格
cell.font = font
10.设置边框样式
from openpyxl.styles import Border, Side
# 创建边框样式
border = Border(left=Side(style='thin'), right=Side(style='thin'), top=Side(style='thin'), bottom=Side(style='thin'))
# 将边框样式应用到单元格
cell.border = border
11.设置填充样式
from openpyxl.styles import PatternFill
# 创建填充样式,设置背景颜色为黄色
fill = PatternFill(start_color='FFFF00', end_color='FFFF00', fill_type='solid')
# 将填充样式应用到单元格
cell.fill = fill
12.设置货币格式
cell.number_format = '$#,##0.00'
13.设置日期格式
# 设置单元格为日期时间格式
cell.number_format = 'YYYY-MM-DD HH:MM:SS'
14.插入图片
from openpyxl.drawing.image import Image
# 创建一个 Image 对象,并指定要插入的图片文件路径
image_path = 'test.jpg'
image = Image(image_path)
# 设置图片的位置和大小
# 假设我们要将图片插入到单元格 A1 中
cell = 'A1'
image.anchor = cell
image.width = 100
image.height = 100
# 将图片插入到工作表中
worksheet.add_image(image)
三.使用注意事项
- 文件格式支持:确保您操作的是.xlsx或.xlsm格式的文件,因为openpyxl不支持旧版的.xls格式。如果需要处理.xls文件,可以考虑将其转换为.xlsx格式后再使用openpyxl进行处理。
- 安装库:在使用openpyxl之前,需要先进行安装。可以通过pip命令进行安装:pip install openpyxl。
- 公式和函数:在写入公式时,需要在公式字符串前面加上等号(=),并确保使用的是Excel支持的函数和语法。
- 样式设置:openpyxl允许通过设置样式来美化Excel文件,包括字体、颜色、边框等。在进行样式设置时,可以参考相关的示例代码来了解具体的操作方法。
- 性能考虑:在处理大型Excel文件时,需要注意内存的使用情况,因为openpyxl会将整个工作簿加载到内存中。这可能会对系统资源造成较大压力,尤其是在处理非常庞大的数据集时。
- 保存工作:在对Excel文件进行修改后,记得及时保存工作,以免数据丢失。
- 版本兼容性:由于openpyxl是基于Office Open XML标准,所以在使用特定功能时,需要考虑Excel版本的兼容性问题。
相关推荐
- selenium(WEB自动化工具)
-
定义解释Selenium是一个用于Web应用程序测试的工具。Selenium测试直接运行在浏览器中,就像真正的用户在操作一样。支持的浏览器包括IE(7,8,9,10,11),MozillaF...
- 开发利器丨如何使用ELK设计微服务中的日志收集方案?
-
【摘要】微服务各个组件的相关实践会涉及到工具,本文将会介绍微服务日常开发的一些利器,这些工具帮助我们构建更加健壮的微服务系统,并帮助排查解决微服务系统中的问题与性能瓶颈等。我们将重点介绍微服务架构中...
- 高并发系统设计:应对每秒数万QPS的架构策略
-
当面试官问及"如何应对每秒几万QPS(QueriesPerSecond)"时,大概率是想知道你对高并发系统设计的理解有多少。本文将深入探讨从基础设施到应用层面的解决方案。01、理解...
- 2025 年每个 JavaScript 开发者都应该了解的功能
-
大家好,很高兴又见面了,我是"高级前端进阶",由我带着大家一起关注前端前沿、深入前端底层技术,大家一起进步,也欢迎大家关注、点赞、收藏、转发。1.Iteratorhelpers开发者...
- JavaScript Array 对象
-
Array对象Array对象用于在变量中存储多个值:varcars=["Saab","Volvo","BMW"];第一个数组元素的索引值为0,第二个索引值为1,以此类推。更多有...
- Gemini 2.5编程全球霸榜,谷歌重回AI王座,神秘模型曝光,奥特曼迎战
-
刚刚,Gemini2.5Pro编程登顶,6美元性价比碾压Claude3.7Sonnet。不仅如此,谷歌还暗藏着更强的编程模型Dragontail,这次是要彻底翻盘了。谷歌,彻底打了一场漂亮的翻...
- 动力节点最新JavaScript教程(高级篇),深入学习JavaScript
-
JavaScript是一种运行在浏览器中的解释型编程语言,它的解释器被称为JavaScript引擎,是浏览器的一部分,JavaScript广泛用于浏览器客户端编程,通常JavaScript脚本是通过嵌...
- 一文看懂Kiro,其 Spec工作流秒杀Cursor,可移植至Claude Code
-
当Cursor的“即兴编程”开始拖累项目质量,AWS新晋IDEKiro以Spec工作流打出“先规范后编码”的系统工程思维:需求-设计-任务三件套一次生成,文档与代码同步落地,复杂项目不...
- 「晚安·好梦」努力只能及格,拼命才能优秀
-
欢迎光临,浏览之前点击上面的音乐放松一下心情吧!喜欢的话给小编一个关注呀!Effortscanonlypass,anddesperatelycanbeexcellent.努力只能及格...
- JavaScript 中 some 与 every 方法的区别是什么?
-
大家好,很高兴又见面了,我是姜茶的编程笔记,我们一起学习前端相关领域技术,共同进步,也欢迎大家关注、点赞、收藏、转发,您的支持是我不断创作的动力在JavaScript中,Array.protot...
- 10个高效的Python爬虫框架,你用过几个?
-
小型爬虫需求,requests库+bs4库就能解决;大型爬虫数据,尤其涉及异步抓取、内容管理及后续扩展等功能时,就需要用到爬虫框架了。下面介绍了10个爬虫框架,大家可以学习使用!1.Scrapysc...
- 12个高效的Python爬虫框架,你用过几个?
-
实现爬虫技术的编程环境有很多种,Java、Python、C++等都可以用来爬虫。但很多人选择Python来写爬虫,为什么呢?因为Python确实很适合做爬虫,丰富的第三方库十分强大,简单几行代码便可实...
- pip3 install pyspider报错问题解决
-
运行如下命令报错:>>>pip3installpyspider观察上面的报错问题,需要安装pycurl。是到这个网址:http://www.lfd.uci.edu/~gohlke...
- PySpider框架的使用
-
PysiderPysider是一个国人用Python编写的、带有强大的WebUI的网络爬虫系统,它支持多种数据库、任务监控、项目管理、结果查看、URL去重等强大的功能。安装pip3inst...
- 「机器学习」神经网络的激活函数、并通过python实现激活函数
-
神经网络的激活函数、并通过python实现whatis激活函数感知机的网络结构如下:左图中,偏置b没有被画出来,如果要表示出b,可以像右图那样做。用数学式来表示感知机:上面这个数学式子可以被改写:...
- 一周热门
- 最近发表
- 标签列表
-
- ps图案在哪里 (33)
- super().__init__ (33)
- python 获取日期 (34)
- 0xa (36)
- super().__init__()详解 (33)
- python安装包在哪里找 (33)
- linux查看python版本信息 (35)
- python怎么改成中文 (35)
- php文件怎么在浏览器运行 (33)
- eval在python中的意思 (33)
- python安装opencv库 (35)
- python div (34)
- sticky css (33)
- python中random.randint()函数 (34)
- python去掉字符串中的指定字符 (33)
- python入门经典100题 (34)
- anaconda安装路径 (34)
- yield和return的区别 (33)
- 1到10的阶乘之和是多少 (35)
- python安装sklearn库 (33)
- dom和bom区别 (33)
- js 替换指定位置的字符 (33)
- python判断元素是否存在 (33)
- sorted key (33)
- shutil.copy() (33)