C#代码轻松实现为Word段落或文本添加底纹

 更新时间:2026年09月05日 08:38:06   作者:2501_93070778  
在 Microsoft Word 中,底纹功能可以为指定的文本或段落添加背景颜色,本文将介绍如何使用 C# 为 Word 中的段落或指定文本添加底纹,并通过 .NET 文档处理库实现这一功能,有需要的可以了解下

在 Microsoft Word 中,底纹功能可以为指定的文本或段落添加背景颜色。合理使用底纹不仅能够提升文档的视觉效果,还可以帮助区分不同内容区域,使文档结构更加清晰、内容更易阅读。

本文将介绍如何使用 C# 为 Word 中的段落或指定文本添加底纹,并通过 .NET 文档处理库实现这一功能。

安装 .NET 文档处理库

首先,需要将相关文档处理库中的 DLL 文件添加到 .NET 项目中作为引用。

PM> Install-Package Spire.Doc

使用 C# 为 Word 段落添加底纹

在 C# 中,可以通过设置段落的背景颜色,为 Word 文档中的指定段落添加底纹。相关 .NET 文档处理库通常提供对应的属性和方法来实现这一功能。以下是具体步骤:

  • 创建一个 Document 实例。
  • 使用 Document.LoadFromFile() 方法加载 Word 文档。
  • 通过 Document.Sections[] 属性获取指定的节。
  • 通过 Section.Paragraphs[] 属性获取指定的段落。
  • 使用 Paragraph.Format.BackColor 属性设置段落的背景颜色。
  • 使用 Document.SaveToFile() 方法保存处理后的文档。

完整示例代码如下:

using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing;
namespace WordParagrahShade
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个 Document 实例
            Document document = new Document();
            // 加载 Word 文档
            document.LoadFromFile("Sample.docx");
            // 获取第一个节
            Section section = document.Sections[0];
            // 获取第二个段落
            Paragraph paragaph = section.Paragraphs[1];
            // 设置段落的背景颜色
            paragaph.Format.BackColor = Color.Yellow;
            // 保存处理后的文档
            document.SaveToFile("ParagraphBackground.docx", FileFormat.Docx);
        }
    }
}

使用 C# 为 Word 中的指定文本添加底纹

如果只需要为 Word 中的指定文本添加底纹,可以先通过 Paragraph.Find() 方法查找目标文本,获取其文本范围,然后通过 TextRange.CharacterFormat.TextBackgroundColor 属性为该文本范围设置背景颜色。具体步骤如下:

  • 创建一个 Document 实例。
  • 使用 Document.LoadFromFile() 方法加载 Word 文档。
  • 通过 Document.Sections[] 属性获取指定的节。
  • 通过 Section.Paragraphs[] 属性获取指定的段落。
  • 使用 Paragraph.Find() 方法查找指定文本。
  • 使用 TextSelection.GetAsOneRange() 方法获取找到文本的范围。
  • 通过 TextRange.CharacterFormat.TextBackgroundColor 属性设置文本范围的背景颜色。
  • 使用 Document.SaveToFile() 方法保存文档。

完整示例代码如下:

using Spire.Doc;
using Spire.Doc.Documents;
using Spire.Doc.Fields;
using System.Drawing;

namespace ShadeText
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建一个 Document 实例
            Document document = new Document();

            // 加载 Word 文档
            document.LoadFromFile("Sample.docx");

            // 获取第一个节
            Section section = document.Sections[0];

            // 获取第一个段落
            Paragraph paragaph = section.Paragraphs[0];

            // 在段落中查找指定文本
            TextSelection selection = paragaph.Find("Spire.Doc for .NET", true, false);

            // 获取找到文本的文本范围
            TextRange range = selection.GetAsOneRange();

            // 设置文本范围的背景颜色
            range.CharacterFormat.TextBackgroundColor = Color.Red;

            // 保存处理后的文档
            document.SaveToFile("TextBackground.docx", FileFormat.Docx);
        }
    }
}

知识扩展

在 C# 中为 Word 段落或文本添加底纹(背景色或图案),常用的方法有三种:使用 Aspose.WordsSpire.Doc 或 Open XML SDK
底纹可以作用于整个段落(Paragraph)或特定的文本范围(Run)。下面分别给出三种库的实现方案。

准备工作

创建一个 .NET 控制台项目(.NET 6+ 或 Framework),根据需要安装对应的 NuGet 包。

