用Delphi调用WORD时怎么动态生成表格,并给单元格中填写内容呢?

hotel9545 2003-10-09 03:11:54

DELPHI 的报表工具太不好用了我想把结果输出到WORD中让用户去编辑,但有点问题:

procedure TForm1.Button1Click(Sender: TObject);
var
Rng:variant;
NRows,NCols,i,j:integer;
begin
NRows:=3;
NCols:=4;
msWord:=CreateOleObject('Word.Application');
msWord.Documents.Add();
msWord.Visible:=True;

msWord.ActiveDocument.Range(0,0);
// msWord.ActiveDocument.Range.InsertParagraphAfter;
msWord.ActiveDocument.Range.Font.Name:='黑体';
msWord.ActiveDocument.Range.Font.Size:=20;
msWord.ActiveDocument.Range.InsertAfter('客户联系表');
msWord.ActiveDocument.Range.InsertAfter(#13);
msWord.ActiveDocument.Range.ParagraphFormat.Alignment:=wdAlignParagraphCenter;

Rng:=msWord.ActiveDocument.Range(6,6);
msWord.ActiveDocument.Range.Font.Name:='宋体';
msWord.ActiveDocument.Range.Font.Size:=12;

msWord.ActiveDocument.Tables.add(Range:=Rng,NumRows:=NRows,NumColumns:=NCols);

For i:=1 to NRows do
For j:=1 to NCols do
msWord.ActiveDocument.Tables[1].Columns[j].Cells[i].Range.Text:=IntToStr(i*j);
// 最后这一句总是出错!
end;

请高手指点!
...全文
99 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
hare007 2003-10-25
  • 打赏
  • 举报
回复
mark
soldier7451 2003-10-14
  • 打赏
  • 举报
回复
这可能是因为add方法的参数有错误,你改成以下这样试试
var filename:olevariant;
begin
..
filename:='';
wordapplication1.Documents.Add(filename,emptyparam,emptyparam,emptyparam);
lingh110 2003-10-14
  • 打赏
  • 举报
回复
引用msWord.Documents.Add();
后,提示如下错误信息:该如何解决
Not enough actual parameters
soldier7451 2003-10-11
  • 打赏
  • 举报
回复
出错提示是什么啊
gallipot 2003-10-11
  • 打赏
  • 举报
回复
gz

5,386

社区成员

发帖
与我相关
我的任务
社区描述
Delphi 开发及应用
社区管理员
  • VCL组件开发及应用社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