Python openpyxl 库使用详解

news2024/11/27 15:27:05

        大家好,当谈论处理 Excel 文件时,Python 的 openpyxl 库无疑是一个强大而灵活的工具。无论是在数据分析、报告生成还是自动化任务中,openpyxl 都展现出了其独特的价值。本文将详细介绍 openpyxl 库的各种功能和用法,帮助读者掌握如何利用 Python 轻松处理 Excel 文件。

        Excel 文件作为广泛使用的数据存储和交换格式,其重要性不言而喻。然而,手动处理大量的 Excel 数据往往费时费力,容易出错。而 openpyxl 则为我们提供了一个高效、灵活的解决方案,使得 Python 成为处理 Excel 文件的强大工具。

        在本文中,我们将深入探讨 openpyxl 的各种功能,包括如何读取、写入和修改 Excel 文件,如何添加样式和格式,以及如何进行数据分析和报告生成。通过本文的学习,读者将能够充分利用 openpyxl 库,提高工作效率,简化数据处理流程。

一、介绍

        在当今的数据驱动世界中,Excel 文件是许多人日常工作中不可或缺的一部分。而 Python 的 openpyxl 库则为处理 Excel 文件提供了一种灵活、高效的解决方案。openpyxl 是一个专门用于读取、写入和修改 Excel 文件的库,它使得在 Python 环境下对 Excel 进行各种操作变得轻而易举。

用途:

openpyxl 库的主要用途包括但不限于:

  1. 数据分析和处理: 在数据分析领域,将 Excel 文件作为数据源是非常常见的。openpyxl 允许用户轻松地读取 Excel 中的数据,并进行各种统计分析、图表绘制等操作。

  2. 报告生成: 许多工作需要将数据整理成报告的形式呈现,而 openpyxl 可以帮助我们自动化地生成包含各种数据和图表的报告。

  3. 数据导出和导入: 有时候需要将 Python 程序处理的数据导出到 Excel 文件中,或者反过来,从 Excel 文件中读取数据进行处理。openpyxl 提供了方便的接口来实现这些操作。

  4. 自动化任务: 在业务流程中,有许多重复性的任务可以通过自动化来提高效率,而 openpyxl 能够帮助我们轻松地对 Excel 文件进行批量处理,从而实现自动化。

优势:

相比于其他处理 Excel 文件的工具,openpyxl 具有以下优势:

  1. 纯 Python 实现: openpyxl 是一个纯 Python 实现的库,因此可以在几乎所有支持 Python 的平台上运行,无需额外的依赖。

  2. 功能丰富: openpyxl 提供了丰富的功能来处理 Excel 文件,包括读取、写入、修改数据,设置样式和格式,添加图表和图像等。

  3. 易于学习和使用: openpyxl 的 API 设计简洁明了,易于理解和上手。即使是对 Python 不是很熟悉的用户,也能够快速掌握 openpyxl 的基本用法。

  4. 活跃的社区支持: openpyxl 是一个活跃的开源项目,拥有庞大的用户群体和贡献者,用户可以通过社区论坛和文档等渠道获取帮助和支持。

二、安装

安装 openpyxl 库非常简单,你可以通过 pip 包管理工具来完成。下面是安装 openpyxl 库的步骤:

1. 确保 Python 已安装

        首先确保你的计算机上已经安装了 Python。你可以在命令行中输入 python --versionpython3 --version 来检查是否已安装 Python,并查看其版本号。

2. 安装 pip (如果未安装)

        大多数情况下,Python 的安装包中已经包含了 pip,但如果你的系统中没有安装 pip,你需要先安装它。你可以通过命令行执行以下命令来安装 pip:

python -m ensurepip --default-pip

3. 安装 openpyxl:

一旦确保了 pip 的安装,你可以通过以下命令来安装 openpyxl:

pip install openpyxl

如果你使用的是 Python 3,可能需要使用 pip3 来代替 pip,具体取决于你的系统配置。

4. 验证安装是否成功:

安装完成后,你可以在命令行中运行 Python 解释器,并尝试导入 openpyxl 来验证是否安装成功。在命令行中输入以下命令:

python

进入 Python 解释器后,尝试导入 openpyxl:

import openpyxl

