<?xml version="1.0" encoding="UTF-8"?>
<rss xmlns:content="http://purl.org/rss/1.0/modules/content/" xmlns:dc="http://purl.org/dc/elements/1.1/" xmlns:rdf="http://www.w3.org/1999/02/22-rdf-syntax-ns#" xmlns:taxo="http://purl.org/rss/1.0/modules/taxonomy/" version="2.0">
  <channel>
    <title>topic Re: Upload from Excel in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909542#M1146199</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Manoj Kumar  ,&lt;/P&gt;&lt;P&gt;                          In your program in line 213 it's give an error call ' L_SHEET_NAME can not be a table , a reference a string or contain any of there object' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Plz help me &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tarak&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 11 Dec 2008 10:16:24 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2008-12-11T10:16:24Z</dc:date>
    <item>
      <title>Upload from Excel</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909535#M1146192</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;         I am uploading data from Excel sheet for that i used ALSM_EXCEL_TO_INTERNAL_TABLE and i have successfully upload the data from Excel if it's data is less then 65536 in one sheet if data is more then one sheet (for more then 90,000 data) and it's not upload the data  continue with the next Excel Sheet .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please Can Anyone help me How to upload more then 90000 record from Excel (Sheet1,sheet2.......sheet3).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks in advance&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Tarak&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Dec 2008 07:43:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909535#M1146192</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-12-11T07:43:35Z</dc:date>
    </item>
    <item>
      <title>Re: Upload from Excel</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909536#M1146193</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi All,&lt;/P&gt;&lt;P&gt;       Please help me about above issue&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tarak&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Dec 2008 08:17:11 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909536#M1146193</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-12-11T08:17:11Z</dc:date>
    </item>
    <item>
      <title>Re: Upload from Excel</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909537#M1146194</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Theres now way doing that with your function module. Row- and column counter are declared as N4 which limits both values to max. 9999.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Dec 2008 08:22:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909537#M1146194</guid>
      <dc:creator>rainer_hbenthal</dc:creator>
      <dc:date>2008-12-11T08:22:35Z</dc:date>
    </item>
    <item>
      <title>Re: Upload from Excel</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909538#M1146195</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;HI,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you can updload the data from active sheet of Excel then read that data first to internal table and then using the OLE code make other sheet as active and use the FM to read once again..then it will read data from other sheet and so on...&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Dec 2008 08:26:31 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909538#M1146195</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-12-11T08:26:31Z</dc:date>
    </item>
    <item>
      <title>Re: Upload from Excel</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909539#M1146196</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Follow the below link.It suits for you requirement.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap/uploading-multiple-multitab-excel-sheets-or-ranges.htm" target="test_blank"&gt;http://www.sap-img.com/abap/uploading-multiple-multitab-excel-sheets-or-ranges.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Dec 2008 08:28:51 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909539#M1146196</guid>
      <dc:creator>tarangini_katta</dc:creator>
      <dc:date>2008-12-11T08:28:51Z</dc:date>
    </item>
    <item>
      <title>Re: Upload from Excel</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909540#M1146197</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;Uploading multiple multitab Excel sheets or Ranges from Front end to SAP &lt;/P&gt;&lt;P&gt;Please refer to&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.sap-img.com/abap/abap-object-oriented-spreadsheet-with-unlimited-power.htm" target="test_blank"&gt;http://www.sap-img.com/abap/abap-object-oriented-spreadsheet-with-unlimited-power.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;Visit &lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_47x200/helpdata/en/e9/0be775408e11d1893b0000e8323c4f/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_47x200/helpdata/en/e9/0be775408e11d1893b0000e8323c4f/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;and &lt;/P&gt;&lt;P&gt;&lt;A href="http://help.sap.com/saphelp_47x200/helpdata/en/e9/0be775408e11d1893b0000e8323c4f/frameset.htm" target="test_blank"&gt;http://help.sap.com/saphelp_47x200/helpdata/en/e9/0be775408e11d1893b0000e8323c4f/frameset.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You need some basic idea of range object in excel.&lt;/P&gt;&lt;P&gt;You need to create XLS with named ranges or create ranges dynamically.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;This could be a neat way to upload XLS the OO way!&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The function Module zjnc_get_range reads 1 range into any Internal &lt;/P&gt;&lt;P&gt;table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: BEGIN OF it_test OCCURS 0,&lt;/P&gt;&lt;P&gt;        vpd  LIKE mseg-menge,&lt;/P&gt;&lt;P&gt;        vas  LIKE mkpf-budat,&lt;/P&gt;&lt;P&gt;        vkm  LIKE mseg-matnr,&lt;/P&gt;&lt;P&gt;      END OF it_test.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'ZJNC_GET_RANGE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      rangename       = 'test'&lt;/P&gt;&lt;P&gt;      itabname        = 'IT_TEST[]'&lt;/P&gt;&lt;P&gt;      irecname        = 'it_test'&lt;/P&gt;&lt;P&gt;      spreadsheetintf = spreadsheetintf.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;=Work!$A$14:$C$16 is range "test"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Numbers &amp;amp; Character data are no problem BUT dates are.&lt;/P&gt;&lt;P&gt;In Excel default date is mm/dd/yyyy but is dependent on PC's &lt;/P&gt;&lt;P&gt;international setting which is normally default&lt;/P&gt;&lt;P&gt;To Avoid any 5-March 3-May type mix-up, I have designed the FM so that you need to&lt;/P&gt;&lt;P&gt;enter dates as 'dd.Mon.yyyy i.e. in Characters in "Internet Date Format"&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FUNCTION zjnc_get_range.&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;STRONG&gt;"&lt;/STRONG&gt;"Local interface:&lt;/P&gt;&lt;P&gt;*"  IMPORTING&lt;/P&gt;&lt;P&gt;*"     REFERENCE(RANGENAME) TYPE  C&lt;/P&gt;&lt;P&gt;*"     REFERENCE(ITABNAME) TYPE  C&lt;/P&gt;&lt;P&gt;*"     REFERENCE(IRECNAME) TYPE  C&lt;/P&gt;&lt;P&gt;*"     REFERENCE(SPREADSHEETINTF) TYPE REF TO  I_OI_SPREADSHEET&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;*&lt;/P&gt;&lt;P&gt;*"     REFERENCE(SPREADSHEETINTF) TYPE REF TO  I_OI_SPREADSHEET&lt;/P&gt;&lt;P&gt;*"----&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;  DATA:&lt;/P&gt;&lt;P&gt;    stru_ref    TYPE REF TO cl_abap_structdescr,&lt;/P&gt;&lt;P&gt;    comp_tab    TYPE abap_compdescr_tab,&lt;/P&gt;&lt;P&gt;    one_comp    TYPE abap_compdescr,&lt;/P&gt;&lt;P&gt;    one_name    TYPE string,&lt;/P&gt;&lt;P&gt;    type_ref    TYPE REF TO cl_abap_typedescr,&lt;/P&gt;&lt;P&gt;    is_ddic     TYPE abap_bool,&lt;/P&gt;&lt;P&gt;    lt_ddic     TYPE dd_x031l_table,&lt;/P&gt;&lt;P&gt;    wa_ddic     TYPE x031l.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: zjncranges    TYPE soi_range_list,&lt;/P&gt;&lt;P&gt;        zjnccontents  TYPE soi_generic_table,&lt;/P&gt;&lt;P&gt;        zjnconerange  TYPE soi_range_item,&lt;/P&gt;&lt;P&gt;        zjnconeitem   TYPE soi_generic_item,&lt;/P&gt;&lt;P&gt;        prevrow(4)    TYPE n,&lt;/P&gt;&lt;P&gt;        nrow(4)       TYPE n,&lt;/P&gt;&lt;P&gt;        ncolumn(4)    TYPE n,&lt;/P&gt;&lt;P&gt;        mystring      TYPE string,&lt;/P&gt;&lt;P&gt;        mydate        LIKE sy-datum.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  FIELD-SYMBOLS: &amp;lt;fs_type&amp;gt;  TYPE ANY,&lt;/P&gt;&lt;P&gt;                 &amp;lt;fs_table&amp;gt; TYPE STANDARD TABLE,&lt;/P&gt;&lt;P&gt;                 &amp;lt;fs_line&amp;gt;  TYPE ANY.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE '(' sy-cprog ')' itabname INTO mystring.&lt;/P&gt;&lt;P&gt;  ASSIGN (mystring) TO &amp;lt;fs_table&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CONCATENATE '(' sy-cprog ')' irecname INTO mystring.&lt;/P&gt;&lt;P&gt;  ASSIGN (mystring) TO &amp;lt;fs_line&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  stru_ref ?= cl_abap_structdescr=&amp;gt;describe_by_data( &amp;lt;fs_line&amp;gt; ).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  comp_tab = stru_ref-&amp;gt;components.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  REFRESH zjncranges.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  MOVE rangename TO zjnconerange-name.&lt;/P&gt;&lt;P&gt;  APPEND zjnconerange TO zjncranges.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL METHOD spreadsheetintf-&amp;gt;get_ranges_data&lt;/P&gt;&lt;P&gt;    IMPORTING&lt;/P&gt;&lt;P&gt;      contents = zjnccontents&lt;/P&gt;&lt;P&gt;      error    = zjncerror&lt;/P&gt;&lt;P&gt;      retcode  = zjncretcode&lt;/P&gt;&lt;P&gt;    CHANGING&lt;/P&gt;&lt;P&gt;      ranges   = zjncranges.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  MOVE 0 TO prevrow.&lt;/P&gt;&lt;P&gt;  LOOP AT zjnccontents INTO zjnconeitem.&lt;/P&gt;&lt;P&gt;    MOVE zjnconeitem-row TO nrow.&lt;/P&gt;&lt;P&gt;    IF nrow &amp;lt;&amp;gt; prevrow.&lt;/P&gt;&lt;P&gt;      IF prevrow &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;        APPEND &amp;lt;fs_line&amp;gt; TO &amp;lt;fs_table&amp;gt;.&lt;/P&gt;&lt;P&gt;      ENDIF.&lt;/P&gt;&lt;P&gt;      CLEAR &amp;lt;fs_line&amp;gt;.&lt;/P&gt;&lt;P&gt;      MOVE nrow TO prevrow.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    MOVE zjnconeitem-column TO ncolumn.&lt;/P&gt;&lt;P&gt;    READ TABLE comp_tab INDEX ncolumn INTO one_comp.&lt;/P&gt;&lt;P&gt;    CONCATENATE '(' sy-cprog ')' irecname '-' one_comp-name INTO one_name.&lt;/P&gt;&lt;P&gt;    ASSIGN (one_name) TO &amp;lt;fs_type&amp;gt;.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    IF one_comp-type_kind &amp;lt;&amp;gt; 'D'.&lt;/P&gt;&lt;P&gt;      MOVE zjnconeitem-value TO &amp;lt;fs_type&amp;gt;.&lt;/P&gt;&lt;P&gt;    ELSE.&lt;/P&gt;&lt;P&gt;      TRANSLATE zjnconeitem-value TO UPPER CASE.&lt;/P&gt;&lt;P&gt;      CALL FUNCTION 'CONVERSION_EXIT_SDATE_INPUT'&lt;/P&gt;&lt;P&gt;        EXPORTING&lt;/P&gt;&lt;P&gt;          input  = zjnconeitem-value&lt;/P&gt;&lt;P&gt;        IMPORTING&lt;/P&gt;&lt;P&gt;          output = mydate.&lt;/P&gt;&lt;P&gt;      MOVE mydate TO &amp;lt;fs_type&amp;gt;.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  IF prevrow &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    APPEND &amp;lt;fs_line&amp;gt; TO &amp;lt;fs_table&amp;gt;.&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFUNCTION.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Flavya&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Edited by: Flavya on Dec 11, 2008 9:35 AM&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Dec 2008 08:35:08 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909540#M1146197</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-12-11T08:35:08Z</dc:date>
    </item>
    <item>
      <title>Re: Upload from Excel</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909541#M1146198</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi,&lt;/P&gt;&lt;P&gt;You can use OLE to populate multiple sheet.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Check the following code to understand the logic.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here I'm using two sheets for explaining purpose&lt;/P&gt;&lt;P&gt;i just populated same internal table in two sheets where you can use split your table and populate.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;TYPE-POOLS ole2.
