在.NET用C#将Word文档转换为HTML格式

将Word文档转换为HTML格式尤其具有显著的优势,它不仅能够确保文档内容在多种设备和平台上保持一致灵活的显示,还便于通过网络进行传播和集成到各种Web应用中。随着越来越多的企业和开发者寻求更灵活、更具兼容性的文件处理方式,.NET框架下的C#语言凭借其强大的互操作性支持成为了实现这一转换的理想选择。本文将介绍如何在.NET平台使用C#将Word文档转换为HTML文件

文章目录

本文所使用的方法需要用到免费的Free Spire.Doc for .NET,NuGet:PM> Install-Package FreeSpire.Doc

用C#将Word文档转换为一般HTML格式

我们可以使用Document.LoadFromFile方法载入Word文档,然后直接使用SaveToFile(string:fileName, FileFormat.HTML)方法将其转换为HTML格式并保存。这样转换出的结果会包含HTML文件、CSS文件以及图片文件夹(如果Word文档中有图片)。以下是操作步骤示例:

  1. 导入所需模块。
  2. 创建Document实例。
  3. 使用Document.LoadFromFile()方法载入Word文档。
  4. 使用Document.SaveToFile(string:fileName, FileFormat.HTML)方法将其转换为HTML格式并保存。

代码示例

csharp 复制代码
using Spire.Doc;

namespace WordToHTML
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建Document实例
            using (Document doc = new Document())
            {

                // 载入Word文档
                doc.LoadFromFile("Sample.docx");

                // 将其转换为HTML并保存
                doc.SaveToFile("output/WordToHTML.html", FileFormat.Html);
            }
        }
    }
}

结果

用C#将Word文档转换为单个HTML文件

通过配置Document.HtmlExportOptions.CssStyleSheetType属性和Document.HtmlExportOptions.ImageEmbedded属性,我们可以设置将CSS和图像嵌入到单个HTML文件中。以下是操作步骤示例:

  1. 导入所需模块。
  2. 创建Document实例。
  3. 使用Document.LoadFromFile()方法载入Word文档。
  4. Document.HtmlExportOptions.CssStyleSheetType属性设置为CssStyleSheetType.Internal,嵌入CSS样式到生成的HTML文件中。
  5. Document.HtmlExportOptions.ImageEmbedded属性设置为true,嵌入图像到生成的HTML文件中。
  6. 使用Document.SaveToFile(string:fileName, FileFormat.HTML)方法将其转换为HTML格式并保存。

代码示例

csharp 复制代码
using Spire.Doc;

namespace WordToHTML
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建Document实例
            using (Document doc = new Document())
            {

                // 载入Word文档
                doc.LoadFromFile("Sample.docx");

                // 设置嵌入CSS
                doc.HtmlExportOptions.CssStyleSheetType = CssStyleSheetType.Internal;

                // 设置嵌入图像
                doc.HtmlExportOptions.ImageEmbedded = true;

                // 将其转换为HTML并保存
                doc.SaveToFile("output/WordToHTMLEmbedded.html", FileFormat.Html);
            }
        }
    }
}

结果

转换时自定义转换选项

我们还可以通过Document.HtmlExportOptions属性自定义其他转换选项,以下是支持的选项信息:

属性 描述
CssStyleSheetType 指定 HTML CSS 样式表的类型(外部或内部)。
CssStyleSheetFileName 指定 HTML CSS 样式表文件的名称。
ImageEmbedded 指定是否使用数据 URI 方案将图像嵌入到 HTML 代码中。
ImagesPath 指定导出 HTML 中图像的文件夹路径。
UseSaveFileRelativePath 指定图像文件路径是否相对于 HTML 文件路径。
HasHeadersFooters 指定是否应在导出的 HTML 中包含页眉和页脚。
IsTextInputFormFieldAsText 指定是否将文本输入表单字段以文本形式导出到 HTML 中。
IsExportDocumentStyles 指定是否将文档样式导出到 HTML 的 <head> 部分。
以下是操作步骤示例:
    1. 导入所需模块。
  1. 创建Document实例。
  2. 使用Document.LoadFromFile()方法载入Word文档。
  3. 使用Document..HtmlExportOptions中的属性自定义转换选项。
  4. 使用Document.SaveToFile(string:fileName, FileFormat.HTML)方法将其转换为HTML格式并保存。

代码示例

csharp 复制代码
using Spire.Doc;

namespace WordToHTML
{
    class Program
    {
        static void Main(string[] args)
        {
            // 创建Document实例
            using (Document doc = new Document())
            {

                // 载入Word文档
                doc.LoadFromFile("Sample.docx");

                // 设置CSS文件名
                doc.HtmlExportOptions.CssStyleSheetType = CssStyleSheetType.External;
                doc.HtmlExportOptions.CssStyleSheetFileName = "CustomCSSFileName.css";

                // 设置不嵌入图像,并设置图像文件夹
                doc.HtmlExportOptions.ImageEmbedded = false;
                doc.HtmlExportOptions.UseSaveFileRelativePath = true;
                doc.HtmlExportOptions.ImagesPath = "Images/";

                // 设置导出文档样式到head部分
                doc.HtmlExportOptions.IsExportDocumentStyles = true;

                // 将其转换为HTML并保存
                doc.SaveToFile("output/WordToHTMLEmbedded.html", FileFormat.Html);
            }
        }
    }
}

结果


文中用到的示例Word文档:

本文演示了如何在.NET中用C#转换Word文档为HTML格式,并设置转换选项。

相关推荐
l156469483 分钟前
突围!图文混合知识库难以解析,Kimi-K3 原生视觉架构深耕知识工作,DMXAPI 统一接口,缩短项目开发周期
java·大数据·开发语言
charlie11451419128 分钟前
现代C++工程实践 WeakPtr 实战(三):WeakPtrFactory 与「最后成员」惯用法
开发语言·c++·开源项目·现代c++
吴可可1231 小时前
C#用OpenCVSharp提取轮廓生成CAD多段线
c#
IT小盘2 小时前
04-大模型流式输出原理-SSE与Python实现
开发语言·网络·人工智能·python
不如语冰2 小时前
AI大模型入门-Python进阶-上下文管理与with语句
开发语言·数据结构·数据库·人工智能·pytorch·redis·python
阿童木写作3 小时前
Python批量翻译亚马逊商品图实战教程
开发语言·python·xcode
会飞的大鱼人4 小时前
一文搞懂 Java HashSet:把它想成游乐园里只允许一次入场的盖章名单
java·开发语言·windows
jiay24 小时前
【.net10】顶级程序语句
java·开发语言
玖玥拾5 小时前
Unity 3D 笔记(十四)Unity/C# Socket 网络笔记3
服务器·网络·unity·c#
淼澄研学5 小时前
Python进阶实战:深入解析推导式与生成器等5大核心特性
开发语言·python