CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
不看会后悔的Windows XP之经验谈 简单快捷DIY实用家庭影院
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  .NET技术 >  ASP.NET

===>怎么把WORD、EXCEL文档以文本文件格式读出来..在线等..

楼主flovein2000(◣氓人科技◥)2005-06-21 14:39:29 在 .NET技术 / ASP.NET 提问

我现在在做一套C#.ASP.NET系统  
  其中一块业务需要实现手机审批功能,手机所浏览的是WORD或EXCEL文件  
  所以我现在想把WORD或EXCEL文件以文本格式(最好是全是正文字符串)读出来并转成WML格式。  
  请问哪位大侠帮忙整一下。先谢了 问题点数:50、回复次数:5Top

1 楼yistudio(阳光灿烂的日子)回复于 2005-06-21 14:46:53 得分 0

关注...Top

2 楼hchxxzx(NET?摸到一点门槛)回复于 2005-06-21 15:21:39 得分 30

这个基本不太可能.主要是微软公司对这玩意儿技术封锁.  
   
  以下是以前有人写的用ASP提取WORD文本的方法,但我试验不成功.你可参考一下.  
   
  详细信息请见:   http://www.delphibbs.com/delphibbs/dispq.asp?lid=2597952  
  现给出部分代码  
   
  建议你认真看看下面的代码,特别是   word   对象的使用,利用他可以完成很多功能。  
   
  <SCRIPT   LANGUAGE="JavaScript">  
  <!--  
  var  FileSource;  
  var   FileDesource;  
  var  word;  
  var   xmlhttp;  
  var   filename;  
   
  function   Load(){  
  try{  
    var  fso   =   new   ActiveXObject("Scripting.FileSystemObject");  
    filename   =   fso.GetSpecialFolder(2)   +   "\\"   +   "WjTemp.doc";  
    //alert(filename);  
    //OpenWeb();  
  }catch(e){alert(e.message);};  
  }  
  function   UnLoad(){  
  try{  
    var  fso   =   new   ActiveXObject("Scripting.FileSystemObject");  
    f   =   fso.GetFile(filename);  
    f.Delete();  
  }catch(e){ShowErrorMsg();};  
  }  
  function   OpenWeb(){  
  try{  
  FileSource   =   document.WebForm.FileSource.value   +   "&ID="   +   document.WebForm.ID.value   +   "&FileMode="   +   document.WebForm.FileMode.value   +   "&FileType="   +   document.WebForm.FileType.value;  
    //alert(FileSource);  
    var   binData;  
    xmlhttp   =   new   ActiveXObject("msxml2.xmlhttp");  
    xmlhttp.Open("get",FileSource,false);  
    xmlhttp.Send();  
    binData=xmlhttp.ResponseBody;  
   
    var   objsm   =   new   ActiveXObject("ADODB.STREAM");  
    objsm.Type=1;  
    objsm.Open();  
    objsm.Write(binData);  
    objsm.SaveToFile(filename,2);  
    objsm.Close();  
      
    word   =   new   ActiveXObject("word.application");  
    word.Visible   =   true;  
    word.documents.open(filename);  
  }catch(e){ShowErrorMsg(e);};  
  }  
  function   SaveWeb(){  
  try{  
    FileDesource   =   document.WebForm.FileDesource.value   +   "&ID="   +   document.WebForm.ID.value   +   "&FileMode="   +   document.WebForm.FileMode.value   +   "&FileType="   +   document.WebForm.FileType.value;  
    if   (document.WebForm.FileMode.value   ==   "new"){  
      var   Name;  
      if   (Name=window.prompt("请输入文档名称!","")){  
        FileDesource   =   FileDesource   +   "&Name="   +   Name    
      };  
    };  
    //alert(FileDesource);    
    if   (word   !=   null){  
      word.activedocument.save();  
      word.quit();  
    };  
   
    var   binData  
    var   objsm   =   new   ActiveXObject("ADODB.STREAM");  
    objsm.Type=1;  
    objsm.Open();  
    objsm.LoadFromFile(filename);  
    binData=objsm.read(objsm.size);  
    objsm.Close  
   
    xmlhttp   =   new   ActiveXObject("msxml2.xmlhttp");  
    xmlhttp.Open("post",FileDesource,false);  
    xmlhttp.Send(binData);  
      
    //document.WebForm.FileMode.value   =   "open";  
    history.go(-1);  
  }catch(e){ShowErrorMsg(e);};  
  }  
  function   OpenLocal(){  
  try{  
    word.dialogs.item(80).show();  
  }catch(e){ShowErrorMsg(e);};  
  }  
   
  function   SaveLocal(){  
  try{  
    //parent.frames.main.WebForm.WJOnlineEdit.SaveLocal();  
    word.Dialogs.Item(84).Show();  
  }catch(e){ShowErrorMsg(e);};  
  }  
  function   ProtectDoc(){  
  try{    
    word.ActiveDocument.Protect(1);  
  }catch(e){ShowErrorMsg(e);};  
  }  
  function   UnProtectDoc(){  
  try{    
    word.ActiveDocument.UnProtect();  
  }catch(e){ShowErrorMsg(e);};  
  }  
  function   ShowDialog(index){  
  try{  
    word.Dialogs(index).Show();  
  }catch(e){ShowErrorMsg(e);};  
  }  
  //设定用户名  
  function   SetUserName(){  
  try{  
    var   UserName;  
    if   (UserName=window.prompt("请输入文档编辑者的名称,程序将记录此编辑者对文档的编辑痕迹!",   word.UserName)){  
    word.UserName=""   +   UserName   +   "";  
    };  
  }catch(e){ShowErrorMsg(e);};  
  }  
  //痕迹保留  
  function   TrackRevisions(){  
  try{  
    word.ActiveDocument.TrackRevisions   =!word.ActiveDocument.TrackRevisions;  
  }catch(e){ShowErrorMsg(e);};  
  }  
  //痕迹显示  
  function   ShowRevisions(){  
  try{  
    word.ActiveDocument.ShowRevisions   =!word.ActiveDocument.ShowRevisions;  
  }catch(e){ShowErrorMsg(e);};  
  }  
  function   ShowErrorMsg(e){  
    debug   =   true;  
    if   (debug)   {  
      alert(e.message);  
    }  
  }  
   
  //-->  
  </SCRIPT>Top

