OLE WORD 的困擾, 我想一定有人可以幫忙的.... |
尚未結案
|
GiABin
一般會員 發表:6 回覆:8 積分:2 註冊:2002-11-11 發送簡訊給我 |
各位前輩,我有以下的程式,但有一點小問題想請教,
例如程式執行後我按二次 save 後把資料分別存成二檔,
然後關閉程式,結果我按 crtl+alt+del 會顯示兩個
Winword 程式還死在裡面,我只好強制把它刪掉,
問題以此類推. 我在存檔後用
word_doc.application.quit; 想把它關掉但會出現
錯誤,我真的不知道怎麼寫了,有誰可以伸出援手嗎?
另外, 我想知道若用
Word_doc:=CreateoleObject('word.application');
自動產生檔案的情況下,怎樣把內容 add 到 word 檔案中呢?
我用
word_doc.insert(str+#13);
就不行了, 感激各位. procedure TMainForm.SaveToWordClick(Sender: TObject);
var str: String;
i: Integer;
word_doc: Variant;
begin
try
Table1.TableName:=TableList.Text;
Table1.open;
except
Showmessage('Can''t open '+TableList.Text+' table !!');
exit;
end;
SaveDialog1.Title:='Save Table to Word File';
SaveDialog1.InitialDir:= GetCurrentDir;
SaveDialog1.FileName:= TableList.Text;
try
Word_doc:=CreateoleObject('word.basic');
Word_doc.filenew('Normal');
except
Showmessage('Can''t start Microsoft Word');
exit;
end;
while not table1.Eof do
begin
str:='';
for i := 0 to table1.FieldCount-1 do
str:=str+table1.Fields[i].AsString+' , ';
word_doc.insert(str+#13);
table1.Next;
end;
table1.close;
SaveDialog1.Execute;
word_doc.filesaveas(SaveDialog1.FileName);
Showmessage('Save to Word File succeed!!');
end; 問的好得
|
chih
版主 發表:48 回覆:1186 積分:639 註冊:2002-04-02 發送簡訊給我 |
|
00156
高階會員 發表:45 回覆:195 積分:112 註冊:2002-06-01 發送簡訊給我 |
Word執行後,用Quit關閉看看:
wdApp:=CreateOleObject('Word.Application'); ... wdApp.Quit;在Word中加入內容,建議你參考Microsoft的網站有關Word Document物件的說明: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/modcore/html/deovrworkingwithdocumentcontent.asp 下面我寫了一個簡單的例子: procedure TForm1.Button1Click(Sender: TObject); var wdApp,doc:Variant; begin wdApp:=CreateOleObject('Word.Application'); try doc:=wdApp.Documents.Add; doc.Range.Text:='this is a test...'; doc.SaveAs('C:\test.doc'); finally wdApp.Quit; end; end; |
ccchen
版主 發表:61 回覆:940 積分:1394 註冊:2002-04-15 發送簡訊給我 |
|
GiABin
一般會員 發表:6 回覆:8 積分:2 註冊:2002-11-11 發送簡訊給我 |
|
sundy6719
初階會員 發表:136 回覆:78 積分:42 註冊:2002-07-10 發送簡訊給我 |
請問一下
v.filenew('normal');這一句是在說什麼呢???
如不用的話有什麼關係嗎??? 還有我的程式碼如下
procedure TForm1.Word1Click(Sender: TObject);
var
filename,password,input,s:string;
i:integer;
v:variant;
begin
v:=createoleobject('word.basic');
v.filenew('normal');
input:=inputbox('訊息視窗','請輸入您欲轉檔的資料表','');
try
datamodule7.clientdataset1.CommandText:='select * from ' input;
datamodule7.ClientDataSet1.open;
while (not datamodule7.ClientDataSet1.eof)do
begin
s:='';
for i:=0 to datamodule7.ClientDataSet1.FieldCount-1 do
s:=s datamodule7.ClientDataSet1.Fields[i].asstring ' ';
v.insert(s #1310);
datamodule7.ClientDataSet1.Next;
end;
datamodule7.ClientDataSet1.close;
filename:=inputbox('請輸入','請輸入檔案名稱','c:\*.doc');
v.filesaveas(filename,,,); except
messagedlg('檔案名稱己存在請在取別的檔名謝謝!!',mterror,[mbok],0);
end;
end;
可是每一次我儲存完後要去開啟這個檔案時每次word檔都當機我還少了什麼指令嗎???謝謝 發表人 - sundy6719 於 2004/03/07 21:36:36
|
nanako
一般會員 發表:0 回覆:1 積分:0 註冊:2004-12-29 發送簡訊給我 |
各位前輩
我還是不了解
CreateoleObject('word.basic')與CreateOleObject('Word.Application')
到底有什麼差異呢??
如果 以下面的程式為例 要修改為用CreateOleObject('Word.Application')該怎麼寫ㄋㄟ??
謝謝囉...^^
procedure TForm1.Button1Click(Sender: TObject);
var
v : variant;
str : string;
i : integer;
begin
v := CreateoleObject('word.basic');
v.filenew('Normal');
Query1.open;
while not Query1.eof do
begin
str :='';
for i := 0 to Query1.Fieldcount-1 do
begin
str := str Query1.Fields[i].Asstring ' ';
end;
v.insert(str #13#10);
Query1.next;
end;
Query1.close;
v.FileSaveas(Edit1.Text,,,);
end;
|
本站聲明 |
1. 本論壇為無營利行為之開放平台,所有文章都是由網友自行張貼,如牽涉到法律糾紛一切與本站無關。 2. 假如網友發表之內容涉及侵權,而損及您的利益,請立即通知版主刪除。 3. 請勿批評中華民國元首及政府或批評各政黨,是藍是綠本站無權干涉,但這裡不是政治性論壇! |