UniGUI 将Excel表上传,并将数据导入SQL(转)
UniGUI 将Excel表上传,并将数据导入SQL(转)
采用第三方控件XLSReadWriteII实现导入数据的办法
1、首先将Excel文件上传至服务器;
在表单中添加UniFileUpload和XLSReadWriteII控件
procedure Tck_tz.UniLabel4Click(Sender: TObject);
begin
  UniFileUpload1.Execute;
end;
2、用XLSReadWriteII在服务器上将Excel文件中的数据导入SQL数据表
UniFileUpload1Completed中加入如下代码
procedure Tck_tz.UniFileUpload1Completed(Sender: TObject; AStream: TFileStream);
 var
  DestName,DestFolder,j : string;
  iR,i: Integer;
 
begin
inherited;
  DestFolder:=UniServerModule.StartPath+'UploadFolder\';
  if not DirectoryExists(DestFolder) then  ForceDirectories(DestFolder);
  DestName:=DestFolder+ExtractFileName(UniFileUpload1.FileName);
  if not CopyFile(PChar(AStream.FileName), PChar(DestName), False) then
  begin
     ShowMessage('上传失败!');
     exit;
  end;
  xls.Filename:=destname;
  xls.Read;
 
  try
     i:=XLS.Sheets[0].FirstRow+2;//去除标题信息
     ir:=2;
     uniMainModule.fd_jyschq.SQL.Text := 'insert into jyschq(jyhqr,scnd,pici,gdzl,jgdw,js,cczt) values (:p1, :p2, :p3,:p4,:p5,:p6,:p7)';
     UniMainModule.fd_jyschq.Params.ArraySize := XLS.Sheets[0].LastRow;
     for i := 0 to UniMainModule.fd_jyschq.Params.ArraySize - 1 do
     begin
       UniMainModule.fd_jyschq.Params[0].AsStrings[i] :=XLS.Sheets[0].AsVariant[3,iR];
      UniMainModule.fd_jyschq.Params[1].AsStrings[i] := XLS.Sheets[0].AsFmtString[5,iR];
      UniMainModule.fd_jyschq.Params[2].AsStrings[i] :=XLs.Sheets[0].AsFmtString[1,iR];
      UniMainModule.fd_jyschq.Params[3].Values[i] :=XLS.Sheets[0].AsFmtString[8,iR];
      UniMainModule.fd_jyschq.Params[4].Values[i] :=XLS.Sheets[0].AsFmtString[16,iR];
      UniMainModule.fd_jyschq.Params[5].Values[i] :=XLS.Sheets[0].AsFmtString[6,iR];
      UniMainModule.fd_jyschq.Params[6].Values[i] :=XLS.Sheets[0].AsFmtString[13,iR];
      ir:=ir+1;
    end;
    UniMainModule.fd_jyschq.Execute(UniMainModule.fd_jyschq.Params.ArraySize, 0);
    showmessage('数据导入成功!!!');
  except
  XLS.Free;
  end;
  if Assigned(XLS) then
  begin
    XLS.Destroy;
  end;
end;
 
                    
                 
                
            
         浙公网安备 33010602011771号
浙公网安备 33010602011771号