delphi操作word文档问题?(100)(100分)

  • 主题发起人 主题发起人 HanFeng
  • 开始时间 开始时间
H

HanFeng

Unregistered / Unconfirmed
GUEST, unregistred user!
我需要把数据库中的内容输出到word文件中,其中几个简单的,
我利用d5的word控件实现了,现有一个报表,格式复杂,但每页我
只需要填写其中几个cell.每页的格式是相同的,我该怎么办?
我需要从模版生成,然后选择拷贝吗?
 
生成模板然后拷贝是正路,上次我做的一个套打程序就是这样的。
 
zhancj:谢谢!但是我怎样才能把模板引入文档呢?最好用d5word控件实现
我的vba和ole水平极差,望附源码!
 
大富翁以前有,你找找。如找不到,
<mailto="answer99@yeah.net">
 
现在手头无delphi,不能给你试了。

:-(
 
先做一个模板,然后把下面的代码改改。
procedure TForm1.Button1Click(Sender: TObject);
var
Word, FormField, Doc: variant;
k, i: integer;
ModuleName: array[0..255] of char;
PathName: string;
begin
GetModuleFileName(0, ModuleName, SizeOf(ModuleName));
SetString(PathName, PChar(@ModuleName[0]), StrLen(@ModuleName[0]));
PathName := ExtractFilePath(PathName);

Word := CreateOleObject('word.application');
Word.Visible := True;
Doc := Word.Documents.Open(PathName+'test.doc');
k := Doc.FormFields.Count;
for i := 1 to k do
begin
FormField := Doc.FormFields.Item(i);
ShowMessage('第'+IntToStr(i)+'个FormField的HelpText为:'+FormField.HelpText);
FormField.Result := '预祝项目成功!';
end;
Word.Activate;
Doc.SaveAs(PathName+'1.doc');
end;
 
其实不用这么麻烦吧? 你先做好一个空的表格文档,需要填表的时候拷贝一个副本,
在副本上操作不就可以了?
 
cAkk:谢谢提醒!
zhancj:谢谢您的代码,你的思路似乎和cAkk差不多,打开模版->编辑
->另存为其他文档,和打开文档->编辑->另存为其他文档,似乎是一样的
另外,您的代码前半部分是做什么用的?在我的机器上只取到可执行文件所在目录
我想,既然应用模版,似乎最好由模版直接生成doc,而不是再模半上直接作.还往赐教
hws: answer99@yeah.net是谁?他会理我吗?
 
最近一直很忙,没有及时给分,抱歉!
我参考了zhancj的代码,用了cAkk的思路,现在感觉用CreateOleObject
挺方便的,d5的那些怪控件没什么用,不知我的理解对不对?
 
后退
顶部