Application Development 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: 

Sending Email with excel attachment having coloured headers.

Former Member
0 Kudos
2,702

Hi,

I have a requirement wherein I have to send an email with an excel attachment containing data from an internal table.The attachment should contain the headers with the corresponding values.I have created a program for the above functionality but the problem is that the header must appear in red and some other colours.

I searched the forum but did not find anything which was helpful to me.

Could you please help me to attain the functionality mentioned above?It's urgent.

Thanks,

Sandeep.

8 REPLIES 8

Former Member
0 Kudos
296

Hi ,

Use below code as reference:

PARAMETERS: p_mail TYPE ad_smtpadr OBLIGATORY.

DATA: i_mara TYPE STANDARD TABLE OF mara. " MARA Entries

DATA: l_text TYPE char255. " Text

DATA: l_lines TYPE i,

l_size TYPE sood-objlen.

" Size of Attachment

    • Mail related*

DATA: i_content TYPE soli_tab, " Mail content

i_attach TYPE soli_tab. " Attachment

DATA: l_send_request TYPE REF TO cl_bcs,

" E-Mail Send Request

l_document TYPE REF TO cl_document_bcs,

" E-Mail Attachment

l_recipient TYPE REF TO if_recipient_bcs,

" Distribution List

l_sender TYPE REF TO if_sender_bcs,

" Address of Sender

l_uname TYPE salrtdrcpt,

" Sender Name(SY-UNAME)

l_bcs_exception TYPE REF TO cx_document_bcs,

" BCS Exception

l_addr_exception TYPE REF TO cx_address_bcs,

" Address Exception

l_send_exception TYPE REF TO cx_send_req_bcs.

" E-Mail sending Exception

.

***

*Constants----


*

CONSTANTS: c_tab(1) TYPE c VALUE

cl_abap_char_utilities=>horizontal_tab,

" Tab Character

c_cr(1) TYPE c VALUE cl_abap_char_utilities=>cr_lf,

" Line Feed for End-Of_line

c_ext TYPE soodk-objtp VALUE 'XLS'. " XLS Extension

START-OF-SELECTION.

*SELECT * FROM mara INTO TABLE i_mara UP TO 20 ROWS.*

    • Preparing body of the Mail*

MOVE 'Mail Body' TO l_text.

APPEND l_text TO i_content.

    • Preparing contents of attachment with Change Log*

PERFORM prepare_attachment.

    • Creates persistent send request*

TRY.

l_send_request = cl_bcs=>create_persistent( ).

    • Creating Document*

l_document = cl_document_bcs=>create_document(

i_type = 'RAW'

i_text = i_content[]

i_subject = 'Material Details' ).

DESCRIBE TABLE i_mara LINES l_lines.

    • Size to multiplied by 2 for UNICODE enabled systems*

*l_size = l_lines * 2 * 255.*

    • Adding Attachment*

CALL METHOD l_document->add_attachment

EXPORTING

i_attachment_type = c_ext

i_attachment_size = l_size

i_attachment_subject = 'Material Details'

i_att_content_text = i_attach[].

    • Add document to send request*

CALL METHOD l_send_request->set_document( l_document ).

    • Get Sender Object*

l_uname = sy-uname.

l_sender = cl_sapuser_bcs=>create( l_uname ).

CALL METHOD l_send_request->set_sender

EXPORTING

i_sender = l_sender.

    • E-Mail*

TRANSLATE p_mail TO LOWER CASE.

l_recipient = cl_cam_address_bcs=>create_internet_address( p_mail )

.

CALL METHOD l_send_request->add_recipient

EXPORTING

i_recipient = l_recipient

i_express = 'U'

i_copy = ' '

i_blind_copy = ' '

i_no_forward = ' '.

*Trigger E-Mail immediately

l_send_request->set_send_immediately( 'X' ).

CALL METHOD l_send_request->send( ).

COMMIT WORK.

CATCH cx_document_bcs INTO l_bcs_exception.

CATCH cx_send_req_bcs INTO l_send_exception.

CATCH cx_address_bcs INTO l_addr_exception.

ENDTRY.

*&----


***

*& Form PREPARE_ATTACHMENT

*&----


***

FORM prepare_attachment .

FIELD-SYMBOLS: <lfs_table>, " Internal table structure

<lfs_con>. " Field Content

DATA: l_text TYPE char1024. " Text content for mail attachment

DATA: l_con(50) TYPE c. " Field Content in character format

    • Columns to be tab delimeted*

LOOP AT i_mara ASSIGNING <lfs_table>.

DO.

ASSIGN COMPONENT sy-index OF STRUCTURE <lfs_table>

TO <lfs_con>.

IF sy-subrc NE 0.

CONCATENATE c_cr l_text INTO l_text.

APPEND l_text TO i_attach.

EXIT.

ELSE.

CLEAR: l_con.

MOVE <lfs_con> TO l_con.

CONDENSE l_con.

IF sy-index = 1.

CLEAR: l_text.

MOVE l_con TO l_text.

ELSE.

CONCATENATE l_text l_con INTO l_text

SEPARATED BY c_tab.

ENDIF.

ENDIF.

ENDDO.

ENDLOOP.

ENDFORM. " PREPARE_ATTACHMENT

For more info go through the link:

Regards

rama.

Edited by: Rama Chary on Jul 2, 2008 6:12 PM

Former Member
0 Kudos
296

Hi,

The above code just sends a mail with an excel attachement which I have already done...I need to display the headers in different colours.Could you please help me to understand how we can do this?

Thanks,

Sandeep.

0 Kudos
296

Hi,

U can achieve this using OLE2 objects. For this u need to download the file to the local system and do the excel formatting and upload the file contents for email attachmnet. hope this helps

Former Member
0 Kudos
296

Done

0 Kudos
296

Hi Sandeep,

I have the same type of requirement so could you please share the solution?

Thanks......

296

Hi Sandeep,

I have got a similar requirement. My program will be running in background and it needs to send mail with a colored excel attachment. Can you help me with this.

0 Kudos
296

Could you please help me for that if its done , I'm stuck in same For color the header text while sending the mail attachment in excel. .

Thanks,

Ankur

irfanjazz1
Participant
296

after download edit header with color.... do simple sometimes