*-------------------------------------------------------------*
*
*&------------------------------------------------------------*
*& Form lee_fichero_excel
*&------------------------------------------------------------*
form lee_fichero_excel.
DATA x_resp.
data _matnr like mvke-matnr.
DATA indice like sy-tabix.
DATA: l_filename TYPE string,
BEGIN OF lt_file OCCURS 0,
text TYPE string,
END OF lt_file.
CALL FUNCTION 'POPUP_TO_CONFIRM_STEP'
EXPORTING
* DEFAULTOPTION = 'Y'
TEXTLINE1 = '¿Fichero excel tiene linea 1 como'
TEXTLINE2 = ' títulos de cabecera?'
TITEL = 'Sobre fichero Excel'
START_COLUMN = 25
START_ROW = 6
* CANCEL_DISPLAY = 'X'
IMPORTING
ANSWER = X_RESP.
IF X_RESP = 'A'.
STOP.
ENDIF.
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
FILENAME = P_FILE1
I_BEGIN_COL = 1
I_BEGIN_ROW = 1
I_END_COL = 20
I_END_ROW = 9999
TABLES
INTERN = INTERN
EXCEPTIONS
INCONSISTENT_PARAMETERS = 1
UPLOAD_OLE = 2
OTHERS = 3.
IF SY-SUBRC <> 0.
* MESSAGE E025 WITH P_FILE1.
CLEAR: lt_messages.
lt_messages-type = 'E'.
lt_messages-id = 'ZSD'.
lt_messages-number = '025'.
lt_messages-message_v1 = P_FILE1.
APPEND lt_messages.
ELSE.
CLEAR: lt_messages.
lt_messages-type = 'S'.
lt_messages-id = '00'.
lt_messages-number = '398'.
lt_messages-message_v1 = 'Fichero cargado correctamente'.
APPEND lt_messages.
LOOP AT INTERN.
AT NEW ROW.
CLEAR ITAB.
ENDAT.
IF X_RESP EQ 'J'.
CHECK INTERN-ROW > 0001.
ENDIF.
CASE INTERN-COL.
WHEN 1.
ITAB-KSCHL = INTERN-VALUE.
WHEN 2.
ITAB-VKORG = INTERN-VALUE.
WHEN 3.
ITAB-VTWEG = INTERN-VALUE.
WHEN 4.
ITAB-SPART = INTERN-VALUE.
WHEN 5.
PERFORM PONE_ZEROS USING INTERN-VALUE ITAB-VKBUR.
ENDCASE.
AT END OF ROW.
APPEND ITAB.
ENDAT.
ENDLOOP.
LOOP AT ITAB.
ENDLOOP.
ENDIF.
endform. " lee_fichero_excel