游乐游手机版
首页/编程语言/文章详情

如何用Python添加和管理Excel批注完整示例

时间:2026-06-27 06:42
利用Python和Spire XLS库可实现Excel批注的批量管理,包括添加文本与作者批注、设置富文本格式、调整背景颜色或图片、控制位置大小与对齐方式,以及读取、编辑、隐藏和删除已有批注,显著提升数据处理效率。

在团队协作处理 Excel 数据时,批注(Comment)是一种特别实用的沟通方式。它允许你在单元格上贴个便签,写写备注,标标审核意见,又不影响原始数据本身。如果全靠手动一个个去点,遇到数据量大或者重复性高的场景,实在有点低效。用程序来批量处理这些批注,就能省下不少精力。比如一次性给所有异常值加上说明、统一批注格式、自动标注数据来源,这些事情都可以用 Python 来完成。以下会一步步展示如何用 Python 来实现批注的添加、编辑、格式调整乃至删除。

环境准备

本文用到的库是 Spire.XLS for Python,直接通过 pip 安装就好:

 复制代码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 = Trueworkbook.Sa veToFile("BasicComment.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

这里 Comment.Text 负责设置纯文本内容,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.Sa veToFile("CommentWithAuthor.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

这里 RichText.SetFont() 可以用来对批注文本的某一段指定字体,参数分别是起始字符索引和结束字符索引。上面这段代码就是从第 0 个字符到作者名末尾,应用粗体,这样作者名和正文明显区分开来。

创建富文本批注

有时候,批注里需要不同的颜色或字体来区分信息层级,比如“已审核”用绿色,“需要关注”用蓝色。这时候富文本格式就派上用场了。

 复制代码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.LightGreenfont_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.Sa veToFile("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 = Trueworkbook.Sa veToFile("CommentFillColor.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

Fill.FillType 设为 ShapeFillType.SolidColor 后,用 ForeColor 指定颜色即可。用颜色来标记批注的优先级或类别,一目了然。

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

批注框的位置和尺寸,其实都可以直接控制。说白了你完全可以像布置 UI 一样调整它。

 复制代码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.Justifiedworkbook.Sa veToFile("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 = Trueworkbook.Sa veToFile("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 = Trueworkbook.Sa veToFile("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.Sa veToFile("CommentRemoved.xlsx", ExcelVersion.Version2013)
workbook.Dispose()

Remove() 是真的把它从工作表里清掉了。如果想一次清除所有批注,遍历 sheet.Comments 挨个调用 Remove() 就行。

总结

以上内容覆盖了用 Python 管理 Excel 批注的常见操作,具体包括:

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

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

来源:https://juejin.cn/post/7655540341374091304
上一篇LangGraph多Agent协作:三个Agent干活比一个强,但我踩了四个坑 下一篇dumpcap在故障排查中的具体应用方法与操作步骤详解
本站内容用于信息整理与展示,如有侵权或内容问题请及时联系处理。

相关推荐

补充同频道和同主题内容,方便继续浏览更多相关内容。

同类最新

继续查看同栏目最近更新的文章。

更多
详解如何使用Apache服务器进行防盗链配置步骤
编程语言 · 2026-06-30

详解如何使用Apache服务器进行防盗链配置步骤

Apache使用mod_rewrite模块实现图片防盗链,通过 htaccess文件配置Rewrite规则,检查HTTP_REFERER来源,若非本站域名且来源不为空,则对jpg等常见图片格式返回403禁止访问。此方法能有效阻止大多数盗链行为。

Filebeat日志转发实现步骤详解
编程语言 · 2026-06-30

Filebeat日志转发实现步骤详解

Filebeat通过配置输入源读取日志,输出目标转发至Elasticsearch或Logstash。安装后编辑filebeat yml文件,指定日志路径和输出地址。支持直接转发或经Logstash处理。通过systemctl启动并验证数据到达,可选SSL加密和多行日志合并配置。

手把手教你如何在CentOS上使用PhpStorm构建项目的详细步骤
编程语言 · 2026-06-30

手把手教你如何在CentOS上使用PhpStorm构建项目的详细步骤

在CentOS上使用PHPStorm构建项目需先准备环境:安装Java、PHP及扩展、Nginx、MariaDB并开放端口。然后安装配置PHPStorm,设置SSH解释器与Web服务器映射。导入或创建项目后安装Composer依赖,调整php ini。配置SFTP部署并同步文件,最后设置Xdebug进行调试运行。

CentOS下GitLab集成其他工具的详细配置方法与完整指南
编程语言 · 2026-06-30

CentOS下GitLab集成其他工具的详细配置方法与完整指南

在CentOS平台中,GitLab通过Webhooks、API与CI CD配置,深度集成Jenkins、SonarQube、Docker及Slack,构建代码托管、自动构建、质量检查与协作通知的自动化链路,覆盖开发、测试、部署全流程,实现从提交到上线的自动化,大幅提升团队效率与交付质量,推动开发运维一体化。

CentOS设置Node.js定时任务的方法
编程语言 · 2026-06-30

CentOS设置Node.js定时任务的方法

在CentOS上为Node js应用设置定时任务常用两种方案:systemd适合长期运行服务,需创建服务文件并配置开机自启;cron更灵活,适合定期唤醒任务,通过编辑crontab添加时间计划和执行命令。两种方法均需指定Node js路径和应用入口。