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

目录

一、 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-11、openpyxl.Workbook.remove方法

3-11-1、语法

3-11-2、参数

3-11-3、功能

3-11-4、返回值

3-11-5、说明

3-11-6、用法

3-12、openpyxl.Workbook.remove_sheet方法

3-12-1、语法

3-12-2、参数

3-12-3、功能

3-12-4、返回值

3-12-5、说明

3-12-6、用法 

3-13、openpyxl.Workbook.save方法

3-13-1、语法

3-13-2、参数

3-13-3、功能

3-13-4、返回值

3-13-5、说明

3-13-6、用法 

3-14、openpyxl.Workbook.create_named_range方法

3-14-1、语法

3-14-2、参数

3-14-3、功能

3-14-4、返回值

3-14-5、说明

3-14-6、用法

3-15、openpyxl.Workbook.create_sheet方法

3-15-1、语法

3-15-2、参数

3-15-3、功能

3-15-4、返回值

3-15-5、说明

3-15-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-11、openpyxl.Workbook.remove方法
3-11-1、语法
remove(self, worksheet)Remove `worksheet` from this workbook.
3-11-2、参数

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

3-11-2-2、worksheet(必须)一个worksheet对象,表示需要删除的工作表对象。

3-11-3、功能

         用于从工作簿中删除指定的工作表。

3-11-4、返回值

        该方法没有返回值,但会直接从工作簿中删除指定的工作表。

3-11-5、说明

3-11-5-1、引用:确保传入的worksheet对象是当前工作簿中的有效工作表。如果传入一个不属于当前工作簿的工作表对象,会引发ValueError异常。

3-11-5-2、不可恢复:一旦删除工作表,这个操作是不可恢复的,请确保你真的要删除这个工作表,或者提前备份重要的数据。

3-11-5-3、最少工作表:工作簿中至少要保留一个工作表,不能全部删除。如果尝试删除最后一个工作表,会引发ValueError异常。

3-11-6、用法
# 11、openpyxl.Workbook.remove方法
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])
# 删除 "Sheet2" 工作表
wb.remove(ws2)
# 删除后的工作表顺序
print([sheet.title for sheet in wb.worksheets])
3-12、openpyxl.Workbook.remove_sheet方法
3-12-1、语法
remove_sheet(self, worksheet)Remove `worksheet` from this workbook... note::Deprecated: Use wb.remove(worksheet) or del wb[sheetname]
3-12-2、参数

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

3-12-2-2、worksheet(必须)一个worksheet对象,表示需要删除的工作表对象。

3-12-3、功能

        用于从工作簿中删除指定的工作表。

3-12-4、返回值

        该方法没有返回值,但会直接从工作簿中删除指定的工作表。

3-12-5、说明

        从openpyxl 2.5版本开始,这个方法已经被弃用,推荐使用remove方法代替。

3-12-6、用法 
# 12、openpyxl.Workbook.remove_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])
# 删除 "Sheet2" 工作表 (不推荐使用的旧方法)
wb.remove_sheet(ws2)
# 删除 "Sheet2" 工作表 (推荐的现代方法)
# wb.remove(ws2)
# 删除后的工作表顺序
print([sheet.title for sheet in wb.worksheets])
3-13、openpyxl.Workbook.save方法
3-13-1、语法
save(self, filename)Save the current workbook under the given `filename`.Use this function instead of using an `ExcelWriter`... warning::When creating your workbook using `write_only` set to True,you will only be able to call this function once. Subsequent attempts tomodify or save the file will raise an :class:`openpyxl.shared.exc.WorkbookAlreadySaved` exception.
3-13-2、参数

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

3-13-2-2、filename(必须)一个字符串或二进制模式下保存的类似文件的对象,表示要保存的Excel文件的路径或类似文件的对象。

3-13-3、功能

        用于将工作簿保存到文件中。

3-13-4、返回值

        没有返回值(或者返回None),它的主要目的是执行保存操作。

3-13-5、说明

