现有两张表,一张名为question,字段:question_id,question,picture_id。
另一张名为picture,字段:picture_id,picture。
如何将所有题目的文字和图片输出到word中,并实现自动排版?
在线等,给出代码立即结帖。
要求用ADOQuery连接数据库。
另一张名为picture,字段:picture_id,picture。
如何将所有题目的文字和图片输出到word中,并实现自动排版?
在线等,给出代码立即结帖。
要求用ADOQuery连接数据库。
var
MYWord: variant;
Stream: TFileStream;
i: integer;
TmpPath: array[0..255] of char;
MyPath: string;
begin
GetTempPath(255, @TmpPath);
MyPath := StrPas(TmpPath) + '\tmp.bmp';
counter := 0;
try
MYWord := createoleobject('word.Application');
MyWord.Visible := True;
MYWord.Documents.Add;
except
ShowMessage('没有发现WORD,请安装!');
exit;
end; with ADOQuery1 do
begin
Close;
sql.Clear;
sql.Add('select * from question,picture where question.picture_id=picture.picture._id');
Open;
First;
MyWord.selection.Font.Size := 10;
MyWord.selection.Font.Bold := 0; //是否加粗
MyWord.selection.Paragraphs.Alignment := wdAlignParagraphLeft;
for i := 0 to ADOQuery1.recordcount-1 do
begin
//插入题目
MyWord.selection.TypeText(fieldbyname('question').asstring);
MyWord.Selection.TypeParagraph;
//插入图片
TBlobField(FieldByName('picture')).SaveToFile(MyPath);
MyWord.Selection.InlineShapes.AddPicture(MyPath);
MyWord.Selection.TypeParagraph;
next;
end;
end;
end;