求excel 导入sql 工具源码,平时有些工作是表格的,做起来麻烦,还是放在数据库里方便操作。。
分不够再加

解决方案 »

  1.   

    这是数据库的基本操作:
    1、通过XLSReadWriteII4控件打开读取EXCEL表,并数据读取数据。读取时指定行、列的Cell。
    2、将读入数组。
    2、将数组通过SQL语句写入(插入DBGrid)指定表中。代码大约如此,提示:
      for Row := 6 to XLS.Sheets[0].LastRow-1 do
      begin
        First:=Row;
        if (XLS.Sheets[0].AsString[0,First]<>'') and (XLS.Sheets[0].AsString[1,First]<>'') and
           (XLS.Sheets[0].AsString[1,First]<>'') and (XLS.Sheets[0].AsString[17,First]='0') then  // 正票
        begin
          if First=(XLS.Sheets[0].LastRow-1)
          then begin
            Last:=First;
          end
          else begin
            if (XLS.Sheets[0].AsString[0,First+1]<>'') and (XLS.Sheets[0].AsString[1,First+1]<>'') and
               (XLS.Sheets[0].AsString[1,First+1]<>'') and (XLS.Sheets[0].AsString[17,First+1]='0')
            then begin
              Last:=First;
            end
            else begin
              Last:=First;
              repeat
                Last:=Last+1;
              until (XLS.Sheets[0].AsString[9,Last]='小计') or (Last>=XLS.Sheets[0].LastRow-1);
            end;
          end;
          A[Top,0]:=XLS.Sheets[0].AsString[6,First];
          A[Top,1]:=XLS.Sheets[0].AsString[0,First];
          A[Top,2]:=XLS.Sheets[0].AsString[1,First];
          A[Top,3]:=XLS.Sheets[0].AsString[2,First];
          A[Top,4]:=XLS.Sheets[0].AsString[9,Last];  //  小计
          .....
          Top:=Top+1;
        end;
      end;
      XLS.Free;
      DateTimetoString(ID1,'yyyyMMddnnss',Now);
      for i:=0 to Top-1 do
      begin
        ID:=ID1+IntToStr(100+i);
        with DBGridEh1.DataSource.DataSet do
        begin
          Append;
          j:=Pos(' ',A[i,0]);
          S:=Copy(A[i,0],1,J-1);
          dDate:=StrToDate(S);
          FieldByName('日期').asString:=FormatdateTime('yyyy-MM-dd',dDate);
          FieldByName('发票代码').asString:=A[i,1];
          FieldByName('发票号码').asString:=A[i,2];
          FieldByName('受票人名称').asString:=A[i,3];
          else FieldByName('收入方式').asString:='现金';
          FieldByName('开票人').asString:=A[i,30];
          FieldByName('项目1').asString:=A[i,6];
          FieldByName('金额1').asString:=A[i,7];
          FieldByName('项目2').asString:=A[i,8];
          FieldByName('金额2').asString:=A[i,9];
          FieldByName('ID').asString:=ID;
          Post;
        end;
      end;
      

  2.   

    用AdoDataSet控件,可以打开excel文件的,接下来操作就是记录集的操作了。
    连接串是:
    Provider=Microsoft.Jet.OLEDB.4.0;Data Source=d:\test.xls;Extended Properties="Excel 8.0;HDR=YES;IMEX=1";Persist Security Info=False
      

  3.   

    如果数据库是sql server,那处理好excel的格式,用ssms直接往里导。