//填Excel标题行
for n:=1 to ADODataSet1.FieldCount do xlsApp.Cells[i,n].Value := ADODataSet1.Fields[n-1].DisplayLabel;
While not ADODataSet1.Eof do begin
inc(i);//因在循环前使用了一次填标题行,所以在前面做增量
for n:=1 to ADODataSet1.FieldCount do begin
if ADODataSet1.Fields[n-1].FieldName = '' then xlsApp.Cells[i,n].Value := '''' + ADODataSet1.Fields[n-1].AsString
else xlsApp.Cells[i,n].Value := ADODataSet1.Fields[n-1].AsString;
end;
能帮我一步一步解释嘛!是有点不懂!
------解决方案--------------------------------------------------------
if ADODataSet1.Eof then begin
ShowMessage('没有数据!');
exit;
end;
xlsApp := CreateOleObject('Excel.Application');
xlsapp.WorkBooks.add;
xlsApp.Visible := false;
xlsApp.WorkSheets[1].Activate;
ADODataSet1.First;
i :=1;
//填Excel标题行
for n:=1 to ADODataSet1.FieldCount do xlsApp.Cells[i,n].Value := ADODataSet1.Fields[n-1].DisplayLabel;
While not ADODataSet1.Eof do begin
inc(i);//因在循环前使用了一次填标题行,所以在前面做增量
for n:=1 to ADODataSet1.FieldCount do begin
if ADODataSet1.Fields[n-1].FieldName = '' then xlsApp.Cells[i,n].Value := '''' + ADODataSet1.Fields[n-1].AsString
else xlsApp.Cells[i,n].Value := ADODataSet1.Fields[n-1].AsString;
end;
xlsApp.Range['A1','Q1'].HorizontalAlignment := -4108;
xlsApp.Range['A1','Q1'].Font.Name := '宋体';
xlsApp.Range['A1','Q1'].Font.Size := 9;
xlsApp.Range['A1','Q'+inttostr(i)].Font.Name := '宋体';
xlsApp.Range['A1','Q'+inttostr(i)].Font.Size := 9;
xlsApp.Columns[1].ColumnWidth := 7;
xlsApp.Columns[2].ColumnWidth := 8;
xlsApp.Columns[4].ColumnWidth := 15;
xlsApp.Columns[5].ColumnWidth := 10;
xlsApp.Columns[3].ColumnWidth := 5;
xlsApp.Columns[6].ColumnWidth := 20;
xlsApp.Columns[7].ColumnWidth := 8;
xlsApp.Columns[8].ColumnWidth := 6;
xlsApp.Columns[9].ColumnWidth := 6;
xlsApp.Columns[10].ColumnWidth := 8;
xlsApp.Columns[11].ColumnWidth := 5;
xlsApp.Columns[12].ColumnWidth := 15;
xlsApp.Columns[13].ColumnWidth := 7;
xlsApp.Columns[14].ColumnWidth := 10;
xlsApp.Columns[15].ColumnWidth := 10;
xlsApp.ActiveSheet.Columns[1].NumberFormatLocal:= '@';
xlsApp.ActiveSheet.Columns[3].NumberFormatLocal:= '@';
ADODataSet1.Next;
end;
xlsApp.Visible := true;