CSDN首页 空间 新闻 论坛 Blog 下载 读书 网摘 搜索 .NET Java 视频 接项目 求职 在线学习 买书 程序员 通知
山寨机中的战斗机! 程序优化工程师到底对IT界有没有贡献
CSDN社区
搜索 收藏 打印 关闭
CSDN社区 >  Delphi >  VCL组件开发及应用

紧急!!!需要把许多WORD文件的修改保存并显示

楼主netstarter(乐乐)2003-11-01 21:38:28 在 Delphi / VCL组件开发及应用 提问

我需要把许多WORD文件存到数据库(或其他地方),然后提取出来修改,保存,然后在打印。在这个应用中,不需要显示WORD的全部菜单,但要有能实现表的编辑功能菜单,而且要求显示在应用程序框架里面,请问怎么可以实现,哪位能给我一些关于这方面的资料和代码,不胜感激!  
        我用olecontainer试了一下,发现会有所有菜单,而且打开不同的文件切换起来很慢,并且打开的状态为不可编辑,如果右键点击编辑则出现变成WORD形式,而且不可返回。  
        有什么好的方法能在WORD文件和数据库间进行快速存取 问题点数:0、回复次数:4Top

1 楼luhualing(红狐兄弟)回复于 2003-11-01 22:36:58 得分 0

打开过程是这样的:  
  一,从数据库取出WORD文件,保存到指定一个文件夹下面,并给一个文件名称(*.doc)  
  二,用OLE控件联接WORD文件并打开  
  保存过程是这样的  
  一,当WordApplication1的ONDocumentBeforeSave发生时,将当前打开的文件另保存为,然后反另保存为的这个WORD文件保存到数据库。  
  具体做法是:  
   
  下面是从数据取出并打开,这是我的原代码,你自己修改一下  
  至于保存,代码太多了  
  procedure   tfrmConEdit.P_ShowModeText(iContractID:integer);  
  var  
      Filename,PasswordDocument,PasswordTemplate,WritePasswordDocument,  
      WritePasswordTemplate,Encoding,ConfirmConversions,ReadOnly,  
      AddToRecentFiles,Revert,Visible,Format,ItemIndex:olevariant;  
   
      strContractText:string;  
      smContractText:TMemoryStream;  
  begin  
      if   bbtnAdd.Caption   ='&C.取消'   then   //当前为增加合同记录,因此不经过从数据库装载后再浏览  
      begin  
          if   trim(edtPath.Text)   <>''   then     //当路径为空是,不浏览,不为空则对当前路径的浏览  
              strContractText:=edtPath.Text  
          else  
              exit;  
      end   else     //不是增加过程中的浏览    
      begin  
          if   adoqBaseInfo.RecordCount   =0   then  
              exit;  
          strContractText:=ExtractFilePath(Application.ExeName)+'..\program\contract\合同文本.doc';  
          smContractText:=TMemoryStream.Create();       //建立内存变量  
          with   dmSystem.adoqSys   do  
          begin  
              if   active   then  
                  close;  
              sql.clear;  
              sql.add('select   ContractID,ContractText   from   T_ContractText');  
              sql.Add('where   ContractID='+inttostr(iContractID)+'');  
              open;  
              if   not   eof   then       //找到这条记录,将二进制字段内容付给变量smModeText  
              begin  
                  TblobField(fields[1]).SaveToStream(smContractText);  
                  if   smContractText.Size>0   then             //当二进制字段内容不为空  
                  begin  
                      smContractText.SaveToFile(strContractText);  
                  end   else  
                  begin  
                      showmessage('数据装载不能功,不能浏览!');  
                      smContractText.Free;  
                      exit;  
                  end;  
              end;  
          end;  
          smContractText.Free;  
      end;  
   
      frmConEdit.Visible:=false;  
      {联接WORD}  
      wordapplication1.connect;  
      wordapplication1.visible   :=   true;  
      wordapplication1.caption   :=   '柳钢物资管理系统--合同管理模块';  
      {打开一个指定的WORD文件}  
      FileName   :=   strContractText;//ExtractFilePath(Application.ExeName)+'..\program\contract\合同文本.doc';  
      ConfirmConversions:=   False;  
      ReadOnly:=False;  
      AddToRecentFiles:=False;  
      PasswordDocument:='';  
      PasswordTemplate:='';  
      Revert:=True;  
      WritePasswordDocument:='';  
      WritePasswordTemplate:=''   ;  
      Format:=wdOpenFormatDocument;  
      Visible   :=   true;  
      Encoding   :=   '';  
      WordApplication1.Documents.Open(FileName,ConfirmConversions,ReadOnly,  
      AddToRecentFiles,   PasswordDocument,   PasswordTemplate,Revert,  
      WritePasswordDocument,   WritePasswordTemplate,   Format,   Encoding,   Visible);  
      ItemIndex:=   1;  
      WordDocument1.ConnectTo(WordApplication1.Documents.Item(ItemIndex));  
      WordApplication1.Options.CheckSpellingAsYouType   :=   False;  
      WordApplication1.Options.CheckGrammarAsYouType   :=   False;  
  end;Top

2 楼netstarter(乐乐)回复于 2003-11-01 23:11:55 得分 0

谢谢你,我还想知道怎么可以编辑,当然是在我的应用程序中编辑保存WORD,还有不知道速度如何?  
  请教,如果有源代码,能给我看看  
  software16@163.comTop

3 楼wzds2000()回复于 2003-11-02 01:07:11 得分 0

帮你顶。。。Top

4 楼luhualing(红狐兄弟)回复于 2003-11-02 10:27:45 得分 0

邮件已发。Top

相关问题

  • word属性的获得和修改?紧急
  • 用OLE内嵌WORD对象 修改后如何保存?
  • 在OLE中内嵌WORD对象 修改后如何保存?
  • Word文档修改后不能保存---急!在线等!
  • 关于服务器端WORD文档保存修改的问题:
  • 关于服务器端WORD文档保存修改的问题:
  • 如何在Window Form中显示Word文件,并且可以修改、保存?
  • 关于"保存修改":
  • 保存修改的内容
  • 紧急!telnet 的edit怎么保存!

关键词

  • 文件
  • 修改
  • 数据库
  • 浏览
  • word
  • 代码
  • wordapplication1
  • smcontracttext
  • strcontracttext
  • 保存

得分解答快速导航

  • 帖主:netstarter

相关链接

  • Delphi类图书
  • Delphi类源码下载
  • Delphi控件下载

广告也精彩

反馈

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