3-13-5-1、文件格式:确保文件名的后缀为.xlsx,因为openpyxl主要处理这种格式。如果使用其他后缀,可能会引发兼容性问题。

3-13-5-2、覆盖文件:如果指定的文件已经存在,save方法会覆盖该文件而不会警告。因此,保存之前要确保不会误覆盖重要文件。

3-13-5-3、路径问题:可以传入相对路径或绝对路径。如果是相对路径,文件会保存在当前工作目录下,可以使用pathlib.Path来更方便地处理路径。

3-13-6、用法 
# 13、openpyxl.Workbook.save方法
# 13-1、保存在当前目录下
from openpyxl import Workbook
# 创建一个新的工作簿
wb = Workbook()
# 设置文件名
filename = "example.xlsx"
# 保存工作簿
wb.save(filename)# 13-2、使用pathlib.Path灵活处理路径,可根据需求指定
from openpyxl import Workbook
from pathlib import Path
# 创建一个新的工作簿
wb = Workbook()
# 使用 Path 设置文件路径
file_path = Path("example.xlsx")
# 保存工作簿
wb.save(file_path)
3-14、openpyxl.Workbook.create_named_range方法
3-14-1、语法
create_named_range(self, name, worksheet=None, value=None, scope=None)Create a new named_range on a worksheet.. note::Deprecated: Assign scoped named ranges directly to worksheets or global ones to the workbook. Deprecated in 3.1
3-14-2、参数

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

3-14-2-2、name(可选)一个字符串,表示命名范围的名称。

3-14-2-3、worksheet(可选)一个worksheet对象,表示命名范围所属的工作表。

3-14-2-4、value(可选)字符串、元组或CellRange等,表示命名范围对应的单元格范围。可以是一个字符串形式的范围(如 "A1:B2"),也可是一个包含起始和结束单元格的元组(如 ("A1""B2")),还可以是一个CellRange对象。

3-14-2-5、scope(可选)一个整数,表示命名范围的作用域。作用域决定了命名范围的可见性,如果不提供,命名范围将全局可见。

3-14-3、功能

        用于在工作簿中创建命名范围。

3-14-4、返回值

      没有返回值。它的作用是将命名范围添加到工作簿中,因此它不会返回任何值。

3-14-5、说明

3-14-5-1、名称唯一性:确保命名范围的名称在整个工作簿中是唯一的。

3-14-5-2、范围有效性:确保指定的单元格范围在工作表中是有效的。

3-14-5-3、作用域:默认情况下,命名范围在全局范围内可见。如果需要在特定工作表中限定命名范围,可以使用scope参数。

3-14-6、用法
# 14、openpyxl.Workbook.create_named_range方法
from openpyxl import Workbook
from openpyxl.worksheet.cell_range import CellRange
# 创建一个新的工作簿和工作表
wb = Workbook()
ws = wb.active
# 填充一些数据
ws['A1'] = 10
ws['B1'] = 20
# 创建命名范围
wb.create_named_range(name="MyNamedRange",worksheet=ws,value="A1:B1"
)
# 或者使用 CellRange 对象
range_obj = CellRange("A1", "B1")
wb.create_named_range(name="AnotherNamedRange",worksheet=ws,value=range_obj
)
# 保存工作簿
wb.save("example.xlsx")
3-15、openpyxl.Workbook.create_sheet方法
3-15-1、语法
create_sheet(self, title=None, index=None)Create a worksheet (at an optional index).:param title: optional title of the sheet:type title: str:param index: optional position at which the sheet will be inserted:type index: int
3-15-2、参数

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

3-15-2-2、title(可选)一个字符串(默认值为None),表示工作表的标题。

3-15-2-3、index(可选)一个整数(默认值为None),表示用于指定新工作表应该被插入的位置索引。

3-15-3、功能

        用于在当前的工作簿中创建一个新的工作表。

3-15-4、返回值

        返回一个代表新创建的工作表的对象。

3-15-5、说明

       针对参数index,相关说明如下:

3-15-5-1、不提供index参数,新工作表将默认添加到工作簿的末尾。

