====A example adapt from DFW offline database======== procedure TransToExcel; var MsExcel: Variant; begin try MsExcel:=CreateOleObject('Excel.Application'); except ShowMessage('无法打开Microsoft Excel'); exit; end; MsExcel.Visible:=True; MsExcel.WorkBooks.Add; if FDataFrom is TStringGrid then TransStringGridToExcel(FDataFrom As TStringGrid,MsExcel); if FDataFrom is TDecisionGrid then TransDecisionGridToExcel(FDataFrom As TDecisionGrid,MsExcel); if FDataFrom is TDBGrid then TransDBGridToExcel(FDataFrom As TDBGrid,MsExcel); end;procedure TransDecisionGridToExcel(DG1:TDecisionGrid;MsExcel:Variant); var i,j:Integer;//循环变量 begin ColNum:=0; RowNum:=0; with DG1 do begin ColNum:=ColCount; RowNum:=RowCount; For j:=-2 to RowNum-3 do For i:=-1 to ColNum-2 do MsExcel.Cells[j+3,i+2].Value:=Cells[i,j]; end;{end with} end; ========================Try====================
Query1.Close; Query1.DataBaseName:=′′; Query1.SQL.Clear; Query1.SQL.Add(′Select * from ″Master.db″ A,″Customer.dbf ″ B Where A.CustNo=B.CustNo′);{在同一行内输入} Query1.Open;
procedure TransToExcel;
var
MsExcel: Variant;
begin
try
MsExcel:=CreateOleObject('Excel.Application');
except
ShowMessage('无法打开Microsoft Excel');
exit;
end; MsExcel.Visible:=True;
MsExcel.WorkBooks.Add;
if FDataFrom is TStringGrid then
TransStringGridToExcel(FDataFrom As TStringGrid,MsExcel);
if FDataFrom is TDecisionGrid then
TransDecisionGridToExcel(FDataFrom As TDecisionGrid,MsExcel);
if FDataFrom is TDBGrid then
TransDBGridToExcel(FDataFrom As TDBGrid,MsExcel); end;procedure TransDecisionGridToExcel(DG1:TDecisionGrid;MsExcel:Variant);
var
i,j:Integer;//循环变量
begin
ColNum:=0; RowNum:=0;
with DG1 do
begin
ColNum:=ColCount;
RowNum:=RowCount;
For j:=-2 to RowNum-3 do
For i:=-1 to ColNum-2 do
MsExcel.Cells[j+3,i+2].Value:=Cells[i,j];
end;{end with}
end;
========================Try====================
Master.db和Customer.dbf分别为Paradox和dBASE的数据库,它们有一个公共字段CustNo。这时可输入如下代码:
Query1.Close;
Query1.DataBaseName:=′′;
Query1.SQL.Clear;
Query1.SQL.Add(′Select * from ″Master.db″ A,″Customer.dbf ″ B Where A.CustNo=B.CustNo′);{在同一行内输入}
Query1.Open;