如下方法可在线读取Word,缺点,word只能是纯文本或表格,不能附带图片
前台放一个Label
<asp:Label ID="Label2" runat="server" />
后台:
string url = Request.QueryString["url"];
Word2HTMLHelper helper = new Word2HTMLHelper();
helper.Convert(Server.MapPath(url));
url = url.Substring(0, url.IndexOf('.'));
Label2.Text = string.Format("<iframe runat=\"server\" src=\"{0}\" id=\"iframe1\" style=\"width: 559px; height: 575px\" />", url + ".htm");
类:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using Microsoft.Office;
using Microsoft.Office.Interop.Word;
/// <summary>
/// Word2HTMLHelper 的摘要说明
/// </summary>
public class Word2HTMLHelper
{
protected Microsoft.Office.Interop.Word.ApplicationClass objWord = new ApplicationClass();
protected string strPathToUpload;
protected string strPathToConvert;
object fltDocFormat = 10;
protected object missing = System.Reflection.Missing.Value;
protected object;
protected object isVisible = false;
public void Convert(string strWordFullName)
{
//fullpath = c:\\aaa\\aa.doc
int iIdx = strWordFullName.LastIndexOf('\\');
object WordFullName = (object)strWordFullName;
string strFileName = strWordFullName.Substring(iIdx + 1, strWordFullName.Length - iIdx-1);
string strFullPath = strWordFullName.Substring(0, iIdx);
string filename = strFileName.Substring(0, strFileName.IndexOf('.'));
//Map-path to the folder where html to be saved
object FileToSave = strFullPath + "\\" + filename + ".htm";
try
{
//To check the file extension if it is word document or something else
string[] strSep = strFileName.Split('.');
int arrLength = strSep.Length - 1;
string strExt = strSep[arrLength].ToString().ToUpper();
if (strExt.ToUpper().Equals("DOC") || strExt.ToUpper().Equals("DOCX"))
{
//open the file internally in word. In the method all the parameters should be passed by object reference
objWord.Documents.Open(ref WordFullName, ref readOnly, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref isVisible, ref missing, ref missing, ref missing,
ref missing, ref missing);
//Do the background activity
objWord.Visible = false;
Microsoft.Office.Interop.Word.Document oDoc = objWord.ActiveDocument;
oDoc.SaveAs(ref FileToSave, ref fltDocFormat, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing, ref missing,
ref missing, ref missing);
}
else
{
throw new InvalidOperationException();
}
//Close/quit word
objWord.Quit(ref missing, ref missing, ref missing);
}
catch (Exception ex)
{
throw;
}
}
}
- 本文标题: 在线读取Word文档(不能附图) ASP.NET
- 文章分类:【.NET/Web】
- 非特殊说明,本文版权归【胡同里的砖头】个人博客 所有,转载请注明出处.
- 上一篇:全国省级及市级SQL表
- 下一篇: 如何在 AJAX 中输出 JavaScript