使用Python添加和管理Excel批注的完整示例

 更新时间:2026年06月28日 08:31:01   作者:用户835629078051  
在团队协作处理 Excel 数据时,批注(Comment)是一种常用的沟通方式,本文将介绍如何使用 Python 在 Excel 文件中添加、编辑、格式化和删除批注,希望对大家有所帮助

在团队协作处理 Excel 数据时,批注(Comment)是一种常用的沟通方式。它允许用户在单元格上附加说明、备注或审核意见,而不影响原始数据内容。通过编程方式管理 Excel 批注,可以实现批量添加说明、自动标注数据异常、统一格式风格等操作。本文将介绍如何使用 Python 在 Excel 文件中添加、编辑、格式化和删除批注。

环境准备

本文使用 Spire.XLS for Python 来操作 Excel 文件。通过以下命令安装:

pip install Spire.XLS

安装完成后,导入相关模块即可开始操作。

添加基础批注

最基础的批注操作是为指定单元格添加一段文本说明。通过访问单元格的 Comment 属性,可以直接设置批注内容。

from spire.xls import *
from spire.xls.common import *

workbook = Workbook()
sheet = workbook.Worksheets[0]

# 设置单元格文本
sheet.Range["A1"].Text = "产品A"

# 添加批注
sheet.Range["A1"].Comment.Text = "该产品已停产,数据仅供参考"

# 设置批注可见
sheet.Range["A1"].Comment.Visible = True

workbook.SaveToFile("BasicComment.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

Comment.Text 属性用于设置纯文本批注内容,Visible 属性控制批注是否默认可见。当 Visible 设为 False 时,批注仍然存在,但只有鼠标悬停在单元格上时才会显示。

添加带作者信息的批注

在多人协作场景中,区分批注的作者很有必要。可以通过 AddComment() 方法创建批注对象,然后手动拼接作者名和正文内容。

from spire.xls import *
from spire.xls.common import *

workbook = Workbook()
workbook.LoadFromFile("DataFile.xlsx")
sheet = workbook.Worksheets[0]

# 获取目标单元格
cell_range = sheet.Range["C1"]

# 添加批注并设置属性
comment = cell_range.AddComment()
comment.Width = 200
comment.Visible = True

# 拼接作者和正文
author = "张经理"
text = "本季度数据已核实,可以发布。"
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)

