티스토리 뷰

반응형

 

□ 파워빌드 - 엑셀 파일 DataWindow에 업로드 방법

 

검색시 파워빌드에서 엑셀파일을 datawindow에 업로드 하는 방법은 많이 나오는데요.

폴더에 있는 엑셀 파일을 한번에 업로드 하는방법이 없어서 만들어보았습니다.

저 같은 경우는 엑셀 파일을 datawindow에 업로드시 엑셀에 없는 필드를 하나 추가 삽입할

필요가 있어서 조금 수정 했습니다.

소스는 아래와 같습니다.

/*

 엑셀파일 위치 : C:\SSIS\ 폴더에 엑셀 파일 저장

 폴더에 있는 엑셀파일을 listbox에 읽어온 후 

 listbox에있는 파일명을 순차적으로 업로드함

*/


long    li_Result, li_tot, li_row1

string  s_FileName1, s_FileName2

lb_1.DirList("C:\SSIS\*.xls",0) // lb_1는 listbox 임

li_tot = lb_1.TotalItems()  //listbox에 있는 총 아이템개수(즉 폴더에 있는 엑셀 파일 개수)

For li_row1 = 1 to li_tot

    s_FileName1 =''; 

    s_FileName1 = lb_1.Text(li_row1)

    s_FileName2 = Left(s_FileName1,8)

    s_FileName1 = "C:\SSIS\"+s_FileName1;

  

//---------------------------------------------------------------------------------

//1.변수선언

   oleobject ole_excel,xlsub,xlApp, xlBook, xlSheet

   integer net , ll_value , ll_return , ll_error_cnt ,ll_error_cnt1 

   string  ls_file, ls_name, ls_txt_file 

   long  ll_ins_row

   long ll_tot_Row , ll_tot_col , ll_row

   

   String  ls_ordernum, ls_ShopName,  ls_Prod_Nm, ls_Option, ls_InputDay

   String  ls_Reciver, ls_ZipCode,   ls_Addr,    ls_Tel,  ls_HP

   String  ls_Memo,  ls_Admin_Memo, ls_Cust_Nm

   Integer li_OrderQty, li_HsQty

   

   //변수 초기화

   SetPointer (HourGlass!)

   ll_error_cnt =0

   ll_error_cnt1=0

    

   

   ls_txt_file= trim(s_FileName1)

    

   //엑셀 OLE사용하기

   xlApp = Create OLEObject

   ll_return = xlApp.ConnectToNewObject( "excel.application" ) 

   if ll_return < 0 then 

    MessageBox("엑셀 연결시 오류가 발생하였습니다..~r~n 컴퓨터에 엑셀이 설치되었는지 확인하세요..!",string(ll_return)) 

    SetPointer(Arrow!)

    return 

   end if

   xlApp.Application.Visible = false 

   xlApp.Workbooks.Open(ls_txt_file) 

   xlBook = xlApp.Application.WorkBooks(1) 

   xlSheet= xlBook.Worksheets(1)

 

 

 


   

   //전체 row col count

   ll_tot_Row = xlApp.ActiveSheet.UsedRange.Rows.Count        //업로드할 엑셀의 총 row

   ll_tot_col = xlApp.ActiveSheet.UsedRange.Columns.Count      //업로드할 엑세의 총 column

     

   For ll_row = 2 to ll_tot_row    //엑셀에 head가 존재하면 2부터 시작

   

      ls_ordernum = ''

      ls_ordernum = string(xlSheet.cells(ll_row,1).value)

      

      ls_ShopName = ''

      ls_ShopName = string(xlSheet.cells(ll_row,2).value)

      

      ls_Prod_Nm = ''

      ls_Prod_Nm = string(xlSheet.cells(ll_row,3).value)

     //----------------------------------------------------

     

      ls_Option = ''

      ls_Option = string(xlSheet.cells(ll_row,4).value)

      

      li_OrderQty = 0

      li_OrderQty = Int(xlSheet.cells(ll_row,5).value)

      

      ls_InputDay = ''

      ls_InputDay = string(xlSheet.cells(ll_row,7).value)

     

      ls_Reciver = ''

      ls_Reciver = string(xlSheet.cells(ll_row,8).value)

      

      ls_ZipCode = ''

      ls_ZipCode = string(xlSheet.cells(ll_row,9).value)

      

      ls_Addr = ''

      ls_Addr = string(xlSheet.cells(ll_row,10).value)

      

      ls_Tel = ''

      ls_Tel = string(xlSheet.cells(ll_row,11).value)

     

      ls_Hp = ''

      ls_Hp = string(xlSheet.cells(ll_row,12).value)

      

      ls_Memo = ''

      ls_Memo = string(xlSheet.cells(ll_row,13).value)

      

      ls_Admin_Memo = ''

      ls_Admin_Memo = string(xlSheet.cells(ll_row,14).value)

      

      ls_Cust_Nm = ''

      ls_Cust_Nm = string(xlSheet.cells(ll_row,15).value)

     

     

     

     

      ll_ins_row  = dw_list.insertrow(0)

      dw_list.object.일자[ll_ins_row]    = s_FileName2

      dw_list.object.주문번호[ll_ins_row]      = ls_ordernum

      dw_list.object.주문상품[ll_ins_row]     = ls_ShopName 

      dw_list.object.전산제품명[ll_ins_row]    = ls_Prod_Nm

      dw_list.object.주문옵션[ll_ins_row]  = ls_Option

      

      dw_list.object.주문수량[ll_ins_row]   = li_OrderQty

      dw_list.object.입금일[ll_ins_row]      = ls_InputDay 

      dw_list.object.수령자[ll_ins_row]        = ls_Reciver

      dw_list.object.우편번호[ll_ins_row]  = ls_ZipCode

      

      dw_list.object.주소[ll_ins_row]    = ls_Addr

      dw_list.object.전화번호[ll_ins_row]        = ls_Tel

      dw_list.object.핸드폰[ll_ins_row]      = ls_HP

      dw_list.object.메모[ll_ins_row]      = ls_Memo

      dw_list.object.관리자메모[ll_ins_row]  = ls_Admin_Memo

      

      dw_list.object.거래처명[ll_ins_row]  = ls_Cust_Nm

      

   Next

 Next

    

 xlApp.Application.Quit

 xlApp.DisConnectObject()

 Destroy xlSheet

 Destroy xlBook

 Destroy xlApp​

 

 //dw_list.event ue_update()  

 messagebox("확인",'Exce화일이 저장되었습니다.')

 SetPointer(Arrow!)



반응형
댓글