如果没有报错,说明 openpyxl 库已成功安装。

        通过以上步骤,你就可以轻松地在你的 Python 环境中安装 openpyxl 库了。安装完成后,你就可以开始使用这个强大的库来处理 Excel 文件了。

三、基本使用

        基本用法包括打开 Excel 文件、读取数据以及关闭文件。下面是一个基本示例,演示了如何使用 openpyxl 库来完成这些操作:

from openpyxl import load_workbook

# 打开 Excel 文件
wb = load_workbook('example.xlsx')

# 选择要操作的工作表
sheet = wb.active

# 读取单元格数据
cell_value = sheet['A1'].value
print("A1 单元格的值为:", cell_value)

# 读取多个单元格数据
for row in sheet.iter_rows(min_row=1, max_row=2, min_col=1, max_col=2):
    for cell in row:
        print(cell.value, end=" ")
    print()

# 关闭 Excel 文件
wb.close()

这个示例演示了以下操作:

  1. 使用 load_workbook 函数打开一个名为 example.xlsx 的 Excel 文件。

  2. 使用 active 属性选择默认的活动工作表,也可以通过工作表名称或索引来选择其他工作表。

  3. 使用类似于字典的方式访问单元格,例如 sheet['A1'] 可以获取 A 列第 1 行的单元格。

  4. 使用 value 属性获取单元格的值。

  5. 使用 iter_rows 方法迭代指定范围内的多个单元格,这里是迭代第 1 行到第 2 行,第 1 列到第 2 列的单元格,并输出它们的值。

  6. 最后,使用 close 方法关闭 Excel 文件。

四、写入和修改 Excel 文件

        写入和修改 Excel 文件是 openpyxl 库的重要功能之一。下面是一个示例,演示了如何创建一个新的 Excel 文件,并向其中写入数据,以及如何打开已有的文件并修改其中的数据:

from openpyxl import Workbook, load_workbook

# 创建一个新的 Excel 文件
wb = Workbook()

# 创建一个工作表
sheet = wb.active

# 向单元格写入数据
sheet['A1'] = 'Hello'
sheet['B1'] = 'World'

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

# 打开已有的 Excel 文件并修改数据
wb_existing = load_workbook('existing_example.xlsx')
sheet_existing = wb_existing.active

# 修改单元格数据
sheet_existing['A1'] = 'Updated'
sheet_existing['B1'] = 'Data'

# 保存修改后的 Excel 文件
wb_existing.save('existing_example.xlsx')

# 关闭 Excel 文件
wb.close()
wb_existing.close()

这个示例演示了以下操作:

  1. 使用 Workbook 类创建一个新的 Excel 文件。

  2. 使用 active 属性获取默认的工作表,并向其中的单元格写入数据。

  3. 使用 save 方法将创建的 Excel 文件保存为名为 new_example.xlsx 的新文件。

  4. 使用 load_workbook 函数打开一个名为 existing_example.xlsx 的已有的 Excel 文件,并获取默认的工作表。

  5. 使用类似字典的方式修改单元格的数据。

  6. 使用 save 方法将修改后的 Excel 文件保存回原始文件。

  7. 最后,使用 close 方法关闭所有打开的 Excel 文件。

五、样式和格式

        在 openpyxl 中,样式和格式可以通过 openpyxl.styles 模块来实现。下面是一个示例,演示了如何添加样式、设置单元格格式等:

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

# 创建一个新的 Excel 文件
wb = Workbook()

# 创建一个工作表
sheet = wb.active

# 向单元格写入数据
sheet['A1'] = '样式和格式示例'

# 设置单元格样式
font = Font(name='Arial', size=14, bold=True, italic=True, color='FF0000')
alignment = Alignment(horizontal='center', vertical='center')
fill = PatternFill(fill_type='solid', fgColor='FFFF00')
border = Border(left=Side(border_style='thin', color='000000'),
                right=Side(border_style='thin', color='000000'),
                top=Side(border_style='thin', color='000000'),
                bottom=Side(border_style='thin', color='000000'))

# 应用样式到单元格
sheet['A1'].font = font
sheet['A1'].alignment = alignment
sheet['A1'].fill = fill
sheet['A1'].border = border

