生活随笔
收集整理的這篇文章主要介紹了
GeneXus笔记Excel导入
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
參數初始化 * ? : ? ? ? ? ? ? ? ???????????? InitParm確定excel的title 定位數據*? :????????MatchTitleIndex讀取Excel?? :??????????????????????????????? ReadExcelData
校驗數據庫數據 :???????????????????????? ValidateInDB表內數值型格式校驗? ??????????????????? ValidateintegerFormat修改數據庫???????????????????????? ?????????? UpdateDB
/*--------------主程序-------------*/
/*1、參數初始化*/
Do 'InitParm'
/*2、讀取Excel數據,校驗表頭格式,定位數據*/
Do 'MatchTitleIndex'
&CellRow += 1
do while &ExcelDocument.Cells(&CellRow, &Variable_Index).Text <> '' //這里是讀一條就調一次數據庫,需要優化&Flag = 0Do 'ReadExcelData'
/*3、校驗Excel表內數據*/
/*3.1、數據庫數據校驗*/Do 'ValidateInDB'
/*3.2、表內數值型數據格式校驗*/Do 'ValidateintegerFormat'
/*4、結束數據校驗,如果正確,修改數據庫,如果不正確,則提示有錯誤*/ if &Flag = 1&ErrorOutMessage = "部分數據有誤,詳見數據錄入錯誤日志"elseDo 'UpdateDB'endif&CellRow += 1
enddo
&ExcelDocument.Close()/*導入修改完畢,關閉Excel*//*--------------Sub-------------*/
Sub 'InitParm'&ExcelDocument.Open(&FilePathName)/*打開上傳的Excel文件*/&CellRow = 1&ErrorOutMessage = ""
// &Pattern = "^[0-9]*$"/*數值型正則表達式*/&Variabel1_index= 0&Variabel2_Index = 0&Variable3_Index = 0&Variable4_Index = 0&Variable5_Index = 0
EndSub
Sub 'MatchTitleIndex'If (&ExcelDocument.ErrCode <> 0)&ErrorMessage = &ExcelDocument.ErrDescription&ExcelDocument.Close()ReturnEndiffor &iCellIndex = 1 to 100&Title = &ExcelDocument.Cells(&CellRow, &iCellIndex).Textif trim(&Title) = "title1"&Variable1_index= &iCellIndexendifif trim(&Title) = "title2"&Variable2_Index = &iCellIndexendifif trim(&Title) = "title3"&Variable3_Index = &iCellIndexendifif trim(&Title) = "title4"&Variabel4_Index = &iCellIndexendifif trim(&Title) = "title5"&Variable5_Index = &iCellIndexendifendfor&Index = &Variable1_Index* (&Variable2_index+ &Variable3_index+ &Variable4_index+ &Variable5_index) //&Variable1_index是不能缺少的主鍵if &Index = 0&ErrorMessage = '沒有找到應對的列'returnendif
EndSub
Sub 'ReadExcelData'&Variabel1= &ExcelDocument.Cells(&CellRow,&Variable1_Index).Text&Variable2= &ExcelDocument.Cells(&CellRow,&Variable2_Index).Text&Variable3= &ExcelDocument.Cells(&CellRow,&Variable3_Index).Text&Variable4= &ExcelDocument.Cells(&CellRow,&Variable4_Index).Text&Variable5 = &ExcelDocument.Cells(&CellRow,&Variable5_Index).Number
EndSub
Sub 'ValidateInDB'EndSub
Sub 'ValidateintegerFormat'if &Variable1.IsEmpty() or &Variable=''&DataErrorReason = '參數名稱不能為空'P_InsertErrorInfo.Call(&UserCode,ErrorType.ImportError,&OriginalFileName,'第'+&CellRow.ToString()+'行'+','+'第'+&MakProductCode_Index.ToString()+'列',&DataErrorReason)&Flag = 1endifEndSub
Sub 'UpdateDB'For eachwhere Attribute1= &Variable1 //這兩行可以不用也行&Variable2= Attriable2 //不同的邏輯看自己的Do 'New'EndFor&ErrorMessage = '導入完成'commit
EndSub
Sub 'New'for each?? ?//根據顏色名稱獲取顏色編碼where A1= &V1&V2= A2exitendforNewA1= &V1A2= &V2A3= &V3EndNew
EndSub
?
genexus? excel導入
總結
以上是生活随笔為你收集整理的GeneXus笔记Excel导入的全部內容,希望文章能夠幫你解決所遇到的問題。
如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。