메뉴 건너뛰기

SAP 한국 커뮤니티

SAP ABAP에 엑셀 파일 업로드시 글자 수가 잘려서 나오네요

렌메이이이 2013.12.31 12:58 조회 수 : 2294

REPORT  ZOYM_01_EXCEL_TO_ITAB.

TYPES:   BEGIN OF T_DATATAB ,
 F1(3)   TYPE  C,
 F2(8)   TYPE  C,
 F3(8)   TYPE  C,
 F4(5)   TYPE  C,
 F5(5)   TYPE  C,
 F6(5)   TYPE  C,
 F7(15)  TYPE  C,
 F8(20)  TYPE  C,
 F9(4)   TYPE  C,
 F10(6)  TYPE  C,
 F11(5)  TYPE  C,
 F12(8)  TYPE  C,

       END OF T_DATATAB.

DATA: IT_DATATAB TYPE STANDARD TABLE OF T_DATATAB INITIAL SIZE 0,
      WA_DATATAB TYPE T_DATATAB.

DATA : GD_SCOL   TYPE I VALUE '1',
       GD_SROW   TYPE I VALUE '1',
       GD_ECOL   TYPE I VALUE '256',
       GD_EROW   TYPE I VALUE '5000'.

DATA: IT_TAB TYPE FILETABLE,
      GD_SUBRC TYPE I.

*Selection screen definition
SELECTION-SCREEN BEGIN OF BLOCK B1 WITH FRAME TITLE TEXT-001.
PARAMETERS:  P_FILE LIKE RLGRAP-FILENAME
               DEFAULT 'c:이마트12월25일매출정보.xls' OBLIGATORY.   " File Name
SELECTION-SCREEN END OF BLOCK B1.


***********************************************************************
* AT SELECTION-SCREEN
AT SELECTION-SCREEN ON VALUE-REQUEST FOR P_FILE.
  REFRESH: IT_TAB.
  CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_OPEN_DIALOG
    EXPORTING
      WINDOW_TITLE     = 'Select File'
      DEFAULT_FILENAME = '*.xls'
      MULTISELECTION   = ' '
    CHANGING
      FILE_TABLE       = IT_TAB
      RC               = GD_SUBRC.

  LOOP AT IT_TAB INTO P_FILE.
*    so_fpath-sign = 'I'.
*    so_fpath-option = 'EQ'.
*    append so_fpath.
  ENDLOOP.


***********************************************************************
* START-OF-SELECTION.
START-OF-SELECTION.
  PERFORM UPLOAD_EXCEL_FILE TABLES   IT_DATATAB
                             USING   P_FILE
                                     GD_SCOL
                                     GD_SROW
                                     GD_ECOL
                                     GD_EROW.


***********************************************************************
* END-OF-SELECTION.
END-OF-SELECTION.
  LOOP AT IT_DATATAB INTO WA_DATATAB.
    WRITE:/ WA_DATATAB-F1,
            WA_DATATAB-F2,
            WA_DATATAB-F3,
            WA_DATATAB-F4,
            WA_DATATAB-F5,
            WA_DATATAB-F6,
            WA_DATATAB-F7,
            WA_DATATAB-F8,
            WA_DATATAB-F9,
            WA_DATATAB-F10,
            WA_DATATAB-F11,
            WA_DATATAB-F12.

  ENDLOOP.


*&--------------------------------------------------------------------*
*&      Form  UPLOAD_EXCEL_FILE
*&--------------------------------------------------------------------*
*       upload excel spreadsheet into internal table
*---------------------------------------------------------------------*
*      -->P_TABLE    Table to return excel data into
*      -->P_FILE     file name and path
*      -->P_SCOL     start column
*      -->P_SROW     start row
*      -->P_ECOL     end column
*      -->P_EROW     end row
*---------------------------------------------------------------------*
FORM UPLOAD_EXCEL_FILE TABLES   P_TABLE
                       USING    P_FILE
                                P_SCOL
                                P_SROW
                                P_ECOL
                                P_EROW.

  DATA : LT_INTERN TYPE  KCDE_CELLS OCCURS 0 WITH HEADER LINE.
* Has the following format:
*             Row number   | Colum Number   |   Value
*             ---------------------------------------
*      i.e.     1                 1             Name1
*               2                 1             Joe

  DATA : LD_INDEX TYPE I.
  FIELD-SYMBOLS : <FS>.

