我想用程序控制把Acess数据库转换成Excell数据,上面提到的组件可以实现,有谁知道怎么用?如果有更好的方法,敬请赐教!!!!!

解决方案 »

  1.   

    看看283专题吧,里面有,而且delphi自带有使用excel的例子
      

  2.   

    firetoucher你好,小弟初来乍到,看283专题?
    怎么定位那个专题啊?
      

  3.   

    procedure TFrmMain.WriteExcel(AdsData: TADODataSet; sName, Title: string);
    var
      ExcelApplication1: TExcelApplication;
      ExcelWorksheet1: TExcelWorksheet;
      ExcelWorkbook1: TExcelWorkbook;
      i, j: integer;
      filename: string;
    begin
      filename := concat(extractfilepath(application.exename), sName, ’.xls’);
      try
        ExcelApplication1 := TExcelApplication.Create(Application);
        ExcelWorksheet1 := TExcelWorksheet.Create(Application);
        ExcelWorkbook1 := TExcelWorkbook.Create(Application);
        ExcelApplication1.Connect;
      except
        Application.Messagebox(’Excel 没有安装!’, ’Hello’, MB_ICONERROR + mb_Ok);
        Abort;
      end;
      try
        ExcelApplication1.Workbooks.Add(EmptyParam, 0);
        ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks[1]);
        ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets[1] as _worksheet);
        AdsData.First;
        for j := 0 to AdsData.Fields.Count - 1 do
          begin
            ExcelWorksheet1.Cells.item[3, j + 1] := AdsData.Fields[j].DisplayLabel;
            ExcelWorksheet1.Cells.item[3, j + 1].font.size := ’10’;
          end;
        for i := 4 to AdsData.RecordCount + 3 do
          begin
            for j := 0 to AdsData.Fields.Count - 1 do
              begin
                ExcelWorksheet1.Cells.item[i, j + 1] :=
                    AdsData.Fields[j].Asstring;
                ExcelWorksheet1.Cells.item[i, j + 1].font.size := ’10’;
              end;
            AdsData.Next;
          end;
        ExcelWorksheet1.Columns.AutoFit;
        ExcelWorksheet1.Cells.item[1, 2] := Title;
        ExcelWorksheet1.Cells.Item[1, 2].font.size := ’14’;
        ExcelWorksheet1.SaveAs(filename);
        Application.Messagebox(pchar(’数据成功导出’ + filename), ’Hello’,
          mb_Ok);
      finally
        ExcelApplication1.Disconnect;
        ExcelApplication1.Quit;
        ExcelApplication1.Free;
        ExcelWorksheet1.Free;
        ExcelWorkbook1.Free;
      end;
    end;
      

  4.   

    我给你一段我的程序阿!!
    procedure TForm7.Button5Click(Sender: TObject);
    var
      Range:excelrange;
      i,j,k:integer;
      letter:char;
    begin
    if datasource1.DataSet=nil then showmessage('没有内容可以导入Excel!')
    else begin
      try
        try
        excelapplication1.Connect;
        except
        showmessage('您的机器没有安装Excel!');
        abort;
        end;
        excelapplication1.Visible[0]:=true;
        excelapplication1.Caption:='送修内容';
        excelapplication1.Workbooks.Add(NUll,0);    k:=datasource1.DataSet.FieldCount-4;    if datasource1.DataSet.Fields[k].DisplayLabel='COUNT OF 局名' then
         k:=4
        else k:=0;    i:=65+datasource1.DataSet.FieldCount-1-k;
        letter:=char(i);    range:=excelapplication1.Range['A1',letter+'1'];    for i:=0 to datasource1.DataSet.FieldCount-1-k do
          begin
          range.Value:=datasource1.DataSet.Fields[i].DisplayLabel;
          range:=range.Next;
          end;
        if k=4 then begin
        range.Value:='数量';
        dec(k);
        end;
        datasource1.DataSet.First;    for i:=1 to datasource1.DataSet.RecordCount do begin
          range:=excelapplication1.Range['A'+inttostr(i+1),letter+inttostr(i+1)];
          for j:=0 to datasource1.DataSet.FieldCount-1-k do begin
            range.Value:=datasource1.DataSet.Fields[j].AsString ;
            range:=range.Next;
            end;
          datasource1.DataSet.Next;
          end;  except
      excelapplication1.Disconnect;
      end;  end;
    end;