F
fhp023
Unregistered / Unconfirmed
GUEST, unregistred user!
我需要在excel里把两个数据集拼起来,
数据集ADODataSet1中的字段为(名称 日生产 月生产 年生产)
数据集ADODataSet3中的字段为(名称 日消耗 月消耗 年消耗)
我写的代码为:
procedure TForm1.BitBtn3Click(Sender: TObject);
var
fieldNum: integer;
fieldNum1: integer;
i,j : integer;
exls,sheet: variant;
begin
try
exls:=createoleobject('Excel.application');
sheet:=createoleobject('excel.sheet');
except
application.MessageBox('请先安装MICROSOFT EXCEL!','提示',mb_ok+mb_iconinformation);
exit;
end;
sheet:=exls.workBooks.Add;
exls.Caption := '生产报表';
exls.ActiveSheet.Rows[1].Font.Name :='宋体';
exls.ActiveSheet.Rows[1].Font.Color := clBlue;
exls.ActiveSheet.Rows[1].Font.Bold := True;
exls.ActiveSheet.Rows[1].Font.UnderLine := True;
exls.ActiveSheet.Rows[1].Font.size:=15;
with ADODataSet1do
begin
DisableControls;
fieldNum := ADODataSet1.FieldCount;
for i:=1 to fieldNumdo
begin
exls.Cells[1,i].value:=Fields[i-1].FieldName;
end;
first;
i:=2;
while not eofdo
begin
for j:=1 to fieldNumdo
begin
exls.Cells[i,j]:=fields[j-1].AsString;
end;
next;
i:=i+1;
end;
// EnableControls;
// exls.visible:=true;
end;
with ADODataSet3do
begin
//DisableControls;
fieldNum1 := ADODataSet3.FieldCount;
for i:=2 to fieldNum1do
begin
exls.Cells[1+fieldNum,fieldNum+1].value:=Fields[i-1].FieldName;
end;
first;
i:=2;
while not eofdo
begin
for j:=2 to fieldNum1do
begin
exls.Cells[i,j+fieldNum-1]:=fields[j-1].AsString;
end;
next;
i:=i+1;
end;
EnableControls;
exls.visible:=true;
end;
end;
得到如下结果:
名称 日生产 月生产 年生产
aa 10 20 30 5 6 8
bb 11 22 33 4 2 6
而我要得到如下结果:
名称 日生产 月生产 年生产 日消耗 月消耗 年消耗
aa 10 20 30 5 6 8
bb 11 22 33 4 2 6
该怎么写代码?
数据集ADODataSet1中的字段为(名称 日生产 月生产 年生产)
数据集ADODataSet3中的字段为(名称 日消耗 月消耗 年消耗)
我写的代码为:
procedure TForm1.BitBtn3Click(Sender: TObject);
var
fieldNum: integer;
fieldNum1: integer;
i,j : integer;
exls,sheet: variant;
begin
try
exls:=createoleobject('Excel.application');
sheet:=createoleobject('excel.sheet');
except
application.MessageBox('请先安装MICROSOFT EXCEL!','提示',mb_ok+mb_iconinformation);
exit;
end;
sheet:=exls.workBooks.Add;
exls.Caption := '生产报表';
exls.ActiveSheet.Rows[1].Font.Name :='宋体';
exls.ActiveSheet.Rows[1].Font.Color := clBlue;
exls.ActiveSheet.Rows[1].Font.Bold := True;
exls.ActiveSheet.Rows[1].Font.UnderLine := True;
exls.ActiveSheet.Rows[1].Font.size:=15;
with ADODataSet1do
begin
DisableControls;
fieldNum := ADODataSet1.FieldCount;
for i:=1 to fieldNumdo
begin
exls.Cells[1,i].value:=Fields[i-1].FieldName;
end;
first;
i:=2;
while not eofdo
begin
for j:=1 to fieldNumdo
begin
exls.Cells[i,j]:=fields[j-1].AsString;
end;
next;
i:=i+1;
end;
// EnableControls;
// exls.visible:=true;
end;
with ADODataSet3do
begin
//DisableControls;
fieldNum1 := ADODataSet3.FieldCount;
for i:=2 to fieldNum1do
begin
exls.Cells[1+fieldNum,fieldNum+1].value:=Fields[i-1].FieldName;
end;
first;
i:=2;
while not eofdo
begin
for j:=2 to fieldNum1do
begin
exls.Cells[i,j+fieldNum-1]:=fields[j-1].AsString;
end;
next;
i:=i+1;
end;
EnableControls;
exls.visible:=true;
end;
end;
得到如下结果:
名称 日生产 月生产 年生产
aa 10 20 30 5 6 8
bb 11 22 33 4 2 6
而我要得到如下结果:
名称 日生产 月生产 年生产 日消耗 月消耗 年消耗
aa 10 20 30 5 6 8
bb 11 22 33 4 2 6
该怎么写代码?