SAP 수출 데이터가 테이블에 Excel로

DATA : 엑셀     TYPE의 OLE2_OBJECT ,
      보건     TYPE의 OLE2_OBJECT ,
      CELL의      유형 OLE2_OBJECT ,
      통합 문서  TYPE의 OLE2_OBJECT ,

      XLSNAME   String 형의  VALUE  'C : \ sap_usr02.xls' ,
      라인      TYPE  I는  값  0 "行号는

OBJECT EXCEL CREATE  '이 Excel.Application'을 . "启动엑셀

IF SY -SUBRC  NE  0 .
  WRITE : /  '启动엑셀失败.' .
  STOP .
ENDIF .

통화  방법   . 엑셀의  '통합 문서의'  = 통합 문서 .
설정  속성  . 엑셀 OF  'VISIBLE'    . 1 .        "엑셀 볼 수 있도록

다음 SET   속성을  . 엑셀 OF     'SHEETSINNEWWORKBOOK'  . 1 .         "읽기의 내용이 파일을 직접를 열고있다 능가하는 경우 제 책 페이지
는 CALL  METHOD    통합 OF.  '는 ADD' .                             "예를 들어.. 상기 방법은 엑셀 CALL '워크'1 = # 1 = 수출 1 시트

LOOP  AT에 IT_DATA을  my_data INTO .
  광고는  라인 +를  1. .   "엑셀 행 번호를 시작. 하나

  는 CALL  방법    . 엑셀 OF  '는 CELLS'  = 셀  수출 중 #. 1  광고 # 2  . 1 "셀 지정된
  후 SET   속성  . 셀의   'VALUE의'  = my_data -MANDT .                    작성된 "가치

  는 CALL  METHOD    . OF 엑셀  '셀'은  셀 =  # 수출한다. 1  라인 # 2  2 "셀 지정된
  후 SET   속성  . 셀의   '값'  = my_data -BNAME .                    "기록 값

  CALL을 상기 방법    . 엑셀 OF  '는 세포의  세포 =  1. # 내보내기를  광고 # 2  3. "지정된 셀,
  다음 SET   속성  . 셀의   'VALUE의 '  = my_data -ERDAT .                    "에 기록 된 값

  는 CALL  방법    . 엑셀 OF  '는 세포의  세포 =  # 수출을 . (1)  라인 # 2  . 4 "셀 지정된
  후 SET   속성  . 셀의   '값'  = my_data -LTIME .                    "값 기록

ENDLOOP .

는 GET을 재산  EXCEL의     'ActiveSheet'          = SHEET는 .           "통합 문서가 활성화
GET  재산을  Excel에서     '는 ActiveWorkbook'       = 통합 문서를 .        "작업 공간 활성화

CALL  방법   통합 문서  'SAVEAS'  수출 1  = XLSNAME # 2  1 "엑셀 파일 저장
CALL을  방법   통합 문서  'CLOSE' .                                 "작업 공간을 닫고
전화를  방법   EXCEL의는     '끝내기' .                                  '출구 엑셀

* WRITE :. / XLSNAME가 ' 완료' " 성공적으로 종료는 출력 DONE

자유로운 시트 OBJECT .                                                운영 자료"
자유로운 개체 통합 문서를 .
자유를 OBJECT EXCEL을 .

다른 방법 :

디렉토리

1. 기능 : GUI_DOWNLOAD

  방법을 GUI_DOWNLOAD CL_GUI_FRONTEND_SERVICES : 이것은 기본적인 방법, 해당 클래스

      참고 파일 이름 매개 변수 확장 XLS를해야한다, 그래서 당신은 엑셀 형식으로 저장할 수 있습니다 저장할 때. 다음 예는 다음과 같다 :

 1 DATA : 헤더 라인 마라의 ITAB LIKE 표.

그리고 0 출력됩니다 문자를 선도. 26 코드 페이지 = '8404'























27 TABLES
28 data_tab ITAB =
29 = fieldName에의에 t_fieldnames.  

    이 기능은 비교적 간단하지만 FILETYPE DAT와 ASC는, 결과 파일을 엑셀로 열 때 다음과 같은 대화 상자가 나타납니다 :

    그 이유는이를보고 매우 쉬울 것이다는 ASC를 유지하고 DAT는 EXCEL 형식, TXT에 확장자가 일치하지 않는 사실 TXT 형식의 테이블을 포맷합니다.

2. 기능 : SAP_CONVERT_TO_XLS_FORMAT

   이 FM 기능 GUI_DOWNLOAD 유사한 지원 XLSX 형식 :

SELECT * UP 10 행 표 @DATA (gt_temp) INTO sflight FROM.

CALL 기능 'SAP_CONVERT_TO_XLS_FORMAT'
  수출
    i_filename = 'C : SAP \ QQ1.XLSX \'
  테이블
    i_tab_sap_data = gt_temp
  예외
    conversion_failed = 1
    기타 = 2.
SY-subrc <> 0 IF.
* 여기서 적절한 오류 처리를 구현
ENDIF.

