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

converting internal table into an excel sheet

Former Member
0 Likes
1,445

Hello,

I am working on a program where I have an internal table and I need to convert that into an .xls internally. All the function modules that I have looked so far are trying to download the file to some location but all I need is to convert the internal table into an excel file internally,

Thanks,

Hello,

I am working on a program where I have an internal table and I need to convert that into an .xls internally. All the function modules that I have looked so far are trying to download the file to some location but all I need is to convert the internal table into an excel file internally,

Thanks,

2 REPLIES 2
Read only

former_member392866
Active Participant
0 Likes
1,021

Rahul,

I'm sending email with attachment I_final internal table as .Xls file. Verify once this code.

FORM SEND_MAIL_TO_CUSTOMER .

  DATA : LIT_BINARY_CONTENT TYPE SOLIX_TAB.

  DATA : XL_CONTENT TYPE XSTRING ,

         L_OUTPUT TYPE STRING,

         L_RESULT_CONTENT TYPE STRING ,

         SEND_REQUEST TYPE REF TO CL_BCS VALUE IS INITIAL,

         DOCUMENT TYPE REF TO CL_DOCUMENT_BCS VALUE IS INITIAL,

         SENDER TYPE REF TO IF_SENDER_BCS VALUE IS INITIAL,

         RECIPIENT TYPE REF TO IF_RECIPIENT_BCS VALUE IS INITIAL,

         BCS_EXCEPTION      TYPE REF TO CX_BCS.             "#EC NEEDED

  DATA : LIT_TEXT TYPE SOLI_TAB,

         L_SUBJECT TYPE SO_OBJ_DES,

         L_ATTA_SUB TYPE SO_OBJ_DES,

         L_CONLENGTHS TYPE SO_OBJ_LEN,

         L_TAB TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>HORIZONTAL_TAB,

         L_NEWLINE TYPE C VALUE CL_ABAP_CHAR_UTILITIES=>NEWLINE,

         L_SENT_TO_ALL        TYPE OS_BOOLEAN.              "#EC NEEDED

  CLEAR L_OUTPUT.

  LOOP AT I_FINAL INTO WA_FINAL.

    IF SY-TABIX EQ 1.

*Populating  header information-----------------------------------------------------------------------------------------

      CONCATENATE

         'VENDOR NO'

         'VENDOR NAME'

         'COMPANY CODE'

         'CREATED ON'

         'PAYMENT TERM'

         L_NEWLINE

         INTO L_OUTPUT SEPARATED BY L_TAB.

    ENDIF.

    CONCATENATE L_OUTPUT

                WA_FINAL-LIFNR

                L_TAB

                WA_FINAL-NAME1

                L_TAB

                WA_FINAL-BUKRS

                L_TAB

                WA_FINAL-ERDAT

                L_TAB

                WA_FINAL-ZTERM

                L_TAB

                L_NEWLINE

                INTO L_OUTPUT.

  ENDLOOP.

  CLEAR: XL_CONTENT .

  CALL FUNCTION 'HR_KR_STRING_TO_XSTRING'                   "#EC FB_RC

    EXPORTING

      CODEPAGE_TO      = '8300'

      UNICODE_STRING   = L_OUTPUT

    IMPORTING

      XSTRING_STREAM   = XL_CONTENT

    EXCEPTIONS

      INVALID_CODEPAGE = 1

      INVALID_STRING   = 2

      OTHERS           = 3.

  REFRESH LIT_BINARY_CONTENT .

  CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'

    EXPORTING

      BUFFER     = XL_CONTENT

    TABLES

      BINARY_TAB = LIT_BINARY_CONTENT.

  REFRESH LIT_TEXT .

  CLEAR L_RESULT_CONTENT .

  CALL FUNCTION 'SCMS_STRING_TO_FTEXT'

    EXPORTING

      TEXT      = L_RESULT_CONTENT

    TABLES

      FTEXT_TAB = LIT_TEXT.

  TRY.

      L_SUBJECT = 'VENDOR COMPANY CODE DETAILS'.

      CLEAR SEND_REQUEST .

      SEND_REQUEST = CL_BCS=>CREATE_PERSISTENT( ).

      CLEAR DOCUMENT .

      DOCUMENT = CL_DOCUMENT_BCS=>CREATE_DOCUMENT(

      I_TYPE = 'HTM'

      I_TEXT = LIT_TEXT

      I_LENGTH = L_CONLENGTHS

      I_SUBJECT = L_SUBJECT ).

      L_ATTA_SUB = 'VENDOR COMPANY CODE DETAILS'.

      CALL METHOD DOCUMENT->ADD_ATTACHMENT

        EXPORTING

          I_ATTACHMENT_TYPE    = 'XLS'

          I_ATTACHMENT_SUBJECT = L_ATTA_SUB

          I_ATT_CONTENT_HEX    = LIT_BINARY_CONTENT.

* Add document to send request

      CALL METHOD SEND_REQUEST->SET_DOCUMENT( DOCUMENT ).

      CLEAR SENDER .

      SENDER = CL_SAPUSER_BCS=>CREATE( SY-UNAME ).

      CALL METHOD SEND_REQUEST->SET_SENDER

        EXPORTING

          I_SENDER = SENDER.

      LOOP AT S_EMAIL  .

        PERFORM VALIDATE_ENTERED_EMAIL.

        CLEAR RECIPIENT .

        RECIPIENT = CL_CAM_ADDRESS_BCS=>CREATE_INTERNET_ADDRESS(

        S_EMAIL-LOW ).

* add recipient with its respective attributes to send request

        CALL METHOD SEND_REQUEST->ADD_RECIPIENT

          EXPORTING

            I_RECIPIENT = RECIPIENT

            I_EXPRESS   = 'X'.

      ENDLOOP .

      CALL METHOD SEND_REQUEST->SET_STATUS_ATTRIBUTES

        EXPORTING

          I_REQUESTED_STATUS = 'E'

          I_STATUS_MAIL      = 'E'.

      CALL METHOD SEND_REQUEST->SET_SEND_IMMEDIATELY( 'X' ).

* ---------- send document ---------------------------------------

      CALL METHOD SEND_REQUEST->SEND(

        EXPORTING

          I_WITH_ERROR_SCREEN = 'X'

        RECEIVING

          RESULT              = L_SENT_TO_ALL ).

      COMMIT WORK.

    CATCH CX_BCS INTO BCS_EXCEPTION.

      RETURN.

  ENDTRY.

ENDFORM.                    " SEND_MAIL_TO_CUSTOMER

Hope this'll helpful to you.

Regards,

BALAJI.

Read only

former_member392866
Active Participant
0 Likes
1,021

Rahul,

Look into this link once.

http://scn.sap.com/thread/1253118

Hope this is helpful answer to you.