例如:excel表中的数据为
      姓名:aa
      性别: 男
      年龄:22
SQL Server2000 中的表为:Data 字段为:姓名,性别,年龄
不知用什么方法可以将Excel中的数据,导入在Data这个表中!请各位帮帮忙!

解决方案 »

  1.   

    var
      exl,workbook,sheet:olevariant;
      i,j:integer;
      str:string;
    begin
       try
         exl := CreateOleObject( 'Excel.Application' );
         workbook:=createoleobject('Excel.sheet');
       except
         showmessage('没有安装Excel!');
         exit;
       end;
       if opendialog1.Execute then
       begin
         str:=opendialog1.filename;
         //workbook.Visible := False;
         //workbook.Open(str);//打开Excel文档
         sheet:= workbook.ActiveSheet;
         for i:=1 to exl.rows.count-1 do
            begin
              for j:=1 to exl.columns.count do
                 begin
                     str:=exl.cells[i,j].value;
                     adoquery1.FieldValues['j-1']:=str;
                 end;
            end;
       end
       else
          showmessage('数据导入出错!');
    end;
    有点思路,但我的不成功,一起讨论一下吧,我也没搞出来!
      

  2.   

    建议使用DTS转换服务来进行数据导入工作,速度快效率高。
    如果自己编程的话也有至少两种思路:
    1)对DTS进行编程,支持各种语言VB,VC, Delphi等等
    2)自己读取excel文件,然后自己进行表的插入工作,速度慢。
      

  3.   

    我的程序的代码:procedure p_ExportToExcel(as_Title:string;ao_Grid: TDbGridEh);
    var
      ls_FileName: string;
    begin
      ls_FileName := f_getFileName('C:\My Documents','Microsoft Excel (*.xls)|*.XLS','.XLS');
      if ls_FileName <> '' then
      begin
         if FileExists(ls_FileName) and (MessageDlg(ls_FileName+cs_OverWrite,mtConfirmation, [mbYes, mbNo], 0) = mrNo) then
         //if FileExists(ls_FileName) then
            exit;
         p_GenerteXLSFile(as_Title,ls_FileName,ao_grid);
      end;
    end;function f_getFileName(as_IniDir: string = '_Default';
                           as_Filter:string = '_Default';
                           as_Ext: string = '_Default'): string;
    var
      lo_dialog: TSaveDialog;
      ls_FileName: string;
    begin
      lo_dialog := TSaveDialog.Create(nil);
      if as_IniDir = '_Default' then
         as_IniDir := ExtractFilePath(Application.EXEName);
      lo_dialog.InitialDir := as_IniDir;  if as_Filter = '_Default' then
         as_Filter := 'Windows Metafile format (*.wmf)|*.WMF';
      lo_dialog.Filter := as_Filter;  if as_Ext = '_Default' then
         as_Ext := '.WMF';
      if lo_dialog.Execute then
      begin
         ls_FileName := lo_dialog.FileName;
         if pos(UpperCase(as_Ext),UpperCase(ls_FileName)) <= 0 then
            result := ls_FileName + as_Ext
         else
            result := ls_FileName;
      end
      else
         result := '';
      lo_dialog.Free;
    end;看看能看懂吗?
      

  4.   

    SELECT * into table
    FROM OpenDataSource('Microsoft.Jet.OLEDB.4.0','Data Source="C:\temp\b.xls";Extended Properties="Excel 5.0;HDR=Yes;";Persist Security Info=False')...sheet1$