word文件转html字符串(包涵格式和图片)

首先引用 Microsoft.Office.Interop.Word.dll

转换方法:

using System;
using System.Text;
using MSWord = Microsoft.Office.Interop.Word;
using System.IO;
using System.Reflection;


namespace ReadWord
{
    public class GetHtmlString
    {
        /// <summary>
        /// word转html字符串   --Will.Wang
        /// </summary>
        /// <param name="wordPath">word文件绝对路径</param>
        /// <returns>html字符串</returns>
        public static string GetProceHtmlString(String wordPath)
        {
            string htmlPath = GetHtml(wordPath);
            string htmlString = ProceHtmlString(htmlPath);
            return htmlString;
        }
        /// <summary>
        /// word转html并返回html文件地址
        /// </summary>
        /// <returns></returns>
        private static string GetHtml(Object path)
        {

            MSWord.Application wordApp;
            MSWord.Document wordDoc;
            Object Nothing = Missing.Value;

            wordApp = new MSWord.Application();
            wordDoc = wordApp.Documents.Add(ref path, ref Nothing, ref Nothing, ref Nothing);

            object format = MSWord.WdSaveFormat.wdFormatFilteredHTML;
            Object newPath = path.ToString().Substring(0, path.ToString().LastIndexOf('.'))+".html";//html文件路径

            wordDoc.SaveAs(ref newPath, ref format, ref Nothing, ref Nothing, ref Nothing,
                ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing,
                ref Nothing, ref Nothing, ref Nothing, ref Nothing, ref Nothing);

            wordDoc.Close(ref Nothing, ref Nothing, ref Nothing);
            wordApp.Quit(ref Nothing, ref Nothing, ref Nothing);

            return newPath.ToString();
        }


        /// <summary>
        /// 读取html字符串
        /// </summary>
        /// <param name="htmlPath"></param>
        /// <returns></returns>
        private static string ProceHtmlString(String htmlPath)
        {
            FileStream fs = new FileStream(htmlPath, FileMode.OpenOrCreate, FileAccess.Read);
            StreamReader sr = new StreamReader(fs, Encoding.Default);
            string htmlString = sr.ReadToEnd();

            sr.Close();
            fs.Close();
            return htmlString;
        }
    }
}

猜你喜欢

转载自www.cnblogs.com/xiaowei3632/p/9144001.html
今日推荐