当前位置: 首页 > news >正文

C# 实现 Word 文档文本批量替换 (动态填充)

环境准备

将 Free Spire.Doc 添加到项目中最便捷的方式是通过 NuGet 包管理器。在 Visual Studio 的“管理 NuGet 程序包”中搜索 FreeSpire.Doc 并安装,或在包管理器控制台中执行以下命令:

Install-Package FreeSpire.Doc

安装完成后,在代码文件顶部引入核心命名空间:

using Spire.Doc; using Spire.Doc.Documents; using System.Text.RegularExpressions;

基础示例:替换 Word 中的指定文本

用到的免费 .NET 库的核心替换方法是Document.Replace(string matchString, string newValue, bool caseSensitive, bool wholeWord),该方法在整个文档范围内查找指定的字符串并将其替换为新文本。

参数说明

  • matchString:要查找的目标文本
  • newValue:替换后的新文本
  • caseSensitive:是否区分大小写(true为区分,false为不区分)
  • wholeWord:是否仅匹配完整单词(true时仅替换独立的完整单词)

以下示例演示将文档中的旧公司名称替换为新名称:

public static void BasicReplace(string inputPath, string outputPath) { // 创建 Document 对象并加载文档 Document document = new Document(); document.LoadFromFile(inputPath); // 执行替换操作:不区分大小写,匹配完整单词 document.Replace("old_company_name", "NewTech Solutions Inc.", false, true); // 保存修改后的文档 document.SaveToFile(outputPath, FileFormat.Docx); document.Close(); }

该方法在替换过程中能够保留原文本的格式与排版,确保文档的其他元素(如图片、表格、页眉页脚等)不受影响。

可选:仅替换首次出现的文本

若业务需求仅需将文档中第一次出现的目标文本进行替换,可在调用Replace方法之前将Document.ReplaceFirst属性设置为true

public static void ReplaceFirstInstance(string inputPath, string outputPath) { Document document = new Document(); document.LoadFromFile(inputPath); // 将替换模式设置为仅替换第一个匹配项 document.ReplaceFirst = true; document.Replace("placeholder", "actual value", false, true); document.SaveToFile(outputPath, FileFormat.Docx); document.Close(); }

进阶:使用正则表达式进行模式匹配替换

对于需要匹配某种模式而非固定字符串的场景(例如替换所有占位符{{...}}、匹配特定格式的编号等),可以使用Document.Replace(Regex regex, string newValue)方法的重载版本。

以下示例展示如何将文档中所有由花括号包裹的占位符替换为指定的值:

using System.Text.RegularExpressions; public static void RegexReplace(string inputPath, string outputPath) { Document document = new Document(); document.LoadFromFile(inputPath); // 匹配形如 {{placeholder}} 的占位符模式 Regex placeholderRegex = new Regex(@"\{\{.*?\}\}"); // 将所有匹配的占位符替换为目标字符串 document.Replace(placeholderRegex, "replacement text"); document.SaveToFile(outputPath, FileFormat.Docx); document.Close(); }

更复杂的使用场景中,还可调用Replace(Regex, TextSelection)等重载变体进行带格式的替换操作。


扩展:查找文本并做进一步处理(查找高亮)

除了直接替换,Document.FindAllString方法可以获取所有匹配的TextSelection对象集合,便于在替换前对匹配结果进行预览、统计,或在替换后应用格式设置(如高亮显示)。

using System.Drawing; public static void FindAndHighlight(string inputPath, string outputPath) { Document document = new Document(); document.LoadFromFile(inputPath); // 查找所有匹配的文本 TextSelection[] selections = document.FindAllString("keyword", false, true); foreach (TextSelection selection in selections) { // 将匹配的文本设置为高亮黄色 selection.GetAsOneRange().CharacterFormat.HighlightColor = Color.Yellow; } document.SaveToFile(outputPath, FileFormat.Docx); document.Close(); }
http://www.jsqmd.com/news/1151481/

相关文章:

  • 10个让AI画得更准的神奇魔法词:实测对比效果惊人
  • 一步跨到4K时代,Seedance2.5官网在哪?行业拐点来了
  • Agent 开发框架怎么选?LangGraph、LlamaIndex、CrewAI 深度对比
  • Python asyncio在AI编程中的深度应用:从协程到异步Agent架构
  • 为什么花了十几万搭知识库,生成内容还是很多幻觉?
  • 团队文件共享指南:解锁高效协作新姿势
  • 2026PDF各类格式转换全方案:免费无水印在线网站、电脑本地软件实操指南
  • 半导体百科 | FAB设备预测性维护实战
  • 商业数据分析-助睿数智-互联网用户行为日志数据挖掘与分析报告
  • 2026排盘结果导出工具怎么选:看命盘留存、格式兼容和复盘效率
  • web应用技术-课程设计
  • Unity游戏模组开发基础:BepInEx框架5分钟极速安装与配置指南
  • 独立搭建 AI Agent 全景指南:从理论到实战
  • 我一个人写了个通用审批引擎,能对接所有服务
  • AI驱动FDC实战:半导体制造良率提升之路
  • Loop Engineering 入门:Prompt、Harness、Loop 一次讲透
  • Socket
  • 企业AI管理工具 AIHelms,统一管模型控成本算价值!下载
  • 药品销售平台设计与实现开题报告
  • 绕过 Claude Desktop!Affinity MCP 直连 WorkBuddy/Cursor 完整配置指南(Windows)
  • RC 滤波设计原理(运放偏置电压与 AFE 供电场景)
  • 从函数调用到进程替换:使用 execl、CMake 与 PowerShell 构建一个多可执行程序
  • Hive sql 初级题 05
  • 基于 STM32 的羽毛球挥拍速度与击球点分析系统设计与实现
  • 【语言】C++
  • 第一章 必备基础知识
  • DOPE-硫辛酸DOPE-Lipoic Acid|二油酰磷脂酰乙醇胺-硫辛酸DOPE-LA
  • 百度网盘秒传脚本终极指南:3分钟学会永久分享大文件
  • Vikunja 自建任务管理:个人待办和小团队协作够不够用
  • 茶叶加工厂信息化管理系统设计与实现开题报告