Python酷库之旅-第三方库openpyxl(02)

2024-06-22 09:28

本文主要是介绍Python酷库之旅-第三方库openpyxl(02),希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

目录

一、 openpyxl库的由来

1、背景

2、起源

3、发展

4、特点

4-1、支持.xlsx格式

4-2、读写Excel文件

4-3、操作单元格

4-4、创建和修改工作表

4-5、样式设置

4-6、图表和公式

4-7、支持数字和日期格式

二、openpyxl库的优缺点

1、优点

1-1、支持现代Excel格式

1-2、功能丰富

1-3、易于使用

1-4、与Excel兼容性

1-5、性能良好

1-6、社区支持

1-7、跨平台

2、缺点

2-1、不支持旧版格式

2-2、某些特性支持有限

2-3、内存占用

2-4、文档和示例可能不足

2-5.、依赖关系

2-6、学习曲线

三、openpyxl库的用途

1、读取Excel文件

2、写入Excel文件

3、修改Excel文件

4、自动化

5、与Excel交互

6、数据迁移和转换

7、创建模板化的报告

四、如何学好openpyxl库?

1、获取openpyxl库的属性和方法

2、获取xlwt库的帮助信息

3、用法精讲

3-6、openpyxl.Workbook.get_index方法

3-6-1、语法

3-6-2、参数

3-6-3、功能

3-6-4、返回值

3-6-5、说明

3-6-6、用法

3-7、openpyxl.Workbook.get_sheet_by_name方法

3-7-1、语法

3-7-2、参数

3-7-3、功能

3-7-4、返回值

3-7-5、说明

3-7-6、用法 

3-8、openpyxl.Workbook.get_sheet_names方法

3-8-1、语法

3-8-2、参数

3-8-3、功能

3-8-4、返回值

3-8-5、说明

3-8-6、用法 

3-9、openpyxl.Workbook.index方法

3-9-1、语法

3-9-2、参数

3-9-3、功能

3-9-4、返回值

3-9-5、说明

3-9-6、用法

3-10、openpyxl.Workbook.move_sheet方法

3-10-1、语法

3-10-2、参数

3-10-3、功能

3-10-4、返回值

3-10-5、说明

3-10-6、用法

五、推荐阅读

1、Python筑基之旅

2、Python函数之旅

3、Python算法之旅

4、Python魔法之旅

5、博客个人主页

一、 openpyxl库的由来

        openpyxl库的由来可以总结为以下几点:

1、背景

        在openpyxl库诞生之前,Python中缺乏一个专门用于读取和编写Office Open XML格式(如Excel 2010及更高版本的.xlsx文件)的库。

2、起源

        openpyxl库的创建是为了解决上述提到的Python在处理Excel文件时的不足,它的开发受到了PHPExcel团队的启发,因为openpyxl最初是基于PHPExcel的。

3、发展

        随着时间的推移,openpyxl逐渐发展成为一个功能强大的Python库,专门用于处理Excel文件。它支持Excel 2010及更高版本的文件格式,并提供了丰富的API,用于读取、写入、修改Excel文件。

4、特点
4-1、支持.xlsx格式

        openpyxl主要用于处理Excel 2010及更新版本的.xlsx文件。

4-2、读写Excel文件

        使用openpyxl可以读取现有的Excel文件,获取数据,修改数据,并保存到新的文件中。

4-3、操作单元格

        openpyxl允许用户按行、列或具体的单元格进行数据的读取和写入。

4-4、创建和修改工作表

        用户可以创建新的工作表,复制和删除现有的工作表,设置工作表的属性等。

4-5、样式设置

        openpyxl支持设置单元格的字体、颜色、边框等样式。

4-6、图表和公式

        用户可以通过openpyxl创建图表、添加公式等。

4-7、支持数字和日期格式

        openpyxl能够正确处理数字和日期格式,确保在Excel中显示正确的格式。

        综上所述,openpyxl库的出现填补了Python在处理Excel文件时的空白,经过不断的发展和完善,成为了一个功能丰富、易于使用的Python库。

二、openpyxl库的

        openpyxl库是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库,它基于Python,并且对于处理Excel文件提供了很多便利的功能,其主要点有:

