asp.net实现word文档在线预览功能的方法

本文实例讲述了asp.net实现word文档在线预览功能的方法。分享给大家供大家参考。具体实现方法如下:

实现方式:office文档转html,再在浏览器里面在线浏览

1、首先引入com组件中office库,然后在程序集扩展中引入word的dll

2、将Microsoft.Office.Interop.Word的嵌入互操作类型设置为 false,如图

3、主要代码:

using System;

using System.Collections.Generic;

using System.Linq;

using System.Web;

using Microsoft.Office.Core;

using Word = Microsoft.Office.Interop.Word;

namespace Wolfy.OfficePreview

{

    public class Office2HtmlHelper

    {

        /// <summary>

        /// Word转成Html

        /// </summary>

        /// <param name="path">要转换的文档的路径</param>

        /// <param name="savePath">转换成html的保存路径</param>

        /// <param name="wordFileName">转换成html的文件名字</param>

        public static void Word2Html(string path, string savePath, string wordFileName)

        {

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

            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[] { (object)path, true, true });

            Type docType = doc.GetType();

            string strSaveFileName = savePath + wordFileName + ".html";

            object saveFileName = (object)strSaveFileName;

            docType.InvokeMember("SaveAs", System.Reflection.BindingFlags.InvokeMethod, null, doc, new object[] { saveFileName, Word.WdSaveFormat.wdFormatFilteredHTML });

            docType.InvokeMember("Close", System.Reflection.BindingFlags.InvokeMethod, null, doc, null);

            wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);

        }

    }

}

调用:
Office2HtmlHelper.Word2Html(MapPath("/Doc/分析某网站的SEO策略(外链篇).doc"), MapPath("/Html/"), "分析某网站的SEO策略(外链篇)");

希望本文所述对大家的asp.net程序设计有所帮助。