天天看點

Asp.Net把word檔案轉換為html檔案

引用Word的Com元件Microsoft Word 11.0 Object Library,我的office2003的版本是8.3,預設安裝的Office是沒有這個元件的。用office盤,添加删除元件,選自定義,在Microsoft Office Word下面有.NET可程式設計性支援。安裝。

引用到項目中Web.config多了這行

<compilation debug="false">

   <assemblies>

    <add assembly="Microsoft.Office.Interop.Word, Version=11.0.0.0, Culture=neutral, PublicKeyToken=71e9bce111e9429c"/></assemblies>

程式代碼:

        Microsoft.Office.Interop.Word.Application word = new Microsoft.Office.Interop.Word.ApplicationClass();

        //Word.ApplicationClass word = new Word.ApplicationClass();

        Type wordType = word.GetType();

        Microsoft.Office.Interop.Word.Documents docs = word.Documents;

        // 打開檔案

        Type docsType = docs.GetType();

        object fileName = "e:\\cc.doc";

        Microsoft.Office.Interop.Word.Document doc = (Microsoft.Office.Interop.Word.Document)docsType.InvokeMember("Open",

        System.Reflection.BindingFlags.InvokeMethod, null, (object)docs, new Object[] { fileName, true, true });

        // 轉換格式,另存為

        Type docType = doc.GetType();

        object saveFileName = "e:\\aaa.html";

        //下面是Microsoft Word 9(11.0) Object Library的寫法,如果是10(沒試過),可能寫成:

        /*

        docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod,

         null, doc, new object[]{saveFileName, Word.WdSaveFormat.wdFormatFilteredHTML});

        */

        ///其它格式:

        ///wdFormatHTML

        ///wdFormatDocument

        ///wdFormatDOSText

        ///wdFormatDOSTextLineBreaks

        ///wdFormatEncodedText

        ///wdFormatRTF

        ///wdFormatTemplate

        ///wdFormatText

        ///wdFormatTextLineBreaks

        ///wdFormatUnicodeText

         null, doc, new object[] { saveFileName, Microsoft.Office.Interop.Word.WdSaveFormat.wdFormatHTML });

        // 退出 Word

        wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod,

         null, word, null);

繼續閱讀