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

使用 C# 将 HTML 转 Word 或者 Word 转 HTML

清理收藏夹。

HTML作为Web内容的标准格式,与Word这种通用的办公文档格式之间的相互转换,是许多企业级应用中的常见需求。无论是将数据库中的动态内容生成为Word报告,还是将现有的Word文档发布为网页,掌握高效的转换方法都能显著提升工作效率。

本文将介绍如何使用 Spire.Doc for .NET 这个专业的文档处理组件,通过 C# 代码轻松实现 HTML 与 Word 之间的相互转换。

为什么选择 Spire.Doc for .NET?
.NET 框架本身并不原生支持 Word 或 HTML 文档的操作与转换。虽然也有其他开源方案(如 HtmlAgilityPack 搭配 OpenXML SDK),但往往需要开发者手动处理大量细节,且在样式保留、图片嵌入等方面存在不足。

Spire.Doc for .NET 则提供了一个强大且易用的 API,无需在服务器上安装 Microsoft Office 即可完成文档的创建、编辑和转换。它在转换质量上表现出色:

样式保留 :完整支持 HTML 中的文本格式、颜色、对齐方式等 CSS 样式。
图片处理 :能自动识别并嵌入 HTML 中的 <img> 标签图片。
表格结构 :能够保留 HTML 表格的原始布局,避免错乱。
开发复杂度 :API 设计简洁,开发门槛低。
准备工作:安装 Spire.Doc
在开始编码之前,首先需要在项目中添加 Spire.Doc 的引用。推荐通过 NuGet 包管理器控制台执行以下命令来安装:

Install-Package Spire.Doc

场景一:将 HTML 字符串转换为 Word
这种场景非常灵活,适用于从数据库、API 接口或其他动态数据源获取 HTML 内容,并即时生成 Word 文档。

以下代码演示了如何读取一个 HTML 文件的内容(作为字符串),然后将其转换为一个 .docx 文件:

