我想把库中的信息导出到excel中
请问该怎么做,
我用的是delphi6
非常感谢

解决方案 »

  1.   

    直接在excel中的--数据 --获取外部数据!菜单导入看看行不行。
      

  2.   

    呵呵,刚才试了一下,可以用下面的方法:  1、用access先打开数据文件,然后另存为excel文件类型。
      2、用excel打开它就可以了。
      

  3.   

    我想做到这个程度,
    把dbgrid显示的数据搬到excel中
      

  4.   

    答案有很多.在Server控件组中有excel控件组
    在循环中实现
    cell[x,y] := query3.fieldbyname('').asstring; 
      

  5.   

    procedure TPromotionfrm.BitBtn3Click(Sender: TObject);
    var
      sSQL:string;
      i,j,intCount:integer;
      strFieldNamePath:string;
      v:Variant;
      Sheet:Variant;
    begin
      if DBGridlist.DataSource.DataSet.IsEmpty then
      begin
        beep;
        showmessage('没有可导出的数据!');
        exit;
      end;  sSQL:='select * from RWExcelFileList where Format=''Promotion Analysas Form''';
      Datafrm.ADOQueryFormSetting.Close;
      Datafrm.ADOQueryFormSetting.SQL.Clear;
      Datafrm.ADOQueryFormSetting.SQL.Add(sSQL);
      Datafrm.ADOQueryFormSetting.Open;
      intCount:=Datafrm.ADOQueryFormSetting.RecordCount;
      if intCount>0 then
         begin //path
           strFieldNamePath:=Datafrm.ADOQueryFormSetting.FieldByname('ExcelFile').AsString;       try
              v:=CreateOleObject('Excel.Application');
              v.WorkBooks.open(strFieldNamePath);
              v.Activesheet.Cells.Select;
              v.Selection.ClearContents;
              Sheet:=v.workBooks[1].workSheets[1];       Except
             ShowMessage('初始化Excel失败,可能没有装Excel或者其他错误,请重起再试');
             v.DisplayAlerts:=False;
             v.quit;
             Exit;
           end;       //添加数据
           for j:=0 to DBGridList.Columns.Count-1 do
              begin
                 i:=0;
                 Sheet.Cells[i+1,j+1]:=DBGridList.Columns[j].FieldName;
              end;
                 while not Datafrm.ADOQueryTempPromotion.Eof do
                    begin
                      for j:=0 to DBGridList.Columns.Count-1 do
                         begin
                           Sheet.Cells[i+2,j+1]:=Datafrm.ADOQueryTempPromotion.FieldByName(DBGridList.Columns[j].FieldName).AsString;
                         end;
                      inc(i);
                      Datafrm.ADOQueryTempPromotion.Next;
                    end;
           //添加数据       if not VarIsEmpty(v) then
              begin
                v.DisplayAlerts:=true;
                v.WorkBooks[1].close;//(True,'strFieldNamePath');
                v.quit;
               // Application.Restore;
               // Application.BringToFront;
              end;     end;//path
    end;
      

  6.   

    procedure TPromotionfrm.BitBtn3Click(Sender: TObject);
    var
      sSQL:string;
      i,j,intCount:integer;
      strFieldNamePath:string;
      v:Variant;
      Sheet:Variant;
    begin
      if DBGridlist.DataSource.DataSet.IsEmpty then
      begin
        beep;
        showmessage('没有可导出的数据!');
        exit;
      end;
           try
              v:=CreateOleObject('Excel.Application');
              v.WorkBooks.add(savedialog1.filename,null,0);
              v.Activesheet.Cells.Select;
              v.Selection.ClearContents;
              Sheet:=v.workBooks[1].workSheets[1];       Except
             ShowMessage('初始化Excel失败,可能没有装Excel或者其他错误,请重起再试');
             v.DisplayAlerts:=False;
             v.quit;
             Exit;
           end;       //添加数据
           sheet.cell[ 1,1]:=       //添加数据       if not VarIsEmpty(v) then
              begin
                v.DisplayAlerts:=true;
                v.WorkBooks[1].close;//(True,'strFieldNamePath');
                v.quit;
               // Application.Restore;
               // Application.BringToFront;
              end;     end;//path
    end;
      

  7.   

    如果没有格式要求就用下面这个最简单的方法吧.procedure TForm1.Button1Click(Sender: TObject);
    var
      strList : TStringList;
      i : integer;
      str : string;
    begin
      strList := TStringList.Create;
      ADOQuery1.First;
      while not ADOQuery1.eof do
      begin
        str := '';
        for i:=0 to ADOQuery1.fieldcount-1 do
        begin
          str:=str+ADOQuery1.fields[i].asstring+#9;
        end;
      strlist.add(str);
      ADOQuery1.Next;
      end;
      strlist.SaveToFile('e:\a.xls');
    end;
      

  8.   

    stringlist可以直接存成.xls吗?
      

  9.   

    还有两个问题要请教,
    一:如何把excel中表格的宽度改成和dbgrid中的宽度一样
    二:能不能自动生成一个.xls文件并保存,现在excel会弹出一个说源文档已经改变,问要不要保存修改的对话框。