DATA: wf_cell_from TYPE ole2_object,
      wf_cell_from1 TYPE ole2_object,
      wf_cell_to TYPE ole2_object,
      wf_cell_to1 TYPE ole2_object,
      wf_excel TYPE ole2_object,       " Excel object
      wf_mapl TYPE ole2_object,        " list of workbooks
      wf_map TYPE ole2_object,         " workbook
      wf_worksheet TYPE ole2_object,   " Worksheet
      wf_cell TYPE ole2_object,        " Cell Range
      wf_cell1 TYPE ole2_object,
      wf_range TYPE ole2_object,       " Range of cells to be formatted
      wf_range2 TYPE ole2_object,
      wf_column1 TYPE ole2_object.     " Column to be Autofit


DATA: BEGIN OF t_hex,
      l_tab TYPE x,
      END OF t_hex.

DATA: wf_deli(1) TYPE c.            "delimiter



TYPES: t_data1(1500) TYPE c,
       int_ty TYPE TABLE OF t_data1. "line type internal table

*All the data was prepared as line type internal tables for faster
*download

DATA: int_matl TYPE int_ty ,
      int_matl1 TYPE int_ty ,
      wa_matl TYPE t_data1.

TYPES: BEGIN OF ty_mara,
       matnr TYPE matnr,
       mtart TYPE mtart,
       matkl TYPE matkl,
       meins TYPE meins,
       END OF ty_mara.

