Delphi与Word 举例

原创 2004年09月08日 16:19:00

//================== Word_VBA 代码 ====================//
sub inWord()
  Dim myTable As Table
  Dim myBox, myPict, myShape As Shape
 
  '画第一个矩形框
  Set myBox = ActiveDocument.Shapes.AddTextbox(Orientation:=1, Left:=90, Top:=70, Width:=414, Height:=200)
 
  '画一条竖线
  Set myLine = ActiveDocument.Shapes.AddLine(255, 70, 255, 270)

  '画第一幅图
  Set myPict = ActiveDocument.Shapes.AddPicture("D:/test/test/load_jpg1/photo/108259.jpg", _
  LinkToFile:=False, SaveWithDocument:=True, Left:=180, Top:=80, Width:=65, Height:=80)
 
  '画第二幅图
  Set myPict = ActiveDocument.Shapes.AddPicture("D:/test/test/load_jpg1/photo/108259.jpg", _
  LinkToFile:=False, SaveWithDocument:=True, Left:=262, Top:=80, Width:=65, Height:=80)
 
  '姓名
  Set myShape = ActiveDocument.Shapes.AddTextbox(Orientation:=1, Left:=108, Top:=198, Width:=126, Height:=18)
  myShape.Line.Visible = msoFalse
  myShape.TextFrame.TextRange.Text = "姓名:新之助"

  '年龄
  Set myShape = ActiveDocument.Shapes.AddTextbox(Orientation:=1, Left:=108, Top:=225, Width:=126, Height:=18)
  myShape.Line.Visible = msoFalse
  myShape.TextFrame.TextRange.Text = "年龄:12"
 
  '个人信息
  Set myShape = ActiveDocument.Shapes.AddTextbox(Orientation:=1, Left:=351, Top:=90, Width:=126, Height:=99)
  myShape.Line.Visible = msoFalse
  myShape.TextFrame.TextRange.Text = "个人信息"

  '文本框中添加表格
  Set myShape = ActiveDocument.Shapes.AddTextbox(Orientation:=1, Left:=288, Top:=198, Width:=189, Height:=63)
  myShape.Line.Visible = msoFalse

  Set myTable = ActiveDocument.Tables.Add(Range:=myShape.TextFrame.TextRange, NumRows:=3, NumColumns:= _
        2, DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed)
  myTable.Cell(1, 1).Range.Text = "体重"
  myTable.Cell(1, 2).Range.Text = "40kg"
  myTable.Cell(2, 1).Range.Text = "身高"
  myTable.Cell(2, 2).Range.Text = "120cm"
  myTable.Cell(3, 1).Range.Text = "坐高"
  myTable.Cell(3, 2).Range.Text = "65cm"
end sub
//================== Delphi代码 ====================//
procedure inDelphi;
var
WordApp,WordDoc,WordTable,wordShape:OleVariant;  //  se:Selection;
filename:string;
begin
  SaveDialog1.InitialDir:=ExtractFilePath(Application.ExeName)+'out_file';
  SaveDialog1.Execute;
  self.Refresh;
  filename:=savedialog1.FileName;
  if length(filename)=0 then
  begin
     application.MessageBox('  没有选择统计文件的存储位置,不能保存统计的数据!  ','提示框',mb_ok);
     exit;
  end;
  WordApp:=CreateOleObject('Word.Application');
  WordApp.Visible:=True;
  WordDoc:=WordApp.Documents.Add;
  try

  //画第一个矩形框
  worddoc.SHAPES.AddTextbox(Orientation:=1,  Left:=90, Top:=70, Width:=414, Height:=200);
  //画一条竖线
  worddoc.Shapes.AddLine(255, 70, 255,270);
  //画第一幅图
  worddoc.SHAPES.addpicture(ExtractFilePath(Application.ExeName)+'photo/108259.jpg',
  LinkToFile:=False, SaveWithDocument:=True, Left:=180, Top:=80, Width:=65, Height:=80);
  //画第二幅图
  worddoc.SHAPES.addpicture(ExtractFilePath(Application.ExeName)+'photo/108259.jpg',
  LinkToFile:=False, SaveWithDocument:=True, Left:=262, Top:=80, Width:=65, Height:=80);

  //画 姓名 框
  wordShape:=worddoc.Shapes.AddTextbox(Orientation:=1, Left:=108, Top:=198, Width:=126, Height:=18);
  wordShape.Line.Visible := false;
  wordShape.TextFrame.TextRange.Text := '姓名:新之助';
  //年龄  框
  wordShape:=worddoc.Shapes.AddTextbox(Orientation:=1, Left:=108, Top:=225, Width:=126, Height:=18);//.Select;
  wordShape.Line.Visible := false;
  wordShape.TextFrame.TextRange.Text := '年龄:12';
  //个人信息  框
  wordShape:=worddoc.Shapes.AddTextbox(Orientation:=1, Left:=351, Top:=90, Width:=126, Height:=99);//.Select;
  wordShape.Line.Visible := false;
  wordShape.TextFrame.TextRange.Text := '个人信息';
  //文本框中添加表格
  wordShape:=worddoc.Shapes.AddTextbox(Orientation:=1, Left:=288, Top:=198, Width:=189, Height:=63);//.Select;
  wordShape.Line.Visible := false;
  WordTable := worddoc.Tables.Add(Range:=wordShape.TextFrame.TextRange, NumRows:=3, NumColumns:=2,
         DefaultTableBehavior:=wdWord9TableBehavior, AutoFitBehavior:=wdAutoFitFixed);
  WordTable.Cell(1, 1).Range.Text := '体重';
  WordTable.Cell(1, 2).Range.Text := '40kg';
  WordTable.Cell(2, 1).Range.Text := '身高';
  WordTable.Cell(2, 2).Range.Text := '120cm';
  WordTable.Cell(3, 1).Range.Text := '坐高';
  WordTable.Cell(3, 2).Range.Text := '65cm';

  WordDoc.saveas(filename);
  application.MessageBox('  输出成功!  ','提示框',mb_ok);

  finally
  WordDoc.Saved:=true;
  WordDoc.Close;
  WordApp.Quit;
  end;

