剛把delphi撿起來,第一個要做的竟然操作word,總結(jié)一下。
一. 定義word應(yīng)用程序,文檔對象,比如:
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 格式 ,則顯示“文件轉(zhuǎn)換”對話框。
ReadOnly: 是否以只讀方式打開文檔
AddToRecentFiles: 是否將文件添加到'文件'菜單底部的最近使用文件列表中
PassWordDocument: 打開此文檔時所需要的密碼
PasswordTemplate: 打開此模板時所需要的密碼
Revert: Variant 類型,可選。用于控制當(dāng) FileName 與已打開的文檔同名時執(zhí)行的操作。如果此屬性 為 True,則放棄對已打開文檔進(jìn)行的所有尚未保存的改動,并將重新打開該文檔。如果此屬性 為 False,則激活已打開的文檔。
WritePasswordDocument: 保存對文檔更改時所需要的密碼
WritePasswordTemplate: 保存對模板進(jìn)行更改時所需要的密碼
Format: 打開文檔時所需使用的文件轉(zhuǎn)換器
Encoding: 所使用的文檔代碼頁
Visible: 打開文檔的窗口是否可見
舉例:
Doc_Handle:=Word_Ole.Documents.open(FileName:=Doc_File,ReadOnly:=False,
AddToRecentFiles:=False);
***********************************************************************/
三.表格插入數(shù)據(jù)
WordDoc.Tables.Item(TbIndex).cell(cellrow,cellcol).Range.InsertAfter(conStr);
/*
表格(編號:Tbindex);
插入表格中第cellrow行,cellcol列中
插入內(nèi)容為conStr
*/
四.在指定行寫數(shù)據(jù)
WordDoc.Paragraphs.Item(16).Range.InsertAfter('abcd');
/*在第16行的位置插入'abcd'*/
五.指定字符位置插入數(shù)據(jù)
MyRange: OleVariant;
MyRange := wordDoc.Range(Start:=0,End:=10);
MyRange.InsertAfter('abcd'+#13);
/*在第10個字符位置輸入'abcd'換行*/
六.文件保存
wordDoc.SaveAs(filename);
/*這個函數(shù)還有其他參數(shù)用來控制,VBA中講解的很詳細(xì)*/
七.連接word(聯(lián)系:二打開文檔)
//測試當(dāng)前是否運行了word
try
v := getactiveoleobject(word.application);
except
//未運行則運行之
v := createoleobject(word.basic);
end;
try
//連接到word
wordapp.connect;
except
beep;
messagedlg(不能生成文檔,請確認(rèn)是否安裝了word 2000!, mterror, [mbok], 0);
abort;
end;
//
八.復(fù)制打開的word的內(nèi)容
WordApp := CreateOleObject('Word.Application'); //創(chuàng)建word對象
WordApp.Documents.open(file1); //打開一個word文檔
wordapp.visible:=false; //是否讓打開的word文檔顯示出來
wordapp.activedocument.select; //選取打開的word文檔中全部內(nèi)容
wordapp.selection.copy; //拷貝選取的內(nèi)容
memo1.PasteFromClipboard; //把拷貝的內(nèi)容粘貼到richedit中
WordApp.Quit; //關(guān)閉對象
九.粘貼至word(粘貼板)
WordApp := CreateOleObject('Word.Application'); //創(chuàng)建word對象
WordApp.Visible:= True ;
WordApp.Documents.Add;
WordApp.Documents.Item(1).Range.paste;
十.新建文檔:
格式:WordDocuments.Add(Template,NewTemplate,DocumentType,Visible)
Template: 使用模板的名稱,
NewTemplate: 新建文檔的類型,True表示為模板,F(xiàn)alse表示為文檔
DocumentType: 文檔類型,默認(rèn)為空白文檔
Visible: 打撈的窗口是否可見
舉例:Doc_Handle:=Word_Ole.Documents.Add(Template:='C:/Temlate.dot',NewTemplate:=False);
十一.連接已打開文檔
WordDocument.ConnectTo(WordApplication.Documents.Item(ItemIndex));