如下方法可在线读取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