DATA: int_mara TYPE STANDARD TABLE OF ty_mara,
      wa_mara TYPE ty_mara.

FIELD-SYMBOLS: &amp;lt;fs&amp;gt; .

DATA: wc_sheets LIKE sy-index.  "no.of sheets
DATA: it_tabemp TYPE filetable,
       gd_subrcemp TYPE i.

CONSTANTS wl_c09(2) TYPE n VALUE 09.

CLEAR wc_sheets.


DEFINE ole_check_error.
  if &amp;amp;1 ne 0.
    message e001(zz) with &amp;amp;1.
    exit.
  endif.
END-OF-DEFINITION.

SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-001.
PARAMETERS: p_emp   LIKE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK block1.


AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_emp.

  REFRESH: it_tabemp.
  CALL METHOD cl_gui_frontend_services=&amp;gt;file_open_dialog
    EXPORTING
      window_title      = 'Select File'
      default_filename  = '*.xls'
      initial_directory = 'C:\'
      multiselection    = ' '  "No multiple selection
    CHANGING
      file_table        = it_tabemp
      rc                = gd_subrcemp.
  LOOP AT it_tabemp INTO p_emp.
  ENDLOOP.
* START THE EXCEL APPLICATION
  CREATE OBJECT wf_excel 'EXCEL.APPLICATION'.
  PERFORM err_hdl.