# 设置列宽和行高
sheet.column_dimensions['A'].width = 20
sheet.row_dimensions[1].height = 30

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

# 关闭 Excel 文件
wb.close()

这个示例演示了以下操作:

  1. 创建一个新的 Excel 文件,并获取默认的工作表。

  2. 向单元格 A1 写入数据。

  3. 创建并设置字体、对齐方式、填充颜色、边框等样式对象。

  4. 将样式应用到单元格 A1。

  5. 使用 column_dimensionsrow_dimensions 来设置列宽和行高。

  6. 最后,保存 Excel 文件并关闭。

六、图表和图像

        在 openpyxl 中,要向 Excel 文件添加图表和图像,需要使用 openpyxl.chart 模块。下面是一个示例,演示了如何在 Excel 中添加一个简单的图表:

from openpyxl import Workbook
from openpyxl.chart import BarChart, Reference

# 创建一个新的 Excel 文件
wb = Workbook()

# 创建一个工作表
sheet = wb.active

# 向单元格写入数据
sheet['A1'] = '月份'
sheet['B1'] = '销售额'
sheet['A2'] = '一月'
sheet['B2'] = 1000
sheet['A3'] = '二月'
sheet['B3'] = 1500
sheet['A4'] = '三月'
sheet['B4'] = 1200

# 创建一个柱状图对象
chart = BarChart()

# 设置图表的数据范围
data = Reference(sheet, min_col=2, min_row=1, max_col=2, max_row=4)

# 将数据添加到图表中
chart.add_data(data)

# 添加图表标题
chart.title = "销售额月度统计"

# 设置 x 轴标签
chart.x_axis.title = '月份'

# 设置 y 轴标签
chart.y_axis.title = '销售额'

# 将图表添加到工作表中
sheet.add_chart(chart, "D1")

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

# 关闭 Excel 文件
wb.close()

这个示例演示了以下操作:

  1. 创建一个新的 Excel 文件,并获取默认的工作表。

  2. 向单元格写入数据,包括月份和对应的销售额。

  3. 创建一个柱状图对象,并设置其数据范围为销售额数据。

  4. 设置图表的标题、x 轴标签和 y 轴标签。

  5. 将图表添加到工作表中的指定位置。

  6. 最后,保存 Excel 文件并关闭。

七、数据分析

        使用 openpyxl 库进行数据分析可以通过读取 Excel 文件中的数据,并使用 Python 中的各种数据分析工具来实现。下面是一个示例,演示了如何使用 openpyxl 库读取 Excel 文件中的数据,并计算一些基本的统计指标:

from openpyxl import load_workbook
import numpy as np

# 加载 Excel 文件
wb = load_workbook('data_analysis_example.xlsx')
sheet = wb.active

# 读取数据
data = []
for row in sheet.iter_rows(min_row=2, max_row=sheet.max_row, min_col=2, max_col=sheet.max_column):
    row_data = [cell.value for cell in row]
    data.append(row_data)

# 将数据转换为 NumPy 数组
np_data = np.array(data)

# 计算统计指标
mean = np.mean(np_data, axis=0)
median = np.median(np_data, axis=0)
std_dev = np.std(np_data, axis=0)

# 打印统计指标
print("平均值:", mean)
print("中位数:", median)
print("标准差:", std_dev)

# 关闭 Excel 文件
wb.close()

这个示例演示了以下操作:

  1. 使用 load_workbook 函数加载一个名为 data_analysis_example.xlsx 的 Excel 文件,并获取默认的工作表。

  2. 使用 iter_rows 方法迭代数据行,从第二行开始到最后一行,读取数据并存储在一个列表中。

  3. 使用 NumPy 库将数据转换为 NumPy 数组,以便进行统计计算。

  4. 使用 NumPy 提供的函数计算数据的平均值、中位数和标准差。

  5. 打印计算得到的统计指标。

        通过这个示例,你可以了解如何使用 openpyxl 库读取 Excel 文件中的数据,并结合其他数据分析工具(如 NumPy)进行统计计算。你也可以根据自己的需求进一步扩展这些操作,例如绘制图表来可视化数据分析结果。

