1. delphi控制word
用OLE技術,
在uses部分添加模塊,
然後,如下例子:
unit Unit1;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, StdCtrls,ComObj;
type
TForm1 = class(TForm)
Button1: TButton;
procere Button1Click(Sender: TObject);
private
{ Private declarations }
public
{ Public declarations }
end;
var
Form1: TForm1;
implementation
{$R *.dfm}
procere TForm1.Button1Click(Sender: TObject);
var
wd,:OLEVariant;
begin
wd:=CreateOleObject('Word.Application');//建立WinWord對像
:=wd.Documents.Open('e:\a.doc'); //打開Word文檔
ShowMessage(String(wd.ActiveDocument.Name));//顯示打開的文檔名稱
//以下可以插入你自己的程序
.close;//關閉文檔
wd.Quit; //關閉程序
end;
end.
2. 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;
昨天沒有測試好 這個應該沒有問題了吧 試一下吧
3. delphi怎麼設置WORD的頁邊距怎麼設置 WORD某一行的字體大小
分太誘人了,寫一個吧......
uses comobj;
var word,document:olevariant;
begin
word:=createoleobject('word.application');
document:=word.documents;
document.open('c:\1.doc');
word.ActiveDocument.pagesetup.topmargin:=111; //上邊距topmargin 下bottommargin 左leftmargin 右 right.....
word.selection.HomeKey(wdline,1); //開始選擇范圍
word.Selection.MoveDown(wdline,3);
word.selection.endkey(wdline,wdExtend );
word.Selection.Font.Size:=1111; //結束范圍設置,第四行文字改變。
word.ActiveDocument.saveas('c:\2.doc');
document.close;
word.quit;
word:=unassigned;
end; 補充一下,需要用到控制項server中的 wordapplication,通過d7測試!