Delphi操作word的基本用法

刚把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 := false;
/**************************************************************
 WordDocuments.Open(FileName,ConfirmConversions,ReadOnly,PassWordDocument,
 PasswordTemplate,Revent,WritePasswordDocument,WritePassWordTemplate,
 Format,Encoding,Visible)

FileName: 文档名(包含路径)
Confirmconversions: Variant 类型,可选。该属性为 True 时,如果文档不是 Microsoft Word 格式 ,则显示“文件转换”对话框。
ReadOnly: 是否以只读方式打开文档
AddToRecentFiles: 是否将文件添加到"文件"菜单底部的最近使用文件列表中
PassWordDocument: 打开此文档时所需要的密码
PasswordTemplate: 打开此模板时所需要的密码
Revert: Variant 类型,可选。用于控制当 FileName 与已打开的文档同名时执行的操作。如果此属性 为 True,则放弃对已打开文档进行的所有尚未保存的改动,并将重新打开该文档。如果此属性 为 False,则激活已打开的文档。
WritePasswordDocument: 保存对文档更改时所需要的密码
WritePasswordTemplate: 保存对模板进行更改时所需要的密码
Format: 打开文档时所需使用的文件转换器
Encoding: 所使用的文档代码页
Visible: 打开文档的窗口是否可见

举例:
Doc_Handle:=Word_Ole.Documents.open(FileName:=Doc_File,ReadOnly:=False,
AddToRecentFiles:=False);

***********************************************************************/ 
三.表格插入数据
 WordDoc.Tables.Item(TbIndex).cell(cellrow,cellcol).Range.InsertAfter(conStr);
        /*
  表格(编号:Tbindex);
    插入表格中第cellrow行,cellcol列中
    插入内容为conStr
 */
四.在指定行写数据
 WordDoc.Paragraphs.Item(16).Range.InsertAfter('abcd');
 /*在第16行的位置插入'abcd'*/
五.指定字符位置插入数据
 MyRange: OleVariant;
 MyRange := wordDoc.Range(Start:=0,End:=10);
 MyRange.InsertAfter('abcd'+#13);
 /*在第10个字符位置输入'abcd'换行*/
六.文件保存
 wordDoc.SaveAs(filename);
/*这个函数还有其他参数用来控制,VBA中讲解的很详细*/

七.连接word(联系:二打开文档)

//测试当前是否运行了word
try
v := getactiveoleobject(word.application);
except
//未运行则运行之
v := createoleobject(word.basic);
end;
try
//连接到word
wordapp.connect;
except
beep;
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));

1.所需的三个控件: ChooseWA: TWordApplication; ChooseWD: TWordDocument; ChooseWF: TWordFont; 2.检查计算机是否安装了WORD try ChooseWA.Connect; except MessageBox(handle,'无法链接,请确认电脑上是否安装Word XP/2003及以上版本','连接出错', MB_Ok or MB_ICONERROR); Abort; end; 3.关闭WORD拼写检查 //因为Word进行拼写检查需要很多时间,所以首先关闭检查 ChooseWA.Options.CheckSpellingAsYouType := False; ChooseWA.Options.CheckGrammarAsYouType := False; 4.新建一个文档设置文档的标题 var NewDocument: _Document; ItemIndex: OleVariant; ItemIndex := 1; NewDocument := ChooseWA.Documents.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam); ChooseWD.ConnectTo(NewDocument); ChooseWD.Windows.Item(ItemIndex).Caption := '我新建的第一个文档';//此文档的第一个窗口的标题,试卷 名称 5.写入数据 ChooseWD.Range.InsertAfter('第一行数据'+#13);//#13代表换行 6.设置字体格式 procedure SetFont(aBold,aItalic,aShadow,aSize:integer); begin ChooseWF.ConnectTo(ChooseWD.Sentences.Get_Last.Font); ChooseWF.Name := '宋体'; ChooseWF.Bold := aBold; ChooseWF.Italic := aItalic; ChooseWF.Shadow := aShadow; ChooseWF.Size := aSize; end; 如:SetFont(1,0,0,22);//设置字体为22号 7.向WORD中写入表格 (1)插入表格: ChooseWD.Tables.Add(ChooseWD.Words.Last, RowNum, ColNum,EmptyParam,EmptyParam);//RowNum为行数, ColNum为列数 (2)插入数据: ChooseWD.Tables.Item(1).Cell(1,1).Range.Text := '第一行第一列'; ChooseWD.Tables.Item(1).Cell(2,1).Range.Text := '第二行第一列'; 8.向WORD写入图片 var Img: TImage; MyFormat: Word; AData: Cardinal; APalette: HPALETTE; Img.Picture.LoadFromFile('文件路径');//从文件夹中导入图片至控件 Img.Picture.SaveToClipboardFormat(MyFormat,AData,APalette);//将图片转存到剪贴板中 Clipboard.SetAsHandle(MyFormat,AData);//将剪贴板中的图片复制出来,注意添加Clipbrd单元 ChooseWD.Sentences.Last.Paste;//在WORD中粘贴图片 9.在界面中显示WORD文档 ChooseWA.Visible:=true; 10.断开与WORD的链接 ChooseWA.Disconnect; ChooseWD.Disconnect; Chart1.SaveToBitmapFile(‘文件名.bmp’);
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值