八、案例

        假设你是一家小型企业的销售经理,你想要分析公司的销售数据并生成销售报告。销售数据存储在一个 Excel 文件中,每一行代表一个销售订单,包括订单号、客户姓名、销售日期、销售金额等信息。你想要使用 openpyxl 库读取这些数据,并计算每个月的销售总额,以及每个客户的销售额排名。

下面是一个示例,演示了如何实现这个实际案例:

from openpyxl import load_workbook
from collections import defaultdict
import datetime

# 加载 Excel 文件
wb = load_workbook('sales_data.xlsx')
sheet = wb.active

# 定义一个字典,用于存储每个月的销售总额
monthly_sales = defaultdict(float)

# 定义一个字典,用于存储每个客户的销售总额
customer_sales = defaultdict(float)

# 读取数据并计算销售总额
for row in sheet.iter_rows(min_row=2, max_row=sheet.max_row, min_col=2, max_col=sheet.max_column):
    order_date = row[2].value
    sales_amount = row[4].value
    
    # 将 Excel 中的日期转换为 Python 的日期对象
    order_date = datetime.datetime.strptime(order_date, "%Y-%m-%d").date()
    
    # 计算订单所属月份
    month = order_date.month
    
    # 累加每个月的销售总额
    monthly_sales[month] += sales_amount
    
    # 计算每个客户的销售总额
    customer_name = row[1].value
    customer_sales[customer_name] += sales_amount

# 输出每个月的销售总额
print("每月销售总额:")
for month, sales in monthly_sales.items():
    print(f"{month}月: {sales}")

# 输出客户销售额排名
print("\n客户销售额排名:")
ranked_customers = sorted(customer_sales.items(), key=lambda x: x[1], reverse=True)
for i, (customer, sales) in enumerate(ranked_customers, start=1):
    print(f"第{i}名: {customer} - 销售额: {sales}")

# 关闭 Excel 文件
wb.close()

这个示例演示了以下操作:

  1. 使用 load_workbook 函数加载一个名为 sales_data.xlsx 的 Excel 文件,并获取默认的工作表。

  2. 使用 iter_rows 方法迭代数据行,从第二行开始到最后一行,读取销售订单数据。

  3. 将 Excel 中的日期字符串转换为 Python 的日期对象,并根据订单日期计算每个月的销售总额。

  4. 使用 defaultdict 来存储每个月的销售总额和每个客户的销售总额。

  5. 输出每个月的销售总额和客户销售额排名。

        通过这个示例,你可以了解如何使用 openpyxl 库读取 Excel 文件中的数据,并根据实际需求进行统计分析和报告生成。你也可以根据自己的需求进一步扩展这个案例,例如添加更多的分析指标、绘制图表等。

九、注意事项和常见问题

        在使用 openpyxl 进行 Excel 文件处理时,有一些注意事项和常见问题需要考虑。下面是一些常见的注意事项和解决方法:

  1. Excel 文件格式兼容性: openpyxl 对于 Excel 文件的兼容性较好,但在处理包含复杂格式、图表、宏等特殊内容的文件时可能会出现问题。建议使用较新版本的 Excel 文件格式(如 .xlsx),以确保最佳兼容性。

  2. 大型文件处理: 处理大型 Excel 文件时可能会占用大量内存,导致程序运行缓慢或崩溃。建议在处理大型文件时,采取适当的内存管理策略,例如分块读取数据或使用迭代器。

  3. 数据格式转换: 在读取 Excel 文件中的数据时,openpyxl 会将日期、数字等数据自动转换为 Python 中的相应类型。但有时候会出现数据类型转换不准确的情况,例如日期格式不一致、数字被识别为字符串等。可以通过手动指定数据类型或在读取数据后进行类型转换来解决这些问题。

  4. 数据写入顺序: 当向 Excel 文件中写入数据时,openpyxl 默认会按照顺序依次写入,而不会在原有数据上进行修改。这意味着如果需要修改已有数据或在指定位置插入数据,需要使用特定的方法和技巧,例如使用切片操作或自定义写入逻辑。

  5. 多线程并发访问: openpyxl 并不支持多线程并发访问同一个 Excel 文件,因为 Excel 文件本身是单线程访问的。如果需要在多线程环境下处理 Excel 文件,建议使用线程锁或队列等机制来避免并发访问导致的数据混乱或文件损坏问题。

  6. 错误处理: 在处理 Excel 文件时,可能会遇到各种意外情况,例如文件损坏、格式错误、权限问题等。建议在程序中加入适当的错误处理机制,以便及时捕获并处理异常情况,避免程序崩溃或数据丢失。

  7. 官方文档和社区支持: openpyxl 有详细的官方文档和活跃的社区支持,如果遇到问题可以查阅官方文档或在社区论坛上提问。另外,也可以查看 GitHub 上的 issues 和 PR,了解最新的问题和解决方案。

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

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