3-15-5-2、基于0开始,第一个工作表的索引是0,第二个工作表的索引是1,依此类推。

3-15-5-3、如果提供的索引值已经存在对应的工作表,新工作表将被插入到该位置,并可能导致其他工作表的位置发生变动。

3-15-6、用法
# 15、openpyxl.Workbook.create_sheet方法
from openpyxl import Workbook
# 创建一个新的工作簿
wb = Workbook()
# 创建一个没有指定标题和索引的新工作表(将默认添加到末尾,标题为 "Sheet" 后跟数字)
ws1 = wb.create_sheet()
# 创建一个标题为 "Data" 的新工作表,并指定它应该被插入到索引为 0 的位置(即作为第一个工作表)
ws2 = wb.create_sheet(title="Data", index=1)
# 创建一个标题为 "Report" 的新工作表,并默认添加到末尾(因为未指定索引)
ws3 = wb.create_sheet(title="Report")
# 保存工作簿
wb.save("example.xlsx")

五、推荐阅读

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

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/web/31838.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

tdlib自定义Telegram客户端电报客户端

之前做过多个电报机器人 最近闲来无事,顺手了解了下tdlib,打算使用dart做一个pc和移动端的tg客户端,顺便解决官方无法下载某些视频图片文件的问题. 前期踩了不少坑,花了3天时间完成了pc端的基本功能 效果展示

电脑文件夹怎么加密?文件夹加密的5种方法

在数字化时代,信息安全显得尤为重要。对于个人电脑用户来说,文件夹加密是一种有效保护隐私和数据安全的方法。本文将介绍五种文件夹加密的方法,帮助您更好地保护自己的重要文件。 如何设置文件夹密码方法一:利用Windows系统自带的…

节能减排如何替电子行业巨头降低成本

尖端科技与环境之间的矛盾,已经不再是科幻小说家笔下的虚构。 先进芯片制造从熔化硅开始,到使用大功率激光进行光刻,再到创造和维护真空状态,以及持续清洁工作,每一个环节都需要大量的电力支持。据统计,半…

体验一下 Claude 3.5 Sonnet

体验一下 Claude 3.5 Sonnet 0. 引言1. Artifacts - 使用 Claude 的新方式2. 体验一下 Claude 3.5 Sonnet 0. 引言 2024年6月21日,Anthropic 推出 Claude 3.5 Sonnet,这是即将推出的 Claude 3.5 型号系列中的第一个版本。 Claude 3.5 Sonnet 提高了行业…

南昌代理记账报税的详细说明

随着社会经济的发展和企业运营的需要,越来越多的企业开始寻找专业的会计服务,我们特别为您提供南昌代理记账报税的相关信息。 https://www.9733.cn/news/detail/166.html 代理记账的主要功能 1、代理记账为企业提供专业化的财务咨询服务。 2、及时准确…

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格式…

RabbitMQ实践——最大长度队列

大纲 抛弃消息创建最大长度队列绑定实验 转存死信创建死信队列创建可重写Routing key的最大长度队列创建绑定关系实验 在一些业务场景中,我们只需要保存最近的若干条消息,这个时候我们就可以使用“最大长度队列”来满足这个需求。该队列在收到消息后&…

在Windows上用MinGW编译OpenCV项目运行全流程

一、准备软件 OpenCV源码CMake工具MinGW工具链(需要选用 posix 线程版本:原因见此) 二、操作步骤 官网提供了VC16构建版本的二进制包,但是没有给出GCC编译的版本。所以如果使用MinGW进行构建,那就只能从源码开始构建…

make与makefile

目录 一、make的默认目标文件与自动推导 二、不能连续make的原因 执行原理 touch .PHONY伪目标 make指令不回显 makefile多文件管理 简写依赖方法 三、回车与换行 四、缓冲区 一、make的默认目标文件与自动推导 假设这是一个makefile文件,make的时候默认生…

Origin电源维修高压发生器GEXUS-3 GEXUS-15R-02U

