使用Python实现在Excel工作表中添加批注

 更新时间:2026年05月18日 08:16:13   作者:大丸子  
本文介绍了使用FreeSpire.XLSforPython在Excel中添加各种类型批注的方法,包括普通文本批注、富文本批注、带作者的批注、图像批注和自定义颜色的批注,详细演示了批注的创建、样式设置和批量添加,提升了工作效率和批注格式的统一性

在数据审核、财务报表审查、项目管理等实际业务场景中,批注是Excel中非常实用的功能。通过批注,审核人员可以对关键数据添加说明、备注或警示信息,而不会影响原始数据的呈现。例如,财务人员可以在异常数据旁添加批注说明原因,项目经理可以在里程碑节点添加进度备注,数据分析师可以在关键指标旁标注计算依据。然而,当面对大量数据或需要批量添加批注时,手动操作不仅耗时费力,而且容易遗漏或出错。通过Python编程实现批注的自动添加,可以大幅提升工作效率,保证批注的一致性和准确性。

本文将介绍如何使用 Free Spire.XLS for Python 在Excel工作表中添加各种类型的批注,包括普通文本批注、富文本批注、带作者的批注以及图像批注,并结合实际业务场景进行演示。

1. 环境准备

首先需要安装 Free Spire.XLS for Python 库:

pip install spire.xls.free

安装完成后,我们就可以开始使用Python操作Excel文件并添加批注了。

2. 添加普通文本批注

在实际业务中,普通文本批注是最常用的批注类型。例如,在对销售数据进行审核时,我们需要对异常数据添加说明。下面演示如何创建Excel文件并添加简单文本批注:

