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: 

Avoid blank line in excel file

Former Member
0 Kudos

Hi,

I'am getting a blank line in first row and data getting stored from second row when excel file is emailed as an attachment using Function Module 'SO_DOCUMENT_SEND_API1'. How to avoid the blank line ?.

With Regards,

Gandhi Subramani

1 ACCEPTED SOLUTION

venkat_o
Active Contributor
0 Kudos

Hi Gandhi Subramani , Have a look at this piece of code how i am building Excel attachment which has to be sent as attachement through mail. I works fine for me .You can refere it .


REPORT  zvenkat_test2.
*--------------------------------------------------------*
"  Data retrieval related declarations
*--------------------------------------------------------*
TYPES:
     BEGIN OF t_emp_dat,
       pernr TYPE pa0001-pernr,
       persg TYPE pa0001-persg,
       persk TYPE pa0001-persk,
       plans TYPE pa0001-plans,
       stell TYPE pa0001-stell,
     END OF t_emp_dat.
DATA:
     w_emp_data TYPE t_emp_dat.
DATA:
     i_emp_data TYPE STANDARD TABLE OF t_emp_dat.
*--------------------------------------------------------*
"  Mail related declarations
*--------------------------------------------------------*
"Variables
DATA :
     g_sent_to_all   TYPE sonv-flag,
     g_tab_lines     TYPE i.
"Types
TYPES:
     t_document_data  TYPE  sodocchgi1,
     t_packing_list   TYPE  sopcklsti1,
     t_attachment     TYPE  solisti1,
     t_body_msg       TYPE  solisti1,
     t_receivers      TYPE  somlreci1.
"Workareas
DATA :
     w_document_data  TYPE  t_document_data,
     w_packing_list   TYPE  t_packing_list,
     w_attachment     TYPE  t_attachment,
     w_body_msg       TYPE  t_body_msg,
     w_receivers      TYPE  t_receivers.
"Internal Tables
DATA :
     i_document_data  TYPE STANDARD TABLE OF t_document_data,
     i_packing_list   TYPE STANDARD TABLE OF t_packing_list,
     i_attachment     TYPE STANDARD TABLE OF t_attachment,
     i_body_msg       TYPE STANDARD TABLE OF t_body_msg,
     i_receivers      TYPE STANDARD TABLE OF t_receivers.

PARAMETERS :p_rec(99)  TYPE c.
*--------------------------------------------------------*
"Start-of-selection.
*--------------------------------------------------------*
START-OF-SELECTION.
  PERFORM get_data.
  PERFORM build_xls_data_table.
*&--------------------------------------------------------*
  "Form  get_data from PA0001
*&--------------------------------------------------------*
FORM get_data.

  SELECT pernr
         persg
         persk
         plans
         stell
   FROM pa0001
   INTO CORRESPONDING FIELDS OF TABLE i_emp_data
   UP TO 4 ROWS.

ENDFORM.                    " get_data
*&---------------------------------------------------------*
"Form  build_xls_data_table
*&---------------------------------------------------------*
FORM build_xls_data_table.
  "If you have Unicode check active in program attributes then
  "you will need to declare constants as follows.
  CLASS cl_abap_char_utilities DEFINITION LOAD.
  CONSTANTS:
      con_tab  TYPE c VALUE cl_abap_char_utilities=>horizontal_tab,
      con_cret TYPE c VALUE cl_abap_char_utilities=>cr_lf.

  CONCATENATE 'PERNR' 'PERSG' 'PERSK' 'PLANS' 'STELL'
         INTO  w_attachment
 SEPARATED BY  con_tab.

  CONCATENATE con_cret
              w_attachment
         INTO w_attachment.

  APPEND w_attachment TO i_attachment.
  CLEAR  w_attachment.

  LOOP AT i_emp_data INTO w_emp_data.

    CONCATENATE w_emp_data-pernr
                w_emp_data-persg
                w_emp_data-persk
                w_emp_data-plans
                w_emp_data-stell
           INTO w_attachment
   SEPARATED BY con_tab.

    CONCATENATE con_cret w_attachment
           INTO w_attachment.

    APPEND w_attachment TO i_attachment.
    CLEAR  w_attachment.
  ENDLOOP.

