C#实现 mht和word转html文件

来源:互联网 发布:视频剪辑加速软件 编辑:程序博客网 时间:2024/05/17 22:57

由于网上的代码word转html一直报选择转换文件的类型这样的问题和弹保存模板的问题

下面是解决方法:

引入命名空间:

using Microsoft.Office;


using Word = Microsoft.Office.Interop.Word;

  /// <summary>
        /// word转成html文件
        /// </summary>
        /// <param name="wordFileName">word文件的物理路径</param>
        /// <param name="isFormat">判断文件转换的类型,是单个文件网页还是word</param>
        /// <returns></returns>

 public static string WordToHtml(object wordFileName, bool isFormat)
        {
            Thread.Sleep(500);
            try
            {

                Microsoft.Office.Interop.Word.ApplicationClass wordApp = new Microsoft.Office.Interop.Word.ApplicationClass();
                object fileobj = wordFileName;
                object nullobj = System.Reflection.Missing.Value;
                object ConfirmConversions = false;   //隐藏文件转换弹出框
                object Format;
                if (isFormat)    //判断源文件是由mht生成的doc还是本来就是doc
                {
                    Format = Word.WdOpenFormat.wdOpenFormatWebPages;
                }
                else
                {
                    Format = System.Type.Missing;
                }
                object OpenAndRepair = true;
                //object Encoding = Microsoft.Office.Core.MsoEncoding.msoEncodingMacSimplifiedChineseGB2312;

                //打开指定文件(不同版本的COM参数个数有差异,一般而言除第一个外都用nullobj就行了)
                Microsoft.Office.Interop.Word._Document doc = wordApp.Documents.Open(ref fileobj, ref ConfirmConversions, ref nullobj,
                ref nullobj, ref nullobj, ref nullobj,
                ref nullobj, ref nullobj, ref nullobj,
               Format, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj, ref nullobj
                );
              

            
              
                //转换格式,另存为
                Type docType = doc.GetType();
                string wordSaveFileName = wordFileName.ToString();

                int lasti=  wordSaveFileName.LastIndexOf('.');
                string strSaveFileName = wordSaveFileName.Substring(0, lasti) + ".html";
             
                    object saveFileName = (object)strSaveFileName;
                    docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { saveFileName, Word.WdSaveFormat.wdFormatFilteredHTML });
                    wordApp.NormalTemplate.Saved = false; //不保存模板
                  
                    //关闭文件
                    doc.Close(ref nullobj, ref nullobj, ref nullobj);
                    //关闭COM
                    wordApp.Quit(ref nullobj, ref nullobj, ref nullobj);

                       Thread.Sleep(500);
               
                return saveFileName.ToString();
            }
            catch (Exception ex)
            {
             
                //using (StreamWriter sw = new StreamWriter(@"C:\publish\web\log.txt", true))
                //{
                //    sw.Write("错误文件:" + ex.ToString());

                //    sw.Close();
                //}
                throw ex;
            }
        }

原创粉丝点击