3 楼flovein2000(◣氓人科技◥)回复于 2005-06-21 16:03:16 得分 0

谢谢 楼上的指点  
  我找到一篇好文章  
  我们一起试验一下吧  
  http://jack.enping.gov.cn/default.asp?action=article&ID=41Top

4 楼flovein2000(◣氓人科技◥)回复于 2005-06-21 17:58:59 得分 0

下面是代码?帮忙调试一下,我调试未成功,提示“意外的服务情况”  
  ---------------------------------------------------------------------  
   
  Word文档转化为HTML等其它格式  
  最后更新:2005-6-15   20:00:50  
   
   
    利用Word.Application提供的方法,可以很轻易地将Word文档转化为HTML等其它格式,下面就是实现的全部的代码:  
   
  Visual   C#  
   
  WordToHtml.aspx  
   
  <%@   Page   language="c#"   Codebehind="WordToHtml.aspx.cs"   AutoEventWireup="false"  
    Inherits="aspxWebcs.WordToHtml"   %>  
  <!DOCTYPE   HTML   PUBLIC   "-//W3C//DTD   HTML   4.0   Transitional//EN"   >  
  <HTML>  
      <HEAD>  
          <title>WordToHtml</title>  
          <meta   name="GENERATOR"   Content="Microsoft   Visual   Studio   .NET   7.1">  
          <meta   name="CODE_LANGUAGE"   Content="C#">  
          <meta   name="vs_defaultClientScript"   content="JavaScript">  
          <meta   name="vs_targetSchema"   content="http://schemas.microsoft.com/intellisense/ie5">  
      </HEAD>  
      <body   MS_POSITIONING="GridLayout">  
          <form   id="Form1"   method="post"   runat="server">  
          </form>  
      </body>  
  </HTML>  
   
  WordToHtml.aspx.cs  
   
  using   System;  
  using   System.Collections;  
  using   System.ComponentModel;  
  using   System.Data;  
  using   System.Drawing;  
  using   System.Web;  
  using   System.Web.SessionState;  
  using   System.Web.UI;  
  using   System.Web.UI.WebControls;  
  using   System.Web.UI.HtmlControls;  
  using   Office;  
   
  namespace   aspxWebcs  
  {  
  ///   <summary>  
  ///   WordToHtml   的摘要说明。  
  ///   首先要添加引用:Microsoft   Word   9.0   Object   Library  
  ///   </summary>  
  public   class   WordToHtml   :   System.Web.UI.Page  
  {  
    private   void   Page_Load(object   sender,   System.EventArgs   e)  
    {  
      //   在此处放置用户代码以初始化页面  
          Word.ApplicationClass   word   =   new   Word.ApplicationClass();  
          Type   wordType   =   word.GetType();  
          Word.Documents   docs   =   word.Documents;  
   
          //   打开文件  
          Type   docsType   =   docs.GetType();  
          object   fileName   =   "d:\\tmp\\aaa.doc";  
          Word.Document   doc   =   (Word.Document)docsType.InvokeMember("Open",    
          System.Reflection.BindingFlags.InvokeMethod,   null,   docs,   new   Object[]   {fileName,   true,   true});  
                       
          //   转换格式,另存为  
          Type   docType   =   doc.GetType();  
          object   saveFileName   =   "d:\\tmp\\aaa.html";  
          //下面是Microsoft   Word   9   Object   Library的写法,如果是10,可能写成:  
          //docType.InvokeMember("SaveAs",   System.Reflection.BindingFlags.InvokeMethod,  
            null,   doc,   new   object[]{saveFileName,   Word.WdSaveFormat.wdFormatFilteredHTML});  
          ///其它格式:  
          ///wdFormatHTML  
          ///wdFormatDocument  
          ///wdFormatDOSText  
          ///wdFormatDOSTextLineBreaks  
          ///wdFormatEncodedText  
          ///wdFormatRTF  
          ///wdFormatTemplate  
          ///wdFormatText  
          ///wdFormatTextLineBreaks  
          ///wdFormatUnicodeText  
          docType.InvokeMember("SaveAs",   System.Reflection.BindingFlags.InvokeMethod,  
            null,   doc,   new   object[]{saveFileName,   Word.WdSaveFormat.wdFormatHTML});  
   
          //   退出   Word  
          wordType.InvokeMember("Quit",   System.Reflection.BindingFlags.InvokeMethod,  
            null,   word,   null);  
  }  
   
  #region   Web   窗体设计器生成的代码  
  override   protected   void   OnInit(EventArgs   e)  
  {  
    //  
    //   CODEGEN:   该调用是   ASP.NET   Web   窗体设计器所必需的。  
    //  
    InitializeComponent();  
    base.OnInit(e);  
  }  
   
  ///   <summary>  
  ///   设计器支持所需的方法   -   不要使用代码编辑器修改  
  ///   此方法的内容。  
  ///   </summary>  
  private   void   InitializeComponent()  
  {          
    this.Load   +=   new   System.EventHandler(this.Page_Load);  
  }  
    #endregion  
  }  
  }  
   
  Top

