Delphi將excel數(shù)據(jù)導入到數(shù)據(jù)庫中源碼

上傳人:文*** 文檔編號:61617619 上傳時間:2022-03-11 格式:DOC 頁數(shù):11 大?。?2KB
收藏 版權(quán)申訴 舉報 下載
Delphi將excel數(shù)據(jù)導入到數(shù)據(jù)庫中源碼_第1頁
第1頁 / 共11頁
Delphi將excel數(shù)據(jù)導入到數(shù)據(jù)庫中源碼_第2頁
第2頁 / 共11頁
Delphi將excel數(shù)據(jù)導入到數(shù)據(jù)庫中源碼_第3頁
第3頁 / 共11頁

下載文檔到電腦,查找使用更方便

0 積分

下載資源

還剩頁未讀,繼續(xù)閱讀

資源描述:

《Delphi將excel數(shù)據(jù)導入到數(shù)據(jù)庫中源碼》由會員分享,可在線閱讀,更多相關(guān)《Delphi將excel數(shù)據(jù)導入到數(shù)據(jù)庫中源碼(11頁珍藏版)》請在裝配圖網(wǎng)上搜索。

1、文檔供參考,可復制、編制,期待您的好評與關(guān)注! 1 / 11Delphi 將 excel 數(shù)據(jù)導入到數(shù)據(jù)庫中源碼procedure Tfrmexceltodata.Button4Click(Sender: TObject);constBeginRow= 1; BeginCol= 2; var iRE:Integer; iRow,iCol :Integer; /列、行 MsExcel,MsExcelWorkBook,MsExcelWorkSheet:Variant;adoquery1:TADOQuery;sqlstr1,sqlstr2:string;begin Try OpenDialog1.F

2、ileName:=*.xls; if not OpenDialog1.Execute then begin Exit; end; if ExtractFileExt(OpenDialog1.FileName) .xls then begin MessageBox(0, 請選擇正確的 excel 文件,PChar(提示),MB_OK or MB_ICONWARNING); Exit; end; MsExcel:=CreateOleObject(Excel.Application); MsExcel.visible:=true; MsExcelWorkBook:=MsExcel.WorkBooks

3、.Open(OpenDialog1.FileName); Except Exit; end;文檔供參考,可復制、編制,期待您的好評與關(guān)注! 2 / 11 /開始從 EXCEL 文件讀取相關(guān)信息,并導入數(shù)據(jù)庫中的“文件登記表”表 Try Application.ProcessMessages;/防止進程阻塞 iRow:=BeginRow; iCol:=BeginCol; adoquery1:=TADOQuery.Create(Self); adoquery1.Connection:=frm_main.con1; sqlstr1:=insert into 文件登記表(編號,來文日期,來文單位,來文

4、原編號,文件自編號,文件標題,頁數(shù),來文份數(shù),文件大類,文件小類,文件年度,文件狀態(tài),填卡完畢,打印完畢,是否清退); sqlstr2:=values (:bh,:lwrq,:lwdw,:lwybh,:wjzbh,:nrzy,:ys,:lwfs,:wjdl,:wjxl,:wjnd,:wjzt,:sywb,:pswb,:sfqt) ; getdh1; getlwbh; /取得文件自編號 while trim(msExcel.WorkSheetssheet1.CellsiCol,iRow.value) do begin with adoquery1 do begin Close; SQL.Clea

5、r; SQL.Add(sqlstr1); SQL.Add(sqlstr2); Parameters.ParamByName(bh).Value :=StrToInt(djbh)+iCol-1; /Parameters.ParamByName(lwrq1).Value :=dtp1.DateTime; Parameters.ParamByName(lwrq).Value :=Trim(msExcel.WorkSheets1.CellsiCol,iRow.value); Parameters.ParamByName(lwdw).Value :=Trim(msExcel.WorkSheets1.Ce

6、llsiCol,iRow+2.value);文檔供參考,可復制、編制,期待您的好評與關(guān)注! 3 / 11 Parameters.ParamByName(lwybh).Value :=Trim(msExcel.WorkSheets1.CellsiCol,iRow+3.value); Parameters.ParamByName(wjzbh).Value :=Trim(msExcel.WorkSheets1.CellsiCol,iRow+1.value); /Parameters.ParamByName(wjzbh).Value :=lwbh+inttostr(icol-1);/Trim(msEx

7、cel.WorkSheets1.CellsiCol,iRow+1.value); Parameters.ParamByName(nrzy).Value :=Trim(msExcel.WorkSheets1.CellsiCol,iRow+4.value); Parameters.ParamByName(ys).Value :=1; Parameters.ParamByName(lwfs).Value :=1; Parameters.ParamByName(wjdl).Value :=cbb6.text; Parameters.ParamByName(wjxl).Value :=cbb7.text

