delphi操作word 二、Delphi程序新建Word文稿 举例:Doc_Handle:=Word_Ole.Documents.Add(Template:='C:\Temlate.dot',NewTemplate:=False); 三、Delphi程序打开Word文稿 FileName: 文档名(包含路径) 举例: 四、Delphi程序保存Word文稿 FileName: 文件名。默认为当前文件夹和文件名。 举例: 五、从数据库读取文件到本地硬盘和从本地硬盘读取文件到数据库 在数据库上使用Image二进制字段保存,使用Stream流的方式。 创建文件流: 保存到数据库的Image字段: 从数据库读取文件到本地硬盘: 释放文件流: 六、全局消息的定义 定义消息的办法: 发送消息的方法: 七、Delphi程序接收消息的方法 对于法二,声明如下: 八、Word中Combo对话框的动态生成以及Change事件 定义Combo控件产生事件的模块 产生Combo对话框 进行文件句柄设置,以产生Combo_Change事件 产生事件后,在类模块Combohander内选择ComboBoxEvent的Change事件,即可书写事件代码 九、一些Word的事件 Document_Close:事件在文档关闭时产生事件 在Dephi &中提供了一组Servers组件,实现了与Office的无缝结合 1、在当前程序目录下建立以标题字段命名的Word文件 exepath:=application.ExeName; for index:=1 to length(exepath) do if exepath[index]='\' then i:=index; exepath:=copy(exepath,1,i); doc_file:=exepath+mc+'.doc'; 以标题字段"mc"命名Word文件 try Wordapplication1.connect; except messagedlg('没有安装Word',mterror,[mbok],0); abort; end; Wordapplication1.Caption := 'XX计划书'; Wordapplication1.visible := true; Worddocument1.activate; 2、设置纸张大小 Wordapplication1.ActiveDocument.PageSetup.PageWidth:=XXX; Wordapplication1.ActiveDocument.PageSetup.PageHeight:=XXX; Wordapplication1.ActiveDocument.PageSetup.LeftMargin := XX; //设置左边距 Wordapplication1.ActiveDocument.PageSetup.rightMargin := XX; //设置右边距 3、插入页码 var fpage,pagea:olevariant; fpage:=true; pagea:=wdAlignPageNumberCenter; Wordapplication1.activedocument.sections.item(1).Footers.item(1).PageNumbers.Add(pagea,fpage); 4、设置页面横向打印 s:=Wordapplication1.selection.start; e:=Wordapplication1.selection.start; aa:=wdSectionBreakNextPage; Wordapplication1.ActiveDocument.Range(s,e).InsertBreak(aa); Wordapplication1.Selection.Start:=Wordapplication1.Selection.Start + 1; s:=Wordapplication1.Selection.start; e:=Wordapplication1.ActiveDocument.Content.End_; Wordapplication1.ActiveDocument.Range(S,e).PageSetup.Orientation:=wdOrientLandscape; 5、设置字体、字号 Wordapplication1.Selection.Font.Size:=18; Wordapplication1.Selection.Font.Name := '黑体'; Wordapplication1.Selection.TypeParagraph; Wordapplication1.Selection.ParagraphFormat.Alignment:= wdAlignParagraphCenter; Wordapplication1.Selection.TypeParagraph; Wordapplication1.Selection.TypeText(dbedit4.text); //标题 Wordapplication1.Selection.Font.Size := 14; Wordapplication1.Selection.Font.Name := '宋体'; Wordapplication1.Selection.TypeParagraph; Wordapplication1.Selection.TypeParagraph; Wordapplication1.Selection.ParagraphFormat.Alignment := wdAlignParagraphJustify; Wordapplication1.Selection.TypeText(' '+trim(dbmemo1.text)); //正文 ... ... 6、插入表格 Wordapplication1.Selection.Font.Size :=10; adoquery2.Active:=false; adoquery2.active:=true; doc:=Wordapplication1.activedocument; counts:=adoquery2.RecordCount; //记录数决定表格的行数 t:=doc.tables.Add(Wordapplication1.selection.range,counts+1,5);//5列 t.cell(1,1).range.text:= '单位'; t.Cell(1,1).Width:=120; t.cell(1,1).range.Paragraphs.Alignment:= wdAlignParagraphCenter; t.cell(1,2).range.text:= '姓名'; ... ... //依次写入其他字段的表头 for i:=2 to counts+1 do begin t.cell(i,1).range.text:=adoquery2.field byname('dw').asstring; t.Cell(i,1).Width:=120; t.cell(i,1).range.Paragraphs.Alignment:= wdAlignParagraphCenter; t.cell(i,2).range.text:=adoquery2.field byname('xm').asstring; ... ... Adoquery2.next; End; 使用Dephi将Word与数据库结合,实现了用户文档的自动生成,大大地方便了用户。 |
本文版权归作者和博客园共有,欢迎转载,但未经作者同意必须保留此段声明,且在文章页面明显位置给出原文连接,否则保留追究法律责任的权利。