安装命令说明
Aspose.WordsInstall-Package Aspose.Words商业库,功能强大
Spire.DocInstall-Package Spire.Doc商业库(有免费版限制)
Open XML SDKInstall-Package DocumentFormat.OpenXml免费开源,微软官方

商业库需要授权,免费版通常有水印或页数限制。

方案一:使用 Aspose.Words(推荐)

1. 为整个段落设置底纹(背景色)

using Aspose.Words;
using Aspose.Words.Drawing;

public static void AddShadingToParagraph(string docPath, string savePath)
{
    Document doc = new Document(docPath);
    DocumentBuilder builder = new DocumentBuilder(doc);

    // 插入一个段落
    builder.Writeln("这是一个有底纹的段落。");

    // 获取第一个段落
    Paragraph para = doc.FirstSection.Body.Paragraphs[0];

    // 设置段落底纹(背景色)
    para.ParagraphFormat.Shading.BackgroundPatternColor = Color.LightBlue;

    doc.Save(savePath);
}

2. 为特定文本(Run)设置底纹

文本底纹实际上是给 Run 对象设置字符样式中的底纹。

public static void AddShadingToText(string docPath, string savePath)
{
    Document doc = new Document(docPath);
    DocumentBuilder builder = new DocumentBuilder(doc);

    builder.Writeln("普通文本。");
    builder.Write("这段文字有");
    builder.Font.Shading.BackgroundPatternColor = Color.Yellow;
    builder.Write("黄色底纹");
    builder.Font.Shading.ClearFormatting(); // 清除底纹
    builder.Write("。后续正常。");

    doc.Save(savePath);
}

说明Font.Shading 控制当前字体样式,会影响之后写入的文本,直到清除或修改。

方案二:使用 Spire.Doc

1. 给段落添加底纹

using Spire.Doc;
using Spire.Doc.Fields;
using System.Drawing;

public static void AddShadingToParagraphSpire(string docPath, string savePath)
{
    Document doc = new Document();
    doc.LoadFromFile(docPath);

    Section section = doc.Sections[0];
    Paragraph para = section.AddParagraph();
    para.AppendText("这段落有灰色底纹。");

    // 设置段落背景色
    para.Format.BackColor = Color.LightGray;

    doc.SaveToFile(savePath, FileFormat.Docx2016);
}

2. 给文本范围(TextRange)添加底纹

public static void AddShadingToTextSpire(string docPath, string savePath)
{
    Document doc = new Document();
    doc.LoadFromFile(docPath);

    Section section = doc.Sections[0];
    Paragraph para = section.AddParagraph();

    TextRange range = para.AppendText("带绿色底纹的文字");
    range.CharacterFormat.BackColor = Color.Green;

    doc.SaveToFile(savePath, FileFormat.Docx2016);
}

Spire.Doc 的免费版会在文档中添加水印,且限制操作页数。

方案三:使用 Open XML SDK(免费开源,底层控制)

Open XML SDK 直接操作 Word 的 XML 结构,需要手动创建底纹元素。

1. 为段落添加底纹

using DocumentFormat.OpenXml.Packaging;
using DocumentFormat.OpenXml.Wordprocessing;
using DocumentFormat.OpenXml;
using System.Linq;
public static void AddShadingToParagraphOpenXml(string docPath, string savePath)
{
    using (WordprocessingDocument doc = WordprocessingDocument.Open(docPath, true))
    {
        Body body = doc.MainDocumentPart.Document.Body;
        // 获取第一个段落
        Paragraph para = body.Descendants<Paragraph>().FirstOrDefault();
        if (para != null)
        {
            // 创建段落属性对象
            ParagraphProperties pp = para.GetFirstChild<ParagraphProperties>();
            if (pp == null)
            {
                pp = new ParagraphProperties();
                para.PrependChild(pp);
            }
            // 创建底纹属性(背景色)
            Shading shading = new Shading()
            {
                Val = ShadingPatternValues.Clear, // 纯色
                Color = "auto",
                Fill = "FF0000" // 红色(十六进制 RGB)
            };
            pp.Shading = shading;
        }
        doc.Save();
    }
}

2. 为特定文本(Run)添加底纹