8、; / Parameters.ParamByName(wjnd).Value :=FormatDateTime(yyyy,now(); Parameters.ParamByName(wjnd).Value :=cbb1.Text; Parameters.ParamByName(sywb).Value :=0; Parameters.ParamByName(pswb).Value :=0; Parameters.ParamByName(wjzt).Value :=未送閱簽; Parameters.ParamByName(sfqt).Value :=0; ExecSQL; end; iCol:=i

9、Col+1; end; MsExcel.Quit; Except MessageBox(self.Handle,數(shù)據(jù)導入失??!,系統(tǒng)提示,0); MsExcel.Quit; Exit; end;/end try MessageBox(self.Handle,數(shù)據(jù)導入成功!,系統(tǒng)提示,0); frmexceltodata.Close; 文檔供參考,可復制、編制,期待您的好評與關(guān)注! 4 / 11end;請問,用請問,用 Delphi 如何寫程序?qū)⑷绾螌懗绦驅(qū)?Excel 或或 txt 導入導入 oracle?請問各位,用 Delphi 如何寫程序?qū)?Excel 或 txt 導入 oracle,不

10、用導入工具,寫代碼,謝謝!procedure TForm1.button1Click(Sender: TObject);vari,row,column:integer;beginTryExcelApplication1.Connect;ExceptMessageDlg(Excel may not be installed,mtError, mbOk, 0);Abort;End;ExcelApplication1.Visible0:=True;ExcelApplication1.Caption:=Excel Application;ExcelApplication1.Workbooks.Add(

11、Null,0);ExcelWorkbook1.ConnectTo(ExcelApplication1.Workbooks1);ExcelWorksheet1.ConnectTo(ExcelWorkbook1.Worksheets1 as _Worksheet);Table1.Open;row:=1;While Not(Table1.Eof) dobegincolumn:=1;for i:=1 to Table1.FieldCount dobeginExcelWorksheet1.Cells.Itemrow,column:=Table1.fieldsi-1.AsString;column:=co

12、lumn+1;end;Table1.Next;row:=row+1;end;end;我用這代碼,導不進數(shù)據(jù)庫。還有怎樣導入指定路徑的文件?謝謝我用這代碼,導不進數(shù)據(jù)庫。還有怎樣導入指定路徑的文件?謝謝文檔供參考,可復制、編制,期待您的好評與關(guān)注! 5 / 11昵稱昵稱: panda831102 時間時間: 2010-09-07 09:50:14excel 導入導入 sql 的,導的,導 oracle 的自己轉(zhuǎn)換修改一下代碼試試:的自己轉(zhuǎn)換修改一下代碼試試:Delphi(Pascal) codeprocedure TRES_DCC_ECRN_F.cxButton1Click(Sender: TO

13、bject);var ExcelApp,WorkBook:Olevariant; ExcelSheetCount,i,k:Integer;begin inherited; if RzButtonEdit1.Text then begin if (ExtractFileExt(RzButtonEdit1.Text).xls) then begin MessageDlg(請選擇要導入的請選擇要導入的 Excel 檔案檔案!,mtWarning,mbOK,0); RzButtonEdit1.Clear; end else begin try Application.ProcessMessages;

14、ExcelApp:=CreateOleObject(Excel.Application); WorkBook:=ExcelApp.WorkBooks.Open(RzButtonEdit1.Text); ExcelApp.Visible:=False; ExcelSheetCount:=WorkBook.WorkSheets.Count; for i:=1 to ExcelSheetCount do begin Screen.Cursor:=crSQLWait; WorkBook.WorkSheetsi.Activate; a:=ExcelApp.Cells4,2.Value; b:=Excel

15、App.Cells8,2.Value; c:=ExcelApp.Cells14,2.Value; d:=ExcelApp.Cells21,2.Value; e:=ExcelApp.Cells22,2.Value; f:=ExcelApp.Cells23,2.Value; if (Copy(Trim(a),1,3)ECR) and (b) and (Copy(Trim(a),1,3)DCR) and (b) then begin MessageDlg(檔案格式錯誤檔案格式錯誤!,mtWarning,mbOK,0); InsertErrorLOG; Screen.Cursor:=crDefault

