半岛权威十大直营(官方)网站

Word处理控件Spire.Doc系列教程:C# 通过模板创建 Word 文档

翻译|使用教程|编辑:吉炜炜|2025-04-27 10:11:00.530|阅读 32 次

概述:在企业应用中,无论是生成报告、合同还是个性化信函,程序化创建 Word 文档都是常见需求。Spire.Doc for .NET 提供了无需依赖 Microsoft Office 的 C# Word 文档处理解决方案。

# 界面/图表报表/文档/IDE等千款热门软控件火热销售中 >>

相关链接:

在企业应用中,无论是生成报告、合同还是个性化信函,程序化创建 Word 文档都是常见需求E-iceblue旗下Spire系列产品是国产文档处理领域的优秀产品,支持国产化,帮助企业高效构建文档处理的应用程序。Spire.Doc for .NET 提供了无需依赖 Microsoft Office 的 C# Word 文档处理解决方案。

本文将探讨两种基于模板生成文档的有效方法:

  • 通过替换文本占位符创建Word文档
  • 通过替换书签内容创建Word文档

.NET Word文档生成类库

Spire.Doc for .NET 是一款专业的 Word 文档处理 API,可帮助开发者实现多样化的文档操作功能。主要特性包括:

该库特别适用于需要保证一致性和效率的企业级文档自动化生成场景。

开始前,请从我们的官方网站下载 Spire.Doc for .NET,或通过 NuGet 包管理器使用以下命令进行安装:


PM> Install-Package Spire.Doc

通过替换文本占位符创建 Word 文档

Spire.Doc 库中的 Document.Replace 方法可用于查找替换 Word 文档中的特定文本,实现基于模板的动态文档生成。

通过替换文本生成Word文档的步骤如下:

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

namespace CreateWordByReplacingPlaceholders
{
    class Program
    {
        static void Main(string[] args)
        {
            // 初始化一个新的 Document 对象
            Document document = new Document();

            // 加载模板 Word 文件
            document.LoadFromFile("C:\\Users\\Administrator\\Desktop\\template.docx");

            // 字典用于保存占位符及其替换内容
            Dictionary replaceDict = new Dictionary
            {
                { "#name#", "张三" },
                { "#gender#", "男" },
                { "#birthdate#", "1990年3月20日" },
                { "#address#", "金盆岭街道" },
                { "#city#", "长沙" },
                { "#province#", "湖南" },
                { "#postal#", "410000" },
                { "#country#", "中国" }
            };

            // 用相应的值替换文档中的占位符
            foreach (KeyValuePair kvp in replaceDict)
            {
                document.Replace(kvp.Key, kvp.Value, true, true);
            }

            // 图像文件的路径
            String imagePath = "C:\\Users\\Administrator\\Desktop\\portrait.png";

            // 用图像替换照片占位符
            ReplaceTextWithImage(document, "#photo#", imagePath);

            // 保存修改后的文档
            document.SaveToFile("ReplacePlaceholders.docx", FileFormat.Docx);

            // 释放资源
            document.Dispose();
        }

        // 方法用于用图像替换文档中的占位符
        static void ReplaceTextWithImage(Document document, String stringToReplace, String imagePath)
        {
            // 从指定路径加载图像
            Image image = Image.FromFile(imagePath);
            DocPicture pic = new DocPicture(document);
            pic.LoadImage(image);

            // 在文档中查找占位符
            TextSelection selection = document.FindString(stringToReplace, false, true);

            // 获取找到的文本范围
            TextRange range = selection.GetAsOneRange();
            int index = range.OwnerParagraph.ChildObjects.IndexOf(range);

            // 插入图像并移除占位符文本
            range.OwnerParagraph.ChildObjects.Insert(index, pic);
            range.OwnerParagraph.ChildObjects.Remove(range);
        }
    }
}

替换模板中的文本生成 Word

通过替换书签内容创建Word文档

Spire.Doc中的 BookmarksNavigator 类专门用于管理 Word 文档中的书签,该类提供了定位书签和替换书签内容的方法。 

通过替换书签内容生成Word文档的步骤如下:

using Spire.Doc;
using Spire.Doc.Documents;

namespace CreateWordByReplacingBookmarkContent
{
    class Program
    {
        static void Main(string[] args)
        {
            // 初始化一个 Document 对象并加载模板
            Document document = new Document();
            document.LoadFromFile("C:\\Users\\Administrator\\Desktop\\template.docx");

            // 定义书签名称及其替换值
            Dictionary replaceDict = new Dictionary
            {
                { "name", "Tech Innovations Inc." },
                { "year", "2015" },
                { "headquarter", "美国,纽约" },
                { "history", "Tech Innovations Inc. 由一群工程师和企业家创立,他们的愿景是彻底改变技术行业。" +
                "公司最初专注于软件开发,后来将业务范围扩展到人工智能和云计算解决方案。" }
            };

            // 创建一个 BookmarksNavigator 来管理文档中的书签
            BookmarksNavigator bookmarkNavigator = new BookmarksNavigator(document);

            // 用相应的值替换每个书签的内容
            foreach (KeyValuePair kvp in replaceDict)
            {
                bookmarkNavigator.MoveToBookmark(kvp.Key); // 导航到书签
                bookmarkNavigator.ReplaceBookmarkContent(kvp.Value, true); // 替换内容
            }

            // 保存修改后的文档
            document.SaveToFile("ReplaceBookmarkContent.docx", FileFormat.Docx2013);

            // 释放资源
            document.Dispose();
        }
    }
}

替换书签内容生成Word文档

结论

两种方法都提供了有效的从模板生成Word文档的方式,但有重要差异:

1.文本替换法:

2.书签替换法:

此外,Spire.Doc for .NET 还支持邮件合并功能,这为从模板动态生成文档提供了另一种强大的方式。该功能特别适用于批量创建个性化文档,例如套用信函或报告,这些文档的数据通常来自数据库或其他结构化数据源。


————————————————————————————————————————

关于慧都科技:

慧都科技是一家行业数字化解决方案公司,长期专注于软件、油气与制造行业。公司基于深入的业务理解与管理洞察,以系统化的业务建模驱动技术落地,帮助企业实现智能化运营与长期竞争优势。在软件工程领域,我们提供开发控件、研发管理、代码开发、部署运维等软件开发全链路所需的产品,提供正版授权采购、技术选型、个性化维保等服务,帮助客户实现技术合规、降本增效与风险可控。慧都科技E-iceblue的官方授权代理商,提供E-iceblue系列产品免费试用,咨询,正版销售等于一体的专业化服务E-iceblue旗下Spire系列产品是国产文档处理领域的优秀产品,支持国产化,帮助企业高效构建文档处理的应用程序。

欢迎下载|体验更多E-iceblue产品

获取更多信息请咨询 ;技术交流Q群(1041253375




标签:

本站文章除注明转载外,均为本站原创或翻译。欢迎任何形式的转载,但请务必注明出处、不得修改原文相关链接,如果存在内容上的异议请邮件反馈至chenjj@wqylolg.cn

文章转载自:慧都网

为你推荐

  • 推荐视频
  • 推荐活动
  • 推荐产品
  • 推荐文章
  • 慧都慧问
扫码咨询


添加微信 立即咨询

电话咨询

客服热线
023-68661681

TOP