老大啊,提供的太不清楚了,我研究了半天,而且也没有注释,还非要打开一个存在EXCEL才行,我自己都不能接受,何况客户呢,分享的出来以供大家参考;
fxls := ComObj.CreateOleObject('excel.Application');
FApp := DispatchHelper.Create(fxls);
FApp.PropertyPut('Visible', [True]);
docs := FApp.PropertyGet('Workbooks', []); FDocs := DispatchHelper.Create(docs);
FDocs.InvokeMethod('ADD', []); //加载一个空的工作薄
lcells := DispatchHelper.Create(FApp.PropertyGet('cells', [1,1]));
lcells.PropertyPut('value',['id]);
lcells := DispatchHelper.Create(FApp.PropertyGet('cells', [1,2]));
lcells.PropertyPut('value',['name]);
quaery1.close;
query1.CommandText :='select id,name from table';
query1.open;
query1.First;
row :=2;
i:=0;
count:=query1.RecordCount;
while not query1.Eof do
begin
id:=query1.FieldByName('id).asstring;
name:=query1.FieldByName('name').asstring;
col:=1;// 我这里才两列所以不需要循环了,如果有多列自己循环
lcells := DispatchHelper.Create(FApp.PropertyGet('cells', [row,col]));
lcells.PropertyPut('value',[id]);
lcells := DispatchHelper.Create(FApp.PropertyGet('cells', [row,col+1]));
lcells.PropertyPut('value',[name]);
query1.Next;
row :=row+1;
end; |