delphi读取WORD文档每一页的内容
展开全部 uses ComObj,WordXp;var wordapp, WordDoc, PageRange: Variant; sContext: string; i, nPageCounts, nStart, nEnd : Integer;begin wordapp := CreateOleObject('Word.Application'); try wordapp.Visible := True; if dlgOpen1.Execute = False then Exit; WordDoc := wordapp.Documents.Open(dlgOPen1.FileName); //文档总页数 nPageCounts := wordapp.Selection.Information[wdNumberOfPagesInDocument]; //如果只有一页 那么全选就OK了 if nPageCounts = 1 then begin wordapp.Selection.WholeStory; mmo1.Lines.Add('=============第'+IntToStr(nPageCounts)+'页内容:==================='); mmo1.Lines.Add(wordapp.Selection.Text); Exit; end; nStart := -1; nEnd := -1; //循环获取文档页中的内容 for i := 1 to nPageCounts do begin //定位到第i页 PageRange := wordapp.Selection.GoTo(wdGoToPage, wdGoToNext, IntToStr(i)); //如果第i页是最后一页 那么直接将光标移动到最后 并输出内容 if i = nPageCounts then begin wordapp.Selection.EndKey(wdStory,wdExtend); sContext := WordApp.Selection.Range.Text; mmo1.Lines.Add('=============第'+IntToStr(i)+'页内容:==================='); mmo1.Lines.Add(sContext); Exit; end; //取第i页的页首位置作为开始位置 nStart := wordapp.Selection.Start; //定位到i+1页 PageRange := wordapp.Selection.GoTo(wdGoToPage, wdGoToNext, IntToStr(i+1)); //取第i+1页的页首位置作为结束位置 nEnd := wordapp.Selection.Start; //根据开始位置和结束位置确定文档选中的内容(第i页的内容) WordDoc.Range(nStart,nEnd).Select; sContext := WordDoc.Range.Text; //输出内容 mmo1.Lines.Add('=============第'+IntToStr(i)+'页内容:==================='); mmo1.Lines.Add(sContext); nStart := -1; nEnd := -1; end; finally wordapp.Quit; end;end;昨天没有测试好 这个应该没有问题了吧 试一下吧
delphi中怎么逐行读取文本文件的数据并分别写入指定的位置
FileName:string;f:Textfile;s:string;FileName:='C:\this.log'; AssignFile(f,FileName);//关联文件Reset(f);Readln(f,s); //读一行memo1.Lines.Add(s); //写到MEMO1ReadLn(f,s); //再读一行memo2.Lines.Add(s);//写到MEMO2CloseFile(f);//关闭
怎样用delphi编写内嵌的读写word的编辑器
是说参数不够。
应该还需要别的参数 //先定义一个OLE变量 insertLine: OleVariant ; //在要插入的地方插入代码 insertLine:=1;//要插入的行数 WordApp.Selection.InsertRowsBelow(insertLine);//如果对WORD操作不熟,可参考下面的网址http://hi.baidu.com/jinsu/blog/item/42c2a53ee3e2c1fd828b139d.html
delphi:如何对word中的书签进行赋值,把赋值的内容显示出来。
我将我的商用《旅行社管理系统》的 发团通知 部分奉献给您,望对您有所帮助。
procedure TFrmMain.N327Click(Sender: TObject);varFWord :Variant;FDoc :Variant;strSQL :string;begin//首先创造对象,如果出现异常就做出提示try FWord := CreateOleObject('Word.Application'); //WOrd程序的执行是否可见,值为false时,程序在后台运行。
FWord.Visible := True;except messagebox(0,'创建word对象失败!','警告',MB_OK+MB_ICONINFORMATION); exit;end;strSQL :='select * From "B_T_Company_Infor"';with dm.ClientDataSet_Temp dobegin if Active then Active:=False; CommandText:=strSQL; Open;end;//现在打开的Word中,创建一个新的页面,然后在其中键入需要的内容try FDOC :=FWord.Documents.Add; {对于Word的新页面} FWord.Selection.Font.Name :='宋体'; FWord.Selection.Font.Size :=20; FWord.Selection.Font.Bold :=2; FWord.Selection.paragraphs.Alignment := wdAlignParagraphCenter; FWord.Selection.TypeText(dm.ClientDataSet_Temp.Fields[0].AsString); FWord.Selection.Typeparagraph;//换行 FWord.Selection.Typeparagraph; FWord.Selection.paragraphs.Alignment := wdAlignParagraphLeft; FWord.Selection.Font.Size :=12; FWord.Selection.Font.Bold :=0; FWord.Selection.TypeText(' 现将我社组团部的'); FWord.Selection.TypeText(' '); FWord.Selection.TypeText('团计划发出,各地请按下列行程做接待,并及早落实'+'团队计划和选派优秀导游员。
各地代订住宿、火车票、机票务必安排好接待,日程'+'如有变更,及时与下站接待社或本社联系,各地接团时请举【'+ dm.ClientDataSet_Temp.Fields[0].AsString+'】接站牌。
'); FWord.Selection.Typeparagraph;//换行 FWord.Selection.Typeparagraph;//换行 FWord.Selection.TypeText('请速回传真确认,谢谢合作!'); FWord.Selection.Typeparagraph;//换行 FWord.Selection.Typeparagraph;//换行 FWord.Selection.TypeText('人数:'); FWord.Selection.TypeText('人数:'); FWord.Selection.TypeText('国籍:'); FWord.Selection.TypeText('国籍:'); FWord.Selection.TypeText('等级:'); FWord.Selection.TypeText('等级:'); FWord.Selection.Typeparagraph;//换行 FWord.Selection.TypeText('这里是团队安排'); FWord.Selection.Typeparagraph;//换行 FWord.Selection.Typeparagraph;//换行 FWord.Selection.TypeText('TO: '); FWord.Selection.TypeText('12345678901234567890'); FWord.Selection.Typeparagraph;//换行 FWord.Selection.TypeText('TEL: '); FWord.Selection.TypeText('12345678901234567890'); FWord.Selection.Typeparagraph;//换行 FWord.Selection.TypeText('FAX: '); FWord.Selection.TypeText('12345678901234567890'); FWord.Selection.Typeparagraph;//换行 FWord.Selection.Typeparagraph;//换行 FWord.Selection.TypeText('______________________________________________'); FWord.Selection.Typeparagraph;//换行 FWord.Selection.Typeparagraph;//换行 FWord.Selection.TypeText('FROM: '); FWord.Selection.TypeText(dm.ClientDataSet_Temp.Fields[0].AsString); FWord.Selection.Typeparagraph;//换行 FWord.Selection.TypeText('TEL: '); FWord.Selection.TypeText(dm.ClientDataSet_Temp.Fields[3].AsString); FWord.Selection.Typeparagraph;//换行 FWord.Selection.TypeText('FAX: '); FWord.Selection.TypeText(dm.ClientDataSet_Temp.Fields[4].AsString); FWord.Selection.Typeparagraph;//换行Except on e: Exception do Messagebox(0,Pchar(e.Message),'警告',MB_OK+MB_ICONINFORMATION);end;//保存文档FWord.Caption := '组团计划保存在: '+ExtractFilePath(application.ExeName)+'Reports\GroupPlan.doc';FDOC.SaveAS(ExtractFilePath(application.ExeName)+'Reports\GroupPlan.doc');if messagebox(0,'组团计划已经保存成功!'+chr(13)+chr(13)+'单击【确定】退出Word,返回到程序中!','您确信要退出Word吗?',MB_YESNO+MB_ICONINFORMATION+MB_DEFBUTTON2)=IDYES thenbegin FWord.Quit; FWord := Unassigned;end;end;-----------------------------Delphi与Word之间的融合技术(1)一、VBA代码含义Microsoft Word是一个集成化环境,是美国微软公司的字处理系统,但是它决不仅仅是一个字处理系统,它集成了Microsoft Visual Basic,可以通过编程来实现对Word功能的扩展。
Microsoft Visual Basic在word中的代码即Word的宏,通过编写Word宏,可实现一些文档处理的自动化,如实现文档的自动备份、存盘等,可扩展Word文档的功能,因此,能够充分利用Word的特性,甚至使Word成为自己软件的一部分。
Word的宏既有有利的一部分,因为它能够帮助我们实现文档的自动化,但是Word的宏也不是纯粹的有利,有时它可能危害我们的文档、计算机系统甚 至网络,从最开始的Taiwan NO1宏病毒到现在的Melissa宏病毒,从最开...
delphi读取文本(一行一行读入)
——————————————回答是能!用了几个全局变量,把你想要的程序搞出来了(不算太难^-^)。
我运行了一下,没有问题!源码如下:unit Unit1;interfaceusesWindows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,Dialogs, StdCtrls;typeTForm1 = class(TForm)Edit1: TEdit;Button1: TButton;procedure FormCreate(Sender: TObject);procedure FormClose(Sender: TObject; var Action: TCloseAction);procedure Button1Click(Sender: TObject);private{ Private declarations }public{ Public declarations }end;varForm1: TForm1;mylist:TStringlist;i,a:integer;{i用来统计mylist的count,判断是不是到了mylist的最后一行;a用来重复递加,以便读取下一行}implementation{$R *.dfm}procedure TForm1.FormCreate(Sender: TObject);begina:=0;{赋a值为0,以便按button1时读mylist的第一行}if fileexists('E:\aa.txt') thenbeginmylist:=TStringlist.Create;mylist.LoadFromFile('E:\aa.txt');{读文件到mylist}end;i:=mylist.Count;{获得mylist的count}button1.Caption:='开始';edit1.text:='按[开始]键读第一行';end;procedure TForm1.Button1Click(Sender: TObject);beginif a<>i then{判断a是否为i,既不是mylist的未尾}beginbutton1.Caption:='下一行';edit1.Clear;{清除edit1的上一行内容}edit1.Text:=mylist.Strings[a];{添加一行}a:=a+1;{a值加1,既为下一行}endelse{如果到mylist未尾,赋a值为0,从第一行重开始}begina:=0;edit1.Clear;showmessage('此行为文件未行,点击从第一行开始');edit1.Text:='请点击[重新开始]';edit1.SetFocus;button1.Caption:='重新开始';end;end;procedure TForm1.FormClose(Sender: TObject; var Action: TCloseAction);beginmylist.Free;{释放mylist}end;end.
转载请注明出处51数据库 » delphi逐行读取word文档