Delphi Excel匯入 的通用程式

2021-06-09 18:37:06 字數 2502 閱讀 1222

步驟:

1 連excel(自己知道其格式,最好是沒個字段在資料一一對應)

2 讀excel資料,填入到資料庫

我這裡有個函式,實現把excel**中資料匯入資料庫,在一條資料匯入前判斷資料庫中是否有該資料,如果有,就不再匯入該資料(避免重複)

,你可以參考下

procedure tform_qyxxcx.bitbtn2click(sender: tobject);

var i,j:integer;

col,row:integer;

m***cel,wbook,wsheet:olevariant;

f_temp,strtemp:string;

begin

if main_form.lwt.message_confirm('為預防不可**情況發生(欄位太長、型別不一致等)'+#10#13+'強烈建議在匯入前備份原來資料,'+#10#13+'確認:終止匯入'+#10#13+'取消:繼續匯入') then

abort;

cdsdjzy.open;

cdsdjzy.first;

while not cdsdjzy.eof do

cdsdjzy.delete;

cdsdjzy.close;

cdsdjzy.open;

trybegin

if opendialog1.execute then //關聯到檔案

begin

if opendialog1.filename='' then

abort;

wbook.workbooks.open(opendialog1.filename);

end;

wbook.visible:= true;

wsheet:=wbook.worksheets[1];

endexcept

begin

abort;

end;

end;

row:=wsheet.usedrange.rows.count; //行

col:=wsheet.usedrange.columns.count; //列

if (row=0) or (col = 0) then

begin

showmessage('該excel檔案沒有資料!請確認');

abort;

end;

proform.show;

proform.progressbar1.max:=row;

with qqyb do

begin

open;

for i:=1 to row-1 do //要增加的行數

begin // 0 人員名稱 2 企業名稱

//判斷是否存在該企業和人員,如果存在,不匯入該記錄

strtemp:='select * from qyb where qy_name = '''+wsheet.cells[i+1,1].value+'''';

main_form.lwt.db_adoqueryrun(qupdate,strtemp);

if qupdate.recordcount<>0 then // 存在,加入臨時表 ,退出本次迴圈

begin

cdsdjzy.fieldbyname('企業名稱').asstring := wsheet.cells[i+1,1].value;

cdsdjzy.post;

continue;

end;

for j:=0 to col-1 do //列

begin

proform.progressbar1.position:=proform.progressbar1.position+1;

// if adory.fields[j].fieldkind

fields[j].value:= wsheet.cells[i+1,j+1].value;

end;

post;

end;

end;

proform.progressbar1.position:=0;

proform.hide;

if cdsdjzy.recordcount>1 then

begin

if main_form.lwt.message_confirm('資料已經匯入!,部分記錄因為已經存在,沒有匯入,是否列印沒有匯入記錄的請單?') then

begin

main_form.lwt.db_showreportbydataset(cdsdjzy,'因為已經存在該企業匯入失敗的資訊');

main_form.lwt.db_excel_export(cdsdjzy,'c:\hello.xls');

end;

endelse

begin

main_form.lwt.message_show('資料已經匯入!');

end;

wbook.workbooks.close;

end;

Delphi Excel匯入 的通用程式

procedure tform1.btnclick sender tobject begin opendialog1.title 請選擇正確的excel檔案 opendialog1.filter excel xls xls if opendialog1.execute then edit1.text...

通血管的古方,不管多嚴重都能通!

據 報導,一位居住在倫敦的人的親身經歷,他去巴基斯坦開會的時候,突然胸口劇痛,後來被醫院驗出來,他的三條心血管已經被嚴重堵塞,需要做搭橋手術。手術的時間是乙個月以後,在這個期間,他去看一位回教國家古法 師。這位 hakim讓他自己在家中做乙個食療,他吃了乙個月。乙個月後他去同一家醫院做檢查,發現三條...

匯入模組與匯入函式的不同

背景 目前的各種語言為了使 段變得清晰易懂,將 經過拆分成多個模組,每個模組可以包含多個函式 定義非絕對,換言之,模組可以看出函式的集合體,同時模組本身也是一種函式 那麼各個模組如何相關關聯使用呢?下面通過一些例項講述一下函式的匯入功能。import 模組 eg1 定義匯入的模組為imp modul...