相关文章

在idea中创建Scala项目教程

1.下载Scala支持插件 文件-设置-插件-marketplace 搜索Scala 下载 2.创建项目 文件-新建-项目-新项目-构建系统maven 3.创建Scala目录 Scr-main(右键)-新建-目录(Scala回车键)-scala(右键)-将项目标记为-源代码根目录 4.对当前项目引入Scala支持 未添…

mysql设置允许外部ip访问,局域网IP访问

(支持MYSQL8版本) 1. 登录进入mysql;mysql -uroot -p输入密码进入 2. 输入以下语句,进入mysql库,查看user表中root用户的访问 use mysql; select host,user from user; 3. 更新user表中root用户域属性&#xff0c…

CST Studio Suite 2020 软件安装教程、安装包下载

CST Studio Suite 2020 安装教程 安装包下载 复制链接在浏览器打开 https://www.qqres.com/3150.html CST Studio Suite 是由Dassault Systmes公司开发的一套电磁场仿真软件。它应用于电子、通信、天线设计、射频与微波、电磁兼容性 (EMC)、电磁干扰 (EMI) 等领域。 CST St…

C++笔试-剑指offer

剑指offer 文章目录 剑指offer数组[数组中重复的数据 ](https://leetcode.cn/problems/find-all-duplicates-in-an-array/description/)将元素交换到对应的位置 二维数组中的查找二叉搜索树 旋转数组的最小数字二分查找 数组中出现次数超过一半的数字相互抵消 连续子数组的最大…

【Python Cookbook】S02E03 fnmatch 模块做字符串匹配

目录 问题解决方案讨论 问题 在不同的操作系统下,怎样做字符串匹配? 解决方案 fnmatch() 模块提供两个函数,fnmatch() 以及 fnmatchcase() 可以用来执行做这样的匹配。 from fnmatch import fnmatch, fnmatchcasematch_res fnmatch(foo.…

TikTok Shop账号需要防关联吗?

在TikTokShop作为新兴的电商销售渠道中,保护账号的安全和隐私,防止账号关联成为了重要的任务。为了更好地理解为何需要防关联以及如何进行防范,让我们深入探讨一下这个问题。 为什么要防关联? 1. 账号异常风险:防关联…

Nvidia/算能 +FPGA+AI大算力边缘计算盒子:桥梁结构安全监测

中国铁路设计集团有限公司(简称中国铁设),原铁道第三勘察设计院集团有限公司(铁三院),是中国国家铁路集团有限公司所属的唯一设计企业,成立于1953年,总部位于天津市,是以…

【FreeRTOS】创建第一个多任务程序

创建第1个多任务程序 韦东山 Freertos学习 第一个多任务程序创建 1. 目标 创建两个任务,任务A运行Led_Test,任务B运行LCD_Test。 硬件平台:DShanMCU-F103开发板 2. 接口函数 创建任务的API函数 不同操作系统有不同的创建API函数 FreeRTO…

2024-6-10 石群电路-28

2024-6-10,星期一,14:15,天气:晴,心情:晴。今天又是阳光明媚的一天,自从减肥成功and道家养生后,越来越感觉夏热冬冷,夏长冬藏这一自然规律了,虽然外面艳阳高照…

Capture One 23 软件安装教程、附安装包下载

Capture One Capture One 23 是一款功能极为全面的图片处理软件,为用户提供了真正的逼真色彩处理和无缝衔接的编辑体验,以及业界最快的联机拍摄功能,可以满足用户在图像创作上的所有功能,如创作全景拼接大图、高级色彩调整、遮罩…

每日5题Day20 - LeetCode 96 - 100

每一步向前都是向自己的梦想更近一步&#xff0c;坚持不懈&#xff0c;勇往直前&#xff01; 第一题&#xff1a;96. 不同的二叉搜索树 - 力扣&#xff08;LeetCode&#xff09; class Solution {public int numTrees(int n) {if(n < 2){return 1;}int[] dp new int[n 1]…

Signac|成年小鼠大脑 单细胞ATAC分析(2)

引言 在本教程中&#xff0c;我们将探讨由10x Genomics公司提供的成年小鼠大脑细胞的单细胞ATAC-seq数据集。本教程中使用的所有相关文件均可在10x Genomics官方网站上获取。 本教程复现了之前在人类外周血单核细胞&#xff08;PBMC&#xff09;的Signac入门教程中执行的命令。…

XMind v24.04.1 全功能VIP版(思维升级,效率飞跃)

软件介绍 XMind 是一款功能丰富的思维导图和创新构思工具&#xff0c;可在多个平台助力高效思考。它涵盖了从灵感触发、结构构建到演示展示的完整思维过程&#xff0c;有效提升创建思维导图的效率。这款工具适用于记录灵感、创新思维、问题解决和效率提升等多元场景&#xff0…

永久免费的iPhone,iPad,Mac,iWatch锁屏,桌面壁纸样机生成器NO.105

使用这个壁纸样机生成器&#xff0c;生成iPhone&#xff0c;iPad&#xff0c;Mac&#xff0c;iWatch锁屏&#xff0c;桌面壁纸&#xff0c;展示你的壁纸作品&#xff0c;一眼就看出壁纸好不好看&#xff0c;适不适合 资源来源于网络&#xff0c;免费分享仅供学习和测试使用&am…

内网穿透的方式有哪些——快解析的优势

外网穿透内网技术&#xff0c;即内网映射&#xff0c;是把目标本地内网地址和端口发布到互联网&#xff0c;是一种由内网开放到外网的权限操作。那么&#xff0c;内网穿透的方法有哪些呢&#xff1f;做映射外网的方法。需要结合自己本地网络环境和应用场景来实施。这里分享三种…

【Unity Shader入门精要 第13章】使用深度和法线纹理(二)

1. 再谈运动模糊 之前的文章中曾经通过保存渲染结果进行叠加的方式实现过运动模糊效果&#xff0c;下面的例子我们通过深度纹理重建世界坐标的方式来实现运动模糊&#xff1a; 首先&#xff0c;基于深度纹理重建像素的世界坐标&#xff0c;原理在【Unity Shader入门精要 第13…

LangChain开发【NL2SQL】应用

前言 关于LangGraph的简单介绍&#xff0c;请参考这篇博客&#xff1a; LangGraph开发Agent智能体应用【基础聊天机器人】-CSDN博客 对比LangChain实现NL2SQL 关于用LangChain开发NL2SQL的Agent应用&#xff0c;在这篇博客提供了完整的代码实现&#xff1a; LangChain开发…

数据结构笔记 线性表的查找 顺序,折半,分块查找

顺序查找&#xff1a;从头找到尾&#xff0c;或者从尾找到头 顺序查找的性能&#xff1a; 其中&#xff0c;辅助空间的O&#xff08;1&#xff09;用于存放哨兵的 折半查找&#xff1a;向下取整&#xff1a;指当计算的结果不为整数时取小于计算结果的整数。 折半查找的性能&am…

未来几年,同样的性能,推理功耗降低为现在的几万分之一,有可能吗

未来几年,同样的性能,推理功耗降低为现在的几万分之一,有可能吗 一.数据二.抓取LLM排行榜,相同的MMLU精度,模型参数量缩减倍数三.其它 有人说未来几年,推理功耗能降低为现在的几万分之一,好奇怎么能做到呢 一.数据 二.抓取LLM排行榜,相同的MMLU精度,模型参数量缩减倍数 import…

【LeetCode算法】第112题:路径总和

目录 一、题目描述 二、初次解答 三、官方解法 四、总结 一、题目描述 二、初次解答 1. 思路&#xff1a;二叉树先序遍历。首先访问根节点&#xff0c;若根节点是叶子节点并且值等于目标值&#xff0c;则返回true&#xff0c;否则递归访问左子树和右子树&#xff0c;只要左…