16、; Exit; end; with adoq_ecrn do文檔供參考,可復制、編制,期待您的好評與關(guān)注! 6 / 11 begin Close; SQL.Text:=select * from RES_ECR_TYPE where ECRNO=+ a+; Open; if RecordCount=1 then begin MessageDlg(請檢查請檢查:導入檔案時編號導入檔案時編號+ a+的記錄重復的記錄重復!,mtWarning,mbOK,0); InsertRepeatLOG; Screen.Cursor:=crDefault; Exit; end; end; with adoq_e

17、crn do begin Close; SQL.Clear; SQL.Add(insert into RES_ECR_TYPE(ECRNO,DESOFCHANGE,RELEASEDATE,RESPEOPLE,ISSUEDEPT,MODEL) values(:a,:b,:c,:d,:e,:f); Parameters.ParamByName(a).Value:=a; Parameters.ParamByName(b).Value:=b; Parameters.ParamByName(c).Value:=Trim(Copy(c,1,19); Parameters.ParamByName(d).Va

18、lue:=d; Parameters.ParamByName(e).Value:=e; Parameters.ParamByName(f).Value:=f; ExecSQL; end; InsertECRLOG; ProgressBar1.Min:=0; ProgressBar1.Max:=ExcelSheetCount; for k:=33 to WorkBook.WorkSheetsi.usedrange.rows.count do begin g:=ExcelApp.CellsK,1.Value; q:=ExcelApp.Cellsk,2.Value; w:=ExcelApp.Cell

19、sk,3.Value; v:=ExcelApp.Cellsk,4.Value; r:=ExcelApp.Cellsk,5.Value; t:=ExcelApp.Cellsk,6.Value; y:=ExcelApp.Cellsk,7.Value;文檔供參考,可復制、編制,期待您的好評與關(guān)注! 7 / 11 u:=ExcelApp.Cellsk,8.Value; o:=ExcelApp.Cellsk,9.Value; if (q)and(w) then with adoq_item do begin Close; SQL.Clear; SQL.Add(insert into RES_ECR_IT

20、EM(GROUPID,ECRNO,ITEMNO,ITEMDESPTION,FZRELATION,CHANGETYPE,BEFORECHANGE,AFTERCHANGE,PROPOSE,REMARK) values(:g,:p,:q,:w,:v,:r,:t,:y,:u,:o); Parameters.ParamByName(g).Value:=g; Parameters.ParamByName(p).Value:=a; Parameters.ParamByName(q).Value:=q; Parameters.ParamByName(w).Value:=w; Parameters.ParamB

21、yName(v).Value:=v; Parameters.ParamByName(r).Value:=r; Parameters.ParamByName(t).Value:=t; Parameters.ParamByName(y).Value:=y; Parameters.ParamByName(u).Value:=u; Parameters.ParamByName(o).Value:=o; ExecSQL; ProgressBar1.Position:=ProgressBar1.Position+1; end; end; Screen.Cursor:=crDefault; Applicat

22、ion.ProcessMessages; ProgressBar1.Position:=0; RefreshECRN; RefreshGroupItem; SendToEmail; Zt:=1; end; finally ExcelApp.ActiveWorkBook.Saved:=True; WorkBook.Close; ExcelApp.Quit; end; end; end else begin MessageDlg(請選擇要導入的請選擇要導入的 Excel 檔案檔案!,mtWarning,mbOK,0); Exit; end;文檔供參考,可復制、編制,期待您的好評與關(guān)注! 8 / 1

23、1end;DELPHI 中把中把 EXCEL 中的數(shù)據(jù)導入到中的數(shù)據(jù)導入到 SQL 中中一直都是將數(shù)據(jù)從一直都是將數(shù)據(jù)從 SQL 導入到導入到 EXCEL 文件文件,前兩天因為有需求前兩天因為有需求,試著將試著將EXCEL 文件導入到文件導入到 SQL,才發(fā)現(xiàn)兩者的原理其實是一樣的才發(fā)現(xiàn)兩者的原理其實是一樣的,如下代碼如下代碼,并附注釋并附注釋:procedure Tfom1.ExcelToSQLMenuItemClick(Sender: TObject);varExcelID,Sheet: Variant;sFileName :String;i,ExcelRowCount,OkNum,Fai

24、lNum:integer;begin/指定文件指定文件OkNum:=0; /導入成功的數(shù)據(jù)導入成功的數(shù)據(jù)FailNum:=0; /導入失敗的數(shù)據(jù)導入失敗的數(shù)據(jù) /指定要導入的指定要導入的 EXCEL 文件文件 With hrSysDataModule.MyOpenDialog do begin DefaultExt:=Xls; Filter :=Excel 工作簿文件(工作簿文件(*.xls)|*.Xls; if Execute then sFileName := FileName else exit; end; Try ExcelID := CreateOleObject( Excel.Ap

25、plication ); ExcelID.Visible :=False; /若為若為 true,則將顯示并打開將要導入則將顯示并打開將要導入的的 excel 文件文件 except on E: Exception do begin ExcelID.Quit; ExcelID := Unassigned; Application.Restore; Application.BringToFront; MessageBox(Self.Handle,Pchar(系統(tǒng)提示您系統(tǒng)提示您,創(chuàng)建創(chuàng)建 Excel 對象對象出錯出錯,原因為原因為:+ e.Message), Pchar(AppliCation.

26、Title),MB_OK+MB_ICONERROR); Exit; end; end;文檔供參考,可復制、編制,期待您的好評與關(guān)注! 9 / 11 try Try ExcelID.WorkBooks.Open(sFileName); Sheet:= ExcelID.WorkBooks1.WorkSheets1;/ ExcelColCount := ExcelID.WorkSheets1.UsedRange.Columns.Count; ExcelRowCount := ExcelID.WorkSheets1.UsedRange.Rows.Count; /獲得本數(shù)據(jù)獲得本數(shù)據(jù)表有多少行數(shù)據(jù)表有多

27、少行數(shù)據(jù) ADOConnection1.BeginTrans; /開始事務開始事務 for i :=2 to ExcelRowCount do /將要從哪行開始讀將要從哪行開始讀,本程序為本程序為從第二行開始讀從第二行開始讀,第一行為標題第一行為標題 begin if length(trim(Sheet.Cellsi,1 .Value) =8 then / 即使上句不報錯即使上句不報錯,也得查也得查看是不是類似為看是不是類似為 0:0:0 這樣的格式這樣的格式,也是錯的也是錯的,此處檢查長度此處檢查長度 Result := True else Result := False; if Result then /若以上結(jié)果為正確若以上結(jié)果為正確,本程序還要檢查是不是大于本程序還要檢查是不是大于1950 年年 if year 1950 then Result := True else Result := False; except Result := False; end;end;

展開閱讀全文
溫馨提示:
1: 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
2: 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯(lián)系上傳者。文件的所有權(quán)益歸上傳用戶所有。
3.本站RAR壓縮包中若帶圖紙,網(wǎng)頁內(nèi)容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
4. 未經(jīng)權(quán)益所有人同意不得將文件中的內(nèi)容挪作商業(yè)或盈利用途。
5. 裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對用戶上傳分享的文檔內(nèi)容本身不做任何修改或編輯,并不能對任何下載內(nèi)容負責。
6. 下載文件中如有侵權(quán)或不適當內(nèi)容,請與我們聯(lián)系,我們立即糾正。
7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

相關(guān)資源

更多
正為您匹配相似的精品文檔
關(guān)于我們 - 網(wǎng)站聲明 - 網(wǎng)站地圖 - 資源地圖 - 友情鏈接 - 網(wǎng)站客服 - 聯(lián)系我們

copyright@ 2023-2025  zhuangpeitu.com 裝配圖網(wǎng)版權(quán)所有   聯(lián)系電話:18123376007

備案號:ICP2024067431-1 川公網(wǎng)安備51140202000466號


本站為文檔C2C交易模式,即用戶上傳的文檔直接被用戶下載,本站只是中間服務平臺,本站所有文檔下載所得的收益歸上傳人(含作者)所有。裝配圖網(wǎng)僅提供信息存儲空間,僅對用戶上傳內(nèi)容的表現(xiàn)方式做保護處理,對上載內(nèi)容本身不做任何修改或編輯。若文檔所含內(nèi)容侵犯了您的版權(quán)或隱私,請立即通知裝配圖網(wǎng),我們立即給予刪除!