使用Python在Excel工作表中添加、编辑和删除批注

 更新时间:2026年04月27日 08:29:06   作者:大丸子  
在数据分析和报表制作过程中,Excel 批注(Comment)是一种非常实用的功能,用于对特定单元格进行补充说明、添加备注或记录审核意见,本文将使用 Free Spire.XLS for Python 展示如何在 Excel 工作表中添加、编辑和删除批注,需要的朋友可以参考下

引言

在数据分析和报表制作过程中,Excel 批注(Comment)是一种非常实用的功能,用于对特定单元格进行补充说明、添加备注或记录审核意见。例如,在财务报表中对异常数据进行标注说明,在项目进度表中添加状态备注,或在数据审核流程中记录审核人的意见。然而,当需要处理大量数据或进行批量标注时,手动添加和编辑批注不仅效率低下,还容易出现遗漏或格式不一致的问题。通过 Python 编程实现批注的自动化管理,可以大幅提升工作效率,确保标注的规范性和一致性。

本文将使用 Free Spire.XLS for Python 展示如何在 Excel 工作表中添加、编辑和删除批注,结合实际业务场景的数据示例,帮助你快速掌握批注自动化管理技能。

1. 环境准备与库安装

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

pip install spire.xls.free

安装完成后,我们可以开始创建 Excel 工作簿并准备数据。下面是一个创建 Excel 文件的简单示例:

from spire.xls import Workbook
# 创建一个新的工作簿
wb = Workbook()
sheet = wb.Worksheets[0]
sheet.Name = "项目进度表"
# 保存初始文件
wb.SaveToFile("ProjectProgress.xlsx")
wb.Dispose()
print("Excel 文件已创建:ProjectProgress.xlsx")

说明:
Workbook 对象代表整个 Excel 文件,Worksheets[0] 获取第一个工作表。这里我们创建了一个名为"项目进度表"的工作表,为后续写入数据和添加批注做好准备。

2. 在 Excel 中写入业务数据

假设我们正在管理一个项目进度表,需要记录各任务的完成情况和负责人。我们可以在代码中直接生成数据:

from spire.xls import Workbook

wb = Workbook()
sheet = wb.Worksheets[0]
sheet.Name = "项目进度表"

# 写入表头
headers = ["任务名称", "负责人", "完成进度", "备注"]
for col, header in enumerate(headers, start=1):
    sheet.Range[1, col].Text = header

# 写入示例数据
project_data = [
    ["需求分析", "张三", "100%"],
    ["系统设计", "李四", "80%"],
    ["前端开发", "王五", "60%"],
    ["后端开发", "赵六", "45%"],
    ["测试验收", "孙七", "20%"],
]

for row, data in enumerate(project_data, start=2):
    for col, value in enumerate(data, start=1):
        sheet.Range[row, col].Value = value

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

wb.SaveToFile("ProjectProgress.xlsx")
wb.Dispose()
print("项目数据已写入 Excel 文件")

工作表预览:

说明:
这里我们模拟了一个项目进度表,包含任务名称、负责人和完成进度等信息,便于后续添加批注进行说明和标注。

3. 添加批注:为任务添加详细说明

批注可以为单元格添加补充信息,例如对进度异常的任务进行说明。我们为"后端开发"任务添加批注:

from spire.xls import Workbook

wb = Workbook()
wb.LoadFromFile("ProjectProgress.xlsx")
sheet = wb.Worksheets[0]

# 为"后端开发"单元格添加批注
range_comment = sheet.Range["A5"]
comment = range_comment.AddComment()
comment.Text = "后端开发进度较慢,主要原因是接口文档不完善,需要补充API说明。"
comment.Width = 200
comment.Visible = True

wb.SaveToFile("ProjectProgress_AddComment.xlsx")
wb.Dispose()
print("批注已添加")

工作表预览:

说明:
通过 range.AddComment() 方法为指定单元格添加批注,comment.Text 设置批注内容,comment.Width 设置批注框宽度,comment.Visible = True 使批注默认显示。

4. 添加带作者的批注:记录审核意见

在实际工作中,批注通常需要记录作者信息,例如审核人对数据的意见。我们为"测试验收"任务添加带作者的批注:

from spire.xls import Workbook, ExcelColors

wb = Workbook()
wb.LoadFromFile("ProjectProgress_AddComment.xlsx")
sheet = wb.Worksheets[0]

