各位大虾:
   你们好,我现在很急,公司有很多excel文件里面有很多数据,我想通过
 前端delphi来读取,然后保存到数据后台,不知道有什么办法?请各位大师
 救救我!

解决方案 »

  1.   

    { ltypeid :1 表示显示Excel 0 : 表示不用显示Excel
         DataGirld : 一个stringGirld 数据源
         StrFileName:一个需要保存的文件文件名
         }
         //*****************************end***************************
         
         function BExcel(lTypeid: integer; DataGirld: TSupGrids; strFileName: string): boolean;
         
         var
         szbuffer : string;
         zi, lField : integer;
         fprogress : Tfprogress;
         strlist : TStringList;
         begin
         Result := false;
         if DataGirld.RowCount <= 0 then exit;
         if strFileName = EmptyStr then
         begin
         strFileName := ExtractFileDir(Application.ExeName) + '\GraspExecel.xls'
         end;
         application.CreateForm(tfprogress, fprogress);
         try
         fprogress.show;
         fprogress.Update;
         fprogress.ProgressBar1.Position := 10;
         fprogress.ProgressBar1.Max := DataGirld.RowCount;
         fprogress.ProgressBar1.Position := fprogress.ProgressBar1.Position + 20;
         strlist := TStringList.Create;
         for zi := 0 to DataGirld.colCount-1 do //取表头字段名称
         begin
         if szbuffer = EmptyStr then
         begin
         szbuffer :=' '+trim(DataGirld.Cells[zi, 0]);
         end
         else
         szbuffer := szbuffer + char(vk_Tab) +Trim(DataGirld.Cells[zi, 0]);
         end;
         fprogress.ProgressBar1.Position := fprogress.ProgressBar1.Position + 10;
         strlist.Add(szbuffer);
         szbuffer := EmptyStr;
         for zi :=1 to DataGirld.RowCount do //取表体内容
         begin
         for lField :=0 to DataGirld.ColCount do //chanage 1 to 2
         begin
         szbuffer := szbuffer + DataGirld.Cells[ lfield,zi]+ chAr(VK_TAB) ;
         end;
         strlist.Add(szbuffer);
         szbuffer := EmptyStr;
         fprogress.ProgressBar1.Position := fprogress.ProgressBar1.Position + 2;
         end;
         strlist.SaveToFile(strFileName);
         fprogress.ProgressBar1.Position := fprogress.ProgressBar1.max;
         if lTypeid = 1 then
         ShellExecute(application.Handle, 'open', pchar(strFileName), nil, nil, SW_SHOWNORMAL);
         
         finally
         strlist.Free;
         fprogress.close;
         fprogress.Free;
         end;
         Result := true;
         end;
      

  2.   

    我試試。是stringGrid吧,不是stringGirld
      

  3.   

    好象不對呀,我是通過delphi程序來讀取excel文件中的數據呀,而不是通過delphi把數據導出到
    excel中去
      

  4.   

    使用Excel的接口或是用Server面板中的控件来完成。
      

  5.   

    下面的是是取excel文件的数据的
      filename是你的文件名(绝对路径)  
      sheetname是你excel表里激活的sheet名
      
      ADOConnection2:= TADOConnection.Create(nil);
      ADOConnection2.LoginPrompt := False;
      ADOConnection2.ConnectionString := 'Provider=Microsoft.Jet.OLEDB.4.0; Data Source=' + FileName + ';Extended Properties=Excel 8.0';  try
      importADOQuery := TADOQuery.Create(nil);
      importADOQuery.Connection := ADOConnection2;
      importADOQuery.SQL.Text := 'Select * from [' + SheetName + '$]';
      importADOQuery.Open;
      

  6.   

    to cxreal(夜晚的猪) :   老兄,你好,謝謝你,我試過之後,但還是有一點問題,就是excel中的數據拿不完全,是不是
     excel中格式有問題?    我還在測試...