asp.net实现word在线预览功能

来源:互联网 发布:免流全套源码 编辑:程序博客网 时间:2024/04/28 23:04

此贴内容转自:

word文档在线预览

文档管理系统需要实现WORD能在线预览功能,以前觉得挺难的,经过一番研究发现,WORD自带的另存为可以保存为HTMl文件。于是考虑在每个文件上传时为其生存一份HTMl文件,这样就能实现在线预览功能。主要代码如下

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using Word = Microsoft.Office.Interop.Word;
public partial class test : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {

       WordToHtml("d:\\yijian.doc");
    }
    /// <summary>
    /// word转成html
    /// </summary>
    /// <param name="wordFileName"></param>
    private string WordToHtml(object 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[] { wordFileName, true, true });

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

        string wordSaveFileName = wordFileName.ToString();

        string strSaveFileName = wordSaveFileName.Substring(0, wordSaveFileName.Length - 3) + "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);

        //退出 Word
        wordType.InvokeMember("Quit", System.Reflection.BindingFlags.InvokeMethod, null, word, null);

        return saveFileName.ToString();
    }


}

同样为理想奋斗中... ...

原创粉丝点击