Csharp调用微软COM转换word为HTML

原创 2015年07月10日 15:56:19

             使用微软的office中的word软件只要使用另存为就可以把一个word保存为HTML网页文件。但如何通过程序调用完成转化呢?

以下使用office 2007为例,其他版本略有不同。


  1添加引用,对于不同的版本,有所不一样。当然前提自然是安装了对应的微软office软件。


2转换代码如下:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using Word=Microsoft.Office.Interop.Word;  
namespace CommonConvert
{
    public class WordToHtml
    {
        /// <summary>
        /// 使用反射调用方法,返回生成的HTML文件路径
        /// </summary>
        /// <param name="wordFullFileName"></param>
        /// <returns></returns>
        public string WordToHtmlFile(string wordFullFileName)
        {
            //在此处放置用户代码以初始化页面 
            Word.Application word = new Word.Application();
            Type wordType = word.GetType();
            Word.Documents docs = word.Documents;
            //打开文件 
            Type docsType = docs.GetType();
            Word.Document doc = (Word.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] { wordFullFileName, true, true });
                    
            Type docType = doc.GetType();          
           string htmlFullFileName = wordFullFileName + ".html"; //HTML文件路径          
            //转换格式,另存为  
            docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { htmlFullFileName, Word.WdSaveFormat.wdFormatFilteredHTML });
            docType.InvokeMember("Close", System.Reflection.BindingFlags.InvokeMethod, null, doc, null);
            //退出 Word 
            wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);
            return htmlFullFileName;
        }
        /// <summary>
        /// 直接调用方法,不使用反射
        /// </summary>
        /// <param name="wordFullFileName"></param>
        /// <returns></returns>
        public string WordToHtmlFile2(string wordFullFileName)
        {
            //在此处放置用户代码以初始化页面 
            Word.Application word = new Word.Application();          
            Word.Documents docs = word.Documents;
            //打开文件 
           // Type docsType = docs.GetType();
            //Word.Document doc = (Word.Document)docsType.InvokeMember("Open", System.Reflection.BindingFlags.InvokeMethod, null, docs, new Object[] { wordFullFileName, true, true });
            object owordFullFileName = wordFullFileName;
            Word.Document doc = docs.Open(ref owordFullFileName);           
            //转换格式,另存为 
            string htmlFullFileName = wordFullFileName + ".html"; //HTML文件路径             
            doc.SaveAs(htmlFullFileName, Word.WdSaveFormat.wdFormatFilteredHTML);  
            doc.Close();
            //退出 Word 
            word.Quit();
            return htmlFullFileName.ToString();
        }
    }
}

参考文章


vs环境下,用c++使用微软word提供的com接口

主要需要#import 三个文件VBE6EXT.OLB,MSO.DLL,MSWORD.OLB,这样就可以使用主要的函数。 _ApplicationPtr word.CreateInstance(__u...
  • life_is_too_hard
  • life_is_too_hard
  • 2016年06月15日 22:30
  • 986

Office Open XML 文档格式(转)

Office Open XML文档格式的详细说明以及规格是在2006年欧洲计算机制造商协会批准的一项标准, 编号是Ecma376, 到发稿时为止已经通过了ISO国际标准化组织的评审成为了一项国际标准I...
  • dragoo1
  • dragoo1
  • 2017年06月01日 17:17
  • 449

把office文档转换为html过程中的一些坑

之前和我们项目的团队一起酝酿了一个项目,公司的业务文档技术文档比较多,但都比较分散,虽然通过FTP或其他方式聚合起来了,但感觉还是不够方便。 另外公司每次都来新员工,新员工都需要一些培训,比较耗时,...
  • qq_33075157
  • qq_33075157
  • 2016年11月29日 15:57
  • 391

将Office(如:Word、Excel、PPT 等)文件转html(通过OpenOffice实现)

这里简单介绍下OpenOfficeOpenOffice.org 是一套跨平台的办公室软件套件,能在Windows、linux、MacOS X (X11) 和 Solaris 等操作系统上执行。它与各个...
  • zhoumengshun
  • zhoumengshun
  • 2017年06月20日 14:59
  • 2078

借用OpenOffice将上传的Word文档转换成Html格式

将Word转Html的原理是这样的: 1、客户上传Word文档到服务器 2、服务器调用OpenOffice程序打开上传的Word文档 3、OpenOffice将Word文档另存为Html格式 4、Ov...
  • catoop
  • catoop
  • 2014年03月10日 16:25
  • 7660

Word转换Html后分页展示--第二部分

这篇文章继续上一篇”Word转换Html后分页展示--第一部分“ 实现 2. 当浏览器打开Html页面后需要执行一段计算分页的js,这段js是在生成Html后通过改写加入的。下面是上传Servlet...
  • f4761
  • f4761
  • 2015年01月11日 22:35
  • 1052

(疑似解决==)求助:php 用windows COM组件调用openoffice接口实现word转pdf文件报错

一下是代码:
  • u010620626
  • u010620626
  • 2014年04月10日 16:05
  • 2195

C# web实现word 转Html、office转Html、pdf转图片 在线预览文件

改篇 pdf 预览再本机没问题,发布再iis中 不行 ,(使用剪贴板的问题..excel和word 可以,) pdf解决:请看我的博文 ----最终解决篇 详细配置及代码 word 转Html ...
  • skydxd
  • skydxd
  • 2013年11月22日 13:28
  • 1889

CSharp学习笔记之三 C#中的字符串

什么是字符串: 字符串是 String类型的对象,它的值是文本。在内部,文本被存储为 Char对象的顺序只读集合。  C# 字符串末尾没有以 null 结尾的字符;因此 C# 字符串可以包含任意数目的...
  • caosiyuan1991
  • caosiyuan1991
  • 2013年12月04日 10:15
  • 3810

使用poi将word转换为html

 使用poi将word转换为html 使用poi将word转换为html,支持doc,docx,转换后可以保持图片、样式 演示地址: https://www.xiaoyun.stud...
  • qq_22498277
  • qq_22498277
  • 2016年11月22日 16:47
  • 2830
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Csharp调用微软COM转换word为HTML
举报原因:
原因补充:

(最多只允许输入30个字)