LOGO 首页 OA教程 ERP教程 模切知识交流 PMS教程 CRM教程 技术文档 其他文档  
 
网站管理员

使用 Python 在 Word 文档中添加或删除文本框

zhenglin
2026年8月4日 10:15 本文热度 34

文本框是 Word 文档中一种常用的排版元素,它允许用户在页面任意位置放置独立于正文流向的文字内容,常用于制作侧边注释、提示信息、流程图说明以及各类创意排版。在手动编辑场景下,插入和调整文本框并不复杂,但当需要批量生成模板、统一修改格式或清理文档中的冗余文本框时,逐个操作既耗时又容易出错。通过 Python 编程方式控制文本框的增删改,可以显著提升处理效率,并保证文档格式的一致性。本文将介绍如何使用 Python 在 Word 文档中添加带格式的文本框、设置文本框的位置与样式,以及删除文档中已有的文本框。

环境准备

本文使用 Spire.Doc for Python 库来操作 Word 文档。该库提供了完整的文档处理 API,包括文本框的创建、格式化、内容填充和删除等功能。通过以下命令安装:

pip install Spire.Doc

安装完成后,在脚本中导入所需模块即可开始使用。

from spire.doc import *

from spire.doc.common import *

添加文本框

在 Word 文档中添加文本框的核心思路是:创建 Document 对象并添加节(Section),然后在指定段落上调用 AppendTextBox() 方法插入文本框。该方法接收宽度和高度两个参数,返回一个 TextBox 对象,通过该对象可以进一步设置文本框的格式属性和内部内容。文本框本身只是一个容器,需要通过 Body.AddParagraph() 在其中添加段落后才能写入文字。

from spire.doc import *

from spire.doc.common import *


outputFile = "AddTextbox.docx"


# 创建文档并添加节

document = Document()

section = document.AddSection()

paragraph = section.AddParagraph()


# 插入文本框(宽度 240,高度 35)

textBox = paragraph.AppendTextBox(240, 35)

textBox.Format.HorizontalAlignment = ShapeHorizontalAlignment.Left

textBox.Format.LineColor = Color.get_Gray()

textBox.Format.LineStyle = TextBoxLineStyle.Simple

textBox.Format.FillColor = Color.get_DarkSeaGreen()


# 在文本框中添加文字

para = textBox.Body.AddParagraph()

textRange = para.AppendText("这是一个示例文本框")

textRange.CharacterFormat.FontName = "宋体"

textRange.CharacterFormat.FontSize = 14

textRange.CharacterFormat.TextColor = Color.get_White()

para.Format.HorizontalAlignment = HorizontalAlignment.Center


document.SaveToFile(outputFile, FileFormat.Docx)

document.Close()

 

上述代码中,AppendTextBox(240, 35) 的两个参数分别指定文本框的宽度和高度(单位为磅)。Format 属性提供了丰富的外观控制选项:LineColor 设置边框颜色,LineStyle 设置边框样式(如 SimpleDoubleTriple 等),FillColor 设置填充背景色。文本框内部的文字通过 TextRange 对象的 CharacterFormat 进行字体、字号和颜色设置,与普通段落中的文字格式化方式完全一致。这种设计使得文本框既具有独立的位置和外观,又能复用 Spire.Doc 的文字处理能力。


设置文本框的位置与内边距

默认情况下,文本框会跟随所在段落的位置排列。当需要将文本框精确定位到页面的指定坐标时,可以通过 Format 属性中的 HorizontalOriginHorizontalPositionVerticalOriginVerticalPosition 来设置。同时,文本框内部文字与边框之间的间距(内边距)也可以通过 InternalMargin 属性进行控制,这对于设计紧凑型排版尤为重要。

from spire.doc import *

from spire.doc.common import *


outputFile = "TextBoxFormat.docx"


# 创建文档

doc = Document()

sec = doc.AddSection()


# 添加文本框并写入示例文字

tb = sec.AddParagraph().AppendTextBox(310, 90)

para = tb.Body.AddParagraph()

textRange = para.AppendText("通过编程方式设置文本框的位置和样式,可以实现精确的文档排版控制。")

textRange.CharacterFormat.FontName = "Cambria"

textRange.CharacterFormat.FontSize = 13


# 设置文本框的精确位置

tb.Format.HorizontalOrigin = HorizontalOrigin.Page

tb.Format.HorizontalPosition = 120

tb.Format.VerticalOrigin = VerticalOrigin.Page

tb.Format.VerticalPosition = 100


# 设置边框样式

tb.Format.LineStyle = TextBoxLineStyle.Double

tb.Format.LineColor = Color.get_CornflowerBlue()

tb.Format.LineDashing = LineDashing.Solid

tb.Format.LineWidth = 5


# 设置内边距

tb.Format.InternalMargin.Top = 15

tb.Format.InternalMargin.Bottom = 10

tb.Format.InternalMargin.Left = 12

