메뉴 건너뛰기

SAP 한국 커뮤니티

아래의 펑션을 사용할때.. 컬럼의 데이타가 32char 로 제한 됩니다.
일반적인 데이타는 사용 가능하나..
롱 텍스트가 존재하는 경우 문제가 걸리겠져?
그럴경우 아래 펑션을 카피해서 Add-On 으로 만들어 사용하시면 됩니다.

tables 의 intern 이란 테이블의 타입중 row, col, value
의 value에 해당하는 Structure를 생성하여 변경하면
어떠한 경우에도 사용 가능 합니다. !!!

>
>  CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT'
>    EXPORTING
>      FILENAME                = P_FILENAME
>      I_BEGIN_COL             = LO_START_COL
>      I_BEGIN_ROW             = LO_START_ROW
>      I_END_COL               = LO_END_COL
>      I_END_ROW               = LO_END_ROW
>    TABLES
>      INTERN                  = LO_ITAB
>    EXCEPTIONS
>      INCONSISTENT_PARAMETERS = 1
>      UPLOAD_OLE              = 2.
>
 

 

 

 


*-- 업로드할 엑셀 파일을 TXT 파일(탭으로 분리된)로 내리지 않고
     컬럼 헤더 텍스트가 있는 ROW를 없애고 순수 데이타만으로된 엑셀 파일을
     그대로 올리는 프로그램
    
     기본적으로 KCDE_CELLS  타입의 INTERNAL TABLE을 생성하고 이테이블에는
     한개의 레코드가  한라인을 생성되는 것이 아니라
     엑셀파일의 ROW/COLUMN 정보와 해당 컬럼(셀)의 데이타를 가진 테이블로
     업로드되며
     이 업로드된 테이블을 LOOPing 하면서 실제 저장될 INTERNAL TABLE에
     컴포넌트로 어사인하여 값을 넣으면 만사 오케이! ^____^;

*----------------------------------------------  Created by SeungLyong Lee

^&^ 필드심볼 잘 사용하면 즐코딩 할 수 있습니당..
    
*&------------------------------------------------------------------*
*&      Form  F_EXCEL_UPLOAD
*&------------------------------------------------------------------*
FORM F_EXCEL_UPLOAD  TABLES   P_TABLE  
                     USING    P_FILENAME  LIKE RLGRAP-FILENAME.

  DATA : LO_ITAB TYPE  KCDE_CELLS OCCURS 0 WITH HEADER LINE.
  DATA : LO_INDEX like sy-tabix.
  DATA : LO_START_COL TYPE I VALUE '1',
         LO_START_ROW TYPE I VALUE '1',
         LO_END_COL   TYPE I VALUE '256',
         LO_END_ROW   TYPE I VALUE '65536'.
  FIELD-SYMBOLS : <LO_FS>.

  CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT'
    EXPORTING
      FILENAME                = P_FILENAME
      I_BEGIN_COL             = LO_START_COL
      I_BEGIN_ROW             = LO_START_ROW
      I_END_COL               = LO_END_COL
      I_END_ROW               = LO_END_ROW
    TABLES
      INTERN                  = LO_ITAB
    EXCEPTIONS
      INCONSISTENT_PARAMETERS = 1
      UPLOAD_OLE              = 2.

  IF SY-SUBRC NE 0.
    MESSAGE E000(ZMPS) WITH 'File Upload Failed !'(E10).
    STOP.
  ENDIF.

  CHECK NOT LO_ITAB[] IS INITIAL.

  SORT LO_ITAB BY ROW COL.

  LOOP AT LO_ITAB.
    MOVE : LO_ITAB-COL TO LO_INDEX.
    ASSIGN COMPONENT LO_INDEX OF STRUCTURE P_TABLE TO <LO_FS>.
    MOVE : LO_ITAB-VALUE TO <LO_FS>.
    AT END OF ROW.
      APPEND P_TABLE.
      CLEAR P_TABLE.
    ENDAT.
  ENDLOOP.

ENDFORM.                    " F_EXCEL_UPLOAD