1、优点
1-1、支持现代Excel格式

        openpyxl支持.xlsx格式的Excel文件,这是Excel 2010及更高版本使用的格式,也是目前广泛使用的格式。

1-2、功能丰富

        openpyxl提供了创建、修改和保存Excel工作簿、工作表、单元格、图表、公式、图像等功能。

1-3、易于使用

        openpyxl的API设计得相对直观,使得Python开发者能够很容易地掌握和使用。

1-4、与Excel兼容性

        openpyxl能够处理Excel文件中的很多复杂特性,如公式、样式、条件格式等,这确保了与Excel的良好兼容性。

1-5、性能良好

        在处理大型Excel文件时,openpyxl通常能够保持较好的性能。

1-6、社区支持

        openpyxl是一个开源项目,拥有活跃的社区支持和维护,这意味着开发者可以获得帮助和修复错误的快速响应。

1-7、跨平台

        openpyxl可以在不同的操作系统上运行,包括Windows、Linux和macOS等。

2、缺点
2-1、不支持旧版格式

        openpyxl不支持较旧的.xls格式(Excel 97-2003)。如果需要处理这种格式的文件,需要使用其他库如xlrd和xlwt(尽管这些库也面临一些兼容性和维护问题)。

2-2、某些特性支持有限

        虽然openpyxl支持许多Excel特性,但可能对于某些高级或特定的Excel功能支持有限或不支持。

2-3、内存占用

        在处理大型Excel文件时,openpyxl可能会占用较多的内存。这是因为openpyxl会将整个工作簿加载到内存中。

2-4、文档和示例可能不足

        尽管openpyxl的文档相对完整,但对于某些高级功能或特定用例,可能缺乏足够的示例或详细解释。

2-5.、依赖关系

        openpyxl依赖于lxml和et_xmlfile这两个Python库来处理XML和Excel文件,在某些环境中,可能需要额外安装这些依赖项。

2-6、学习曲线

        虽然openpyxl的API设计得相对直观,但对于初学者来说,可能需要一些时间来熟悉和掌握其用法。

三、openpyxl库的用途

        openpyxl是一个用于读写Excel 2010 xlsx/xlsm/xltx/xltm文件的Python库。它是用Python编写的,不需要Microsoft Excel,并且支持多种Excel数据类型,包括图表、图像、公式等,其主要用途有:

1、读取Excel文件

        你可以使用openpyxl来读取 Excel 文件中的数据,如单元格值、工作表名称、公式等,它支持多种数据类型,如字符串、数字、日期等。

2、写入Excel文件

        使用openpyxl,你可以创建新的Excel文件或向现有文件添加数据,你可以设置单元格的字体、颜色、边框等样式,你还可以添加图表、图像和其他复杂的Excel功能。

3、修改Excel文件

        你可以使用openpyxl来修改现有的Excel文件,如更改单元格值、添加或删除工作表等,这对于自动化数据处理和报告生成非常有用。

4、自动化

        openpyxl可以与其他Python库和框架(如 pandas、numpy、matplotlib 等)结合使用,以自动化数据处理和分析任务。你可以编写脚本来从多个数据源收集数据,将数据整合到 Excel 文件中,并执行各种数据分析任务。

5、与Excel交互

        如果你正在开发需要与Excel交互的应用程序或工具,openpyxl可以提供一个强大的API来处理Excel文件,它允许你读取和写入Excel文件,而无需依赖Microsoft Excel或其他第三方库。

6、数据迁移和转换

        使用openpyxl,你可以轻松地将数据从Excel文件迁移到其他数据库或文件格式,或将其他数据源的数据导入到Excel文件中。

7、创建模板化的报告

        你可以使用openpyxl来创建模板化的Excel报告,并在需要时填充数据,这对于需要定期生成具有一致格式和布局的报告的场景非常有用。

        总之,openpyxl是一个功能强大的库,可用于在Python中处理Excel文件,它提供了灵活的API来读取、写入、修改和自动化Excel文件的各个方面。

四、如何学好openpyxl库?

1、获取openpyxl库的属性和方法

        用print()和dir()两个函数获取openpyxl库所有属性和方法的列表

