如何使用WORDAPPLICATION、WORDDOCUMENT等控件,将多个DOC文件加在一起。(急)(200分)

  • 主题发起人 主题发起人 R_Baggio
  • 开始时间 开始时间
对的,是应该把QUIT放在DISCONNECT前面。
 
我前几天刚好写了一个合并Word文档的软件,你需要的话我可以Mail给你。

 
procedure TFrm_Main.btUniteClick(Sender: TObject);
var
I: Integer ;
DocFileName: String ;
DocFile:OleVariant ;
begin
if lvFileName.Items.Count <1 then
Exit ;
btUnite.Enabled := False ;
try
pnJC.Visible := True ;
Frm_Main.Update ;
try
WordA.Connect ;
WordA.Visible := True;
WordDocument1.ConnectTo(WordA.Documents.Add(EmptyParam,EmptyParam,EmptyParam,EmptyParam) );
MixWordWindow('Word 文档合并器');
for I := 0 to lvFileName.Items.Count -1 do
begin
ProgressBar1.Position := I * 100 div lvFileName.Items.Count ;
Label3.Caption := lvFileName.Items.Item.SubItems.Strings[0] ;
Frm_Main.Update ;
DocFileName := lvFileName.Items.Item.SubItems.Strings[0] ;
WordA.Selection.InsertFile(DocFileName,EmptyParam,EmptyParam,EmptyParam,EmptyParam) ;
end;
ProgressBar1.Position := 100 ;
if CheckBox1.Checked then
begin
DocFile := edDocFileName.Text ;
WordDocument1.SaveAs(DocFile);
end ;
if CheckBox2.Checked then lvFileName.Items.Clear ;

if (CheckBox3.Checked) and (CheckBox1.Checked) then WordA.Quit ;

WordA.Disconnect ;

if CheckBox1.Checked then
Application.MessageBox(PChar('文档合并工作已经成功的完成。保存在' + #13+ edDocFileName.Text ),'完成', MB_OK or MB_ICONINFORMATION)
else
Application.MessageBox(PChar('文档合并工作已经成功的完成。请及时保存该文档!' ),'完成', MB_OK or MB_ICONINFORMATION) ;

if CheckBox1.Checked then
begin
DocCount := DocCount + 1 ;
edDocFileName.Text := ExtractFilePath(edDocFileName.Text) + '合并文档'+ IntToStr(DocCount) +'.Doc' ;
end;

except
on E: Exception do
begin
Application.MessageBox(PChar('系统在合并Word文档时发生错误,请重试!' + #13 + E.message),'系统错误', MB_OK or MB_ICONERROR);
end;//end except On
end;
finally
btUnite.Enabled := True ;
pnJC.Visible := False ;
ProgressBar1.Position := 0 ;
Label3.Caption := '正在启动 Microsoft Word...' ;
end;
end;
 
谢谢各位的支持!
我试试看!
不知道怎么样再给这道题目加上500分!
 
很久沒有上來了
WordApp = WordApplication

關於 WordApp.Disconnect 建議放在 WordAppQuit 事件, 這樣才不會
出現 'RPC服务器没有找到' 的錯誤,

關於把幾個 DOC 文檔合併, 用
WordApp.ActiveDocument.Paragraphs.Last.Range.InsertFile 就可以實現了.

關於你的 WordApp.Visible := False 出錯, 我想你是把 WordApp Disconnet 了再
Connect, 所以不要在 MS Word沒有退出的時候用 WordApp.Disconnect.

不知道以上解釋是否能幫助到你, 如果有甚麼問題請寫E-mail給我,
E-mail Address: alextsui@micromomentum.com
 
多人接受答案了。
 
后退
顶部