5 楼hchxxzx(NET?摸到一点门槛)回复于 2005-06-21 19:16:08 得分 20

你必须在你的WEB.CONFIG里面启用模拟用户,否则权限不错.方法如下:  
  在"授权"节下  
  <identity   impersonate="true"   userName="xxx"   password="xxx"   />  
  上述用户你最好先用administrator用户试验一下.  
  你贴的那个代码我试过了,可以.如果转换成功html,你可尝试转换为txt看可不可以.Top

相关问题

  • 高分求Excel文件格式说明文档。
  • 高分求PDF文件格式文档
  • 文本文件格式问题
  • 求xls(excel)文件格式说明
  • 在线等待:求Excel文件格式
  • [Excel文件格式问题请教]
  • 数据导出成Excel文件格式
  • 谁有.rm文件格式标准的文档,高分相赠!
  • 固定文本文件格式处理问题
  • 如何将一个文本文件格式化输出?

关键词

  • asp.net

得分解答快速导航

  • 帖主:flovein2000
  • hchxxzx
  • hchxxzx

相关链接

  • CSDN .NET频道
  • .NET类图书
  • C#类图书
  • .NET类源码下载

广告也精彩

反馈

请通过下述方式给我们反馈
反馈
提问
网站简介|广告服务|VIP资费标准|银行汇款帐号|网站地图|帮助|联系方式|诚聘英才|English|问题报告
北京创新乐知广告有限公司 版权所有, 京 ICP 证 070598 号
世纪乐知(北京)网络技术有限公司 提供技术支持
Copyright © 2000-2008, CSDN.NET, All Rights Reserved
GongshangLogo