메뉴 건너뛰기

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

 

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

번호 제목 글쓴이 날짜 조회 수
6467 [요청]alv에서 edit_mask 사용하구싶은데 잘안되네요.. [2] CoolGuy 2008.09.10 8977
6466 <img src=2.gif>ALV 셀 병합하는 방법 알려주세요.. [4] 은미짱 2011.03.23 8867
6465 <b>[완료]</b>for all entries를 이용한 조인방법 [7] 아싸ㅎ 2008.04.03 8832
6464 [질문] alv에서 필드 폭의 길이를 지정할 수 없나요? [5] 나도아밥퍼 2007.05.23 8822
6463 [요청]read table [3] 풍뎅이 2007.12.05 8769
6462 ALV list를 write 구문을 사용해서 만들수 있나요? [2] mm 2021.04.01 8604
6461 [요청]SORT (A필드는 오름차순 B필드는 내림차순) 관하여 질문드립니다. [4] 열심히 2008.10.10 8570
6460 [요청]REUSE_ALV_GRID_DISPLAY-Sort and mergy문의(input 필드있음) [1] 찬호사랑 2009.01.20 8569
6459 [요청]SUM [6] 풍뎅이 2007.12.06 8554
6458 <img src=1.gif>DBLINK 설정시 테스트 할때 에러 메시지 한번 봐 주세요 바다사랑 2010.10.13 8357
6457 [요청]ALV 에서 수량 필드 소숫점 없애는 방법 [5] 파릇이 2008.06.12 8071
6456 <img src=3.gif>RFC 생성시 파라미터의 참조유형에 대한 질문입니다 [2] 승질알면서 2010.08.27 8054
6455 <img src=2.gif>인터널테이블 데이터 중복체크 질문드립니다. [5] GoodAbap 2010.06.21 8039
6454 [요청]절대값을 어떻게 해용???초보라서 ..부탁해용~~~~~~~ [3] 因緣 2008.10.29 7878
6453 [요청]SE80에서 프로그램 옆의 Description에 관하여 문의드립니다. [5] 풍뎅이 2008.02.26 7872
6452 [요청]MESSAGE TYPE에 관해 알고싶습니다!! [7] genius 2008.03.26 7861
6451 <img src=3.gif>MESSAGE_TYPE_X 덤프 문의드립니다. [6] 나만고양이 2010.11.15 7757
6450 [요청]FUNCTION ALV 에서 DATA_CHANGED 후 REFRESH 기능이 있을까요? [7] 왕초~삽질맨 2008.10.06 7735
6449 <img src=3.gif>프로그램 강제종료 방법이 있을까요?[추천:e-abap] [7] file 나만고양이 2010.10.04 7713
6448 [요청]LEAVE TO LIST-PROCESSING. 관련 된거요 [2] 아바퍼 2009.02.17 7704