* PUT EXCEL IN FRONT
  SET PROPERTY OF wf_excel  'VISIBLE' = 1.
  PERFORM err_hdl.

* CREATE AN EXCEL WORKBOOK OBJECT
  CALL METHOD OF wf_excel 'WORKBOOKS' = wf_mapl.
  PERFORM err_hdl.

  "C:\Documents and Settings\manoj_palanivelu\Desktop\abc
  SET PROPERTY OF wf_excel 'SheetsInNewWorkbook' = 3. "no of sheets
  PERFORM err_hdl.

  CALL METHOD OF wf_mapl 'ADD' = wf_map.
  PERFORM err_hdl.


*Assign the Delimiter to field  symbol.
  ASSIGN wf_deli TO &amp;lt;fs&amp;gt; TYPE 'X'.
  t_hex-l_tab = wl_c09.
  &amp;lt;fs&amp;gt; = t_hex-l_tab.

  CLEAR int_matl.
  REFRESH int_matl.
  SELECT matnr
       mtart
       matkl
       meins
      FROM mara
      INTO CORRESPONDING FIELDS OF TABLE int_mara.
*first the headings will be displayed  in the excel sheet
  CONCATENATE 'Material Number'
  'Material type'
  'Material Group'
  'Base Unit of Measure'
  INTO wa_matl
  SEPARATED BY wf_deli.
  APPEND wa_matl TO int_matl.


  LOOP AT int_mara INTO wa_mara.
    CONCATENATE wa_mara-matnr
                wa_mara-mtart
                wa_mara-matkl
                wa_mara-meins
                INTO wa_matl
                SEPARATED BY wf_deli.
    APPEND wa_matl TO int_matl.
    CLEAR wa_matl.
  ENDLOOP.