end;

 

Delphi操作word的基本用法

刚把delphi捡起来,第一个要做的竟然操作word,总结一下。一. 定义word应用程序,文档对象,比如:wordApp: OleVariant;   wordDoc: OleVariant;二. ...
  • soasoa
  • soasoa
  • 2008年09月19日 12:56
  • 7752

Delphi与Word之间的融合技术

一、VBA代码含义Microsoft Word是一个集成化环境,是美国微软公司的字处理系统,但是它决不仅仅是一个字处理系统,它集成了Microsoft Visual Basic,可以通过编程来实现对W...
  • qiankun19851231
  • qiankun19851231
  • 2007年10月09日 10:26
  • 711

delphi操作word实例

  • 2013年12月25日 15:30
  • 166KB
  • 下载

使用Delphi 7控制Word 2000生成文档的方法

最近帮同学用Delphi 7写的一个数据库应用中的一个功能是将查询的结果导出到一个Word文档中保存。虽然Delphi 7的Servers面板中提供了TWordApplication和TWordDoc...
  • neowang
  • neowang
  • 2004年10月08日 09:03
  • 9545

在Delphi中很精确地控制生成的WORD文档的格式

var    WordApplication1: TWordApplication; 通过以下的方式就可以在DELPHI中很精确地控制生成的WORD文档的格式。     //-----------...
  • han99yi
  • han99yi
  • 2014年08月05日 09:30
  • 1564

Delphi操作Word的方法

Delphi操作Word的方法 一、VBA代码含义 Microsoft Word是一个集成化环境,是美国微软公司的字处理系统,但是它决不仅仅是一个字处理系统,它集成了Microsoft Vis...
  • xieyunc
  • xieyunc
  • 2015年11月27日 17:43
  • 2659

Delphi的几种类型转换

Delphi的几种类型转换 unit Support; interface type dword=longword; function WordToStr(Value: word): string; ...
  • yangb0803
  • yangb0803
  • 2016年05月13日 21:39
  • 2216

Delphi 打印实例

unit Unit1; interface uses Windows, Messages, SysUtils, Classes, Graphics, ...
  • lailai186
  • lailai186
  • 2013年05月16日 14:20
  • 2701

屏蔽word的快捷键、菜单、工具栏

VBA:主界面_复制等快捷键_右键菜单____禁用/恢复   请 hnymx2005 兄试试以下代码: '查找需要的窗口 Private Declare Function FindWin...
  • youthon
  • youthon
  • 2015年01月12日 11:24
  • 2521

用Delphi从内存流中判断图片格式

废话不多说了,利用内存流来判断文件的格式,其实判断文件的前几个字节就可以简单的判断这个文件是什么类型的文件,例如 jpg文件 是 FFD8 (从低位到高位就要反过来 D8FF 下面都是一样) ...
  • my98800
  • my98800
  • 2016年12月09日 11:27
  • 349
内容举报
返回顶部
收藏助手
不良信息举报
您举报文章:Delphi与Word 举例
举报原因:
原因补充:

(最多只允许输入30个字)