关于WORD的问题??(100分)

  • 主题发起人 主题发起人 wwjjwwjj
  • 开始时间 开始时间
W

wwjjwwjj

Unregistered / Unconfirmed
GUEST, unregistred user!
我正在开发一个项目,要求打印很多表格,我的工作流程是这样的:
1、先用word将所有表格制作好,存成dot模版文件,放在指定的目录中。
2、通过delphi调用word,打开制定的dot表格模版文件。
3、用户在填写好表格后,将填写后的表格存成doc(不允许存成dot)文件,也可以打印输出。

实现上述要求,该如何编写代码?谢谢!!!!
 
Dot,doc隻是一附檔名而已
還不是一樣調用的?
 
恭参考
function TMainForm.Openword: Boolean;
var
Curword: string;
begin
Curword := GetRegString(HKEY_CLASSES_ROOT, '/word.Application/CurVer', '', '');
if Curword = '' then
begin
Application.MessageBox('请先安装 word 97 或 word 2000!',
PChar(self.Caption), MB_OK + MB_ICONSTOP);
Result := False;
Exit;
end;

if (Curword <> 'word.Application.8') and (Curword <> 'word.Application.9') then
begin
Curword := GetRegString(HKEY_CLASSES_ROOT, '/word.Application.8', '', '');
if Curword = '' then
begin
Curword := GetRegString(HKEY_CLASSES_ROOT, '/word.Application.9', '', '');
if Curword <> '' then Curword := 'word.Application.9';
end
else
begin
Curword := 'word.Application.8';
end;

if Curword = '' then
begin
Application.MessageBox('无法运行 word 97 或 word 2000,' + #13#10
+ '请检查 word 97 或 word 2000 是否已经正确安装。',
PChar(self.Caption), MB_OK + MB_ICONSTOP);
Result := False;
Exit;
end;
end;

try
Fword := CreateOleObject(Curword);
if VarIsEmpty(Fword) then
begin
Application.MessageBox('无法运行 word 97 或 word 2000,' + #13#10
+ '请检查 word 97 或 word 2000 是否已经正确安装。',
PChar(self.Caption), MB_OK + MB_ICONSTOP);
Result := False;
Exit;
end;
except
Application.MessageBox('无法运行 word 97 或 word 2000,' + #13#10
+ '请检查 word 97 或 word 2000 是否已经正确安装。',
PChar(self.Caption), MB_OK + MB_ICONSTOP);
Result := False;
Exit;
end;

try
begin
Fword.DisplayAlerts := False;
copyfile(pchar(ExtractFilePath(Application.Exename) + 'AnalyzeDB.mdl'),pchar(ExtractFilePath(Application.Exename) + 'AnalyzeDB.doc'),true);
SetCurrentDir(ExtractFilePath(Application.Exename));
Fdoc:=Fword.documents.Open(ExtractFilePath(Application.Exename) + 'AnalyzeDB.doc');
Fword.Visible := True;
Fword.Run('test',lbl_filename.text,lbl_password.Text );

Result := True;
end;
except
Application.MessageBox('分析失败,',
PChar(self.Caption), MB_OK + MB_ICONSTOP);
Result := False;
end;
end;



procedure TMainForm.FormDestroy(Sender: TObject);
begin
if not VarIsEmpty(Fword) then Fword.Quit;
end;

 
我现在也正作类似的项目,希望得到更多的帮助信息
 
请看这个贴,应该对你有所帮助.
http://www.delphibbs.com/delphibbs/dispq.asp?lid=679726
 
多人接受答案了。
 
后退
顶部