SAP ABAP Excel'den itab veri alma (Excel to Internal Table)


Belirli bir excel dosyasındaki veriyi itaba almak günlük programlarımızda en çok kullandığımız yapılardan biridir.

*Excel formatında bir itab oluşturuyoruz

DATA: begin of gt_excel OCCURS 0,
col1(255),
col2(255),
col3(255),
col4(255),
end of gt_excel.

*Excel import fonksiyonun tablosu

DATA: intern LIKE alsmex_tabline OCCURS 0 WITH HEADER LINE,
         wa_intern LIKE LINE OF intern.


*/dosya seçme ekranı
PARAMETERS : xdosya TYPE ibipparms-path OBLIGATORY.




*/dosya seçme ekranı
AT SELECTION-SCREEN ON VALUE-REQUEST FOR xdosya.
  CALL FUNCTION 'F4_FILENAME'
    EXPORTING
      program_name  = syst-cprog
      dynpro_number = syst-dynnr
    IMPORTING
      file_name     = xdosya.


START-OF-SELECTION.




  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
    EXPORTING
      filename                      = xdosya
      i_begin_col                   = 1
      i_begin_row                   = 2
      i_end_col                     = 15
      i_end_row                     = 99999
    TABLES
      intern                        = intern
   EXCEPTIONS
     INCONSISTENT_PARAMETERS       = 1
     UPLOAD_OLE                    = 2
     OTHERS                        = 3
            .
  IF sy-subrc <> 0.

    MESSAGE 'Dosya okuma hatası!' TYPE 'E'.
    EXIT.

  ENDIF.


  LOOP AT intern.

    CASE intern-col.
      WHEN 1.
        gt_excel-col1    = intern-value.
      WHEN 2.
        gt_excel-col2    = intern-value.
      WHEN 3.
        gt_excel-col3    = intern-value.
      WHEN 4.
        gt_excel-col4    = intern-value.

    ENDCASE.

    AT END OF row.
      APPEND gt_excel.
      CLEAR gt_excel.
    ENDAT.

  ENDLOOP.

Hiç yorum yok:

Yorum Gönder