首页  ·  知识 ·  云计算
asp.net读取Word
网友  博客园 http://www.cnblogs.com/scottckt/  综合  编辑:德仔   图片来源:网络
本例下载: title=http://files.cnblogs.com/scottckt/ReadWord.rar http://files.cnblogs.com/scottckt/R

本例下载:http://files.cnblogs.com/scottckt/ReadWord.rar

方法1:使用Js读取。代码:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="js读取word.aspx.cs" Inherits="js读取word" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">

    <script language='javascript'>
        //默认word转化文件放于C:\\下
        var os__localPath = "C:\\";
        //保存的文件名
           var os__localFile = "defaultFileWord.htm";
           var os__xmlDom = new ActiveXObject("MSXML2.DOMDocument");
           var os__xmlFSO ;

           //保存数据到当前客户端(可以传入一个要保存的文件名).
           function os_SaveToLocal()
           {
            var _saveAs = "";
            if(arguments.length > 0)
             _saveAs = arguments[0] + "";
            else
             _saveAs = os__localFile;
           
            try
            {      
             if(os__xmlFSO == null)
              os__xmlFSO = new ActiveXObject("Scripting.FileSystemObject"); 
         
            }
            catch(e){window.alert(e);}
           }
         
           //Word转化为Html文件
           function WorcChangeHtml()
           {
                var os_xmlFSO;
                //获得上传控件对象
                var objUpFile = document.getElementById("updFile");
                //获得客户端Word文件路径和文件
                var UpFileValue = objUpFile.value;
                if(os__xmlFSO == null)
                  os__xmlFSO = new ActiveXObject("Scripting.FileSystemObject");    
               
                try
                {
                     if(UpFileValue == "")
                     {
                          alert('请选择对应的Word文件');
                          objUpFile.focus();
                     }
                     else if(UpFileValue.indexOf(".doc") == -1)
                     {
                          alert('您选择的不是Word文件 \r\n请选择正确的Word文件');
                          objUpFile.focus();
                     }  
                     else if(!os__xmlFSO.FileExists(objUpFile.value))
                     {
                          alert('对应的Word文件不存在');
                          objUpFile.focus();   
                     }
                     else
                     {
                          var wdFormatHTML = 8;
                          var objWord = new ActiveXObject("Word.Application");
                          objWord.Application.Visible = false;
                          var objDoc = objWord.Documents.Open(UpFileValue);
                          objDoc.SaveAs(os__localPath+os__localFile, wdFormatHTML);
                         
                          UpFileValue = "";
                          objDoc.Close();
                          objWord.Quit();
                          var GetHtml = GetLine();
                          var iBeginIndex = GetHtml.indexOf("<body");
                          var iEndIndex = GetHtml.lastIndexOf("</body>");
                        
                          GetHtml =  GetHtml.substring(iBeginIndex,iEndIndex+7).replace("<body","<div");
                          GetHtml = GetHtml.replace("</body>","</div>");
                         
                          GetHtml = GetHtml.replace("lang=ZH-CN","");                         
                          GetHtml = GetHtml.replace("lang=EN-US","");
                          GetHtml = GetHtml.replace("style='mso-spacerun:yes'","");
                          GetHtml = GetHtml.replace("class=MsoNormal","");
                                                  

                          var vTxtIdea= document.getElementById("txtIdea");
                          document.write(GetHtml)
                 }
                }           
                catch(e)
                {
                    window.alert(e);
                 }
           }
         
           //读取文本文件
           function GetLine()
           {
                var fso, txtfile, strValue;
                var ForReading = 1, ForWriting = 2;
                fso = new ActiveXObject("Scripting.FileSystemObject");
                txtfile = fso.OpenTextFile(os__localPath+os__localFile, ForReading);
                while(!txtfile.AtEndOfStream)
                {
                 strValue = strValue + txtfile.ReadLine();
                }
                txtfile.Close();
                return(strValue);
           }
    </script>

    <title>无标题页</title>
</head>
<body>
    <form id="form1" runat="server">
        <input id="updFile" type="file" style="border-right: 1px solid; border-top: 1px solid;
            border-left: 1px solid; width: 77.46%; border-bottom: 1px solid; height: 26px"
            size="71">
        <input style="border-right: #999999 1px solid; border-top: #999999 1px solid; font-size: 15pt;
            border-left: #999999 1px solid; width: 103px; border-bottom: #999999 1px solid;
            height: 28px" onclick="WorcChangeHtml()" runat="server" id="btnUpLoad" type="submit"
            value="导入" name="btnUpLoad">
        <textarea style="width: 88%; height: 412px" id="txtIdea" runat="server"></textarea>
        <br />
        <br />

    </form>
</body>
</html>

 

 方法2,将Word文件上传到服务器端后,在读取。


 private void ReadWord()
    {
        Response.ClearContent();
        Response.ClearHeaders();
        Response.ContentType = "Application/msword";
        string s = Server.MapPath("test.doc");
        Response.WriteFile("test.doc");
        Response.Write(s);
        Response.Flush();
        Response.Close();
    }

    private void ReadWord2()
    {
        Response.ClearContent();
        Response.ClearHeaders();
        Response.ContentType = "Application/msword";
        string strFilePath = "";
        strFilePath = Server.MapPath("test.doc");
        FileStream fs = new FileStream(strFilePath, FileMode.Open, FileAccess.Read,FileShare.Read);
        Response.WriteFile(strFilePath, 0, fs.Length);
        fs.Close();
    }

    private void ReadWord3()
    {
        string path = Server.MapPath("test.doc");
        FileInfo file = new FileInfo(path);
        FileStream myfileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
        byte[] filedata = new Byte[file.Length];
        myfileStream.Read(filedata, 0, (int)(file.Length));
        myfileStream.Close();
        Response.Clear();
        Response.ContentType = "application/msword";
        Response.AddHeader("Content-Disposition", "attachment;filename=文件名.doc");
        Response.Flush();
        Response.BinaryWrite(filedata);
        Response.End();
    }

 

 其它说明:

       我原本想后台读取word后,在页面的某一页面中显示,但没找到方法。如果有谁知道,烦请告知我。

本文作者:网友 来源:博客园 http://www.cnblogs.com/scottckt/
CIO之家 www.ciozj.com 微信公众号:imciow
   
免责声明:本站转载此文章旨在分享信息,不代表对其内容的完全认同。文章来源已尽可能注明,若涉及版权问题,请及时与我们联系,我们将积极配合处理。同时,我们无法对文章内容的真实性、准确性及完整性进行完全保证,对于因文章内容而产生的任何后果,本账号不承担法律责任。转载仅出于传播目的,读者应自行对内容进行核实与判断。请谨慎参考文章信息,一切责任由读者自行承担。
延伸阅读