*Copyng thae same contents to another table to display in
*new sheet
  MOVE int_matl TO int_matl1.
  PERFORM f_material_details
  TABLES int_matl
  USING 'Material Details_sheet1'
        1.

  PERFORM f_material_details
  TABLES int_matl
  USING 'Material Details_sheet2'
        2.


  GET PROPERTY OF wf_excel 'ActiveSheet' = wf_map.
  GET PROPERTY OF wf_excel 'ActiveWorkbook' = wf_mapl.

  CALL FUNCTION 'FLUSH'
    EXCEPTIONS
      cntl_system_error = 1
      cntl_error        = 2
      OTHERS            = 3.
  IF sy-subrc = 0.

    CALL METHOD OF wf_map 'SAVEAS'
      EXPORTING #1 = p_emp.
  ENDIF.

  CALL METHOD OF wf_mapl 'CLOSE'.
  CALL METHOD OF wf_excel 'QUIT'.

  FREE OBJECT wf_mapl.
  FREE OBJECT wf_map.
  FREE OBJECT wf_excel.
  MESSAGE s001(zbhi) WITH 'Complete downloading'.


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  ERR_HDL
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM err_hdl.

  IF sy-subrc &amp;lt;&amp;gt; 0.
    WRITE: / 'OLE ERROR: RETURN CODE ='(i10), sy-subrc.
    STOP.
  ENDIF.

ENDFORM.                    "ERR_HDL

*-- End of Program
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  f_material_details
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM f_material_details
   TABLES lint_matl
  USING l_sheet_name TYPE string
        l_sheet_no TYPE i.

  DATA: lv_lines TYPE i.

  wc_sheets = l_sheet_no.

*-- activating the worksheet and giving a  name to it
  CALL METHOD OF wf_excel 'WORKSHEETS' = wf_worksheet
    EXPORTING
    #1 = wc_sheets.
  CALL METHOD OF wf_worksheet 'ACTIVATE'.
  SET PROPERTY OF wf_worksheet 'NAME' = l_sheet_name.

*--formatting the cells
  CALL METHOD OF wf_excel 'Cells' = wf_cell_from
    EXPORTING
    #1 = 1
    #2 = 1.
  DESCRIBE TABLE lint_matl LINES lv_lines.
  CALL METHOD OF wf_excel 'Cells' = wf_cell_to
    EXPORTING
    #1 = lv_lines
    #2 = 4.
*--range of cells to be formatted (in this case 1 to 4)
  CALL METHOD OF wf_excel 'Range' = wf_cell
    EXPORTING
    #1 = wf_cell_from
    #2 = wf_cell_to.