from spire.xls import Workbook, ExcelVersion
from spire.xls.common import *
# 创建工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]
# 写入示例数据
sheet.Range["A1"].Text = "产品名称"
sheet.Range["B1"].Text = "销售额(万元)"
sheet.Range["A2"].Text = "笔记本电脑"
sheet.Range["B2"].NumberValue = 120
sheet.Range["A3"].Text = "平板电脑"
sheet.Range["B3"].NumberValue = 85
sheet.Range["A4"].Text = "智能手表"
sheet.Range["B4"].NumberValue = 45
# 为单元格添加普通文本批注
sheet.Range["B4"].Comment.Text = "该产品销售额偏低,建议加强市场推广"
# 自动调整列宽
sheet.Range.AutoFitColumns()
# 保存文件
workbook.SaveToFile("SimpleComment.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
print("普通文本批注已添加:SimpleComment.xlsx")

工作表预览:

普通文本批注效果

说明:

  • sheet.Range["B4"] 获取需要添加批注的单元格
  • .Comment.Text 属性用于设置批注的文本内容
  • 批注会在鼠标悬停时显示,不影响单元格的显示效果

此步骤实现了基础的文本批注添加功能,适用于简单的数据标注场景。

3. 添加富文本批注

富文本批注支持对不同部分的文字设置不同的字体样式(如颜色、加粗等),这在需要突出显示关键信息时非常有用。例如,可以在批注中使用不同颜色标注问题和建议:

from spire.xls import Workbook, ExcelVersion, ExcelColors
from spire.xls.common import *

# 创建工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]

# 写入示例数据
sheet.Range["A1"].Text = "员工姓名"
sheet.Range["B1"].Text = "季度绩效"
sheet.Range["A2"].Text = "张明"
sheet.Range["B2"].Text = "优秀"

# 创建字体样式
font_green = workbook.CreateFont()
font_green.FontName = "Arial"
font_green.Size = 11
font_green.KnownColor = ExcelColors.Green

font_red = workbook.CreateFont()
font_red.FontName = "Arial"
font_red.Size = 11
font_red.KnownColor = ExcelColors.Red

# 添加富文本批注
sheet.Range["B2"].Comment.RichText.Text = "绩效评级:优秀,继续保持"
sheet.Range["B2"].Comment.RichText.SetFont(0, 4, font_green)  # "绩效评级:"设为绿色
sheet.Range["B2"].Comment.RichText.SetFont(5, 6, font_red)      # "优秀"设为红色

# 自动调整列宽
sheet.Range.AutoFitColumns()

# 保存文件
workbook.SaveToFile("RichTextComment.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
print("富文本批注已添加:RichTextComment.xlsx")

工作表预览:

富文本批注效果

说明:

  • workbook.CreateFont() 创建自定义字体对象
  • RichText.Text 设置批注的完整文本
  • RichText.SetFont(start, end, font) 为指定范围的文本设置字体样式
  • 通过不同颜色的字体,可以清晰区分批注中的不同类型信息

富文本批注特别适合需要在批注中区分重要级别或信息类型的场景。

4. 添加带作者的批注

在团队协作环境中,批注通常需要标注作者信息,以便追溯审核人员。我们可以为批注设置作者名称并使用特殊格式显示:

from spire.xls import Workbook, ExcelVersion, ExcelColors
from spire.xls.common import *

# 创建工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]

# 写入示例数据
sheet.Range["A1"].Text = "项目阶段"
sheet.Range["B1"].Text = "完成状态"
sheet.Range["A2"].Text = "需求分析"
sheet.Range["B2"].Text = "已完成"
sheet.Range["A3"].Text = "系统设计"
sheet.Range["B3"].Text = "进行中"

# 为单元格添加带作者的批注
range_cell = sheet.Range["B3"]
author = "李工程师"
text = "预计下周完成设计文档初稿"

comment = range_cell.AddComment()
comment.Width = 200
comment.Visible = True
comment.Text = author + ":\n" + text

# 为作者名称设置加粗字体
font = workbook.CreateFont()
font.FontName = "Tahoma"
font.KnownColor = ExcelColors.Black
font.IsBold = True
comment.RichText.SetFont(0, len(author), font)

# 自动调整列宽
sheet.Range.AutoFitColumns()

# 保存文件
workbook.SaveToFile("CommentWithAuthor.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
print("带作者的批注已添加:CommentWithAuthor.xlsx")

工作表预览:

带作者批注效果

说明:

  • range.AddComment() 方法创建并返回批注对象
  • comment.Width 设置批注框的宽度
  • comment.Visible = True 使批注默认可见
  • 作者名称通过加粗字体突出显示,便于快速识别

这种格式的批注在多人协作审核场景中非常实用。

5. 添加图像批注

除了文本批注,Excel还支持图像批注,这在需要添加可视化说明时非常有用。例如,可以在产品SKU旁添加产品图片,或在项目节点旁添加进度截图:

from spire.xls import Workbook, ExcelVersion
from spire.xls.common import *

# 创建工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]

# 写入示例数据
sheet.Range["A1"].Text = "产品编号"
sheet.Range["B1"].Text = "产品名称"
sheet.Range["A2"].Text = "PRD-001"
sheet.Range["B2"].Text = "旗舰手机"

# 添加图像批注
comment = sheet.Range["B2"].AddComment()

# 加载图片并设置为批注背景
image_path = "product_image.png"  # 图片文件路径
image_stream = Stream(image_path)
comment.Fill.CustomPicture(image_stream, "product_image.png")
comment.Visible = True

# 自动调整列宽
sheet.Range.AutoFitColumns()

# 保存文件
workbook.SaveToFile("ImageComment.xlsx", ExcelVersion.Version2010)
workbook.Dispose()
print("图像批注已添加:ImageComment.xlsx")

工作表预览:

图像批注效果

说明:

  • Stream(image_path) 加载图片文件为数据流
  • comment.Fill.CustomPicture() 将图片设置为批注的填充背景
  • 图像批注会在鼠标悬停时显示,不占用工作表空间

图像批注适用于需要可视化辅助说明的场景,如产品展示、图纸标注等。

6. 设置批注填充颜色

为了使批注更加醒目或符合特定主题,可以自定义批注的填充颜色:

from spire.xls import Workbook, ExcelVersion, ExcelColors, ShapeFillType
from spire.xls.common import *

# 创建工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]

# 写入示例数据
sheet.Range["A1"].Text = "任务名称"
sheet.Range["B1"].Text = "优先级"
sheet.Range["A2"].Text = "数据库优化"
sheet.Range["B2"].Text = "高"

# 添加批注并设置填充颜色
range_cell = sheet.Range["B2"]
range_cell.Comment.Text = "需要在月底前完成,涉及核心业务模块"

# 设置批注字体
font = workbook.CreateFont()
font.FontName = "Arial"
font.Size = 11
font.KnownColor = ExcelColors.Orange
range_cell.Comment.RichText.SetFont(0, len(range_cell.Comment.Text) - 1, font)

# 设置批注填充颜色
range_cell.Comment.Fill.FillType = ShapeFillType.SolidColor
range_cell.Comment.Fill.ForeColor = Color.get_SkyBlue()
range_cell.Comment.Visible = True

# 自动调整列宽
sheet.Range.AutoFitColumns()

# 保存文件
workbook.SaveToFile("ColoredComment.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
print("彩色批注已添加:ColoredComment.xlsx")

工作表预览:

彩色批注效果

说明:

  • ShapeFillType.SolidColor 设置填充类型为纯色
  • Fill.ForeColor 设置批注框的背景颜色
  • Color.get_SkyBlue() 使用预定义颜色,也可以使用RGB值自定义

通过颜色区分批注类型,可以快速识别不同级别或类型的备注信息。

7. 关键类与方法解析

在前面的章节中,我们展示了多种类型的批注添加方式。下面总结核心的类、方法和属性:

核心操作流程

  • 创建或加载工作簿 - 使用 Workbook() 创建新工作簿,或 LoadFromFile() 加载已有文件
  • 获取单元格 - 通过 sheet.Range["A1"] 或 sheet.Range[row, col] 定位目标单元格
  • 添加批注 - 使用 range.Comment.Text 直接设置,或 range.AddComment() 创建批注对象
  • 设置批注样式 - 配置字体、颜色、大小、可见性等属性
  • 保存文件 - 使用 SaveToFile() 保存修改

关键类、方法与属性

类 / 方法 / 属性说明
WorkbookExcel工作簿对象,代表整个Excel文件
Workbook.LoadFromFile(path)从本地文件加载Excel工作簿
Workbook.SaveToFile(path, version)保存Excel文件到指定路径
Workbook.CreateFont()创建字体对象,用于设置文本样式
Worksheet工作表对象,包含数据和批注
sheet.Range[address]通过地址获取单元格,如 Range["A1"]
sheet.Range[row, col]通过行列索引获取单元格
range.Comment单元格的批注对象
range.AddComment()为单元格添加批注并返回批注对象
comment.Text批注的纯文本内容
comment.RichText.Text富文本批注的完整文本
comment.RichText.SetFont(start, end, font)为指定范围的文本设置字体样式
comment.Fill.CustomPicture(stream, name)将图片设置为批注背景
comment.Fill.FillType设置填充类型(纯色、图片等)
comment.Fill.ForeColor设置批注框的填充颜色
comment.Visible设置批注是否默认可见
comment.Width设置批注框的宽度
Stream数据流对象,用于加载图片等二进制数据
Color颜色对象,提供预定义颜色和自定义颜色方法

ExcelColors 枚举值

常用的批注文本颜色包括:

  • ExcelColors.Red - 红色,用于警示信息
  • ExcelColors.Green - 绿色,用于正常状态说明
  • ExcelColors.Orange - 橙色,用于提示信息
  • ExcelColors.Black - 黑色,用于默认文本
  • ExcelColors.Blue - 蓝色,用于链接或参考信息

掌握这些核心API,可以灵活应对各种批注添加需求,并根据业务场景进行定制化开发。

总结

本文详细介绍了如何使用 Free Spire.XLS for Python 在Excel工作表中添加多种类型的批注,包括普通文本批注、富文本批注、带作者的批注、图像批注以及自定义颜色的批注。通过编程方式实现批注的批量添加和样式设置,不仅能够大幅提升工作效率,还能保证批注格式的一致性和专业性。

相比手动添加批注,代码方式具有以下优势:一是可以批量处理大量数据,避免重复劳动;二是可以精确控制批注的样式和格式;三是易于集成到自动化工作流中,如数据审核系统、报告生成系统等。你可以在此基础上扩展更多能力,例如批注的读取、编辑、删除,以及条件化的批注添加(仅对特定条件的数据添加批注)。

到此这篇关于使用Python实现在Excel工作表中添加批注的文章就介绍到这了,更多相关Python Excel工作表添加批注内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • 如何生成对角矩阵 numpy.diag

    如何生成对角矩阵 numpy.diag

    这篇文章主要介绍了如何生成对角矩阵 numpy.diag,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-05-05
  • python 爬虫网页登陆的简单实现

    python 爬虫网页登陆的简单实现

    这篇文章主要介绍了python 爬虫网页登陆的简单实现,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2020-11-11
  • Python中的特殊语法:filter、map、reduce、lambda介绍

    Python中的特殊语法:filter、map、reduce、lambda介绍

    这篇文章主要介绍了Python中的特殊语法:filter、map、reduce、lambda介绍,本文分别对这个特殊语法给出了代码实例,需要的朋友可以参考下
    2015-04-04
  • Python asyncio异步编程常见问题小结

    Python asyncio异步编程常见问题小结

    本文主要介绍了Python asyncio异步编程常见问题小结,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2023-01-01
  • Python的numpy选择特定行列的方法

    Python的numpy选择特定行列的方法

    这篇文章主要介绍了Python的numpy选择特定行列的方法,有时需要抽取矩阵中特定行的特定列,比如,需要抽取矩阵x的0,1行的0,3列,结果为矩阵域,需要的朋友可以参考下
    2023-08-08
  • python 获取et和excel的版本号

    python 获取et和excel的版本号

    在进行OA开发过程中,经常会用到当前办公软件的版本号,在python可以通过如下的方法获取。
    2009-04-04
  • python脚本设置系统时间的两种方法

    python脚本设置系统时间的两种方法

    这篇文章主要介绍了python脚本设置系统时间的两种方法,其一是调用socket直接发送udp包到国家授时中心,其二是调用ntplib包,感兴趣的小伙伴们可以参考一下
    2016-02-02
  • python中封装token问题

    python中封装token问题

    这篇文章主要介绍了python中封装token问题,具有很好的参考价值,希望对大家有所帮助。如有错误或未考虑完全的地方,望不吝赐教
    2022-12-12
  • 基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码

    基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码

    这篇文章主要介绍了基于Python-turtle库绘制路飞的草帽骷髅旗、美国队长的盾牌、高达的源码,本文给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友可以参考下
    2021-02-02
  • pycharm中加了断点却无法调试,直接执行到程序结束如何解决

    pycharm中加了断点却无法调试,直接执行到程序结束如何解决

    这篇文章主要介绍了pycharm中加了断点却无法调试,直接执行到程序结束如何解决问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2024-01-01

最新评论