使用Python實現(xiàn)在Excel工作表中添加批注
在數(shù)據(jù)審核、財務報表審查、項目管理等實際業(yè)務場景中,批注是Excel中非常實用的功能。通過批注,審核人員可以對關鍵數(shù)據(jù)添加說明、備注或警示信息,而不會影響原始數(shù)據(jù)的呈現(xiàn)。例如,財務人員可以在異常數(shù)據(jù)旁添加批注說明原因,項目經(jīng)理可以在里程碑節(jié)點添加進度備注,數(shù)據(jù)分析師可以在關鍵指標旁標注計算依據(jù)。然而,當面對大量數(shù)據(jù)或需要批量添加批注時,手動操作不僅耗時費力,而且容易遺漏或出錯。通過Python編程實現(xiàn)批注的自動添加,可以大幅提升工作效率,保證批注的一致性和準確性。
本文將介紹如何使用 Free Spire.XLS for Python 在Excel工作表中添加各種類型的批注,包括普通文本批注、富文本批注、帶作者的批注以及圖像批注,并結合實際業(yè)務場景進行演示。
1. 環(huán)境準備
首先需要安裝 Free Spire.XLS for Python 庫:
pip install spire.xls.free
安裝完成后,我們就可以開始使用Python操作Excel文件并添加批注了。
2. 添加普通文本批注
在實際業(yè)務中,普通文本批注是最常用的批注類型。例如,在對銷售數(shù)據(jù)進行審核時,我們需要對異常數(shù)據(jù)添加說明。下面演示如何創(chuàng)建Excel文件并添加簡單文本批注:
from spire.xls import Workbook, ExcelVersion
from spire.xls.common import *
# 創(chuàng)建工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]
# 寫入示例數(shù)據(jù)
sheet.Range["A1"].Text = "產(chǎn)品名稱"
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 = "該產(chǎn)品銷售額偏低,建議加強市場推廣"
# 自動調(diào)整列寬
sheet.Range.AutoFitColumns()
# 保存文件
workbook.SaveToFile("SimpleComment.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
print("普通文本批注已添加:SimpleComment.xlsx")工作表預覽:

說明:
sheet.Range["B4"]獲取需要添加批注的單元格.Comment.Text屬性用于設置批注的文本內(nèi)容- 批注會在鼠標懸停時顯示,不影響單元格的顯示效果
此步驟實現(xiàn)了基礎的文本批注添加功能,適用于簡單的數(shù)據(jù)標注場景。
3. 添加富文本批注
富文本批注支持對不同部分的文字設置不同的字體樣式(如顏色、加粗等),這在需要突出顯示關鍵信息時非常有用。例如,可以在批注中使用不同顏色標注問題和建議:
from spire.xls import Workbook, ExcelVersion, ExcelColors
from spire.xls.common import *
# 創(chuàng)建工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]
# 寫入示例數(shù)據(jù)
sheet.Range["A1"].Text = "員工姓名"
sheet.Range["B1"].Text = "季度績效"
sheet.Range["A2"].Text = "張明"
sheet.Range["B2"].Text = "優(yōu)秀"
# 創(chuàng)建字體樣式
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 = "績效評級:優(yōu)秀,繼續(xù)保持"
sheet.Range["B2"].Comment.RichText.SetFont(0, 4, font_green) # "績效評級:"設為綠色
sheet.Range["B2"].Comment.RichText.SetFont(5, 6, font_red) # "優(yōu)秀"設為紅色
# 自動調(diào)整列寬
sheet.Range.AutoFitColumns()
# 保存文件
workbook.SaveToFile("RichTextComment.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
print("富文本批注已添加:RichTextComment.xlsx")工作表預覽:

說明:
workbook.CreateFont()創(chuàng)建自定義字體對象RichText.Text設置批注的完整文本RichText.SetFont(start, end, font)為指定范圍的文本設置字體樣式- 通過不同顏色的字體,可以清晰區(qū)分批注中的不同類型信息
富文本批注特別適合需要在批注中區(qū)分重要級別或信息類型的場景。
4. 添加帶作者的批注
在團隊協(xié)作環(huán)境中,批注通常需要標注作者信息,以便追溯審核人員。我們可以為批注設置作者名稱并使用特殊格式顯示:
from spire.xls import Workbook, ExcelVersion, ExcelColors
from spire.xls.common import *
# 創(chuàng)建工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]
# 寫入示例數(shù)據(jù)
sheet.Range["A1"].Text = "項目階段"
sheet.Range["B1"].Text = "完成狀態(tài)"
sheet.Range["A2"].Text = "需求分析"
sheet.Range["B2"].Text = "已完成"
sheet.Range["A3"].Text = "系統(tǒng)設計"
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)
# 自動調(diào)整列寬
sheet.Range.AutoFitColumns()
# 保存文件
workbook.SaveToFile("CommentWithAuthor.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
print("帶作者的批注已添加:CommentWithAuthor.xlsx")工作表預覽:

說明:
range.AddComment()方法創(chuàng)建并返回批注對象comment.Width設置批注框的寬度comment.Visible = True使批注默認可見- 作者名稱通過加粗字體突出顯示,便于快速識別
這種格式的批注在多人協(xié)作審核場景中非常實用。
5. 添加圖像批注
除了文本批注,Excel還支持圖像批注,這在需要添加可視化說明時非常有用。例如,可以在產(chǎn)品SKU旁添加產(chǎn)品圖片,或在項目節(jié)點旁添加進度截圖:
from spire.xls import Workbook, ExcelVersion
from spire.xls.common import *
# 創(chuàng)建工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]
# 寫入示例數(shù)據(jù)
sheet.Range["A1"].Text = "產(chǎn)品編號"
sheet.Range["B1"].Text = "產(chǎn)品名稱"
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
# 自動調(diào)整列寬
sheet.Range.AutoFitColumns()
# 保存文件
workbook.SaveToFile("ImageComment.xlsx", ExcelVersion.Version2010)
workbook.Dispose()
print("圖像批注已添加:ImageComment.xlsx")工作表預覽:

說明:
Stream(image_path)加載圖片文件為數(shù)據(jù)流comment.Fill.CustomPicture()將圖片設置為批注的填充背景- 圖像批注會在鼠標懸停時顯示,不占用工作表空間
圖像批注適用于需要可視化輔助說明的場景,如產(chǎn)品展示、圖紙標注等。
6. 設置批注填充顏色
為了使批注更加醒目或符合特定主題,可以自定義批注的填充顏色:
from spire.xls import Workbook, ExcelVersion, ExcelColors, ShapeFillType
from spire.xls.common import *
# 創(chuàng)建工作簿
workbook = Workbook()
sheet = workbook.Worksheets[0]
# 寫入示例數(shù)據(jù)
sheet.Range["A1"].Text = "任務名稱"
sheet.Range["B1"].Text = "優(yōu)先級"
sheet.Range["A2"].Text = "數(shù)據(jù)庫優(yōu)化"
sheet.Range["B2"].Text = "高"
# 添加批注并設置填充顏色
range_cell = sheet.Range["B2"]
range_cell.Comment.Text = "需要在月底前完成,涉及核心業(yè)務模塊"
# 設置批注字體
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
# 自動調(diào)整列寬
sheet.Range.AutoFitColumns()
# 保存文件
workbook.SaveToFile("ColoredComment.xlsx", ExcelVersion.Version2013)
workbook.Dispose()
print("彩色批注已添加:ColoredComment.xlsx")工作表預覽:

說明:
ShapeFillType.SolidColor設置填充類型為純色Fill.ForeColor設置批注框的背景顏色Color.get_SkyBlue()使用預定義顏色,也可以使用RGB值自定義
通過顏色區(qū)分批注類型,可以快速識別不同級別或類型的備注信息。
7. 關鍵類與方法解析
在前面的章節(jié)中,我們展示了多種類型的批注添加方式。下面總結核心的類、方法和屬性:
核心操作流程
- 創(chuàng)建或加載工作簿 - 使用
Workbook()創(chuàng)建新工作簿,或LoadFromFile()加載已有文件 - 獲取單元格 - 通過
sheet.Range["A1"]或sheet.Range[row, col]定位目標單元格 - 添加批注 - 使用
range.Comment.Text直接設置,或range.AddComment()創(chuàng)建批注對象 - 設置批注樣式 - 配置字體、顏色、大小、可見性等屬性
- 保存文件 - 使用
SaveToFile()保存修改
關鍵類、方法與屬性
| 類 / 方法 / 屬性 | 說明 |
|---|---|
Workbook | Excel工作簿對象,代表整個Excel文件 |
Workbook.LoadFromFile(path) | 從本地文件加載Excel工作簿 |
Workbook.SaveToFile(path, version) | 保存Excel文件到指定路徑 |
Workbook.CreateFont() | 創(chuàng)建字體對象,用于設置文本樣式 |
Worksheet | 工作表對象,包含數(shù)據(jù)和批注 |
sheet.Range[address] | 通過地址獲取單元格,如 Range["A1"] |
sheet.Range[row, col] | 通過行列索引獲取單元格 |
range.Comment | 單元格的批注對象 |
range.AddComment() | 為單元格添加批注并返回批注對象 |
comment.Text | 批注的純文本內(nèi)容 |
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 | 數(shù)據(jù)流對象,用于加載圖片等二進制數(shù)據(jù) |
Color | 顏色對象,提供預定義顏色和自定義顏色方法 |
ExcelColors 枚舉值
常用的批注文本顏色包括:
ExcelColors.Red- 紅色,用于警示信息ExcelColors.Green- 綠色,用于正常狀態(tài)說明ExcelColors.Orange- 橙色,用于提示信息ExcelColors.Black- 黑色,用于默認文本ExcelColors.Blue- 藍色,用于鏈接或參考信息
掌握這些核心API,可以靈活應對各種批注添加需求,并根據(jù)業(yè)務場景進行定制化開發(fā)。
總結
本文詳細介紹了如何使用 Free Spire.XLS for Python 在Excel工作表中添加多種類型的批注,包括普通文本批注、富文本批注、帶作者的批注、圖像批注以及自定義顏色的批注。通過編程方式實現(xiàn)批注的批量添加和樣式設置,不僅能夠大幅提升工作效率,還能保證批注格式的一致性和專業(yè)性。
相比手動添加批注,代碼方式具有以下優(yōu)勢:一是可以批量處理大量數(shù)據(jù),避免重復勞動;二是可以精確控制批注的樣式和格式;三是易于集成到自動化工作流中,如數(shù)據(jù)審核系統(tǒng)、報告生成系統(tǒng)等。你可以在此基礎上擴展更多能力,例如批注的讀取、編輯、刪除,以及條件化的批注添加(僅對特定條件的數(shù)據(jù)添加批注)。
到此這篇關于使用Python實現(xiàn)在Excel工作表中添加批注的文章就介紹到這了,更多相關Python Excel工作表添加批注內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關文章希望大家以后多多支持腳本之家!
相關文章
淺談pytorch 模型 .pt, .pth, .pkl的區(qū)別及模型保存方式
這篇文章主要介紹了淺談pytorch 模型 .pt, .pth, .pkl的區(qū)別及模型保存方式,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2020-05-05
Python numpy實現(xiàn)數(shù)組合并實例(vstack,hstack)
這篇文章主要介紹了Python numpy實現(xiàn)數(shù)組合并(官網(wǎng)實例),涉及vstack,hstack的簡單用法,具有一定借鑒價值,需要的朋友可以參考下2018-01-01
MediaPipe API實現(xiàn)骨骼識別功能分步講解流程
MediaPipe是用于構建多模態(tài)(例如視頻、音頻或任何時間序列數(shù)據(jù))、跨平臺(即eAndroid、IOS、web、邊緣設備)應用ML管道的框架。這篇文章主要介紹了MediaPipe API實現(xiàn)骨骼識別功能分步流程2022-09-09