*--formatting the cells
  CALL METHOD OF wf_excel 'Cells' = wf_cell_from1
    EXPORTING
    #1 = 1
    #2 = 1.
  DESCRIBE TABLE lint_matl LINES lv_lines.
  CALL METHOD OF wf_excel 'Cells' = wf_cell_to1
    EXPORTING
    #1 = lv_lines
    #2 = 1.
  CALL METHOD OF wf_excel 'Range' = wf_cell1  " Cell range for first                                                                                
" column(Material)
    EXPORTING
    #1 = wf_cell_from1
    #2 = wf_cell_to1.

  SET PROPERTY OF wf_cell1 'NumberFormat' = '@' . "To disply zeros 
                                                  "in Material number


  DATA l_rc TYPE i.
*DATA download into excel first sheet
  CALL METHOD cl_gui_frontend_services=&amp;gt;clipboard_export
    IMPORTING
      data                 = lint_matl[]
    CHANGING
      rc                   = l_rc
    EXCEPTIONS
      cntl_error           = 1
      error_no_gui         = 2
      not_supported_by_gui = 3
      OTHERS               = 4.
  CALL METHOD OF wf_worksheet 'Paste'.

  CALL METHOD OF wf_excel 'Columns' = wf_column1.
  CALL METHOD OF wf_column1 'Autofit'.
  FREE OBJECT wf_column1.

ENDFORM.                    " f_material_details&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hope this will help you&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Manoj Kumar P&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Dec 2008 09:36:26 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909541#M1146198</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-12-11T09:36:26Z</dc:date>
    </item>
    <item>
      <title>Re: Upload from Excel</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909542#M1146199</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Manoj Kumar  ,&lt;/P&gt;&lt;P&gt;                          In your program in line 213 it's give an error call ' L_SHEET_NAME can not be a table , a reference a string or contain any of there object' .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Plz help me &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks a lot &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Tarak&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Dec 2008 10:16:24 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909542#M1146199</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-12-11T10:16:24Z</dc:date>
    </item>
    <item>
      <title>Re: Upload from Excel</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909543#M1146200</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Tarak,&lt;/P&gt;&lt;P&gt;I'm using ECC5.0 . There it's not giving me any error.&lt;/P&gt;&lt;P&gt;Now I've made some changes so that it will work for you.&lt;/P&gt;&lt;P&gt;Check it out.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;PRE&gt;&lt;CODE&gt;TYPE-POOLS ole2.
DATA: wf_cell_from TYPE ole2_object,
      wf_cell_from1 TYPE ole2_object,
      wf_cell_to TYPE ole2_object,
      wf_cell_to1 TYPE ole2_object,
      wf_excel TYPE ole2_object,       " Excel object
      wf_mapl TYPE ole2_object,        " list of workbooks
      wf_map TYPE ole2_object,         " workbook
      wf_worksheet TYPE ole2_object,   " Worksheet
      wf_cell TYPE ole2_object,        " Cell Range
      wf_cell1 TYPE ole2_object,
      wf_range TYPE ole2_object,       " Range of cells to be formatted
      wf_range2 TYPE ole2_object,
      wf_column1 TYPE ole2_object.     " Column to be Autofit


DATA: BEGIN OF t_hex,
      l_tab TYPE x,
      END OF t_hex.

DATA: wf_deli(1) TYPE c.            "delimiter



TYPES: t_data1(1500) TYPE c,
       int_ty TYPE TABLE OF t_data1. "line type internal table

*All the data was prepared as line type internal tables for faster
*download

DATA: int_matl TYPE int_ty ,
      int_matl1 TYPE int_ty ,
      wa_matl TYPE t_data1.

TYPES: BEGIN OF ty_mara,
       matnr TYPE matnr,
       mtart TYPE mtart,
       matkl TYPE matkl,
       meins TYPE meins,
       END OF ty_mara.