# 为"测试验收"单元格添加带作者的批注
range_comment = sheet.Range["A6"]
author = "项目经理:周八"
text = "测试用例覆盖率不足,建议补充边界测试和异常场景测试。"

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

# 设置作者部分的字体样式
font = wb.CreateFont()
font.FontName = "Tahoma"
font.KnownColor = ExcelColors.Black
font.IsBold = True
comment.RichText.SetFont(0, len(author), font)

wb.SaveToFile("ProjectProgress_CommentWithAuthor.xlsx")
wb.Dispose()
print("带作者的批注已添加")

工作表预览:

说明:
通过 wb.CreateFont() 创建字体对象,使用 comment.RichText.SetFont() 方法为批注中的作者部分设置加粗样式,使批注更加规范和易读。

5. 编辑批注:更新任务说明

当任务状态发生变化时,需要更新批注内容。我们修改"后端开发"的批注:

from spire.xls import Workbook

wb = Workbook()
wb.LoadFromFile("ProjectProgress_CommentWithAuthor.xlsx")
sheet = wb.Worksheets[0]

# 获取第一个批注并编辑
comment = sheet.Comments[0]
comment.Text = "后端开发进度已提升至60%,接口文档已完善,开发工作正常推进。"

wb.SaveToFile("ProjectProgress_EditComment.xlsx")
wb.Dispose()
print("批注已编辑")

工作表预览:

说明:
通过 sheet.Comments[0] 获取工作表中的第一个批注对象,直接修改 comment.Text 属性即可更新批注内容。

6. 删除批注:清理过期标注

当批注不再需要时,可以将其删除。我们删除"后端开发"的批注:

from spire.xls import Workbook

wb = Workbook()
wb.LoadFromFile("ProjectProgress_EditComment.xlsx")
sheet = wb.Worksheets[0]

# 获取所有批注
comments = sheet.Comments

# 删除第一个批注
if comments.Count > 0:
    comments[0].Remove()
    print("批注已删除")

wb.SaveToFile("ProjectProgress_RemoveComment.xlsx")
wb.Dispose()

工作表预览:

说明:
通过 comments.Remove() 方法删除指定批注,comments.Count 可以获取批注总数,便于批量处理。

7. 读取批注:提取标注信息

在某些场景下,需要读取批注内容进行分析或导出。我们读取工作表中的所有批注:

from spire.xls import Workbook

wb = Workbook()
wb.LoadFromFile("ProjectProgress_CommentWithAuthor.xlsx")
sheet = wb.Worksheets[0]

# 读取所有批注
comments = sheet.Comments
print(f"工作表中共有 {comments.Count} 条批注:\n")

for i in range(comments.Count):
    comment = comments[i]
    print(f"批注 {i+1}:")
    print(f"  内容:{comment.Text}")
    print(f"  位置:{comment.Range.RangeAddressLocal}\n")

wb.Dispose()

说明:
通过遍历 sheet.Comments 集合,可以获取每个批注的内容和位置信息,便于进行批量处理或数据分析。

8. 技术细节总结与关键类方法概览

在前面的章节中,我们展示了如何使用 Free Spire.XLS for Python 添加、编辑、删除和读取批注。从技术实现角度来看,批注管理的核心流程可以总结为以下几个关键步骤:

Python Excel 批注管理步骤总结

  • 准备数据将业务数据写入 Excel 工作表,确定需要添加批注的单元格位置。
  • 添加批注对象使用 range.AddComment() 方法为指定单元格添加批注,设置批注内容和显示属性。
  • 设置批注样式通过 comment.Width、comment.Visible 等属性设置批注框大小和可见性,使用 RichText.SetFont() 设置字体样式。
  • 编辑批注通过 sheet.Comments[index] 获取批注对象,修改 comment.Text 属性更新内容。
  • 删除批注使用 comment.Remove() 方法删除不需要的批注。
  • 读取批注遍历 sheet.Comments 集合,提取批注内容和位置信息。

关键类、方法与属性

类 / 方法 / 属性说明
WorkbookExcel 工作簿对象,支持创建、加载和保存文件
Workbook.LoadFromFile()从本地文件加载 Excel 工作簿
Workbook.SaveToFile()保存 Excel 文件到指定路径
Worksheet表示单个工作表,是操作数据和批注的主体对象
sheet.Range[row, col]获取或设置指定单元格的内容
range.AddComment()为指定单元格添加批注对象
sheet.Comments获取工作表中所有批注的集合
comment.Text设置或获取批注的文本内容
comment.Width设置批注框的宽度
comment.Visible设置批注是否可见
comment.RichText.SetFont()设置批注文本的字体样式
comment.Remove()删除批注
wb.CreateFont()创建字体对象用于设置批注样式

