아래의 펑션을 사용할때.. 컬럼의 데이타가 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
댓글 0
번호 | 제목 | 글쓴이 | 날짜 | 조회 수 |
---|---|---|---|---|
167 | 너무도 당연해서 가끔 잊곤하는 공기와 같은 존재 'F1' key [5] | 백혜정 | 2007.09.19 | 4037 |
166 | 미니 SAP 설치 메뉴얼 입니다. [5] | 신종철™ | 2007.09.17 | 4574 |
165 |
제가 모은 팁들입니다.
[62] ![]() | 풍운사랑 | 2007.09.07 | 5545 |
164 | OK Code Values... 흠,,, [1] | 김창훈 | 2007.08.31 | 4653 |
163 | Image를 화면에 보여주는 방법 [1] | 정두영 | 2007.08.30 | 6035 |
162 | 테이블 update 프로그램 [4] | sapjoy | 2007.08.29 | 4748 |
161 | System field 정리한 내용이에요 [4] | 김창훈 | 2007.08.21 | 5488 |
160 | 스페이스를 2자리로 먹을때 1자리로 먹게 바꾸기 [1] | 신종철™ | 2007.08.20 | 3952 |
159 | 조회조건 동적으로 보이기 [5] | 신종철™ | 2007.08.20 | 4776 |
158 |
ABAP 문법 2nd
[8] ![]() | 아일락 | 2007.08.20 | 3917 |
157 |
ABAP 문법 1st
[13] ![]() | 아일락 | 2007.08.20 | 4557 |
156 |
엑셀 65000 라인초과시 사용 유틸
[5] ![]() | GG | 2007.08.19 | 5296 |
155 |
플랜트로 회사코드와 기준통화 찾기
[8] ![]() | 김창훈 | 2007.08.16 | 5601 |
154 | AT 구문에 대한 설명입니다. [6] | 김창훈 | 2007.08.16 | 5737 |
153 | 속도개선하기....INDEX를 이렇게도 쓰네용~~ [9] | 김창훈 | 2007.08.14 | 5377 |
152 | 텍스트반영시(자재명,저장위치명 기타등등) 속도개선 방법 [6] | 김창훈 | 2007.08.14 | 5977 |
151 | ALV 중간 집계 하기 [3] | 신종철 | 2007.08.10 | 4782 |
150 | 4.6에서 ALV 필드 변경 안될때 버퍼 지우는 방법 | 신종철 | 2007.08.10 | 4783 |
149 | ABAP System Fields | 홍성현 | 2007.08.09 | 3931 |
148 | SAP Icon 출력 [3] | 홍성현 | 2007.08.09 | 6542 |