C#实现 mht和word转html文件

由于网上的代码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;
            }
        }

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值