通过理解上述关键类、方法和属性,你可以灵活地管理 Excel 批注,并根据业务需求进行精细定制。掌握这些技术细节,能让你在实际项目中快速实现批注的自动化管理,提高数据标注的效率和规范性。

总结

本文以实际项目进度表为例,展示了如何使用 Free Spire.XLS for Python 在 Excel 工作表中添加、编辑、删除和读取批注,实现数据标注的自动化管理。通过编程方式处理批注,不仅避免了手动操作的繁琐和易错问题,还能轻松应对批量标注和复杂数据审核需求。

掌握这一技能后,你可以将数据标注与审核流程完全自动化,从而节省时间,提高效率,并为团队协作提供可靠的标注支持。结合 Free Spire.XLS 的其他功能,如条件格式、数据验证和图表操作,可以进一步打造智能化的 Excel 自动化工作流,让企业的数据管理更加规范和高效。

以上就是使用Python在Excel工作表中添加、编辑和删除批注的详细内容,更多关于Python Excel表中添加、编辑和删除批注的资料请关注脚本之家其它相关文章!

相关文章

  • pycharm重置设置,恢复默认设置的方法

    pycharm重置设置,恢复默认设置的方法

    今天小编就为大家分享一篇pycharm重置设置,恢复默认设置的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2018-10-10
  • python删除文件夹下相同文件和无法打开的图片

    python删除文件夹下相同文件和无法打开的图片

    这篇文章主要为大家详细介绍了python删除文件夹下相同文件和无法打开的图片,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-07-07
  • Python调用Ollama本地大模型API的完全指南

    Python调用Ollama本地大模型API的完全指南

    Ollama 是一个开源工具,允许开发者在本地轻松运行主流大语言模型,这篇文章主要介绍了Python调用Ollama本地大模型API的相关方法,文中的示例代码讲解详细,感兴趣的小伙伴可以了解下
    2026-03-03
  • 利用Python爬虫爬取金融期货数据的案例分析

    利用Python爬虫爬取金融期货数据的案例分析

    从技术角度来看,经过一步步解析,任务是简单的,入门requests爬虫及入门pandas数据分析就可以完成,本文重点给大家介绍Python爬虫爬取金融期货数据的案例分析,感兴趣的朋友一起看看吧
    2022-06-06
  • python核心语法运算符详解

    python核心语法运算符详解

    文章介绍了Python中的运算符和类型转换,运算符包括算术运算符、赋值运算符和复合赋值运算符,本文通过实例代码给大家介绍的非常详细,感兴趣的朋友跟随小编一起看看吧
    2026-02-02
  • Python标准库使用OrderedDict类的实例讲解

    Python标准库使用OrderedDict类的实例讲解

    今天小编就为大家分享一篇关于Python标准库使用OrderedDict类的实例讲解,小编觉得内容挺不错的,现在分享给大家,具有很好的参考价值,需要的朋友一起跟随小编来看看吧
    2019-02-02
  • 使用Python holidays库获取中国节日的代码示例

    使用Python holidays库获取中国节日的代码示例

    在软件开发中,处理节假日信息是一个常见需求,尤其是在进行日期计算、日程安排和自动化工作流时,Python 提供了一个名为​​holidays​​的库,它能够轻松获取节假日信息,本文将重点介绍如何使用​​holidays​​库获取中国的节日,并提供详细的代码示例和应用场景
    2024-07-07
  • python初学者,用python实现基本的学生管理系统(python3)代码实例

    python初学者,用python实现基本的学生管理系统(python3)代码实例

    这篇文章主要介绍了用python实现学生管理系统,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-04-04
  • 小白入门篇使用Python搭建点击率预估模型

    小白入门篇使用Python搭建点击率预估模型

    本文将从零开始,仅仅利用基础的numpy库,使用Python实现一个最简单的神经网络(或者说是简易的LR,因为LR就是一个单层的神经网络),解决一个点击率预估的问题。感兴趣的朋友跟随小白一起看看吧
    2018-10-10
  • pandas计算最大连续间隔的方法

    pandas计算最大连续间隔的方法

    今天小编就为大家分享一篇pandas计算最大连续间隔的方法,具有很好的参考价值,希望对大家有所帮助。一起跟随小编过来看看吧
    2019-07-07

最新评论