Csharp调用微软COM转换word为HTML

来源:互联网 发布:数据库用什么语言 编辑:程序博客网 时间:2024/06/04 18:09

             使用微软的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();        }    }}

参考文章


0 0
原创粉丝点击