学习C#调用Microsoft.Office.Interop.Word将Word转换为html

  使用微软的Microsoft.Office.Interop.Word组件也能将word转换为html,核心方法是调用Word的文档对象模型(DOM)来打开Word文档并另存为HTML格式,但这种方式需要程序所在电脑安装Microsoft Word软件,且运行程序的账户需要具有访问Word组件和文件路径的足够权限。同时确保调用Marshal.ReleaseComObject释放对象,否则可能导致Word进程无法彻底关闭,占用系统资源。
  VS2022中通过添加Com引用添加Microsoft Word Object Library组件。

  程序主要代码及转换后的html文件如下所示:

csharp 复制代码
using Microsoft.Office.Interop.Word;

string inputFilePath = "测试输出文件.docx";
string outputFilePath = "testdoc.html";

Application wordApp = new Application();
Document wordDoc = null;

try
{    
    wordDoc = wordApp.Documents.Open(inputFilePath);
    
    //wdFormatFilteredHTML格式去除了Word特有标签和样式,如果需要完整保留所有Word信息,
    //应设置为wdFormatHTML
    WdSaveFormat saveFormat = WdSaveFormat.wdFormatFilteredHTML;
    wordDoc.SaveAs2(outputFilePath, saveFormat);
}
catch (Exception ex)
{    
    Console.WriteLine($"转换过程中出现错误: {ex.Message}");
    throw;
}
finally
{
    if (wordDoc != null)
    {
        wordDoc.Close(false);
        System.Runtime.InteropServices.Marshal.ReleaseComObject(wordDoc);
    }
    wordApp.Quit(false);
    System.Runtime.InteropServices.Marshal.ReleaseComObject(wordApp);
}

参考文献:

1https://blog.csdn.net/x1234w4321/article/details/140326650

相关推荐
hez20103 天前
在 .NET 上构建超大托管数组
c#·.net·.net core·gc·clr
ZhengEnCi7 天前
Q02-Vue-React-index.html完全指南
vue.js·react.js·html
牧艺8 天前
HTML-in-Canvas 深度解析:让 Canvas 真正「吃上」HTML 这碗饭
前端·html·canvas
雨落倾城夏未凉8 天前
第四章c#方法-参数数组和可选参数(16)
后端·c#
爱勇宝8 天前
我给自己做了一个新标签页:不登录、不打扰、打开就能用
前端·html·浏览器
越努力越幸运669 天前
多模态代码调试实战:Gemini3.5 精准捕获 HTML 隐性语法
html
唐青枫9 天前
线程不是越多越快:C#.NET Thread 生命周期、同步与后台工作线程实战
c#·.net
唐青枫10 天前
别只会反射:C#.NET Emit 动态生成代码实战详解
c#·.net
咕白m62511 天前
.NET 环境下 Word 超链接批量提取方案
c#·.net
用户917215619021111 天前
C# 通信协议增量解析:用状态机处理半包和粘包
c#