# ['DEBUG', 'DEFUSEDXML', 'LXML', 'NUMPY', 'Workbook', '__author__', '__author_email__', '__builtins__', '__cached__', 
# '__doc__', '__file__', '__license__', '__loader__', '__maintainer_email__', '__name__', '__package__', '__path__',
# '__spec__', '__url__', '__version__', '_constants', 'cell', 'chart', 'chartsheet', 'comments', 'compat', 'constants',
# 'descriptors', 'drawing', 'formatting', 'formula', 'load_workbook', 'open', 'packaging', 'pivot', 'reader', 'styles',
# 'utils', 'workbook', 'worksheet', 'writer', 'xml']
2、获取xlwt库的帮助信息

        用help()函数获取openpyxl库的帮助信息

Help on package openpyxl:NAMEopenpyxl - # Copyright (c) 2010-2024 openpyxlPACKAGE CONTENTS_constantscell (package)chart (package)chartsheet (package)comments (package)compat (package)descriptors (package)drawing (package)formatting (package)formula (package)packaging (package)pivot (package)reader (package)styles (package)utils (package)workbook (package)worksheet (package)writer (package)xml (package)SUBMODULESconstantsDATADEBUG = FalseDEFUSEDXML = FalseLXML = TrueNUMPY = True__author_email__ = 'charlie.clark@clark-consulting.eu'__license__ = 'MIT'__maintainer_email__ = 'openpyxl-users@googlegroups.com'__url__ = 'https://openpyxl.readthedocs.io'VERSION3.1.3AUTHORSee AUTHORSFILEe:\python_workspace\pythonproject\lib\site-packages\openpyxl\__init__.py
3、用法精讲
3-6、openpyxl.Workbook.get_index方法
3-6-1、语法
get_index(self, worksheet)Return the index of the worksheet... note::Deprecated: Use wb.index(worksheet)
3-6-2、参数

3-6-2-1、self(必须)一个对实例对象本身的引用,在类的所有方法中都会自动传递。

3-6-2-2、worksheet(必须)一个工作表对象,表示要获取索引的工作表对象。

3-6-3、功能

         用于获取已知工作表在工作簿中的索引。

3-6-4、返回值

        返回一个整数,代表工作表在工作簿中的索引位置,从0开始。

3-6-5、说明

        无

3-6-6、用法
# 6、openpyxl.Workbook.get_index方法
from openpyxl import Workbook
# 创建一个新的工作簿
wb = Workbook()
# 获取活动工作表
active_sheet = wb.active
# 在工作簿中添加新工作表
new_sheet = wb.create_sheet("New Sheet")
# 获取工作表的索引
index = wb.get_index(new_sheet)
print(f"新工作表的索引是:{index}")
3-7、openpyxl.Workbook.get_sheet_by_name方法
3-7-1、语法
get_sheet_by_name(self, name)Returns a worksheet by its name.:param name: the name of the worksheet to look for:type name: string.. note::Deprecated: Use wb[sheetname]
3-7-2、参数

3-7-2-1、self(必须)一个对实例对象本身的引用,在类的所有方法中都会自动传递。

3-7-2-2、name(必须)一个字符串,表示要获取的工作表的名称。

3-7-3、功能

        用于根据工作表名称获取相应的工作表。

3-7-4、返回值

        返回对应工作表对象。如果名称不匹配或工作表不存在,可能会抛出KeyError异常。

3-7-5、说明

        该方法从openpyxl 2.5版本开始已被弃用,并在之后的版本中被正式移除。推荐使用Workbook[sheet_name]或Workbook.get_sheet_by_name(sheet_name)来代替。

3-7-6、用法 
# 7、openpyxl.Workbook.get_sheet_by_name方法
from openpyxl import Workbook
# 创建一个新的工作簿
wb = Workbook()
# 创建一个新工作表
wb.create_sheet("NewSheet")
# 使用推荐的方法根据名称获取工作表
sheet = wb["NewSheet"]
# 使用已弃用方法根据名称获取工作表
# sheet = wb.get_sheet_by_name("NewSheet")  # 仍然可用,但不建议使用
print(f"获取到的工作表名称是:{sheet.title}")
3-8、openpyxl.Workbook.get_sheet_names方法
3-8-1、语法
get_sheet_names(self).. note::Deprecated: Use wb.sheetnames
3-8-2、参数

