首先:建一个Word文档,里面画一个表,两行,
|编号|负责人|科室|项目名称|
| | | | |
把生成的Word文件保存。
第一步、需要两个组件:WordApplication、WordDocument。
第二步、通过Delphi打开word刚才建立的Word文档。打开Word文档的函数如下:
procedure openwordfile(Myword: TWordApplication;
Myfile: string;IsVisible:Boolean);
//打开Word文档函数。
//Myword:文档工程名称;Myfile:word文件名;IsVisible来控制是否显示。
var
FileName, ConfirmConversions, ReadOnly, AddToRecentFiles,
PasswordDocument, PasswordTemplate, Revert,WritePasswordDocument,
WritePasswordTemplate, Format,MatchCase, MatchWholeWord, find1, rep1,
MatchWildcards, MatchSoundsLike, MatchAllWordForms, Forward,
Wrap, Replace: OleVariant;
{以上的变量都是TDocument.open函数所必需的,都是系统默认的,详情请参看Word的Help}
{可能会碰到错误的提示,一种情况是Uses一下Office97就可以了。}
begin
Myword.Connect;
Myword.Visible :=false;
FileName := MyFile;
//打开的文件名称。
confirmConversions := False;
ReadOnly := False;
AddToRecentFiles := False;
PasswordDocument := '';
PasswordTemplate := '';
Revert := True;
WritePasswordDocument := '';
WritePasswordTemplate := '';
Format := wdOpenFormatDocument;
myWord.Documents.Open(FileName, ConfirmConversions,
readOnly, AddToRecentFiles, PasswordDocument, PasswordTemplate,
Revert, WritePasswordDocument, WritePasswordTemplate, Format);
Myword.Visible :=True;
Myword.Disconnect;
end;
//打开Word文档函数(结束)
第三步、打开数据库。
第四步、把数据库中的数据添加到表格中。
1、一些变量的定义
Mytable //用来承载从word中取出的表的Table类型变量。
:Table;
EnArray //用来存放从表中取出的字段名称的数组。
:array[0..24] of string;
afterrow //操作表行的临时变量。
,beforerow //操作表行的临时变量。
:OleVariant;
Mydoc: TWordDocument
2、付MyTable的值,如果Word中就建了一个表,那TableNum就是0或1,具体你试一下。
Mytable:= Mydoc.range.Tables.Item(TableNum);
//将Word指定表付给Mytable。
3、给表格付值
trow := Mytable.Rows.Count;
afterrow := mytable.Rows.last;
mytable.Rows.Add(afterrow);//给表格添行。
Mytable.cell(trow, i).range.text := 取出的数据//只认字符串,你要自己判断,进行转换。
至于循环你自己搞定吧。
4、最后删掉最后一行:
mytable.Rows.Last.Delete;
//删除最后一行。
应该没有问题了,给分吧。:)