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\';
  DestName:=DestFolder+ExtractFileName(UniFileUpload1.FileName);
  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;

3、在Delphi10.3中测试通过

  • 1
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值