uniGUI提供了一个文件上传控件TUniFileUpload,进行数据的导入就变得比较容易。首先将TUniFileUpload控件放置在窗体上,按下导入按钮后,执行TUniFileUpload的文件上传功能:
procedure TfmeWebDBListEditBase.btnImportClick(Sender: TObject);
begin
inherited; { 执行文件上传 }
fuMain.Execute; { 启动Mask,显示文件上传过程 }
fuMain.ScreenMask.Target := Self;
fuMain.ScreenMask.Enabled := True; end;
当TUniFileUpload的文件上传完成后,触发OnCompleted事件,在其中可以通过数据流对文件进行操作,如下:
procedure TfmeWebDBListEditBase.fileuploadMainCompleted(Sender: TObject; AStream: TFileStream);
begin
…
end;
TUniFileUploadz主要的属性包括:
Title 显示文件上传的标题
Filter 文件类型过滤,目前的版本暂不支持,作者说在后续版本中加入
Messages 文件上传出了过程中的提示信息,不再详述
MaxAllowedSize 限制文件大小,单位是字节(Byte),超过后会报错,可惜是英文的,目前不能改,如下图
我利用了TMS FlexCel控件实现Excel文件的上传导入,效果非常不错,只是手上的版本仅支持Excel2003及以下的xls文件,不支持Excel2007及以上的xlsx文件。