GEXUS-3电源维修 Origin高压发生器维修 Origin电源维修 光电设备电源维修 Origin高压电源维修故障分析应注意两点: 故障分析检测和故障硬件更换,根据高压电源故障提示和工作表现初步判断故障的类型和哪些硬件出了问题,再根据初步判断缩小检测…

了解Spring的BeanPostProcessor

了解Spring的BeanPostProcessor Spring框架提供了一种机制,允许在Spring容器实例化Bean之前和之后进行自定义的修改。这个机制就是BeanPostProcessor接口。BeanPostProcessor是Spring的核心接口之一,用于在Spring容器创建和初始化Bean的过程中进行干预和…

Java-拼接字符串数组(String.join()方法)

问题引入 刷算法题lc2288的时候遇见的一个小细节,记录一下,有兴趣的朋友可以做一下,练习一下哈哈~ 此题需要使用大家都比较熟悉的split方法将句子按照空格拆分为字符串数组。 然后再在数组中对每一个字符串操作,操作完成后要求…

【尚庭公寓SpringBoot + Vue 项目实战】预约看房与租约管理(完结)

【尚庭公寓SpringBoot Vue 项目实战】预约看房与租约管理(完结) 文章目录 【尚庭公寓SpringBoot Vue 项目实战】预约看房与租约管理(完结)1、业务说明2、接口开发2.1、预约看房管理2.1.1.保存或更新看房预约2.1.2. 查询个人预约…

【linux】shell脚本中设置字体颜色,背景颜色详细攻略

✨✨ 欢迎大家来到景天科技苑✨✨ 🎈🎈 养成好习惯,先赞后看哦~🎈🎈 🏆 作者简介:景天科技苑 🏆《头衔》:大厂架构师,华为云开发者社区专家博主,阿里云开发者社区专家博主,CSDN全栈领域优质创作者,掘金优秀博主,51CTO博客专家等。 🏆《博客》:Python全…

Nginx Proxy 代理测试

目录 https://blog.csdn.net/Lzcsfg/article/details/139781909 一. 实验准备 二. 配置反向代理 三. 配置二层代理 解释流程 一. 实验准备 关闭防火墙和selinux,准备三台同一网段的虚拟机 localhostRoucky_linux9.4192.168.226.20localhostRoucky_linux9.419…

高校新闻头条系统

摘 要 随着互联网技术的快速发展,网络几乎成为了人们搜集信息和交流沟通最方便、快捷的通道,科技创新一直在影响着人们的生活,人们的衣食住行也在不断变化,与此同时,也大大改变了人们获取信息的方式,人们获…

Unity的渲染管线

渲染管线 概念 Unity的渲染管线是在图形学渲染管线的基础上,加上了高度可配置可扩展的框架,允许开发者自定义渲染流程。 渲染管线(渲染流水线)概述:将数据分阶段的变为屏幕图像的过程。 数据指的是模型、光源和摄像…

『FPGA通信接口』LVDS接口(4)LVDS接收端设计

文章目录 1.LVDS接收端概述2逻辑框图3.xapp855训练代码解读4.接收端发送端联调5.传送门 1.LVDS接收端概述 接收端的传输模型各个属性应该与LVDS发送端各属性一致,例如,如果用于接收CMOS图像传感器的图像数据,则接收端程序的串化因子、通道个…

最新版ChatGPT对话系统源码 Chat Nio系统源码

最新版ChatGPT对话系统源码 Chat Nio系统源码 支持 Vision 模型, 同时支持 直接上传图片 和 输入图片直链或 Base64 图片 功能 (如 GPT-4 Vision Preview, Gemini Pro Vision 等模型) 支持 DALL-E 模型绘图 支持 Midjourney / Niji 模型的 Imagine / Upscale / Variant / Re…

【for循环】最大跨度

【for循环】最大跨度 时间限制: 1000 ms 内存限制: 65536 KB 【题目描述】 【参考代码】 #include <iostream> using namespace std; int main(){ int n;int max 0, min 100;cin>>n;for(int i1; i<n; i1){int a;cin>>a;if(a>max){max a;}i…