DATA: int_mara TYPE STANDARD TABLE OF ty_mara,
      wa_mara TYPE ty_mara.

FIELD-SYMBOLS: &amp;lt;fs&amp;gt; .

DATA: wc_sheets LIKE sy-index.  "no.of sheets
DATA: it_tabemp TYPE filetable,
       gd_subrcemp TYPE i.

CONSTANTS wl_c09(2) TYPE n VALUE 09.

CLEAR wc_sheets.


DEFINE ole_check_error.
  if &amp;amp;1 ne 0.
    message e001(zz) with &amp;amp;1.
    exit.
  endif.
END-OF-DEFINITION.

SELECTION-SCREEN BEGIN OF BLOCK block1 WITH FRAME TITLE text-001.
PARAMETERS: p_emp   LIKE rlgrap-filename.
SELECTION-SCREEN END OF BLOCK block1.


AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_emp.

  REFRESH: it_tabemp.
  CALL METHOD cl_gui_frontend_services=&amp;gt;file_open_dialog
    EXPORTING
      window_title      = 'Select File'
      default_filename  = '*.xls'
      initial_directory = 'C:\'
      multiselection    = ' '  "No multiple selection
    CHANGING
      file_table        = it_tabemp
      rc                = gd_subrcemp.
  LOOP AT it_tabemp INTO p_emp.
  ENDLOOP.
* START THE EXCEL APPLICATION
  CREATE OBJECT wf_excel 'EXCEL.APPLICATION'.
  PERFORM err_hdl.

* PUT EXCEL IN FRONT
  SET PROPERTY OF wf_excel  'VISIBLE' = 1.
  PERFORM err_hdl.

* CREATE AN EXCEL WORKBOOK OBJECT
  CALL METHOD OF wf_excel 'WORKBOOKS' = wf_mapl.
  PERFORM err_hdl.

  SET PROPERTY OF wf_excel 'SheetsInNewWorkbook' = 3. "no of sheets
  PERFORM err_hdl.

  CALL METHOD OF wf_mapl 'ADD' = wf_map.
  PERFORM err_hdl.


*Assign the Delimiter to field  symbol.
  ASSIGN wf_deli TO &amp;lt;fs&amp;gt; TYPE 'X'.
  t_hex-l_tab = wl_c09.
  &amp;lt;fs&amp;gt; = t_hex-l_tab.

  CLEAR int_matl.
  REFRESH int_matl.
  SELECT matnr
       mtart
       matkl
       meins
      FROM mara
      INTO CORRESPONDING FIELDS OF TABLE int_mara.
*first the headings will be displayed  in the excel sheet
  CONCATENATE 'Material Number'
  'Material type'
  'Material Group'
  'Base Unit of Measure'
  INTO wa_matl
  SEPARATED BY wf_deli.
  APPEND wa_matl TO int_matl.


  LOOP AT int_mara INTO wa_mara.
    CONCATENATE wa_mara-matnr
                wa_mara-mtart
                wa_mara-matkl
                wa_mara-meins
                INTO wa_matl
                SEPARATED BY wf_deli.
    APPEND wa_matl TO int_matl.
    CLEAR wa_matl.
  ENDLOOP.

*Copyng thae same contents to another table to display in
*new sheet
  MOVE int_matl TO int_matl1.
  PERFORM f_material_details
  TABLES int_matl
  USING  1.

  PERFORM f_material_details
  TABLES int_matl
  USING  2.


  GET PROPERTY OF wf_excel 'ActiveSheet' = wf_map.
  GET PROPERTY OF wf_excel 'ActiveWorkbook' = wf_mapl.

  CALL FUNCTION 'FLUSH'
    EXCEPTIONS
      cntl_system_error = 1
      cntl_error        = 2
      OTHERS            = 3.
  IF sy-subrc = 0.

    CALL METHOD OF wf_map 'SAVEAS'
      EXPORTING #1 = p_emp.
  ENDIF.

  CALL METHOD OF wf_mapl 'CLOSE'.
  CALL METHOD OF wf_excel 'QUIT'.

  FREE OBJECT wf_mapl.
  FREE OBJECT wf_map.
  FREE OBJECT wf_excel.
  MESSAGE s001(zbhi) WITH 'Complete downloading'.