* Note: Alternative function module - 'ALSM_EXCEL_TO_INTERNAL_TABLE'
 CALL FUNCTION 'KCD_EXCEL_OLE_TO_INT_CONVERT'
    EXPORTING
      FILENAME                = P_FILE
      I_BEGIN_COL             = P_SCOL
      I_BEGIN_ROW             = P_SROW
      I_END_COL               = P_ECOL
      I_END_ROW               = P_EROW
    TABLES
      INTERN                  = LT_INTERN
    EXCEPTIONS
      INCONSISTENT_PARAMETERS = 1
      UPLOAD_OLE              = 2
      OTHERS                  = 3.
  IF SY-SUBRC <> 0.
    FORMAT COLOR COL_BACKGROUND INTENSIFIED.
    WRITE:/ 'Error Uploading file'.
    EXIT.
  ENDIF.

  IF LT_INTERN[] IS INITIAL.
    FORMAT COLOR COL_BACKGROUND INTENSIFIED.
    WRITE:/ 'No Data Uploaded'.
    EXIT.
  ELSE.
    SORT LT_INTERN BY ROW COL.
    LOOP AT LT_INTERN.
      MOVE LT_INTERN-COL TO LD_INDEX.
      ASSIGN COMPONENT LD_INDEX OF STRUCTURE P_TABLE TO <FS>.
      MOVE LT_INTERN-VALUE TO <FS>.
      AT END OF ROW.
        APPEND P_TABLE.
        CLEAR P_TABLE.
      ENDAT.
    ENDLOOP.
  ENDIF.
ENDFORM.                    "upload_excel_file

 

소스코드에 어떤 문제점이 있는지 좀 알려주세요

번호 제목 글쓴이 날짜 조회 수
5194 <img src=3.gif>엑셀을 인터널테이블 업로드할때 필드의 자리수가 100자 이상 올릴수 있는 펑션이 있나요? [4] Norton 2009.11.27 2308
5193 <b>[완료]</b>팝업창에서요. 팝업창에 있는 오른쪽 맨위의 창닫는 버튼이 안돼요.. [5] 냥냥 2008.10.16 2308
5192 [요청]WHERE SUBSTR(날짜,1,3) > '2007'. 이 SUBSTR을 아밥에서 우찌 구현을하나요? [3] with SAP 2007.12.26 2307
5191 column tree에서 특정셀이나 컬럼을 edit가능하게? [2] w 2007.10.24 2307
5190 select 에서 join 설명 잘되어있는 자료 없나요? [2] 기절하고파 2007.04.11 2307
5189 <b>[완료]</b>테이블컨트롤에서 라인삭제하는방법좀 알려주세요 [6] 밥먹고아밥해요 2008.05.07 2306
5188 <img src=2.gif>bseg를 아래와 같이 sum하는데 error가 나요... [4] nana 2010.05.14 2305
5187 [요청]딕셔너리 테이블 삭제에 관하여 문의드립니다. [5] 하루하루 2009.03.31 2305
5186 <b>[완료]</b>selection-screen 에서 화면 refresh 방법을 알고싶습니다.. [3] 불근모자 2009.03.26 2304
5185 [요청]cj88,ko88 정산하는 bapi 나 function 있을까요? [1] 왕초~삽질맨 2009.01.13 2304
5184 R/3 에서 ECC 6.0 으로 업데이트 될때...질문입니다. [8] bd 2007.04.26 2303
5183 [요청]class 로 top_of_page 구현시... refresh 는??? 효방 ^-^ 2008.10.07 2301
5182 코어2듀오 사용하시는 분들 도와주세요. [10] 홍성호 2007.04.11 2301
5181 <img src=2.gif>승인완료난 전표(반제전표)를 반제취소하려고 하면 오류가 납니다. [1] 노아 2011.02.10 2300
5180 [요청][요청] MB21 User-exit 궁금합니다. [2] ABAP짱! 2009.03.05 2300
5179 <img src=2.gif>ALV Class 에서 Dorpdown List를 구현한 경우 초기 값과 명칭을 함께 보여주는 방법 [4] 준서기 2010.12.02 2297
5178 <img src=2.gif>Loop at Itab에서의 Where 조건을 동적으로 구현가능한지요??? [4] 찬호사랑 2010.05.25 2297
5177 <img src=2.gif>BAPI로 PO 릴리즈 기능 이용문의 [1] aglsc 2011.02.26 2295
» SAP ABAP에 엑셀 파일 업로드시 글자 수가 잘려서 나오네요 [2] 렌메이이이 2013.12.31 2294
5175 [요청]alv check box와 refresh 문제입니다. 고수님들 도와주세요 [4] 아밥돌이 2009.03.16 2294