ENDFORM.                    "build_xls_data_table
Regards, Venkat.O

1 REPLY 1

venkat_o
Active Contributor
0 Kudos

Hi Gandhi Subramani , Have a look at this piece of code how i am building Excel attachment which has to be sent as attachement through mail. I works fine for me .You can refere it .


REPORT  zvenkat_test2.
*--------------------------------------------------------*
"  Data retrieval related declarations
*--------------------------------------------------------*
TYPES:
     BEGIN OF t_emp_dat,
       pernr TYPE pa0001-pernr,
       persg TYPE pa0001-persg,
       persk TYPE pa0001-persk,
       plans TYPE pa0001-plans,
       stell TYPE pa0001-stell,
     END OF t_emp_dat.
DATA:
     w_emp_data TYPE t_emp_dat.
DATA:
     i_emp_data TYPE STANDARD TABLE OF t_emp_dat.
*--------------------------------------------------------*
"  Mail related declarations
*--------------------------------------------------------*
"Variables
DATA :
     g_sent_to_all   TYPE sonv-flag,
     g_tab_lines     TYPE i.
"Types
TYPES:
     t_document_data  TYPE  sodocchgi1,
     t_packing_list   TYPE  sopcklsti1,
     t_attachment     TYPE  solisti1,
     t_body_msg       TYPE  solisti1,
     t_receivers      TYPE  somlreci1.
"Workareas
DATA :
     w_document_data  TYPE  t_document_data,
     w_packing_list   TYPE  t_packing_list,
     w_attachment     TYPE  t_attachment,
     w_body_msg       TYPE  t_body_msg,
     w_receivers      TYPE  t_receivers.
"Internal Tables
DATA :
     i_document_data  TYPE STANDARD TABLE OF t_document_data,
     i_packing_list   TYPE STANDARD TABLE OF t_packing_list,
     i_attachment     TYPE STANDARD TABLE OF t_attachment,
     i_body_msg       TYPE STANDARD TABLE OF t_body_msg,
     i_receivers      TYPE STANDARD TABLE OF t_receivers.

PARAMETERS :p_rec(99)  TYPE c.
*--------------------------------------------------------*
"Start-of-selection.
*--------------------------------------------------------*
START-OF-SELECTION.
  PERFORM get_data.
  PERFORM build_xls_data_table.
*&--------------------------------------------------------*
  "Form  get_data from PA0001
*&--------------------------------------------------------*
FORM get_data.

  SELECT pernr
         persg
         persk
         plans
         stell
   FROM pa0001
   INTO CORRESPONDING FIELDS OF TABLE i_emp_data
   UP TO 4 ROWS.

ENDFORM.                    " get_data
*&---------------------------------------------------------*
"Form  build_xls_data_table
*&---------------------------------------------------------*
FORM build_xls_data_table.
  "If you have Unicode check active in program attributes then
  "you will need to declare constants as follows.
  CLASS cl_abap_char_utilities DEFINITION LOAD.
  CONSTANTS:
      con_tab  TYPE c VALUE cl_abap_char_utilities=>horizontal_tab,
      con_cret TYPE c VALUE cl_abap_char_utilities=>cr_lf.

  CONCATENATE 'PERNR' 'PERSG' 'PERSK' 'PLANS' 'STELL'
         INTO  w_attachment
 SEPARATED BY  con_tab.

  CONCATENATE con_cret
              w_attachment
         INTO w_attachment.

  APPEND w_attachment TO i_attachment.
  CLEAR  w_attachment.

  LOOP AT i_emp_data INTO w_emp_data.

    CONCATENATE w_emp_data-pernr
                w_emp_data-persg
                w_emp_data-persk
                w_emp_data-plans
                w_emp_data-stell
           INTO w_attachment
   SEPARATED BY con_tab.

    CONCATENATE con_cret w_attachment
           INTO w_attachment.

    APPEND w_attachment TO i_attachment.
    CLEAR  w_attachment.
  ENDLOOP.

ENDFORM.                    "build_xls_data_table
Regards, Venkat.O