public static void AddShadingToRunOpenXml(string docPath, string savePath)
{
    using (WordprocessingDocument doc = WordprocessingDocument.Open(docPath, true))
    {
        Body body = doc.MainDocumentPart.Document.Body;

        // 获取第一个段落
        Paragraph para = body.Descendants&lt;Paragraph&gt;().FirstOrDefault();
        if (para != null)
        {
            // 创建 Run 并添加文本
            Run run = new Run();
            RunProperties rp = new RunProperties();

            // 设置字符底纹(背景色)
            Shading shading = new Shading()
            {
                Val = ShadingPatternValues.Clear,
                Color = "auto",
                Fill = "00FF00" // 绿色
            };
            rp.Shading = shading;

            run.AppendChild(rp);
            run.AppendChild(new Text("绿色底纹的文字"));

            para.AppendChild(run);
        }

        doc.Save();
    }
}

总结

通过 C# 可以灵活地为 Word 文档中的指定文本或段落添加底纹,从而突出重要内容并改善文档的可读性。对于整段内容,可以直接设置段落的背景颜色;如果只需要突出部分文字,则可以先查找目标文本,再针对对应的文本范围设置背景颜色。

本文介绍了这两种常见的实现方式,并展示了如何通过 .NET 文档处理库完成相关操作。根据实际需求选择段落级或文本级底纹,可以更加精准地控制 Word 文档的格式和视觉效果。

以上就是C#代码轻松实现为Word段落或文本添加底纹的详细内容,更多关于C# Word段落或文本添加底纹的资料请关注脚本之家其它相关文章!

相关文章

  • C#实现List<T>去重的多种高效方法

    C#实现List<T>去重的多种高效方法

    在 C# 开发中,处理集合数据是日常开发任务的重要组成部分,有时我们需要对 List<T> 进行去重操作,以确保集合中的元素唯一,本文将介绍几种实现 List<T> 去重的方法,并探讨它们的优缺点和适用场景,需要的朋友可以参考下
    2025-12-12
  • C#使用InstallerProjects打包桌面应用程序的完整步骤

    C#使用InstallerProjects打包桌面应用程序的完整步骤

    这篇文章主要给大家介绍了关于C#使用InstallerProjects打包桌面应用程序的完整步骤,文中通过示例代码介绍的非常详细,对大家学习或者使用C#具有一定的参考学习价值,需要的朋友们下面来一起学习学习吧
    2019-07-07
  • C#线程倒计时器源码分享

    C#线程倒计时器源码分享

    这篇文章主要为大家分享了C#线程倒计时器源码,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2018-01-01
  • C# SQLite数据库入门使用说明

    C# SQLite数据库入门使用说明

    这篇文章主要给大家介绍了关于C#中SQLite数据库入门使用的相关资料,文中通过图文以及示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2018-11-11
  • C#使用反射和LINQ查询程序集的元数据

    C#使用反射和LINQ查询程序集的元数据

    在 C# 中,反射是一个强大的工具,它允许我们在运行时检查程序集、类型、方法等的元数据,结合 LINQ,我们可以用更简洁和表达力强的方式处理这些信息,本文将详细讲解如何使用反射与 LINQ 查询程序集的元数据,需要的朋友可以参考下
    2024-08-08
  • 基于C#实现哈夫曼树算法

    基于C#实现哈夫曼树算法

    哈夫曼树又称最优二叉树,也就是带权路径最短的树,对于哈夫曼树,我想大家对它是非常的熟悉,使用下面我们就来学习一下如何通过C#实现哈夫曼树算法吧
    2023-11-11
  • C#使用log4net的3种调用方法

    C#使用log4net的3种调用方法

    log4net是一个用于记录日志的开源框架,它是C#中最常用的日志记录工具之一,本文给大家介绍了C#使用log4net的3种调用方法,通过图文和代码给大家讲解的非常详细,需要的朋友可以参考下
    2024-03-03
  • Unity shader实现自由放大缩小效果

    Unity shader实现自由放大缩小效果

    这篇文章主要为大家详细介绍了Unity shader实现自由放大缩小效果,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2019-02-02
  • C#将Excel文件转换为Markdown表格的三行代码

    C#将Excel文件转换为Markdown表格的三行代码

    在撰写技术文档或整理数据时,我们常常需要将 Excel 表格转为 Markdown 格式,以便嵌入到博客、项目文档或 README 中,因此本文将展示如何使用 C# 和 Spire.XLS 库,通过一行核心方法快速将 Excel 文件保存为 Markdown 文件,需要的朋友可以参考下
    2026-03-03
  • C#开发中常用的加密解密方法汇总

    C#开发中常用的加密解密方法汇总

    这篇文章主要介绍了C#开发中常用的加密解密方法汇总,帮助大家更好的理解和使用c#,感兴趣的朋友可以了解下
    2020-11-11

最新评论