如何在 C# 中将文本转换为 Word 以及将 Word 转换为文本

在现代软件开发中,处理文档内容是一个非常常见的需求。无论是生成报告、存储日志,还是处理用户输入,开发者都可能需要在纯文本与 Word 文档之间进行转换

  • 有时需要将文本转换为 Word,以便生成结构化的 .docx 文件,使内容更易于阅读、打印或分享。
  • 有时需要将 Word 文档转换为文本,以便进行内容分析、搜索索引或数据处理。

通过掌握这两种转换方法,开发者可以更高效地处理各种文档场景,提高应用程序的灵活性。

本文将介绍如何使用 Free Spire.Doc for .NET 在 C# 中完成以下操作:

  • 将文本字符串转换为 Word 文档
  • 将文本文件转换为 Word 文档
  • 将 Word 文档转换为文本文件

前提条件

  • 开发环境:Visual Studio 或任意 C# IDE
  • :Free Spire.Doc for .NET

可以通过 NuGet 安装 Free Spire.Doc:

Install-Package FreeSpire.Doc

提示:Free Spire.Doc 适合基本文档处理需求(每个文档不超过500个段落和25个表格),如果需要处理更大的文档,可选择商业版本。


在 C# 中将文本转换为 Word

处理纯文本时,通常有两种情况:

  1. 文本已经在内存中,例如来自用户输入或程序生成的字符串。
  2. 文本存储在 .txt 文件中,需要将其转换为 Word 文档。

将文本字符串转换为 Word

using Spire.Doc;
using Spire.Doc.Documents;class Program
{static void Main(){Document document = new Document();Section section = document.AddSection();Paragraph paragraph = section.AddParagraph();paragraph.AppendText("这是一个将文本字符串转换为 Word 的示例。");document.SaveToFile("TextStringToWord.docx", FileFormat.Docx);}
}

说明

  • Document 用于创建 Word 文档对象。
  • SectionParagraph 是 Word 文档结构的基本单元,可以根据需要添加多段文本或设置段落格式。
  • 输出文件 TextStringToWord.docx 将包含插入的文本内容。

扩展技巧:如果需要对文本应用不同字体、颜色或样式,可以使用 TextRange 对象进一步设置。


将文本文件转换为 Word

