首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > .NET >

一段导出代码,求解释,该怎么解决

2012-12-14 
一段导出代码,求解释//填Excel标题行for n:1 to ADODataSet1.FieldCount do xlsApp.Cells[i,n].Value :

一段导出代码,求解释


//填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;


为什么带出后我都控制的格式在第一行还是出现少了000的情况,第二行就没有了

[解决办法]
EXCEL的高手帮我看下
[解决办法]
来个接分的

热点排行