delphi 循环读取word每页的内容显示在OleContainer1内
来源:互联网 发布:linux 修改时间实例 编辑:程序博客网 时间:2024/05/07 23:22
最近要做一个word浏览内容的工具,网上找了找例子基本都差不都,下回来试了试有点问题。
OleContainer1载入word后默认都是显示第一页的,在csdn上发帖求助,终于解决了显示问题。
感谢csdn的“erhan”帮助我完成了这个工具。
我贴出来的这段代码,也是在网上找到的,网上的代码测试会发现有点问题,只有第一页和最后一页可以显示,其他页都和第一页一样的,跟踪之后发现除最后一页之外,其他页都是一样的(word全部文字信息),这里是改过后的代码:
procedure TForm1.Button7Click(Sender: TObject);var wordapp, WordDoc, PageRange: Variant; i, nPageCounts, nStart, nEnd : Integer; sContext: string;begin //禁止双击打开word编辑 olecontainer1.AutoActivate := aaManual; //禁止右键菜单 olecontainer1.AutoVerbMenu := False; wordapp := CreateOleObject('Word.Application'); try wordapp.Visible := False; WordDoc := wordapp.Documents.Open(AppPath+'7S.doc'); //文档总页数 nPageCounts := wordapp.Selection.Information[wdNumberOfPagesInDocument]; //如果只有一页 那么全选就OK了 if nPageCounts = 1 then begin wordapp.Selection.WholeStory; wordapp.selection.copy; if olecontainer1.canpaste then olecontainer1.paste; OleContainer1.Update; Exit; end; nStart := 0; nEnd := 0; //循环获取文档页中的内容 for i := 1 to nPageCounts do begin //定位到第i页 PageRange := wordapp.Selection.GoTo(wdGoToPage, wdGoToAbsolute, IntToStr(i)); //如果第i页是最后一页 那么直接将光标移动到最后 并输出内容 if i = nPageCounts then begin wordapp.Selection.EndKey(wdStory,wdExtend); wordapp.selection.copy; if OleContainer1.canpaste then OleContainer1.paste; OleContainer1.Update; Exit; end; //取第i页的页首位置作为开始位置 //nStart := wordapp.Selection.Start; nStart := nEnd; //定位到i+1页 PageRange := wordapp.Selection.GoTo(wdGoToPage, wdGoToAbsolute, IntToStr(i+1)); //取第i+1页的页首位置作为结束位置 nEnd := wordapp.Selection.Start; //showmessage(IntToStr(nStart)+';'+IntToStr(nEnd)); //根据开始位置和结束位置确定文档选中的内容(第i页的内容) WordDoc.Range(nStart,nEnd).Select; sContext := WordDoc.Range.Text; //ShowMessage(sContext); //wordapp.Selection.WholeStory; wordapp.selection.copy; if olecontainer1.canpaste then olecontainer1.paste; OleContainer1.Update; Sleep(3000); end; finally wordapp.Quit; end;end;
再次感谢csdn的“erhan”。
- delphi 循环读取word每页的内容显示在OleContainer1内
- 读取客户端word内容并且显示在页面
- reportmachine中怎样实现“数据注脚footer1”里面的内容在每页显示
- C#读取Word指定页的内容
- C#读取word文档内容并显示
- Python:读取Word的内容
- ASP.net:读取Word内容(包含表格,不包含图片)并且显示在页面中
- ASP.net:读取Word内容(包含表格,不包含图片)并且显示在页面中
- Word、Excel中实现表格打印中,标题行在每页都显示
- 简单的javascript案例--在本页内切换显示内容
- word内的内容加上行号
- php读取word里的内容
- shell:读取文件的每一行内容并输出
- shell:读取文件的每一行内容并输出
- shell:读取文件的每一行内容并输出
- shell:读取文件的每一行内容并输出
- shell:读取文件的每一行内容并输出
- shell:读取文件的每一行内容并输出
- 熟悉 MongoDB MapReduce
- Ubuntu在虚拟机下界面切换
- 在Eclipse加载Android源码
- UTF-8总结(转)
- 汉字转拼音 (精简版-使用小型)
- delphi 循环读取word每页的内容显示在OleContainer1内
- ADO.net 与数据库连接字符串
- Menu学习总结
- mysql.user 字段说明
- PlaySound播放音乐
- DirectShow的窗口
- volatile关键字后续学习
- (一)C系程序员面试必知必会之大端小端
- vs 2008链接到TFS 2010 --续 TF31002错误解决