*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  ERR_HDL
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
FORM err_hdl.

  IF sy-subrc &amp;lt;&amp;gt; 0.
    WRITE: / 'OLE ERROR: RETURN CODE ='(i10), sy-subrc.
    STOP.
  ENDIF.

ENDFORM.                    "ERR_HDL

*-- End of Program
*&amp;amp;---------------------------------------------------------------------*
*&amp;amp;      Form  f_material_details
*&amp;amp;---------------------------------------------------------------------*
*       text
*----------------------------------------------------------------------*
*  --&amp;gt;  p1        text
*  &amp;lt;--  p2        text
*----------------------------------------------------------------------*
FORM f_material_details
   TABLES lint_matl
  USING l_sheet_no TYPE i.

  DATA: lv_lines TYPE i,
        lv_sheet_name(50) TYPE c.

  wc_sheets = l_sheet_no.
  CASE l_sheet_no.
    WHEN 1.
      lv_sheet_name = 'Material_sheet1'.
    WHEN 2.
      lv_sheet_name = 'Material_sheet2'.
  ENDCASE.


*-- activating the worksheet and giving a  name to it
  CALL METHOD OF wf_excel 'WORKSHEETS' = wf_worksheet
    EXPORTING
    #1 = wc_sheets.
  CALL METHOD OF wf_worksheet 'ACTIVATE'.



  SET PROPERTY OF wf_worksheet 'NAME' = lv_sheet_name.

*--formatting the cells
  CALL METHOD OF wf_excel 'Cells' = wf_cell_from
    EXPORTING
    #1 = 1
    #2 = 1.
  DESCRIBE TABLE lint_matl LINES lv_lines.
  CALL METHOD OF wf_excel 'Cells' = wf_cell_to
    EXPORTING
    #1 = lv_lines
    #2 = 4.
*--range of cells to be formatted (in this case 1 to 4)
  CALL METHOD OF wf_excel 'Range' = wf_cell
    EXPORTING
    #1 = wf_cell_from
    #2 = wf_cell_to.

*--formatting the cells
  CALL METHOD OF wf_excel 'Cells' = wf_cell_from1
    EXPORTING
    #1 = 1
    #2 = 1.
  DESCRIBE TABLE lint_matl LINES lv_lines.
  CALL METHOD OF wf_excel 'Cells' = wf_cell_to1
    EXPORTING
    #1 = lv_lines
    #2 = 1.
  CALL METHOD OF wf_excel 'Range' = wf_cell1  " Cell range for first

                                              " column(Material)
    EXPORTING
    #1 = wf_cell_from1
    #2 = wf_cell_to1.

  SET PROPERTY OF wf_cell1 'NumberFormat' = '@' . "To disply zeros
  "in Material number


  DATA l_rc TYPE i.
*DATA download into excel first sheet
  CALL METHOD cl_gui_frontend_services=&amp;gt;clipboard_export
    IMPORTING
      data         = lint_matl[]
    CHANGING
      rc           = l_rc
    EXCEPTIONS
      cntl_error   = 1
      error_no_gui = 2
      OTHERS       = 4.
  CALL METHOD OF wf_worksheet 'Paste'.

  CALL METHOD OF wf_excel 'Columns' = wf_column1.
  CALL METHOD OF wf_column1 'Autofit'.
  FREE OBJECT wf_column1.

ENDFORM.                    " f_material_details&lt;/CODE&gt;&lt;/PRE&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Manoj Kumar P&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 11 Dec 2008 10:45:17 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/upload-from-excel/m-p/4909543#M1146200</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2008-12-11T10:45:17Z</dc:date>
    </item>
  </channel>
</rss>