tb.Format.InternalMargin.Right = 10


doc.SaveToFile(outputFile, FileFormat.Docx)

doc.Close()

 

HorizontalOriginVerticalOrigin 决定了位置坐标的参照系,设置为 HorizontalOrigin.Page 表示以页面为基准,也可以选择以段落或页边距为基准。HorizontalPositionVerticalPosition 则分别指定相对于参照系的水平和垂直偏移量(单位为磅)。InternalMarginTopBottomLeftRight 四个属性控制文本框内文字与四周边框之间的留白距离,合理的内边距能让文字在文本框中呼吸感更好,避免内容紧贴边框。LineWidth 属性以磅为单位设置边框粗细,配合 LineDashing 可以实现实线、点线、虚线等多种边框效果。

删除文本框

当文档中包含不再需要的文本框时,可以通过 Document.TextBoxes 集合来访问和管理所有文本框。Spire.Doc 提供了 RemoveAt() 方法按索引删除单个文本框,以及 Clear() 方法一次性清空所有文本框。删除操作直接作用于文档对象模型,保存后即生效。

from spire.doc import *

from spire.doc.common import *


inputFile = "./Data/TextBoxTemplate.docx"

outputFile = "RemoveTextBox.docx"


# 加载文档

doc = Document()

doc.LoadFromFile(inputFile)


# 删除第一个文本框

doc.TextBoxes.RemoveAt(0)


# 如需清空所有文本框,取消下面这行注释

# doc.TextBoxes.Clear()


doc.SaveToFile(outputFile, FileFormat.Docx)

doc.Close()

TextBoxes 是文档级别的集合,包含了当前文档中所有的文本框对象,无论它们位于哪个节或段落中。RemoveAt(0) 删除集合中索引为 0 的文本框,即文档中第一个文本框。需要注意的是,每次删除操作后集合的索引会自动调整,因此在批量删除时建议从后往前遍历,或者直接使用 Clear() 方法。如果只需要删除特定条件的文本框,可以先遍历 TextBoxes 集合检查其内容或位置属性,再调用 RemoveAt() 进行精确删除。


实用技巧

从文本框中提取文字

在某些场景下,我们需要将文本框中的文字内容提取出来用于其他用途。Spire.Doc 允许遍历文档中的所有文本框,并访问其内部的段落和表格内容。通过判断 ChildObjects 中各元素的 DocumentObjectType,可以区分段落和表格并分别提取文字。

document = Document()

document.LoadFromFile("./Data/ExtractTextFromTextBoxes.docx")


if document.TextBoxes.Count > 0:

    for i in range(document.TextBoxes.Count):

        textbox = document.TextBoxes.get_Item(i)

        for j in range(textbox.Body.Paragraphs.Count):

            para = textbox.Body.Paragraphs.get_Item(j)

            print(para.Text)

这段代码遍历文档中所有文本框,依次输出每个文本框内的段落文字。如果文本框中包含表格,则需要进一步遍历表格的行和单元格来提取完整内容。

批量添加格式统一的文本框

在制作模板类文档时,往往需要添加多个格式完全一致的文本框。可以将文本框的格式设置封装为函数,在循环中调用,从而避免重复代码并保证样式统一。


总结

本文主要介绍了如何使用 Python 借助 Spire.Doc 在 Word 文档中创建、设置和删除文本框。通过文本框对象模型,可以灵活控制文本框的样式、位置以及内部内容,实现对文档布局的自动化管理。同时,本文还介绍了文本框的批量删除和内容读取方法,帮助开发者更高效地处理文档中的特殊排版元素。掌握这些操作后,可以进一步应用于自动化文档生成、模板填充、格式调整以及文档清理等场景。在实际开发过程中,应根据具体需求合理管理文本框对象,并在执行批量删除操作时注意集合索引变化带来的影响。


阅读原文:点击这里


该文章在 2026/8/4 10:15:55 编辑过
关键字查询
相关文章
正在查询...
点晴ERP是一款针对中小制造业的专业生产管理软件系统,系统成熟度和易用性得到了国内大量中小企业的青睐。
点晴PMS码头管理系统主要针对港口码头集装箱与散货日常运作、调度、堆场、车队、财务费用、相关报表等业务管理,结合码头的业务特点,围绕调度、堆场作业而开发的。集技术的先进性、管理的有效性于一体,是物流码头及其他港口类企业的高效ERP管理信息系统。
点晴WMS仓储管理系统提供了货物产品管理,销售管理,采购管理,仓储管理,仓库管理,保质期管理,货位管理,库位管理,生产管理,WMS管理系统,标签打印,条形码,二维码管理,批号管理软件。
点晴免费OA是一款软件和通用服务都免费,不限功能、不限时间、不限用户的免费OA协同办公管理系统。
Copyright 2010-2026 ClickSun All Rights Reserved  粤ICP备13012886号-9  粤公网安备44030602007207号