首页 新闻 论坛 群组 Blog 文档 下载 读书 Tag 网摘 搜索 .NET Java 游戏 视频 人才 外包 培训 数据库 书店 程序员
中国软件网
欢迎您:游客 | 登录 注册 帮助
  • 200分求Delphi读取Word [已结帖,结帖人:hys_427]
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hys_427
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 结帖率:
    发表于:2008-11-06 15:47:31 楼主
    现在关于往Word中写入数据的方法比较多,现在专门开个贴子,希望大家把自己读取Word内容的心得体会说一下,包括读取word文档中,有几个段落,如何读取第几个段落,读取有拼音的汉字,读取图片,读取表格等,希望大家不吝赐教!
    300  修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hongqi162
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 14

    发表于:2008-11-06 16:01:221楼 得分:0
    置顶吧
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xiliangzhang
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-06 16:24:272楼 得分:0
    我以前也遇到过delphi打印出word报表
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • 78hgdong
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-06 16:25:513楼 得分:0
    还没处理过WORD文件,常用EXCEL.
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fangsp
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-06 16:28:024楼 得分:0
    操作Excel的例子倒不少
    也希望有关于Word的例子
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zxf_feng
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 3

    发表于:2008-11-06 16:29:195楼 得分:0
    关注学习
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • megyrr
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-06 17:18:156楼 得分:0
    word期待哟
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • hys_427
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-06 17:30:347楼 得分:0
    我来第一段,取得文档中的段落数
    function GetParagraphsCount(docFileName:string):integer;
    var Word : Variant;
    begin
    result:=0;
    try
    Word := CreateOLEObject('Word.Application');
    Word.Documents.Open(docFileName,false);
    result:=Word.ActiveDocument.Range.Paragraphs.Count;
    finally
    Word.Quit;
    end;
    end;
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ring9909
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-06 21:33:558楼 得分:0
    关注
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mwy654321
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-07 09:29:599楼 得分:0
    可以用嵌入OLE对象(OleContainer控件)来做,比较简单。

    或者你程序在读取Word文件的时候,先把Word文件转为RTF格式,然后用Win32面板下的RichEdit1可以直接载入显示。


    希望我的回答对你有所帮助。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • tjg5202
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-07 11:28:2110楼 得分:0
    学习了。。。。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mygodsos
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-07 11:41:1311楼 得分:0
    好多猩猩,此贴必顶
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • ol_soft
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-07 12:38:0012楼 得分:0
    学习来了.....
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • jmh521
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-07 12:54:4213楼 得分:0
    引用 3 楼 78hgdong 的回复:
    还没处理过WORD文件,常用EXCEL.
    ..
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • masterjames
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-07 13:04:0614楼 得分:0
    有个非常简单的方法,将VBA改成DELPHI的就行了。VBA是支持OFFICE最全的。而且语法就是
    VB的语法。MS的OFFICE编程主推VBA
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • masterjames
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-07 13:04:5915楼 得分:0
    而不是其它的任何开发工具,包括VC
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • sjg30317
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-07 13:33:4416楼 得分:37
    //启动Word
      try
        wordapplication1.connect;
      except
        messagedlg('word may not be installed', mterror, [mbok], 0);
        abort;
      end;
    //打开文档
    procedure TForm1.OpenWord(Sfile: string);
    var
      FileName, ConfirmConversions, ReadOnly, AddToRecentFiles,
        PasswordDocument, PasswordTemplate, Revert,
        WritePasswordDocument, WritePasswordTemplate, Format,
        Encoding, Visible, OpenAndRepair,
        DocumentDirection, NoEncodingDialog: OleVariant;
      ItemIndex: OleVariant;
    begin
      FileName := sfile;
      ConfirmConversions := False;
      ReadOnly := False;
      AddToRecentFiles := False;
      PasswordDocument := '';
      PasswordTemplate := '';
      Revert := True;
      WritePasswordDocument := '';
      WritePasswordTemplate := '';
      Format := wdOpenFormatDocument;
      //打开文件
      WordApplication1.Documents.Open(FileName, ConfirmConversions,
        ReadOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate,
        Revert, WritePasswordDocument, WritePasswordTemplate, Format,
        Encoding, Visible, OpenAndRepair,
        DocumentDirection, NoEncodingDialog);
      ItemIndex := 1;
      WordDocument1.ConnectTo(WordApplication1.Documents.Item(ItemIndex));
      WordApplication1.Options.CheckSpellingAsYouType := False;
      WordApplication1.Options.CheckGrammarAsYouType := False;
      WordApplication1.Connect;
      WordApplication1.Visible := True;
      WordApplication1.Disconnect;
    end;

    //设置页眉页脚
    procedure TForm1.Button5Click(Sender: TObject);
    var
      mmm, nnn, aaa: OleVariant;
    begin
      mmm := wdLine;
      nnn := 1;
      aaa := wdFieldPage;
      worddocument1.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrentPageHeader;
      worddocument1.activewindow.Selection.Move(mmm, nnn);
      worddocument1.activewindow.Selection.ParagraphFormat.Alignment := wdAlignParagraphCenter;

      worddocument1.activewindow.Selection.InsertAfter('第');
      mmm := wdCharacter;
      worddocument1.activewindow.Selection.Move(mmm, nnn);
      worddocument1.activewindow.Selection.Fields.Add(worddocument1.activewindow.Selection.Range, aaa, mmm, nnn);
      aaa := wdFieldNumPages;
      worddocument1.activewindow.Selection.InsertAfter('页/第');
      worddocument1.activewindow.Selection.Move(mmm, nnn);
      worddocument1.activewindow.Selection.Fields.Add(worddocument1.activewindow.Selection.Range, aaa, mmm, nnn);
      worddocument1.activewindow.Selection.InsertAfter('页');


      mmm := wdWord;
      nnn := 2;
      worddocument1.activewindow.Selection.Move(mmm, nnn);
      worddocument1.activewindow.activepane.selection.insertafter(#13+'武汉大学中南医院');

      //结束编辑
      worddocument1.ActiveWindow.ActivePane.View.SeekView := wdSeekMainDocument;
    end;
    //替换页眉
    procedure TForm1.Button6Click(Sender: TObject);
    var
      FindText, MatchCase, MatchWholeWord, MatchWildcards, MatchSoundsLike,
      MatchAllWordForms, Forward, Wrap, Format, ReplaceWith, Replace,
      MatchKashida, MatchDiacritics, MatchAlefHamza, MatchControl:olevariant;

        i:Single;
    begin
      matchcase := false;
      matchwholeword := true;
      matchwildcards := false;
      matchsoundslike := false;
      matchallwordforms := false;
      forward := true;
      wrap := wdfindcontinue;
      format := false;
      replace := true;
      MatchKashida:=True;
      MatchDiacritics:=True;
      MatchAlefHamza:=True;
      MatchControl:=True;

      findtext := '武汉'; //' <#姓名>'
      replacewith := '1234';

      worddocument1.ActiveWindow.ActivePane.View.SeekView := wdSeekCurrentPageHeader;
      worddocument1.activewindow.activepane.selection.Find.Execute(Findtext, matchcase, matchwholeword,
        matchwildcards, matchsoundslike, matchallwordforms, forward,
        wrap, format, replacewith, replace,MatchKashida, MatchDiacritics, MatchAlefHamza, MatchControl);
      //结束编辑
      worddocument1.ActiveWindow.ActivePane.View.SeekView := wdSeekMainDocument;
    end;


    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • rivershan
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    • 2

    发表于:2008-11-07 14:00:0817楼 得分:0
    去研究MSDN,很多c/C++的例子。。然后看vba的帮助~~
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhangxuyu1118
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-07 14:12:0218楼 得分:0
    顶顶更健康
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • scutLiu
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-07 15:12:1719楼 得分:0
    delphi中不是有wordApplication控件吗
    应该支持word中的大部分操作吧
    暂时还没用过
    有空再研究一下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • xhj12077021
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-07 15:30:0120楼 得分:0
    学习
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • budded
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-07 15:46:3521楼 得分:0
    这个漂亮!
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yuanshuang
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-08 08:47:4622楼 得分:0
    学习了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • zhangxiaommmm
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-08 09:07:0823楼 得分:0
    学习了。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • fjtxwd
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-08 10:56:2924楼 得分:0
    delphi-->wordz做过
    word-->delphi没做过
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • aluyue
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-08 11:27:2825楼 得分:0
    引用 19 楼 scutLiu 的回复:
    delphi中不是有wordApplication控件吗
    应该支持word中的大部分操作吧
    暂时还没用过
    有空再研究一下

    .. 
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • navyly
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-08 12:58:3426楼 得分:0
    关注。学习。
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • shuihan20e
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-08 13:42:1227楼 得分:0
    CreateOLEObject('Word.Application');
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • yzp3646
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-08 15:15:5328楼 得分:0
    曾经有客户要做一个按照一个格式把数据写入excel的程序,我放弃了,今天见到楼主的问题,不得不密切关注
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天
    • mr633
    • 等级:
    • 可用分等级:
    • 总技术分:
    • 总技术分排名:
    发表于:2008-11-08 15:29:3129楼 得分:0
    关注下
    修改 删除 举报 引用 回复
    进入用户个人空间
    加为好友
    发送私信
    在线聊天