3. 기능 : MS_EXCEL_OLE_STANDARD_DAT

     그러나 직접 EXCEL 파일을 엽니 다. 뿐만 아니라 수있는 FM EXCEL이 데이터,

    그러나이 함수는 단점이있다 : 중국은 EXCEL로 데이터를 가져올 및 중국어 프로그램을 운영하는 GUI 로그인을해야합니다 때, 그렇지 않으면 중국은 '#'기호가 될 것이다.

 1 개 데이터 : 0 it_fieldnames 발생 OF, BEGIN
 2 
 3 이름 유형 char20,
 4 
 it_fieldnames 5 END한다.
 6 
 7 it_fieldnames 이름 = '회사 코드'.
 8 
 9 APPEND의 it_fieldnames.
10 
11 it_fieldnames 이름 = '기능 영역'.
(12) 
(13)를 추가 it_fieldnames.
14 
15 it_fieldnames-NAME = '5'. "针对非C, N, D, T类型列的列名,函数有버그
16 
17 APPEND의 it_fieldnames.
18 
19 CALL FUNCTION 'MS_EXCEL_OLE_STANDARD_DAT'
20 수출
21 FILE_NAME = 'C : \ johnson.XLSX'
(22) = 0 * CREATE_PIVOT
23 * DATA_SHEET_NAME = '
24 * PIVOT_SHEET_NAME = '
25 * PASSWORD ='
26 * pASSWORD_OPTION = 0
27 TABLES
28 * PIVOT_FIELD_TAB =
29 data_tab = ITAB
30 fieldName에가 = it_fieldnames
31 * EXCEPTIONS
32 * FILE_NOT_EXIST = 1
33 * FILENAME_EXPECTED = 2
34 * cOMMUNICATION_ERROR = 3
35 oLE_OBJECT_METHOD_ERROR * 4 =
36 * 5 = OLE_OBJECT_PROPERTY_ERROR
37 INVALID_PIVOT_FIELDS * 6 =
38 * 7 DOWNLOAD_PROBLEM =
39 * OTHERS = 8

    설명 :이 FM 응용 프로그램 문제는 주목해야한다 :

  변환이 덤프 실패하는 경우 1 개의 fieldName 데이터 유형은, 유형의 대응하는 칼럼을 강요한다

  2, 행 또는 더 많은 통화에서 두 번 이상, 열 이름은 데이터 영역으로 이동한다면

    그 이전의 함수가 될 것 같다, 이름은 EXCEL_OLE_STANDARD_DAT 비슷한 방법을 달성 할 수있다. 그러나 일부 테이블에이 기능이 "데이터가 유니 코드 프로그램으로 변환 할 수 없습니다"오류가보고됩니다, 그래서 최신 기능을 사용하는 것이 좋습니다.

4. BE

본 실시 예에서는 상기 비교 EXCEL 여러 형태를 정의 할 수있는 것이 유리하지만, 더 복잡하다.

: 구현이 문서를 참조하십시오 http://www.cnblogs.com/hhelibeb/p/5787396.html을

5. 기능 : XXL_FULL_API

동일 EXCEL 형식을 달성 할 수 있고, OLE 속도 장점 비교. XXLTTEST, XXLSTEST, XXLFTEST : 몇 가지 참고 예 SE38이 있습니다

6. ABAP2XLSX

이 패키지는 클래스, 그룹 결합 설정된 정렬 포함 EXCEL ABAP 클래스에 데이터를 도입하기위한 전용 팬을 개발, 폰트, 색상 등 간단한 OLE 모드에 비해 객체 지향적이기 때문에, 프로그래밍은 더 많은 노력이 될 것입니다.

당신이 EXCEL 형식을 사용자 정의해야 할 때 사용 할 수있다.

   특히 참조 이 문서

제 XLSX 작업대

는 OLE 단지에 비해 시각적 형태로 생성 도구는, 보고서는 코드 + EXCEL 일부 드래그 구성 및 더 나은 성능의 소량 생성 할 수 있습니다. XLSX 작업대는 문서 설명에 의하면, 구 개 특성을 갖는다 :

  • 필요에 ABAP 프로그래밍 기술하지
  • 시각 디자인 접근 방식
  • 고성능
  • 지원 배경 처리
  • 강력한 기능 지원 양식 형식
  • 지원 식
  • 지원 사진
  • 차트 지원
  • 지원 트리

공식 문서 : https://sites.google.com/site/sapxlwb/home

이 영상 편집기 정말 편리합니다 때문에 XLSX 워크 벤치는, 내 눈에서 선호하는 솔루션입니다. 이 도구를 사용하여 개발자는 단순히 컨텍스트 데이터 구조로 설계하고 상황에 맞는, 당신은 엑셀 파일을 생성 할 수있는 시각화 도구에서 특정 셀에 결합 :

자료 : l_data TYPE의 zcontext.

CALL 기능 'ZXLWB_CALLFORM'
  수출
    iv_formname = 'ZXLWBFORM'
    iv_context_ref = l_data
  예외
    기타 = 2.
IF 및 subrc의 NE 0.
  MESSAGE의 ID 및 MSGID-TYPE과 상사의 NUMBER의 msgno
          측면 msgv1 측면 msgv2 측 msgv3 측 msgv4 함께.
ENDIF.

추천

출처www.cnblogs.com/youleng/p/10926937.html