메뉴 건너뛰기

SAP 한국 커뮤니티

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

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

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

 

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

번호 제목 글쓴이 날짜 조회 수
6447 <img src=3.gif border=0>mes table 로 인서트 중 dump 가 발생했습니다 [4] 아밥어렵네요 2009.04.15 7698
6446 [요청]최대값 구하기 [10] 풍뎅이 2007.11.23 7569
6445 [요청]덤프에럽니다. 평소에 쓰는 alv 프로그램 똑같은 형식을 사용해서 alv프로그램을 만들어줬는데요. [2] 아밥걸 2008.07.09 7494
6444 <b>[완료]</b>Class ALV에서요....TOP-OF-PAGE할려면요?? [4] 복만돌이 2008.07.01 7247
6443 <img src=3.gif>CTS 릴리즈 취소하는 방법 좀 알려주세요. [3] 기쁨 2011.01.26 7157
6442 <img src=3.gif><img src=1.gif>SUBMIT 구문을 이용하지 않고 화면의 SPOOL 번호 구하는 방법은 없나요?? 튀밥 2010.04.28 7147
6441 <img src=1.gif>SQL HINT절 (%_HINTS ORACLE'&max_in_blocking_factor 40&'.) 에 대해 질문드립니다. [5] 아밥 2010.03.16 7074
6440 <b>[완료]</b>LVC_FIELDCATALOG_MERGE 펑션에 대한 문의 [5] 박상우 2008.07.28 7064
6439 [요청]왕기초질문 LEFT OUTER JOIN [4] 벤또 2007.12.10 7053
6438 ALV 마이너스 부호 앞으로 옮기기 [1] 모포 2019.07.04 7041
6437 <b>[완료]%_hints oracle 'ORDERED USE_NL (T_00 T_01) INDEX (T_00 "ZPP0010T~Z03")'. 어떻게해석하나요?</b> [7] file 하오 2009.02.20 7039
6436 reuse_alv_grid_display 에서 data_change 후에 alv에 refresh하여 뿌리는 방법 좀 부탁드립니다. 리코보코 2020.09.18 7030
6435 4. include structure~ [1] file sapjoy 2007.02.27 7018
6434 <b>[완료]</b>select count(*) 구문이 어떤 구문인가요?? [6] bd 2008.05.15 7017
6433 <img src=3.gif>소수점 이하 0 지우기 (소수점 값이 없는 부분만 ) [5] 짭군 2009.11.09 6962
6432 [질문]인터널테이블 복사하는 방법은? [4] 나도아밥퍼 2007.05.19 6886
6431 <b>[완료]</b>chain과 endchain의 쓰임새를 정확히 알고싶습니다. LOOP AT IT_ZCATPSTCD. [8] SD2 2008.04.14 6812
6430 [요청]number_get_next 함수 사용법이 궁금합니다. [4] copine 2009.03.24 6737
6429 <b>[완료]</b>CURRENCY 변환 FUNCTION 사용법에 대하여 질문있습니다. [4] with SAP 2007.12.28 6707
6428 [re] Maintenance view에 sort 기능 추가? [8] sapjoy 2006.12.13 6680