using Spire.Doc;namespace ConvertTextToWord
{internal class Program{static void Main(string[] args){// 创建Document类的对象Document doc = new Document();// 加载文本文件doc.LoadText("示例.txt");// 将文本文件保存为Worddoc.SaveToFile("Txt转Word.docx", FileFormat.Docx2016);doc.Close();}}
}

说明

  • LoadText 用于加载文本文件。
  • SaveToFile 将文本文件保存为Word文件,可选Doc, Docx等多种格式。

在 C# 中将 Word 转换为文本

有时我们需要从 Word 文档中提取内容用于分析或存储。这种情况下,可以将 Word 文档导出为纯文本文件:

using Spire.Doc;class Program
{static void Main(){Document document = new Document();document.LoadFromFile("Sample.docx");// 保存为纯文本文件document.SaveToFile("WordToText.txt", FileFormat.Txt);}
}

说明

  • 此操作会去除 Word 文档的格式,只保留文本内容。
  • 导出的文本可用于全文搜索、日志分析或进一步处理。
  • 如果需要保留某些简单格式(如换行或段落分隔),可在保存前手动遍历段落进行处理。

总结与建议

通过掌握文本与 Word 之间的双向转换,开发者可以:

  • 提高文档处理效率:将生成的文本内容快速转换为可打印或可分享的 Word 文档。
  • 便于数据分析:从 Word 文档中提取文本,用于搜索、索引或统计。
  • 保持格式灵活性:根据需要对段落、字体或样式进行自定义。

掌握这些方法后,C# 应用就可以更灵活地处理不同来源和类型的文档内容。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。
如若转载,请注明出处:http://www.pswp.cn/diannao/98016.shtml
繁体地址,请注明出处:http://hk.pswp.cn/diannao/98016.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Open SWE:重构代码协作的智能范式——从规划到PR的全流程自动化革命

在软件开发的演进史上,工具链的每一次革新都深刻重塑着开发者的工作方式。LangChain AI推出的Open SWE,作为首个开源的异步编程代理,正在重新定义代码协作的边界——它不再仅仅是代码生成工具,而是构建了从代码库分析、方案规划、代码实现到拉取请求创建的端到端自动化工作…

【ARDUINO】通过ESP8266控制电机【待测试】

需求 通过Wi-Fi控制Arduino驱动的3V直流电机。这个方案使用外部6V或9V电源,ESP8266作为Wi-Fi模块,Arduino作为主控制器,L298N作为电机驱动器。 手机/电脑 (Wi-Fi客户端) | | (Wi-Fi) | ESP8266 (Wi-Fi模块, AT指令模式) | | (串口通信) | A…

cuda编程笔记(18)-- 使用im2col + GEMM 实现卷积

我们之前介绍了cudnn调用api直接实现卷积,本文我们探究手动实现。对于直接使用for循环在cpu上的实现方法,就不过多介绍,只要了解卷积的原理,就很容易实现。im2col 的核心思想im2col image to column把输入 feature map 的每个卷积…

Loopback for Mac:一键打造虚拟音频矩阵,实现跨应用音频自由流转

虚拟音频设备创建 模拟物理设备:Loopback允许用户在Mac上创建虚拟音频设备,这些设备可被系统及其他应用程序识别为真实硬件,实现音频的虚拟化传输。多源聚合:支持将麦克风、应用程序(如Skype、Zoom、GarageBand、Logic…

深入解析Django重定向机制

概述 核心是一个基类 HttpResponseRedirectBase,以及两个具体的子类 HttpResponseRedirect(302 临时重定向)和 HttpResponsePermanentRedirect(301 永久重定向)。它们都是 HttpResponse 的子类,专门用于告诉…

【Java实战⑳】从IO到NIO:Java高并发编程的飞跃

目录一、NIO 与 IO 的深度剖析1.1 IO 的局限性1.2 NIO 核心特性1.3 NIO 核心组件1.4 NIO 适用场景二、NIO 核心组件实战2.1 Buffer 缓冲区2.2 Channel 通道2.3 Selector 选择器2.4 NIO 文件操作案例三、NIO2.0 实战3.1 Path 类3.2 Files 类3.3 Files 类高级操作3.4 NIO2.0 实战…

OpenCV 实战:图像模板匹配与旋转处理实现教程

目录 一、功能概述:代码能做什么? 二、环境准备:先搭好运行基础 1. 安装 Python 2. 安装 OpenCV 库 3. 准备图像文件 三、代码逐段解析:从基础到核心 1. 导入 OpenCV 库 2. 读取图像文件 3. 模板图像旋转:处理…

一、cadence的安装及入门教学(反相器的设计与仿真)

一、Cadence的安装 1、安装VMware虚拟机 2、安装带有cadence软件的Linux系统 注:网盘链接 分享链接:https://disk.ningsuan.com.cn/#s/8XaVdtRQ 访问密码:11111 所有文件压缩包及文档密码: Cadence_ic 3、安装tsmc18工艺库…

用ai写了个UE5插件

文章目录实际需求1.头文件2.源文件3.用法小结实际需求 这个需求来源于之前的一个项目,当时用了一个第三方插件,里边有一些绘制线段的代码,c层用的是drawdebugline,当时看底层,觉得应该没问题,不应该在rele…

机器学习从入门到精通 - 强化学习初探:Q-Learning到Deep Q-Network实战

机器学习从入门到精通 - 强化学习初探:从 Q-Learning 到 Deep Q-Network 实战 一、开场白:推开强化学习这扇门 不知道你有没有过这种感觉 —— 盯着一个复杂的系统,既想让它达到某个目标,又苦于无法用传统规则去精确描述每一步该怎…

【OpenHarmony文件管理子系统】文件访问接口解析

OpenHarmony文件访问接口(filemanagement_file_api) 概述 OpenHarmony文件访问接口(filemanagement_file_api)是开源鸿蒙操作系统中的核心文件系统接口,为应用程序提供了完整的文件IO操作能力。该项目基于Node-API&…

云手机运行是否消耗自身流量?

云手机运行是否消耗自身流量,取决于具体的使用场景和设置:若用户在连接云手机时,使用的是家中Wi-Fi、办公室局域网等非移动数据网络,那么在云手机运行过程中,基本不会消耗用户自身的移动数据流量,在家中连接…

JavaSe之多线程

一、多线程基本了解 1、多线程基本知识 1.进程:进入到内存中执行的应用程序 2.线程:内存和CPU之间开通的通道->进程中的一个执行单元 3.线程作用:负责当前进程中程序的运行.一个进程中至少有一个线程,一个进程还可以有多个线程,这样的应用程序就称之为多线程程序 4.简单理解…

产品月报|睿本云8月产品功能迭代

睿本云8月更新已陆续上线! 睿本云8月产品月报,点击查收👇小程序支付成功弹窗广告、企业会员增加卡券销售和卡券退货模块、工厂端可批量新增多门店订货单、门店端和工厂端新增“极速订货”、商品调拨业务支持自定义多种流程配置等功能迭代更新…

融云:当我们谈论 AI 重构业务时,我们到底在谈论什么

所有业务都值得用 AI 重新做一次。 这句话正在从一句鼓舞人心的口号,演变为一场无人可避的商业现实。AI 带来的结构性机会,意味着企业有机会从根本上重构成本、效率与体验的曲线。但这一切最终都要回到一个无比务实的问题上: AI 究竟如何在我…

org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length = 1异常

org.yaml.snakeyaml.error.YAMLException: java.nio.charset.MalformedInputException: Input length 1异常问题解决一、问题背景二、错误现象三、原因分析核心问题:字符集不匹配四、解决过程试错路径记录五、最终方案1.创建launch.json文件,修改VSCode…

【C语言】深入理解指针(5)

目录 sizeof和strlen 1.sizeof 2.strlen 3. sizeof 和 strlen 的对比 sizeof和strlen 1.sizeof sizeo正名:sizeof是操作符,不是函数,sizeof是操作符,括号内如果有计算不会进行计算sizeof 是操作符,用于计算变量所…

动态代理设计模式

JDK动态代理实现 动态代理利用了JDK API,动态地在内存中构建代理对象,从而实现对目标对象的代理功能.动态代理又被称为JDK代理或接口代理. 静态代理与动态代理的区别: 静态代理在编译时就已经实现了,编译完成后代理类是一个实际的class文 动态代理是在运行时动态生成的,即编译…

《Html泛型魔法学院:用霍格沃茨风格网页教授集合框架》

一、项目概述 这个创意教学网页,将Java泛型与集合框架知识融入霍格沃茨魔法世界主题。通过沉浸式UI设计和交互式代码练习,让抽象的技术概念变得生动有趣。主要技术栈包括: HTML5语义化结构Tailwind CSS框架Font Awesome图标库纯JavaScript交…

学习PaddlePaddle--环境配置-PyCharm + Conda​

第一阶段:安装与配置 Python 和 Conda​​ 虽然 PyCharm 可以管理环境,但我们先独立准备好 Conda 环境,这样更清晰可靠。 ​​1. 安装 Miniconda (Python 环境管理)​​ 1. ​​下载​​: • 访问 Miniconda 官网。 • 选择 ​​M…