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

时间:2022-09-01 22:09:46

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