Application Development and Automation Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 
Read only

Function ALSM_EXCEL_TO_INTERNAL_TABLE

Former Member
0 Likes
396

Hi,

I'm using fucntion ALSM_EXCEL_TO_INTERNAL_TABLE to convert an excel file to an internal table, but the excel has some macros that are generating the message: Do you want to save the changes you made to "fff.xls"? But I'm only reading the file, not writing.

Is there anyway to take off this message?

Thanks.

regards,

Sónia

1 REPLY 1
Read only

Former Member
0 Likes
298

hi,

do like this :;

DATA : BEGIN OF TYP_INPUT ,

MATNR LIKE MARA-MATNR,

WERKS LIKE MARC-WERKS,

LGORT LIKE MARD-LGORT,

LGNUM LIKE MLGN-LGNUM,

LGTYP LIKE MLGT-LGTYP,

LTKZA LIKE MLGN-LTKZA,

LTKZE LIKE MLGN-LTKZE,

LGBKZ LIKE MLGN-LGBKZ,

LGPLA LIKE MLGT-LGPLA,

END OF TYP_INPUT.

*Input File Data

DATA : IT_FILE LIKE TYP_INPUT OCCURS 0 WITH HEADER LINE.

*"INTERNAL TAB TO TAKE EXCEL SHEET.

DATA : IT_EXCEL LIKE ALSMEX_TABLINE OCCURS 0 WITH HEADER LINE.

CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
        EXPORTING
             FILENAME                = P_PFILE
             I_BEGIN_COL             = 1
             I_BEGIN_ROW             = 2
             I_END_COL               = 9
             I_END_ROW               = 6000
        TABLES
             INTERN                  = IT_EXCEL
        EXCEPTIONS
             INCONSISTENT_PARAMETERS = 1
             UPLOAD_OLE              = 2
             OTHERS                  = 3.
* If Error Opening File
   IF SY-SUBRC NE 0.
* Message : Unable to Open File
     MESSAGE I102.
     STOP.
   ENDIF.
****************************************************************
* IT_EXCEL CONTAINS DATA IN THE FORM OF ROW, COL, VALUE       *
* CONVERTING THAT INTERNAL TABLE TO FORMAT THAT OF EXCEL SHEET *
****************************************************************

   IF NOT IT_EXCEL[] IS INITIAL.
     SORT IT_EXCEL BY ROW COL.
     LOOP AT IT_EXCEL.
       CASE IT_EXCEL-COL.
        WHEN 1.
              IT_FILE-MATNR = IT_EXCEL-VALUE.
        WHEN 2.
              IT_FILE-WERKS = IT_EXCEL-VALUE.
        WHEN 3.
              IT_FILE-LGORT = IT_EXCEL-VALUE.
        WHEN 4.
              IT_FILE-LGNUM = IT_EXCEL-VALUE.
        WHEN 5.
              IT_FILE-LGTYP = IT_EXCEL-VALUE.
        WHEN 6.
              IT_FILE-LTKZA = IT_EXCEL-VALUE.
        WHEN 7.
              IT_FILE-LTKZE = IT_EXCEL-VALUE.
        WHEN 8.
              IT_FILE-LGBKZ = IT_EXCEL-VALUE.
        WHEN 9.
              IT_FILE-LGPLA = IT_EXCEL-VALUE.
       ENDCASE.
       AT END OF ROW.
         APPEND IT_FILE.
         CLEAR IT_FILE.
       ENDAT.
     ENDLOOP.
   ELSE.
     MESSAGE I000  WITH 'The input file is empty'.
     STOP.
   ENDIF.