3-8-2-1、self(必须)一个对实例对象本身的引用,在类的所有方法中都会自动传递。

3-8-3、功能

        用于获取工作簿中所有工作表的名称列表。

3-8-4、返回值

        返回一个包含工作簿中所有工作表名称的列表。

3-8-5、说明

        该方法在openpyxl 2.5版本中被弃用,并在之后的版本中被移除。推荐使用wb.sheetnames属性来替代。

3-8-6、用法 
# 8、openpyxl.Workbook.get_sheet_names方法
from openpyxl import Workbook
# 创建一个新的工作簿
wb = Workbook()
# 使用已弃用方法获取所有工作表的名称
# sheet_names = wb.get_sheet_names() # 仍然可用,但不建议使用
# 使用推荐方法获取所有工作表的名称
sheet_names = wb.sheetnames
print(sheet_names)
3-9、openpyxl.Workbook.index方法
3-9-1、语法
index(self, worksheet)Return the index of a worksheet.
3-9-2、参数

3-9-2-1、self(必须)一个对实例对象本身的引用,在类的所有方法中都会自动传递。

3-9-2-2、worksheet(必须)一个Worksheet对象,表示需要获取索引位置的工作表对象。

3-9-3、功能

        用于获取指定工作表在工作簿中的索引位置。

3-9-4、返回值

      返回一个整数,表示指定工作表在工作簿中的索引位置,从0开始计数。

3-9-5、说明

3-9-5-1、确保worksheet是属于当前工作簿的一个有效工作表对象。

3-9-5-2、如果指定的工作表不在工作簿中,将会引发ValueError异常,因此在调用该方法前,可以先检查工作表是否在工作簿中。通过这种方式,你可以轻松获取任何工作表在工作簿中的索引位置,以便在其他操作中使用。

3-9-6、用法
# 9、openpyxl.Workbook.index方法
from openpyxl import Workbook
# 创建一个新的工作簿
wb = Workbook()
# 创建新的工作表
ws1 = wb.create_sheet(title="Sheet1")
ws2 = wb.create_sheet(title="Sheet2")
# 获取工作表索引
index_ws1 = wb.index(ws1)
index_ws2 = wb.index(ws2)
print(f"Sheet1 的索引位置是: {index_ws1}")
print(f"Sheet2 的索引位置是: {index_ws2}")
3-10、openpyxl.Workbook.move_sheet方法
3-10-1、语法
move_sheet(self, sheet, offset=0)Move a sheet or sheetname
3-10-2、参数

3-10-2-1、self(必须)一个对实例对象本身的引用,在类的所有方法中都会自动传递。

3-10-2-2、sheet(必须)一个worksheet对象,表示需要移动的工作表对象。

3-10-2-3、offset(可选)一个整数(默认值为0),表示移动的偏移量,可以是正数(向右移动)或负数(向左移动)。

3-10-3、功能

        用于在工作簿中移动工作表到新的位置。

3-10-4、返回值

        该方法没有返回值,但会直接在工作簿中移动指定的工作表。

3-10-5、说明

3-10-5-1、有效范围:offset参数的值必须在有效范围内,即不能超出工作表的总数量范围。如果offset超出范围,会引发IndexError异常。

3-10-5-2、方向:正数offset表示向右移动,负数 offset表示向左移动。

3-10-5-3、引用:确保传入的sheet对象是当前工作簿中的有效工作表。

3-10-6、用法
# 10、openpyxl.Workbook.move_sheet方法
from openpyxl import Workbook
# 创建一个新的工作簿
wb = Workbook()
# 创建多个工作表
ws1 = wb.create_sheet(title="Sheet1")
ws2 = wb.create_sheet(title="Sheet2")
ws3 = wb.create_sheet(title="Sheet3")
# 初始工作表顺序
print([sheet.title for sheet in wb.worksheets])
# 将 "Sheet3" 移动到第一个位置
wb.move_sheet(ws3, -2)
# 移动后的工作表顺序
print([sheet.title for sheet in wb.worksheets])

五、推荐阅读

1、Python筑基之旅
2、Python函数之旅
3、Python算法之旅
4、Python魔法之旅
5、博客个人主页

