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;
标签:UniGUI,jyschq,UniMainModule,Excel,fd,Sheets,SQL,Params,XLS
From: https://www.cnblogs.com/qiao-fu/p/18006611