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 中打开一个word文件
delphi 调用 word 打开一个文档,兼容性比较好的办法,是使用 oleObject 来调用本机安装的 word,示例代码如下:procedure TForm1.Button1Click(Sender: TObject);var MSWord: Variant;begin MSWord := CreateOLEObject('Word.Application');//连接Word MSWord.Documents.Open(FileName:='D:\Temp\temp.doc', ReadOnly:=True); //打开外部Word文档 MSWord.Visible := 1;//是否显示文件编辑 MSWord.ActiveDocument.Range(Start:=0, End:=0);//开始改变的启止位置 MSWord.ActiveDocument.Range.InsertAfter(Text:='myvc');//在Word中增加字符'myvc' MSWord.ActiveDocument.Range.InsertParagraphAfter; MSWord.ActiveDocument.Range.Font.Size := 72;//字体大小 MSWord.ActiveDocument.Range.Font.Name := 'Arial';//字体名称...
如何用DELPHI中的WORD控件
WordRange:=WordDocument1.Range(aTemp,Position_b); vNumRows:=ADOQuery1.RecordCount; vNumColumns:=ADOQuery1.FieldCount; WordDocument1.Tables.AddOld(WordRange,vNumRows,vNumColumns); WordTable:=WordDocument1.Tables.Item(item); T:=WordTable; WordTable:=nil;WordRange:=nil; vNumRows:=NULL(); { NULL() is in unit Variant } vNumColumns:=NULL(); ADOQuery1.First; {向表格插入数据库记录} i:=1; while not ADOQuery1.Eof do begin j:=0; while j begin T.cell(i,j+1).range.text:=ADOQuery1.Fields[j].AsString; inc(j); end; inc(i); ADOQuery1.Next; end; --------------------------------------------------------------- 在Word中用宏来画表格,然后把它的语句copy下来! 在Delphi的OLE中调用就可以了!
如何在Delphi中显示和存取Word文档之急上加
展开全部 一. 定义word应用程序,文档对象,比如:wordApp: OleVariant;wordDoc: OleVariant;二. 打开word文档wordApp := CreateOleObject('Word.Application');wordDoc := WordApp.Documents.Open(FileName:=filename,ReadOnly:= false, Revert:=True, Visible:= True);WordApp.Visible := TRUE;三.表格插入数据WordDoc.Tables.Item(TbIndex).cell(cellrow,cellcol).Range.InsertAfter(conStr);四.在指定行写数据WordDoc.Paragraphs.Item(16).Range.InsertAfter('abcd');五.指定字符位置插入数据MyRange: OleVariant;MyRange := wordDoc.Range(Start:=0,End:=10);MyRange.InsertAfter('abcd'+#13);六.文件保存wordDoc.SaveAs(filename);七.连接word(联系:二打开文档)//测试当前是否运行了wordtryv := getactiveoleobject(word.application);except//未运行则运行之v := createoleobject(word.basic);end;r /> try//连接到wordwordapp.connect;exceptbeep;messagedlg(不能生成文档,请确认是否安装了word 2000!, mterror, [mbok], 0);abort;end;//八.复制打开的word的内容WordApp := CreateOleObject('Word.Application'); //创建word对象WordApp.Documents.open(file1); //打开一个word文档wordapp.visible:=false; //是否让打开的word文档显示出来wordapp.activedocument.select; //选取打开的word文档中全部内容wordapp.selection.copy; //拷贝选取的内容memo1.PasteFromClipboard; //把拷贝的内容粘贴到richedit中WordApp.Quit; //关闭对象九.粘贴至word(粘贴板)WordApp := CreateOleObject('Word.Application'); //创建word对象WordApp.Visible:= True ;WordApp.Documents.Add;WordApp.Documents.Item(1).Range.paste;十.新建文档:格式:WordDocuments.Add(Template,NewTemplate,DocumentType,Visible)Template: 使用模板的名称,NewTemplate: 新建文档的类型,True表示为模板,False表示为文档DocumentType: 文档类型,默认为空白文档Visible: 打捞的窗口是否可见举例:Doc_Handle:=Word_Ole.Documents.Add(Template:='C:/Temlate.dot',NewTemplate:=False);十一.连接已打开文档WordDocument.ConnectTo(WordApplication.Documents.Item(ItemIndex));
Delphi中如何调用“接口”,以读取TWordDocument....
要使用 Excel 中的内置属性,请使用以下属性:在文档级项目中,使用 ThisWorkbook 类的 BuiltinDocumentProperties 属性。
在 VSTO 外接程序项目中,使用 Microsoft.Office.Interop.Excel.Workbook 对象的 BuiltinDocumentProperties 属性。
这些属性将返回 T:Microsoft.Office.Core.DocumentProperties 对象,该对象为 T:Microsoft.Office.Core.DocumentProperty 对象的集合。
可以使用集合的 Item 属性,按名称或索引检索该集合中的特定属性。
下面的代码示例演示了如何更改文档级项目中的内置 Revision Number 属性。
若要更改在 Excel 中的修订号属性将内置文档属性分配给变量。
C#VBMicrosoft.Office.Core.DocumentProperties properties;properties = (Microsoft.Office.Core.DocumentProperties)Globals.ThisWorkbook.BuiltinDocumentProperties; Microsoft.Office.Core.DocumentProperty prop;prop = properties["Revision Number"]; 以 1 递增 Revision Number 属性。
C#VBif (prop.Value == null){prop.Value = 1;}else{int revision;if (int.TryParse((string)prop.Value, out revision)){prop.Value = revision + 1;MessageBox.Show("Revision Number = " + revision);}else{MessageBox.Show("Revision Number = invalid value");}}在 Word 中设置文档属性若要使用 Word 中的内置属性,请使用以下属性:在文档级项目中,使用 ThisDocument 类的 BuiltInDocumentProperties 属性。
在 VSTO 外接程序项目中,使用 Microsoft.Office.Interop.Word.Document 对象的P:Microsoft.Office.Interop.Word._Document.BuiltInDocumentProperties 属性。
这些属性将返回 T:Microsoft.Office.Core.DocumentProperties 对象,该对象为 T:Microsoft.Office.Core.DocumentProperty 对象的集合。
可以使用集合的 Item 属性,按名称或索引检索该集合中的特定属性。
下面的代码示例演示了如何更改文档级项目中的内置 Subject 属性。
若要更改主题属性将内置文档属性分配给变量。
C#VBMicrosoft.Office.Core.DocumentProperties properties;properties = (Microsoft.Office.Core.DocumentProperties)Globals.ThisDocument.BuiltInDocumentProperties; 将 Subject 属性更改为“白皮书”。
C#VB// Set the Subject property. properties["Subject"].Value = "Whitepaper";
delphi中如何将内容保存到Word中?我没有使用数据库
写个函数给您,其中myw就是您的WordApplication组件,mydoc就是您的WordDocument组件procedure CreateNewWordDoc(myw: TWordApplication; mydoc: TWordDocument);overload;var p: OleVariant;beginmyw.Disconnect;p := EmptyParam;myw.connect();myw.Documents.Add(p, p, p, p);mydoc.ConnectTo(myw.ActiveDocument);myw.Visible:=true;end;
如何在Delphi中显示和存取Word文档之急上加
一. 定义word应用程序,文档对象,比如:wordApp: OleVariant;wordDoc: OleVariant;二. 打开word文档wordApp := CreateOleObject('Word.Application');wordDoc := WordApp.Documents.Open(FileName:=filename,ReadOnly:= false, Revert:=True, Visible:= True);WordApp.Visible := TRUE;三.表格插入数据WordDoc.Tables.Item(TbIndex).cell(cellrow,cellcol).Range.InsertAfter(conStr);四.在指定行写数据WordDoc.Paragraphs.Item(16).Range.InsertAfter('abcd');五.指定字符位置插入数据MyRange: OleVariant;MyRange := wordDoc.Range(Start:=0,End:=10);MyRange.InsertAfter('abcd'+#13);六.文件保存wordDoc.SaveAs(filename);七.连接word(联系:二打开文档)//测试当前是否运行了wordtryv := getactiveoleobject(word.application);except//未运行则运行之v := createoleobject(word.basic);end;r /> try//连接到wordwordapp.connect;exceptbeep;messagedlg(不能生成文档,请确认是否安装了word 2000!, mterror, [mbok], 0);abort;end;//八.复制打开的word的内容WordApp := CreateOleObject('Word.Application'); //创建word对象WordApp.Documents.open(file1); //打开一个word文档wordapp.visible:=false; //是否让打开的word文档显示出来wordapp.activedocument.select; //选取打开的word文档中全部内容wordapp.selection.copy; //拷贝选取的内容memo1.PasteFromClipboard; //把拷贝的内容粘贴到richedit中WordApp.Quit; //关闭对象九.粘贴至word(粘贴板)WordApp := CreateOleObject('Word.Application'); //创建word对象WordApp.Visible:= True ;WordApp.Documents.Add;WordApp.Documents.Item(1).Range.paste;十.新建文档:格式:WordDocuments.Add(Template,NewTemplate,DocumentType,Visible)Template: 使用模板的名称,NewTemplate: 新建文档的类型,True表示为模板,False表示为文档DocumentType: 文档类型,默认为空白文档Visible: 打捞的窗口是否可见举例:Doc_Handle:=Word_Ole.Documents.Add(Template:='C:/Temlate.dot',NewTemplate:=False);十一.连接已打开文档WordDocument.ConnectTo(WordApplication.Documents.Item(ItemIndex));
在Delphi中输入的数据填入Word表格中,并显示Word。
usesword2000, comobj;varMyWord, MyDoc :Variant; beginMyWord := CreateOleObject('Word.Application');MyDoc := CreateOleObject('Word.Document');MyWord.Visible := 1;MyDoc := MyWord.Documents.Open(FileName := 'C:\A.doc', ReadOnly:=False);//打开外部Word文档MyDoc.Tables.Item(表格序号).Cell(x, y).Range.Text := 'abcd';...end;
如何在delphi中和当前运行的word进行交互
展开全部 delphi 调用 word 打开一个文档,兼容性比较好的办法,是使用 oleObject 来调用本机安装的 word,示例代码如下: procedure TForm1.Button1Click(Sender: TObject);var MSWord: Variant;begin MSWord := CreateOLEObject('Word.Application');//连接Word MSWord.Documents.Open(FileName:='D:\Temp\temp.doc', ReadOnly:=True); //打开外部Word文档 MSWord.Visible := 1;//是否显示文件编辑 MSWord.ActiveDocument.Range(Start:=0, End:=0);//开始改变的启止位置 MSWord.ActiveDocument.Range.InsertAfter(Text:='myvc');//在Word中增加字符'myvc' MSWord.ActiveDocument.Range.InsertParagraphAfter; MSWord.ActiveDocument.Range.Font.Size := 72;//字体大小 MSWord.ActiveDocument.Range.Font.Name := 'Arial';//字体名称end;...
转载请注明出处51数据库 » delphi中worddocument
万伟锋