workbook.SaveToFile("CommentWithAuthor.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

这里使用了 RichText.SetFont() 方法来对批注中指定范围的文本应用字体格式。参数 0len(author) 表示从第 0 个字符到作者名末尾的范围,这样作者名会以粗体显示,与正文明确区分。

创建富文本批注

当批注中需要不同颜色或样式来区分信息层级时,可以使用富文本(RichText)格式。

from spire.xls import *
from spire.xls.common import *

workbook = Workbook()
sheet = workbook.Worksheets[0]

# 创建不同颜色的字体
font_green = workbook.CreateFont()
font_green.FontName = "Arial"
font_green.Size = 11
font_green.KnownColor = ExcelColors.LightGreen

font_blue = workbook.CreateFont()
font_blue.FontName = "Arial"
font_blue.Size = 11
font_blue.KnownColor = ExcelColors.LightBlue

# 设置单元格和批注
cell_range = sheet.Range["B12"]
cell_range.Text = "销售数据"
cell_range.RichText.SetFont(0, 16, font_green)

# 设置富文本批注
cell_range.Comment.RichText.Text = "已审核: 数据正常"
cell_range.Comment.RichText.SetFont(0, 4, font_green)
cell_range.Comment.RichText.SetFont(5, 9, font_blue)

workbook.SaveToFile("RichTextComment.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

RichText.SetFont(start_index, end_index, font) 方法允许对批注文本的不同区段应用不同字体。这在需要区分状态标签和详细说明时很实用。

设置批注的背景颜色

通过修改批注的填充属性,可以为批注框设置背景颜色,使其更加醒目。

from spire.xls import *
from spire.xls.common import *

workbook = Workbook()
sheet = workbook.Worksheets[0]

# 添加批注
cell_range = sheet.Range["A1"]
cell_range.Comment.Text = "重要提示:此数据需要复核"

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

# 设置批注背景色
cell_range.Comment.Fill.FillType = ShapeFillType.SolidColor
cell_range.Comment.Fill.ForeColor = Color.get_SkyBlue()
cell_range.Comment.Visible = True

workbook.SaveToFile("CommentFillColor.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

Fill.FillType 设为 ShapeFillType.SolidColor 后,通过 ForeColor 指定背景色。这种方式适合用颜色来标记批注的优先级或类别。

调整批注的位置、大小和对齐方式

批注框的位置和尺寸可以通过属性直接控制,文本对齐方式也可以单独设置。

from spire.xls import *
from spire.xls.common import *

workbook = Workbook()
sheet = workbook.Worksheets[0]

# 添加批注
sheet.Range["G5"].Text = "数据项"
comment = sheet.Range["G5"].Comment
comment.IsVisible = True
comment.Height = 150
comment.Width = 300

# 设置批注文本
comment.RichText.Text = "审核备注:\n此项数据来源于系统导出,已经过初步校验。"

# 设置文本旋转方向
comment.TextRotation = TextRotationType.LeftToRight

# 设置批注位置(相对于工作表)
comment.Top = 20
comment.Left = 40

# 设置文本对齐方式
comment.VAlignment = CommentVAlignType.Center
comment.HAlignment = CommentHAlignType.Justified

workbook.SaveToFile("CommentPosition.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

关键属性说明:

  • HeightWidth:控制批注框的像素尺寸
  • TopLeft:控制批注框在工作表中的位置坐标
  • VAlignment:垂直对齐方式,可选 TopCenterBottom
  • HAlignment:水平对齐方式,可选 LeftCenterRightJustified

为批注添加图片背景

除了纯色背景,还可以使用图片作为批注框的背景,例如嵌入公司 Logo 或状态图标。

from spire.xls import *
from spire.xls.common import *

workbook = Workbook()
sheet = workbook.Worksheets[0]
sheet.Range["C6"].Text = "负责人"

# 添加批注并设置图片背景
comment = sheet.Range["C6"].AddComment()
image = Stream("Logo.png")
comment.Fill.CustomPicture(image, "logo.png")
comment.Visible = True

workbook.SaveToFile("CommentWithImage.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

Fill.CustomPicture() 方法接受一个图片流和图片名称参数。加载的图片会作为批注框的背景填充。

读取和编辑已有批注

对于已有的 Excel 文件,可以遍历工作表中的批注集合来读取或修改批注内容。

from spire.xls import *

workbook = Workbook()
workbook.LoadFromFile("ExistingFile.xlsx")
sheet = workbook.Worksheets[0]

# 读取指定单元格的批注
comment_text = sheet.Range["A1"].Comment.Text
print("批注内容:", comment_text)

# 读取富文本批注的 RTF 格式
rtf_text = sheet.Range["A2"].Comment.RichText.RtfText
print("RTF 内容:", rtf_text)

workbook.Dispose()

编辑已有批注同样简单,直接通过索引访问批注集合并修改属性:

# 获取第一个批注并修改内容
comment = sheet.Comments[0]
comment.Text = "批注内容已更新"

控制批注的显示和隐藏

批注可以单独控制可见性,无需删除即可隐藏或重新显示。

from spire.xls import *

workbook = Workbook()
workbook.LoadFromFile("CommentFile.xlsx")
sheet = workbook.Worksheets[0]

# 隐藏指定批注
sheet.Comments[1].IsVisible = False

# 显示指定批注
sheet.Comments[2].IsVisible = True

workbook.SaveToFile("CommentVisibility.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

这在需要根据不同场景切换批注显示状态时很有用,例如在打印或演示时隐藏审核批注。

删除批注

当批注不再需要时,可以将其从工作表中移除。

from spire.xls import *

workbook = Workbook()
workbook.LoadFromFile("CommentFile.xlsx")
sheet = workbook.Worksheets[0]

# 删除第二个批注
sheet.Comments[1].Remove()

workbook.SaveToFile("CommentRemoved.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

Remove() 方法会将批注从工作表的批注集合中彻底删除。如果需要清除所有批注,可以遍历 sheet.Comments 集合并逐一调用 Remove()

总结

本文介绍了使用 Python 管理 Excel 批注的常用操作,包括:

  1. 添加基础文本批注和带作者信息的批注
  2. 使用富文本格式设置不同颜色和样式的批注内容
  3. 设置批注背景颜色和图片背景
  4. 调整批注的位置、大小和文本对齐方式
  5. 读取、编辑、隐藏和删除已有批注

这些操作覆盖了批注管理的主要场景。在此基础上,可以进一步结合数据校验逻辑自动添加批注,或批量处理多个 Excel 文件中的批注内容,构建更完善的自动化工作流。

到此这篇关于使用Python添加和管理Excel批注的完整示例的文章就介绍到这了,更多相关Python添加和管理Excel批注内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!

相关文章

  • Web自动化之Selenium常用操作方法大全

    Web自动化之Selenium常用操作方法大全

    Selenium是一种自动化测试工具,可以用于测试Web应用程序,它提供了一组用于自动化Web浏览器进行测试的API,下面这篇文章主要给大家介绍了关于Web自动化之Selenium常用操作方法的相关资料,需要的朋友可以参考下
    2023-06-06
  • python3读取文件指定行的三种方法

    python3读取文件指定行的三种方法

    考虑到深度学习领域中的数据规模一般都比较大,尤其是训练集,这个限制条件对应到实际编程中就意味着,我们很有可能无法将整个数据文件的内容全部都加载到内存中。那么就需要一些特殊的处理方式,本文将要介绍的是从文件中只读取特定行的内容的3种解决方案。
    2021-05-05
  • python基础字符串str详解

    python基础字符串str详解

    大家好,本篇文章主要讲的是python基础字符串str详解,感兴趣的同学赶快来看一看吧,对你有帮助的话记得收藏一下,方便下次浏览
    2021-12-12
  • Python将多个excel表格合并为一个表格

    Python将多个excel表格合并为一个表格

    这篇文章主要为大家详细介绍了Python将多个excel表格合并为一个表格的方法,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • python 返回一个列表中第二大的数方法

    python 返回一个列表中第二大的数方法

    今天小编就为大家分享一篇python 返回一个列表中第二大的数方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07
  • 压缩包密码破解示例分享(类似典破解)

    压缩包密码破解示例分享(类似典破解)

    有一个压缩包密码忘了,写了一个小脚本实现一个解密的功能,输入自己常用密码中的单词后,脚本将这些密码组合尝试解压压缩包
    2014-01-01
  • python判定文件目录是否存在及创建多层目录

    python判定文件目录是否存在及创建多层目录

    这篇文章主要介绍了python判定文件目录是否存在及创建多层目录,文章通过os模块、try语句、pathlib模块善终模块展开详细的内容,感兴趣的朋友可以参考一下
    2022-06-06
  • python如何实现多层级自动赋值字典

    python如何实现多层级自动赋值字典

    这篇文章主要介绍了python如何实现多层级自动赋值字典问题,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教
    2023-08-08
  • 基于python实现制作发货单

    基于python实现制作发货单

    这篇文章主要为大家详细介绍了如何基于python实现制作发货单,并将还html转为pdf,文中的示例代码讲解详细,感兴趣的小伙伴可以了解一下
    2024-11-11
  • Python 基于http.server模块实现简单http服务的代码举例

    Python 基于http.server模块实现简单http服务的代码举例

    Python http.server模块通过继承BaseHTTPRequestHandler处理HTTP请求,使用ThreadingHTTPServer支持多线程,将其他类实例设为RequestHandler属性实现跨服务调用,本文给大家介绍Python 基于http.server模块实现简单http服务的代码举例,感兴趣的朋友跟随小编一起看看吧
    2025-08-08

最新评论