这篇关于Python酷库之旅-第三方库openpyxl(02)的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1083899

相关文章

Python 字符串占位

在Python中,可以使用字符串的格式化方法来实现字符串的占位。常见的方法有百分号操作符 % 以及 str.format() 方法 百分号操作符 % name = "张三"age = 20message = "我叫%s,今年%d岁。" % (name, age)print(message) # 我叫张三,今年20岁。 str.format() 方法 name = "张三"age

一道经典Python程序样例带你飞速掌握Python的字典和列表

Python中的列表(list)和字典(dict)是两种常用的数据结构,它们在数据组织和存储方面有很大的不同。 列表(List) 列表是Python中的一种有序集合,可以随时添加和删除其中的元素。列表中的元素可以是任何数据类型,包括数字、字符串、其他列表等。列表使用方括号[]表示,元素之间用逗号,分隔。 定义和使用 # 定义一个列表 fruits = ['apple', 'banana

Python应用开发——30天学习Streamlit Python包进行APP的构建(9)

st.area_chart 显示区域图。 这是围绕 st.altair_chart 的语法糖。主要区别在于该命令使用数据自身的列和指数来计算图表的 Altair 规格。因此,在许多 "只需绘制此图 "的情况下,该命令更易于使用,但可定制性较差。 如果 st.area_chart 无法正确猜测数据规格,请尝试使用 st.altair_chart 指定所需的图表。 Function signa

python实现最简单循环神经网络(RNNs)

Recurrent Neural Networks(RNNs) 的模型: 上图中红色部分是输入向量。文本、单词、数据都是输入,在网络里都以向量的形式进行表示。 绿色部分是隐藏向量。是加工处理过程。 蓝色部分是输出向量。 python代码表示如下: rnn = RNN()y = rnn.step(x) # x为输入向量,y为输出向量 RNNs神经网络由神经元组成, python

python 喷泉码

因为要完成毕业设计,毕业设计做的是数据分发与传输的东西。在网络中数据容易丢失,所以我用fountain code做所发送数据包的数据恢复。fountain code属于有限域编码的一部分,有很广泛的应用。 我们日常生活中使用的二维码,就用到foutain code做数据恢复。你遮住二维码的四分之一,用手机的相机也照样能识别。你遮住的四分之一就相当于丢失的数据包。 为了实现并理解foutain

python 点滴学

1 python 里面tuple是无法改变的 tuple = (1,),计算tuple里面只有一个元素,也要加上逗号 2  1 毕业论文改 2 leetcode第一题做出来

Python爬虫-贝壳新房

前言 本文是该专栏的第32篇,后面会持续分享python爬虫干货知识,记得关注。 本文以某房网为例,如下图所示,采集对应城市的新房房源数据。具体实现思路和详细逻辑,笔者将在正文结合完整代码进行详细介绍。接下来,跟着笔者直接往下看正文详细内容。(附带完整代码) 正文 地址:aHR0cHM6Ly93aC5mYW5nLmtlLmNvbS9sb3VwYW4v 目标:采集对应城市的

python 在pycharm下能导入外面的模块,到terminal下就不能导入

项目结构如下,在ic2ctw.py 中导入util,在pycharm下不报错,但是到terminal下运行报错  File "deal_data/ic2ctw.py", line 3, in <module>     import util 解决方案: 暂时方案:在终端下:export PYTHONPATH=/Users/fujingling/PycharmProjects/PSENe

将一维机械振动信号构造为训练集和测试集(Python)

从如下链接中下载轴承数据集。 https://www.sciencedirect.com/science/article/pii/S2352340918314124 import numpy as npimport scipy.io as sioimport matplotlib.pyplot as pltimport statistics as statsimport pandas

Python利用qq邮箱发送通知邮件(已封装成model)

因为经常喜欢写一些脚本、爬虫之类的东西,有需要通知的时候,总是苦于没有太好的通知方式,虽然邮件相对于微信、短信来说,接收性差了一些,但毕竟免费,而且支持html直接渲染,所以,折腾了一个可以直接使用的sendemail模块。这里主要应用的是QQ发邮件,微信关注QQ邮箱后,也可以实时的接收到消息,肾好! 好了,废话不多说,直接上代码。 # encoding: utf-8import lo