using Spire.Doc; using Spire.Doc.Documents; using System.IO; namespace ConvertHtmlStringToWord { class Program { static void Main(string[] args) { // 1. 创建 Document 对象 Document document = new Document(); // 2. 添加一个节(Section) Section section = document.AddSection(); // 可选:设置页面边距 section.PageSetup.Margins.All = 2; // 3. 添加一个段落(Paragraph) Paragraph paragraph = section.AddParagraph(); // 4. 从文件读取 HTML 字符串 string htmlFilePath = @"C:\Users\Administrator\Desktop\Html.html"; string htmlString = File.ReadAllText(htmlFilePath, System.Text.Encoding.UTF8); // 5. 将 HTML 字符串追加到段落中 paragraph.AppendHTML(htmlString); // 6. 保存为 Word 文档 document.SaveToFile("AddHtmlStringToWord.docx", FileFormat.Docx); // 7. 释放资源 document.Dispose(); } } }

核心方法解析 :

Paragraph.AppendHTML(htmlString) 是转换的关键。它能够解析传入的 HTML 字符串,并将其格式、图片和布局完整地转换为 Word 段落内容。
通过 document.SaveToFile() 方法,我们可以指定输出格式为 FileFormat.Docx。
场景二:将 HTML 文件直接转换为 Word
如果你已经有一个现成的 HTML 文件,希望直接将其转换为 Word 文档,代码会更加简洁:

using Spire.Doc; namespace ConvertHtmlToWord { class Program { static void Main(string[] args) { // 1. 创建 Document 对象 Document document = new Document(); // 2. 直接加载 HTML 文件 document.LoadFromFile(@"C:\Users\Administrator\Desktop\MyHtml.html", FileFormat.Html); // 3. 保存为 Word 文档 document.SaveToFile("HtmlToWord.docx", FileFormat.Docx); // 4. 释放资源 document.Dispose(); } } }

这种方式一步到位,Document.LoadFromFile() 方法直接支持加载 FileFormat.Html 格式的文件,省去了手动读取文件内容的步骤。

关键注意事项
在实际使用中,有几个方面需要留意以确保转换效果最佳:

CSS 样式支持 :Spire.Doc 支持大多数常见的 CSS 样式,如 font-size、color、text-align 等。但对于一些非常复杂的 CSS 布局,转换结果可能会有细微差异。
图片路径 :HTML 中的 <img> 标签会被自动转换为 Word 中的图片。但请确保图片的路径(无论是本地路径还是网络 URL)在转换时是可访问的。
表格布局 :对于结构复杂的表格,建议避免使用 table-layout: fixed 等特殊布局属性,以保证转换后的表格在 Word 中显示正确。
性能 :对于包含大量内容或高清图片的大文件,建议在后台线程或异步任务中执行转换,避免阻塞主线程。
总结
通过 Spire.Doc for .NET,开发者可以用极少的代码量,在 C# 项目中实现高质量、高保真的 HTML 与 Word 互转。无论是处理动态生成的 HTML 字符串,还是批量转换现有的 HTML 文件,这个库都提供了一个稳定、高效的解决方案,能够帮助你快速构建文档自动化处理流程,将精力更多地投入到业务逻辑本身。
————————————————
https://blog.csdn.net/asdzx67/article/details/162264914

http://www.jsqmd.com/news/1216150/

相关文章:

  • 消费电子零部件三维检测方案
  • 可变形池化 deformable RS RoI Pooling
  • 空气炸锅微波炉电炖锅红外温控升级:厨电红外测温传感器国产替代方案横向对比
  • 劳力士大陆维修中心电话售后维修服务热线权威公示(2026年7月最新) - 劳力士服务中心
  • Flutter 自定义转场动画:PageRoute 与自定义路由的深度定制
  • 合肥投影仪哪家维修最专业?差点被坑八百块后我只认这家
  • 带孩子自驾游选什么大型SUV好:沃尔沃XC90、奔驰GLE与蔚来ES8家庭出行对比 - 信息情报站
  • GPIO入门
  • MySQL 索引使用规范:常见失效场景与优化实操方案
  • 操控基因谁更强:沃尔沃XC70、理想L7、传祺ES9动态质感深度对比 - 信息情报站
  • 即梦AI生成的视频怎么去水印?2026大马工具箱+快快无印免费工具实测教程 - 科技大爆炸
  • 【工具汇总】鸿蒙 ArkWeb完整调试工具步骤
  • Go 服务自动扩缩容:HPA 指标设计和冷启动优化
  • 20万中型家用轿车推荐:沃尔沃S60、奔驰C级、宝马3系安全与油耗对比 - 信息情报站
  • 低成本创业科普:为什么全媒体广告代理是可关注的轻资产赛道
  • 家庭用车纯电轿车怎么选:沃尔沃ES90、蔚来ET7与宝马i5空间安全与实用性对比 - 信息情报站
  • FW-D1 vs 迈来芯MLX90614:参数全面对比
  • Agent 任务队列架构:优先级、死信队列和状态追踪
  • 论文“双降”攻略,只需三步,有效规避AI检测,使用ChatGPT降AI率和降重一起搞定
  • 抖音实况图怎么保存到手机相册?2026大马工具箱+快快无印动态保存教程 - 科技大爆炸
  • 宝珀官方售后服务中心地址与客户服务热线实地考察报告+多信源验证(2026年7月最新) - 宝珀官方售后服务中心
  • 过孔越密越稳?信号穿过一片“孔墙”,参考平面可能先被割碎
  • 打工人必看!一个网站=GPT+Claude+MJ,做PPT/写周报效率翻倍
  • 学术写作中的 RAG 技术应用:如何解决 AI 生成内容的文献引用问题
  • 视频号视频怎么无水印下载保存?2026大马工具箱微信视频号方法全解析 - 科技大爆炸
  • 寄大件什么快递最快最便宜?2026年主流物流深度横评与省钱指南 - 快递物流资讯
  • 序说完整(第4期) | 陈为凯研究员详解T2T基因组解析园艺作物着丝粒演化研究思路
  • 踩坑记录:TDengine 落地钢铁设备预测性维护的时序建模记录
  • 计算机毕业设计YOLO+多模态大模型(LLM)水果蔬菜病害检测分析预警系统 智慧农业 深度学习 人工智能(源码+文档+ppt+讲解)
  • 亲身探访上海百达翡丽官方售后服务中心|地址与24小时客服电话(2026年7月最新) - 百达翡丽官方售后中心