C# 利用 Spire.Doc 读取 txt 内容并生成 Word 文档

Ada
Ada
发布时间:2026-10-16 | 2人浏览过
原创

在数据处理与报告自动化场景下,经常需要将纯文本(.txt)转换为格式化的 Microsoft Word (.docx) 文档。本文将基于 .NET Framework 环境,详细介绍如何借助第三方组件 Free Spire.Doc for .NET,利用 C# 编写程序,自动读取指定路径下的 txt 文件内容,并将其按段落写入新生成的 Word 文档中。

准备环境与配置

为了确保代码顺利运行,请在开始编码前准备好以下基础环境和依赖:

  • 开发工具:Visual Studio 2017 或更高版本。
  • .NET 运行时:.Net Framework 4.6.1。
  • 核心组件:Free Spire.Doc for .NET 库。
  • 数据源:一个包含待转换内容的 .txt 文本文件。

安装 Spire.Doc 组件

在使用 C# 操作 Word 之前,必须将 Spire.Doc 集成到项目中。你可以通过以下三种方式获取并添加引用:

第 1 步:通过 NuGet 程序包管理器安装

目的:快速且自动地下载并配置 DLL 引用。

操作方法 A(图形界面):
打开 Visual Studio,点击“解决方案资源管理器” → 右键点击项目下的“引用” → 选择“管理 NuGet 包”。在搜索框输入 Free Spire.Doc,找到对应包后点击右侧的“安装”按钮,等待系统完成依赖文件的下载。

操作方法 B(控制台命令):
打开“NuGet 程序包管理器控制台”,粘贴并运行以下命令来固定版本号(示例为 9.9.7):

Install-Package FreeSpire.Doc -Version 9.9.7

第 2 步:手动添加 DLL 引用

目的:在没有网络限制或需要离线集成的场景下使用。

操作流程:
前往官网或提供方渠道下载 Spire.Doc 安装包,解压后进入文件夹。在“BIN”目录下找到 Spire.Doc.dll 文件。随后回到 Visual Studio 的“解决方案资源管理器”,右键“引用” → “添加引用” → 点击“浏览”,选中本地的 Spire.Doc.dll 并完成添加。

C# 实现 txt 转 Word 的代码逻辑

转换的核心思路是利用 System.IO.StreamReader 逐行读取文本内容,再通过 Free Spire.Doc 提供的 API 创建 Word 结构对象,将内容追加至段落中,最后执行保存指令。

  1. 初始化文档结构:实例化 Document 对象,并向其中添加 Section(节)和 Paragraph(段落)容器。
  2. 流式读取文件:使用 StreamReader 构造方法指定要读取的 txt 文件路径及字符编码。
  3. 循环处理与样式应用:遍历每一行文本,调用 AppendText 将其加入段落。若需统一设置字体(如宋体)、加粗及颜色,可创建 ParagraphStyle 对象并应用。
  4. 输出结果:调用 SaveToFile 方法,指定输出路径和格式(推荐 FileFormat.Docx2013)。

核心代码实现

以下为完整的 C# 示例代码,涵盖了从引入命名空间到生成带样式的 Word 文档的全过程:

第 1 步:定义命名空间与入口类

确保项目引入了必要的库:

using Spire.Doc;
using Spire.Doc.Documents;
using System.Drawing;
using System.IO;
using System.Text;

第 2 步:执行读取与转换的主程序

该代码块演示了如何实例化文档对象,并使用默认编码读取名为 test.txt 的文件。每读入一行,便写入段落并应用自定义的紫色加粗宋体样式。

namespace CreateWordDocument_Doc
{
    class Program
    {
        static void Main(string[] args)
        {
            // 1. 实例化 Document 类的对象,并建立基本的章节和段落结构
            Document doc = new Document();
            Section section = doc.AddSection();
            Paragraph paragraph = section.AddParagraph();

            // 2. 以指定路径读取 txt 文件,Encoding.Default 处理中文兼容性
            StreamReader sr = new StreamReader("test.txt", Encoding.Default);

            string line;
            while ((line = sr.ReadLine()) != null)
            {
                // 将读取到的 txt 行内容添加到当前段落
                paragraph.AppendText(line);

                // --- 段落样式设置 ---
                // 创建一个新的段落样式对象
                ParagraphStyle style1 = new ParagraphStyle(doc);
                style1.Name = "titleStyle"; // 样式名称标识
                
                // 格式化具体特征:加粗、颜色(Purple)、字体(宋体)、字号(12pt)
                style1.CharacterFormat.Bold = true;
                style1.CharacterFormat.TextColor = Color.Purple;
                style1.CharacterFormat.FontName = "宋体";
                style1.CharacterFormat.FontSize = 12;

                // 将样式注册到文档的 Styles 集合中
                doc.Styles.Add(style1);
                
                // 将该样式应用到当前段落
                paragraph.ApplyStyle("titleStyle");
            }
            
            // 3. 将生成的文档保存为 docx 格式的 Word
            doc.SaveToFile("addTxttoWord.docx", FileFormat.Docx2013);
            
            // (可选) 生成完成后直接打开该 Word 文件进行预览
            System.Diagnostics.Process.Start("addTxttoWord.docx");
        }
    }
}

第 3 步:验证生成的文档效果

编译运行上述代码后,在当前工程的调试目录(通常为 bin\Debug)下会生成名为 addTxttoWord.docx 的文件。打开该文件即可看到已按照设置好的紫色、加粗、宋体格式排版完成的 Word 文档内容。

注意事项

路径配置:代码示例中的 test.txt 读取路径和 addTxttoWord.docx 保存路径均为相对路径。默认情况下,它们指向 Visual Studio 运行时的根目录,通常是:F:\VS2017Project\CreateWordDocument_Doc\CreateWordDocument_Doc\bin\Debug(盘符可能因实际项目存放位置而异)。若文件不在该目录下,请务必修改字符串参数为绝对路径。

总结

通过结合 IO 流技术与 Spire.Doc 封装类,我们实现了文本数据向 Office 文档的结构化转换。这种方式无需本地安装 Microsoft Word 即可批量生成符合排版要求的报表。以上就是 C# 实现读取 txt 文件生成 Word 文档的详细内容,更多关于 C# 文件读写与 Word 自动化处理的资料请关注本站其它相关文章!

相关标签:

本站声明

本文内容仅供参考,不代表本站观点。转载或引用请注明出处。如发现内容问题,请通过联系我们页面反馈。

Python 相关产品和应用

全部下载

专题列表