ASP.NET实现word文档在线预览功能代码

  于是考虑在每个文件上传时为其生存一份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();

  }

  }