<?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: Reading data from excel files in Application Development and Automation Discussions</title>
    <link>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193198#M128971</link>
    <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The code I copied from the Weblog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reading data from files is a very common requirement in project implementations. Excel spread sheets are simpler and better readable to text files. The standard ABAP function module ALSM_EXCEL_TO_INTERNAL_TABLE reads data from Excel file into internal table of type ALSMEX_TABLINE. This function module ONLY reads data from the active worksheet i.e., if the excel file has multiple worksheets, the data can be read from any one worksheet. The following customized function module is an alternate approach to read data from all the worksheets within a excel file into the internal table. The source code logic uses the XML classes and interfaces and the assumption is that the source Excel file will be saved as XML Spreadsheet file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;One of the advantages of Excel file is that it can be saved as XML file which is the global standard for data exchange between systems. When an Excel file is saved as XML Spreadsheet, the data is represented in the form of XML elements. Using standard XML Classes and Interfaces, any Excel file with multiple worksheets can be read from ABAP program assuming that the source Excel file is saved as XML Spreadsheet. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The main differences between XML files and Excel XML files lies with the nodes, elements and attribute names. Create an Excel file with two worksheets (MATERIALS, PLANTS) and with sample data in both the worksheets and save as XML Spreadsheet file type and this file is Excel XML file. Open the file in notepad and structure will be in the following format. You will see the difference where the Excel XML files have tags Workbook, Worksheet, Table, Row, Column, Cell and Data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GET_CONTENT_AS_STRING&lt;/P&gt;&lt;P&gt;RECEIVING&lt;/P&gt;&lt;P&gt;RVAL = V_TXT_VAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Step 7.3.2.2&lt;/P&gt;&lt;P&gt;*Populate internal table with data&lt;/P&gt;&lt;P&gt;WA_EXCEL-WORKSHEET = V_WORKSHEET_SS_NAME.&lt;/P&gt;&lt;P&gt;WA_EXCEL-ROW = V_ROW_COUNT.&lt;/P&gt;&lt;P&gt;WA_EXCEL-COLUMN = V_CELL_COUNT.&lt;/P&gt;&lt;P&gt;WA_EXCEL-DTYPE = V_DATA_TYPE.&lt;/P&gt;&lt;P&gt;WA_EXCEL-VALUE = V_TXT_VAL.&lt;/P&gt;&lt;P&gt;APPEND WA_EXCEL TO IT_EXCEL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The structure representing the internal table IT_EXCEL is enhanced structure of ALSMEX_TABLINE with the above fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are few points need to be known. Any empty cells in the Excel XML files are not displayed in the XML structure.In order to keep track of empty cells, we can use the 'Index' property of the Cell. Also, the value of the cell can be extracted depending on the data type of the Cell(with leading zeros,signs,decimals and date).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There may be other ways of reading data from multiple worksheets but this approach has the advantage of working with XML and using standard SAP XML classes in a powerful way.&lt;/P&gt;&lt;P&gt;Kamal Shaik is a Certified ABAP and XI Consultant working for SAP GDC, India.&lt;/P&gt;&lt;P&gt;________________________________________&lt;/P&gt;&lt;P&gt;This approach can be enhanced further to map the other features of Excel XML files(like merging of cells). Any corrections or suggestions are welcome.&lt;/P&gt;&lt;P&gt;Comment on this weblog&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Showing messages 1 through 5 of 5. &lt;/P&gt;&lt;P&gt;________________________________________&lt;/P&gt;&lt;P&gt;Titles Only &lt;/P&gt;&lt;P&gt;Main Topics &lt;/P&gt;&lt;P&gt;Oldest First &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; 	Problem to use this Algorithm&lt;/P&gt;&lt;P&gt;2006-02-01 03:48:14 Duarte Santos Business Card &lt;A href="https://community.sap.com/Reply"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hi there Kamal, i am trying to do something like you explain in this weblog, the problem is that cannot find weblog´s with the first steps:&lt;/P&gt;&lt;P&gt;1.Upload data from Excel XML file.&lt;/P&gt;&lt;P&gt;2.Create XML Stream factory and Input stream to hold XML &lt;/P&gt;&lt;P&gt;data.&lt;/P&gt;&lt;P&gt;3.Create a new XML DOM.&lt;/P&gt;&lt;P&gt;4.Create the parser using the stream and the DOM object. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you help me?&lt;/P&gt;&lt;P&gt; 	Problem to use this Algorithm&lt;/P&gt;&lt;P&gt;2006-02-01 06:11:45 Kamal Shaik   Business Card &lt;A href="https://community.sap.com/Reply"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hi, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Following is the code for the first 4 steps and the required declarations. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*EXCEL XML file name&lt;/P&gt;&lt;P&gt;DATA: FILENAME TYPE STRING.&lt;/P&gt;&lt;P&gt;*Main iXML factory&lt;/P&gt;&lt;P&gt;DATA: G_IXML TYPE REF TO IF_IXML.&lt;/P&gt;&lt;P&gt;*XML data bytes size&lt;/P&gt;&lt;P&gt;DATA: G_XML_DATA_BYTES TYPE I.&lt;/P&gt;&lt;P&gt;*XML data&lt;/P&gt;&lt;P&gt;DATA: G_XML_DATA(500) OCCURS 0.&lt;/P&gt;&lt;P&gt;*Stream factory.&lt;/P&gt;&lt;P&gt;DATA: G_STREAMFACTORY TYPE REF TO IF_IXML_STREAM_FACTORY.&lt;/P&gt;&lt;P&gt;*XML istream&lt;/P&gt;&lt;P&gt;DATA: G_ISTREAM TYPE REF TO IF_IXML_ISTREAM.&lt;/P&gt;&lt;P&gt;*XML parser&lt;/P&gt;&lt;P&gt;DATA: G_PARSER TYPE REF TO IF_IXML_PARSER.&lt;/P&gt;&lt;P&gt;*XML DOM object&lt;/P&gt;&lt;P&gt;DATA: G_OBJ_DOM_XML TYPE REF TO IF_IXML_DOCUMENT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Upload the excel XML file&lt;/P&gt;&lt;P&gt;CALL METHOD cl_gui_frontend_services=&amp;gt;gui_upload&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;filename = FILENAME&lt;/P&gt;&lt;P&gt;filetype = 'BIN'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;filelength = G_XML_DATA_BYTES&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;data_tab = G_XML_DATA. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Load ixml library&lt;/P&gt;&lt;P&gt;CLASS CL_IXML DEFINITION LOAD. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Creating the main factory for the iXML library&lt;/P&gt;&lt;P&gt;G_IXML = CL_IXML=&amp;gt;CREATE( ). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Create a main stream factory.&lt;/P&gt;&lt;P&gt;CALL METHOD G_IXML-&amp;gt;CREATE_STREAM_FACTORY&lt;/P&gt;&lt;P&gt;RECEIVING&lt;/P&gt;&lt;P&gt;RVAL = G_STREAMFACTORY. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Create a stream for the itab containg XML raw content.&lt;/P&gt;&lt;P&gt;CALL METHOD G_STREAMFACTORY-&amp;gt;CREATE_ISTREAM_ITABLE&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;SIZE = G_XML_DATA_BYTES&lt;/P&gt;&lt;P&gt;TABLE = G_XML_DATA[]&lt;/P&gt;&lt;P&gt;RECEIVING&lt;/P&gt;&lt;P&gt;RVAL = G_ISTREAM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Create a new XML DOM object.&lt;/P&gt;&lt;P&gt;G_OBJ_DOM_XML = G_IXML-&amp;gt;CREATE_DOCUMENT( ). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Create XML parser.&lt;/P&gt;&lt;P&gt;CALL METHOD G_IXML-&amp;gt;CREATE_PARSER&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;STREAM_FACTORY = G_STREAMFACTORY&lt;/P&gt;&lt;P&gt;ISTREAM = G_ISTREAM&lt;/P&gt;&lt;P&gt;DOCUMENT = G_OBJ_DOM_XML&lt;/P&gt;&lt;P&gt;RECEIVING&lt;/P&gt;&lt;P&gt;RVAL = G_PARSER. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Parse the XML source.&lt;/P&gt;&lt;P&gt;CALL METHOD G_PARSER-&amp;gt;PARSE&lt;/P&gt;&lt;P&gt;RECEIVING&lt;/P&gt;&lt;P&gt;RVAL = V_SUBRC. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF V_SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Make sure DOM is created&lt;/P&gt;&lt;P&gt;IF G_PARSER-&amp;gt;IS_DOM_GENERATING( ) NE 'X'.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Close the opened stream and thereby the opened xml file.&lt;/P&gt;&lt;P&gt;CALL METHOD G_ISTREAM-&amp;gt;CLOSE &lt;/P&gt;&lt;P&gt; 	Nice One!&lt;/P&gt;&lt;P&gt;2006-01-25 06:52:59 Abdul Hakim Business Card &lt;A href="https://community.sap.com/Reply"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hi Kamal,&lt;/P&gt;&lt;P&gt;Very nice weblog.Keep up ur good work..&lt;/P&gt;&lt;P&gt;Well is it possible to read from an excel work book which is not saved in XML format? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Abdul &lt;/P&gt;&lt;P&gt; 	Nice One!&lt;/P&gt;&lt;P&gt;2006-01-25 07:50:06 Kamal Shaik   Business Card &lt;A href="https://community.sap.com/Reply"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hi Abdul, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We can read data from excel file using standard function module, but that would be from ONLY one worksheet. I couldn't find anything standard to read from multiple worksheets and that's how I came up with this approach. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let me know if you find any alternate approach. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Kamal &lt;/P&gt;&lt;P&gt; 	Nice One!&lt;/P&gt;&lt;P&gt;2006-01-28 09:15:59 Svetlin Rusev Business Card &lt;A href="https://community.sap.com/Reply"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I guess, multiple worksheets can be read using Desktop office intergration. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Svetlin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
    <pubDate>Thu, 16 Feb 2006 14:58:06 GMT</pubDate>
    <dc:creator>Former Member</dc:creator>
    <dc:date>2006-02-16T14:58:06Z</dc:date>
    <item>
      <title>Reading data from excel files</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193197#M128970</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hello,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;My requirement is that i have to read data from an excel file. The difficulty is that i cannot use one of the standard function modules because i have to read from particular cells and particular  sheets of the excel file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can anyone suggest a way out for this problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;thanks &lt;/P&gt;&lt;P&gt;Aviroop&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Feb 2006 14:54:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193197#M128970</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-02-16T14:54:35Z</dc:date>
    </item>
    <item>
      <title>Re: Reading data from excel files</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193198#M128971</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;The code I copied from the Weblog.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Reading data from files is a very common requirement in project implementations. Excel spread sheets are simpler and better readable to text files. The standard ABAP function module ALSM_EXCEL_TO_INTERNAL_TABLE reads data from Excel file into internal table of type ALSMEX_TABLINE. This function module ONLY reads data from the active worksheet i.e., if the excel file has multiple worksheets, the data can be read from any one worksheet. The following customized function module is an alternate approach to read data from all the worksheets within a excel file into the internal table. The source code logic uses the XML classes and interfaces and the assumption is that the source Excel file will be saved as XML Spreadsheet file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;One of the advantages of Excel file is that it can be saved as XML file which is the global standard for data exchange between systems. When an Excel file is saved as XML Spreadsheet, the data is represented in the form of XML elements. Using standard XML Classes and Interfaces, any Excel file with multiple worksheets can be read from ABAP program assuming that the source Excel file is saved as XML Spreadsheet. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The main differences between XML files and Excel XML files lies with the nodes, elements and attribute names. Create an Excel file with two worksheets (MATERIALS, PLANTS) and with sample data in both the worksheets and save as XML Spreadsheet file type and this file is Excel XML file. Open the file in notepad and structure will be in the following format. You will see the difference where the Excel XML files have tags Workbook, Worksheet, Table, Row, Column, Cell and Data.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;GET_CONTENT_AS_STRING&lt;/P&gt;&lt;P&gt;RECEIVING&lt;/P&gt;&lt;P&gt;RVAL = V_TXT_VAL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Step 7.3.2.2&lt;/P&gt;&lt;P&gt;*Populate internal table with data&lt;/P&gt;&lt;P&gt;WA_EXCEL-WORKSHEET = V_WORKSHEET_SS_NAME.&lt;/P&gt;&lt;P&gt;WA_EXCEL-ROW = V_ROW_COUNT.&lt;/P&gt;&lt;P&gt;WA_EXCEL-COLUMN = V_CELL_COUNT.&lt;/P&gt;&lt;P&gt;WA_EXCEL-DTYPE = V_DATA_TYPE.&lt;/P&gt;&lt;P&gt;WA_EXCEL-VALUE = V_TXT_VAL.&lt;/P&gt;&lt;P&gt;APPEND WA_EXCEL TO IT_EXCEL.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;The structure representing the internal table IT_EXCEL is enhanced structure of ALSMEX_TABLINE with the above fields.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There are few points need to be known. Any empty cells in the Excel XML files are not displayed in the XML structure.In order to keep track of empty cells, we can use the 'Index' property of the Cell. Also, the value of the cell can be extracted depending on the data type of the Cell(with leading zeros,signs,decimals and date).&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;There may be other ways of reading data from multiple worksheets but this approach has the advantage of working with XML and using standard SAP XML classes in a powerful way.&lt;/P&gt;&lt;P&gt;Kamal Shaik is a Certified ABAP and XI Consultant working for SAP GDC, India.&lt;/P&gt;&lt;P&gt;________________________________________&lt;/P&gt;&lt;P&gt;This approach can be enhanced further to map the other features of Excel XML files(like merging of cells). Any corrections or suggestions are welcome.&lt;/P&gt;&lt;P&gt;Comment on this weblog&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Showing messages 1 through 5 of 5. &lt;/P&gt;&lt;P&gt;________________________________________&lt;/P&gt;&lt;P&gt;Titles Only &lt;/P&gt;&lt;P&gt;Main Topics &lt;/P&gt;&lt;P&gt;Oldest First &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt; 	Problem to use this Algorithm&lt;/P&gt;&lt;P&gt;2006-02-01 03:48:14 Duarte Santos Business Card &lt;A href="https://community.sap.com/Reply"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hi there Kamal, i am trying to do something like you explain in this weblog, the problem is that cannot find weblog´s with the first steps:&lt;/P&gt;&lt;P&gt;1.Upload data from Excel XML file.&lt;/P&gt;&lt;P&gt;2.Create XML Stream factory and Input stream to hold XML &lt;/P&gt;&lt;P&gt;data.&lt;/P&gt;&lt;P&gt;3.Create a new XML DOM.&lt;/P&gt;&lt;P&gt;4.Create the parser using the stream and the DOM object. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Can you help me?&lt;/P&gt;&lt;P&gt; 	Problem to use this Algorithm&lt;/P&gt;&lt;P&gt;2006-02-01 06:11:45 Kamal Shaik   Business Card &lt;A href="https://community.sap.com/Reply"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hi, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Following is the code for the first 4 steps and the required declarations. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*EXCEL XML file name&lt;/P&gt;&lt;P&gt;DATA: FILENAME TYPE STRING.&lt;/P&gt;&lt;P&gt;*Main iXML factory&lt;/P&gt;&lt;P&gt;DATA: G_IXML TYPE REF TO IF_IXML.&lt;/P&gt;&lt;P&gt;*XML data bytes size&lt;/P&gt;&lt;P&gt;DATA: G_XML_DATA_BYTES TYPE I.&lt;/P&gt;&lt;P&gt;*XML data&lt;/P&gt;&lt;P&gt;DATA: G_XML_DATA(500) OCCURS 0.&lt;/P&gt;&lt;P&gt;*Stream factory.&lt;/P&gt;&lt;P&gt;DATA: G_STREAMFACTORY TYPE REF TO IF_IXML_STREAM_FACTORY.&lt;/P&gt;&lt;P&gt;*XML istream&lt;/P&gt;&lt;P&gt;DATA: G_ISTREAM TYPE REF TO IF_IXML_ISTREAM.&lt;/P&gt;&lt;P&gt;*XML parser&lt;/P&gt;&lt;P&gt;DATA: G_PARSER TYPE REF TO IF_IXML_PARSER.&lt;/P&gt;&lt;P&gt;*XML DOM object&lt;/P&gt;&lt;P&gt;DATA: G_OBJ_DOM_XML TYPE REF TO IF_IXML_DOCUMENT. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Upload the excel XML file&lt;/P&gt;&lt;P&gt;CALL METHOD cl_gui_frontend_services=&amp;gt;gui_upload&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;filename = FILENAME&lt;/P&gt;&lt;P&gt;filetype = 'BIN'&lt;/P&gt;&lt;P&gt;IMPORTING&lt;/P&gt;&lt;P&gt;filelength = G_XML_DATA_BYTES&lt;/P&gt;&lt;P&gt;CHANGING&lt;/P&gt;&lt;P&gt;data_tab = G_XML_DATA. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Load ixml library&lt;/P&gt;&lt;P&gt;CLASS CL_IXML DEFINITION LOAD. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Creating the main factory for the iXML library&lt;/P&gt;&lt;P&gt;G_IXML = CL_IXML=&amp;gt;CREATE( ). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Create a main stream factory.&lt;/P&gt;&lt;P&gt;CALL METHOD G_IXML-&amp;gt;CREATE_STREAM_FACTORY&lt;/P&gt;&lt;P&gt;RECEIVING&lt;/P&gt;&lt;P&gt;RVAL = G_STREAMFACTORY. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Create a stream for the itab containg XML raw content.&lt;/P&gt;&lt;P&gt;CALL METHOD G_STREAMFACTORY-&amp;gt;CREATE_ISTREAM_ITABLE&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;SIZE = G_XML_DATA_BYTES&lt;/P&gt;&lt;P&gt;TABLE = G_XML_DATA[]&lt;/P&gt;&lt;P&gt;RECEIVING&lt;/P&gt;&lt;P&gt;RVAL = G_ISTREAM. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Create a new XML DOM object.&lt;/P&gt;&lt;P&gt;G_OBJ_DOM_XML = G_IXML-&amp;gt;CREATE_DOCUMENT( ). &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Create XML parser.&lt;/P&gt;&lt;P&gt;CALL METHOD G_IXML-&amp;gt;CREATE_PARSER&lt;/P&gt;&lt;P&gt;EXPORTING&lt;/P&gt;&lt;P&gt;STREAM_FACTORY = G_STREAMFACTORY&lt;/P&gt;&lt;P&gt;ISTREAM = G_ISTREAM&lt;/P&gt;&lt;P&gt;DOCUMENT = G_OBJ_DOM_XML&lt;/P&gt;&lt;P&gt;RECEIVING&lt;/P&gt;&lt;P&gt;RVAL = G_PARSER. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Parse the XML source.&lt;/P&gt;&lt;P&gt;CALL METHOD G_PARSER-&amp;gt;PARSE&lt;/P&gt;&lt;P&gt;RECEIVING&lt;/P&gt;&lt;P&gt;RVAL = V_SUBRC. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;IF V_SUBRC &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Make sure DOM is created&lt;/P&gt;&lt;P&gt;IF G_PARSER-&amp;gt;IS_DOM_GENERATING( ) NE 'X'.&lt;/P&gt;&lt;P&gt;EXIT.&lt;/P&gt;&lt;P&gt;ENDIF. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Close the opened stream and thereby the opened xml file.&lt;/P&gt;&lt;P&gt;CALL METHOD G_ISTREAM-&amp;gt;CLOSE &lt;/P&gt;&lt;P&gt; 	Nice One!&lt;/P&gt;&lt;P&gt;2006-01-25 06:52:59 Abdul Hakim Business Card &lt;A href="https://community.sap.com/Reply"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hi Kamal,&lt;/P&gt;&lt;P&gt;Very nice weblog.Keep up ur good work..&lt;/P&gt;&lt;P&gt;Well is it possible to read from an excel work book which is not saved in XML format? &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Abdul &lt;/P&gt;&lt;P&gt; 	Nice One!&lt;/P&gt;&lt;P&gt;2006-01-25 07:50:06 Kamal Shaik   Business Card &lt;A href="https://community.sap.com/Reply"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Hi Abdul, &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;We can read data from excel file using standard function module, but that would be from ONLY one worksheet. I couldn't find anything standard to read from multiple worksheets and that's how I came up with this approach. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Let me know if you find any alternate approach. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Kamal &lt;/P&gt;&lt;P&gt; 	Nice One!&lt;/P&gt;&lt;P&gt;2006-01-28 09:15:59 Svetlin Rusev Business Card &lt;A href="https://community.sap.com/Reply"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I guess, multiple worksheets can be read using Desktop office intergration. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Svetlin&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Feb 2006 14:58:06 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193198#M128971</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-02-16T14:58:06Z</dc:date>
    </item>
    <item>
      <title>Re: Reading data from excel files</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193199#M128972</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;Try this function module ALSM_EXCEL_TO_INTERNAL_TABLE.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Feb 2006 15:00:46 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193199#M128972</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-02-16T15:00:46Z</dc:date>
    </item>
    <item>
      <title>Re: Reading data from excel files</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193200#M128973</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;Please check this code.use FM : 'ALSM_EXCEL_TO_INTERNAL_TABLE' to upload excel data into internal table. then process the internal table data according to starting row and column of the excel sheet.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Laxman&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;code :&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      filename                = p_file&lt;/P&gt;&lt;P&gt;      i_begin_col             = 1&lt;/P&gt;&lt;P&gt;      i_begin_row             = 1&lt;/P&gt;&lt;P&gt;      i_end_col               = 11&lt;/P&gt;&lt;P&gt;      i_end_row               = 9999&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      intern                  = i_excel&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      inconsistent_parameters = 1&lt;/P&gt;&lt;P&gt;      upload_ole              = 2&lt;/P&gt;&lt;P&gt;      OTHERS                  = 3.&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;P&gt;    MESSAGE e000(zo_spa) WITH text-063."Invalid File&lt;/P&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  LOOP AT i_excel.&lt;/P&gt;&lt;P&gt;    MOVE-CORRESPONDING i_excel TO i_intern1.&lt;/P&gt;&lt;P&gt;    APPEND i_intern1.&lt;/P&gt;&lt;P&gt;    CLEAR i_intern1.&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ws_row_id = '0001'.&lt;/P&gt;&lt;P&gt;  LOOP AT i_intern1 INTO wa_intern1.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*Header is removed&lt;/P&gt;&lt;P&gt;    IF wa_intern1-row EQ ws_row_id.&lt;/P&gt;&lt;P&gt;      CONTINUE.&lt;/P&gt;&lt;P&gt;    ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    CASE wa_intern1-col.&lt;/P&gt;&lt;P&gt;      WHEN '1'.&lt;/P&gt;&lt;P&gt;        CONDENSE wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;        i_data-cust_no = wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;      WHEN '2'.&lt;/P&gt;&lt;P&gt;        CONDENSE wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;        i_data-inst_name = wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;      WHEN '3'.&lt;/P&gt;&lt;P&gt;        CONDENSE wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;        i_data-street = wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;      WHEN '4'.&lt;/P&gt;&lt;P&gt;        CONDENSE wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;        i_data-house_no = wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;      WHEN '5'.&lt;/P&gt;&lt;P&gt;        CONDENSE wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;        i_data-city = wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;      WHEN '6'.&lt;/P&gt;&lt;P&gt;        CONDENSE wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;        i_data-post_code = wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;      WHEN '7'.&lt;/P&gt;&lt;P&gt;        CONDENSE wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;        i_data-mprn1 = wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;      WHEN '8'.&lt;/P&gt;&lt;P&gt;        CONDENSE wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;        i_data-mprn2 = wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;      WHEN '9'.&lt;/P&gt;&lt;P&gt;        CONDENSE wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;        i_data-mprn3 = wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;      WHEN '10'.&lt;/P&gt;&lt;P&gt;        CONDENSE wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;        i_data-mprn4 = wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;      WHEN '11'.&lt;/P&gt;&lt;P&gt;        CONDENSE wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;        i_data-mprn5 = wa_intern1-value-line.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    ENDCASE.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;    AT END OF row.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;      APPEND i_data.&lt;/P&gt;&lt;P&gt;      CLEAR  i_data.&lt;/P&gt;&lt;P&gt;    ENDAT.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  ENDLOOP.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Feb 2006 15:03:54 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193200#M128973</guid>
      <dc:creator>Laxmana_Appana_</dc:creator>
      <dc:date>2006-02-16T15:03:54Z</dc:date>
    </item>
    <item>
      <title>Re: Reading data from excel files</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193201#M128974</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&amp;lt;i&amp;gt;....I cannot use one of the standard function modules because i have to read from particular cells and particular sheets of the excel file.&amp;lt;/i&amp;gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I do not believe that ALSM_EXCEL_TO_INTERNAL_TABLE will help you with reading certain sheets of an excel file.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;You can use this function module to show you how to work with OLE.  You just need to add the part where it is selecting a certain sheet.&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;Rich Heilman&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Thu, 16 Feb 2006 15:06:35 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193201#M128974</guid>
      <dc:creator>RichHeilman</dc:creator>
      <dc:date>2006-02-16T15:06:35Z</dc:date>
    </item>
    <item>
      <title>Re: Reading data from excel files</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193202#M128975</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Alok,&lt;/P&gt;&lt;P&gt;Try using the FM ,&lt;/P&gt;&lt;P&gt;   CATSXT_GET_HOLIDAYS for finding out no of days defined as holidays in ur HR Module.It will give you entries as dates falling on Holidays in an internal table. Take a count of the internal table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Use the FM HR_SGPBS_YRS_MTHS_DAYS to find out no of days between a date range.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Subtract the days between date ranges and the no of days as holidays between them.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;I have tried to write a piece of code for you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;If you find it helpful,Please reward point.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;REPORT zharmayforum_days .&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;DATA: wa_days TYPE i.&lt;/P&gt;&lt;P&gt;PARAMETERS: wa_frdat TYPE sy-datum DEFAULT '20051216',&lt;/P&gt;&lt;P&gt;            wa_todat TYPE sy-datum DEFAULT '20051221'.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;PERFORM get_days USING wa_frdat wa_todat CHANGING wa_days.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;WRITE: 'No. of days: ', wa_days.&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;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;*&amp;amp;      Form  GET_DAYS&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;&amp;amp;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;      text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_WA_FRDAT  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     --&amp;gt;P_WA_TODAT  text&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;     &amp;lt;--P_WA_DAYS  text&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;STRONG&gt;----&lt;/STRONG&gt;&lt;/P&gt;&lt;HR originaltext="-----------------------------------------------------------------" /&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;FORM get_days USING    p_wa_frdat&lt;/P&gt;&lt;P&gt;                       p_wa_todat&lt;/P&gt;&lt;P&gt;              CHANGING p_wa_days.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA : tot_days TYPE i,&lt;/P&gt;&lt;P&gt;         tot_holi TYPE i.&lt;/P&gt;&lt;P&gt;  DATA : holi_table TYPE catsxt_iscal_day_itab.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DATA: lin TYPE i,&lt;/P&gt;&lt;P&gt;      ini TYPE i,&lt;/P&gt;&lt;P&gt;      knd TYPE c.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'HR_SGPBS_YRS_MTHS_DAYS'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      beg_da              = p_wa_frdat&lt;/P&gt;&lt;P&gt;      end_da              = p_wa_todat&lt;/P&gt;&lt;P&gt;   IMPORTING&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    NO_DAY              =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    NO_MONTH            =&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;    NO_YEAR             =&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;     no_cal_day          = tot_days&lt;/P&gt;&lt;P&gt;   EXCEPTIONS&lt;/P&gt;&lt;P&gt;     dateint_error       = 1&lt;/P&gt;&lt;P&gt;     OTHERS              = 2&lt;/P&gt;&lt;P&gt;            .&lt;/P&gt;&lt;P&gt;  IF sy-subrc &amp;lt;&amp;gt; 0.&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;        WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  ENDIF.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'CATSXT_GET_HOLIDAYS'&lt;/P&gt;&lt;P&gt;       EXPORTING&lt;/P&gt;&lt;P&gt;            im_personnel_number = '00000024'&lt;/P&gt;&lt;P&gt;            im_begin_date       = p_wa_frdat&lt;/P&gt;&lt;P&gt;            im_end_date         = p_wa_todat&lt;/P&gt;&lt;P&gt;            im_get_weekend_days  = 'X'&lt;/P&gt;&lt;P&gt;       IMPORTING&lt;/P&gt;&lt;P&gt;            ex_holidays         = holi_table.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  DESCRIBE TABLE holi_table LINES lin OCCURS ini KIND knd.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  p_wa_days = tot_days - lin.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;ENDFORM.                    " GET_DAYS.&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;Mayank&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 03 Mar 2006 05:54:27 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193202#M128975</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-03-03T05:54:27Z</dc:date>
    </item>
    <item>
      <title>Re: Reading data from excel files</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193203#M128976</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;to read data from excel for particular worksheet, I've modified FM ALSM_EXCEL_TO_INTERNAL_TABLE a little bit..&lt;/P&gt;&lt;P&gt;add 1 new parameter Called : &lt;/P&gt;&lt;P&gt;- SHEETNO TYPE I to your NEW FM&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;these are the steps:&lt;/P&gt;&lt;P&gt;- Create a new FM, copy all sourcecode from ALSM_EXCEL_TO_INTERNAL_TABLE, including parameters and other needed files to your new FM (eq : ZALSM_EXCEL).&lt;/P&gt;&lt;P&gt;- Add 1 new Import (parameter) as follow:&lt;/P&gt;&lt;P&gt;  &amp;gt;&amp;gt; Sheetno type I&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- Open ZALSM_EXCEL source code &lt;/P&gt;&lt;P&gt;- Find Sentence:&lt;/P&gt;&lt;P&gt;*****&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; set property of application 'Visible' = 1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; m_message.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;  GET PROPERTY OF  application 'ACTIVESHEET' = worksheet.&lt;/P&gt;&lt;P&gt;  m_message.&lt;/P&gt;&lt;P&gt;*****&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;and replace with the following code:&lt;/P&gt;&lt;P&gt;*****&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; set property of application 'Visible' = 1.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; m_message.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; GET PROPERTY OF  application 'ACTIVESHEET' = worksheet.&lt;/P&gt;&lt;/LI&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt; m_message.&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;CALL METHOD OF APPLICATION 'Worksheets' =&lt;/P&gt;&lt;P&gt;                  worksheet EXPORTING #1 = sheetno.&lt;/P&gt;&lt;P&gt;m_message.&lt;/P&gt;&lt;P&gt;CALL METHOD OF worksheet 'Activate'.&lt;/P&gt;&lt;P&gt;m_message.&lt;/P&gt;&lt;P&gt;GET PROPERTY OF application 'ACTIVESHEET' = worksheet.&lt;/P&gt;&lt;P&gt;m_message.&lt;/P&gt;&lt;P&gt;*****&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- then call the FM as follow:&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;  CALL FUNCTION 'ZALSM_EXCEL'&lt;/P&gt;&lt;P&gt;    EXPORTING&lt;/P&gt;&lt;P&gt;      FILENAME                = FILE&lt;/P&gt;&lt;P&gt;      I_BEGIN_COL             = '1'&lt;/P&gt;&lt;P&gt;      I_BEGIN_ROW             = '1'&lt;/P&gt;&lt;P&gt;      I_END_COL               = '200'&lt;/P&gt;&lt;P&gt;      I_END_ROW               = '5000'&lt;/P&gt;&lt;UL&gt;&lt;LI level="1" type="ul"&gt;&lt;P&gt;this is a new parameter&lt;/P&gt;&lt;/LI&gt;&lt;/UL&gt;&lt;P&gt;      SHEETNO                 = P_SHEET&lt;/P&gt;&lt;P&gt;****&lt;/P&gt;&lt;P&gt;    TABLES&lt;/P&gt;&lt;P&gt;      INTERN                  = XCEL&lt;/P&gt;&lt;P&gt;    EXCEPTIONS&lt;/P&gt;&lt;P&gt;      INCONSISTENT_PARAMETERS = 1&lt;/P&gt;&lt;P&gt;      UPLOAD_OLE              = 2&lt;/P&gt;&lt;P&gt;      OTHERS                  = 3.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;- hope its help.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;regards,&lt;/P&gt;&lt;P&gt;andri thaslim&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Sep 2006 11:00:41 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193203#M128976</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-09-29T11:00:41Z</dc:date>
    </item>
    <item>
      <title>Re: Reading data from excel files</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193204#M128977</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;Go thru this link&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A href="http://www.erpgenie.com/abap/functions.htm" target="test_blank"&gt;http://www.erpgenie.com/abap/functions.htm&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Thanks&lt;/P&gt;&lt;P&gt;Sunil&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Fri, 29 Sep 2006 13:23:09 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193204#M128977</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2006-09-29T13:23:09Z</dc:date>
    </item>
    <item>
      <title>Re: Reading data from excel files</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193205#M128978</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Check my own developed FM:&lt;/P&gt;&lt;P&gt;&lt;SPAN style="color: #ff0000;"&gt;&amp;lt; Request for points removed &amp;gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S31"&gt;************************************************************************&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;* PROGRAM TITLE : Z_READ_MULTISHEET_EXCEL.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*----------------------------------------------------------------------*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;* CREATED BY&amp;nbsp;&amp;nbsp;&amp;nbsp; : SATYANARAYANA GUDEPU&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;* DESCRIPTION&amp;nbsp;&amp;nbsp; : This FM is part of PB calculator programme, which&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; is used to upload Performance Bonus detials of employ*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ees(P) by HR users. Excel sheet with multiple sheets *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; are taken as input.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*----------------------------------------------------------------------*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;* Note : All subsheets are must be similar to each other.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*----------------------------------------------------------------------*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;* TABLES&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; :&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;* MODULE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : HR-PA&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;* TYPE&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; : ABAP Report&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;* R/3 Release&amp;nbsp;&amp;nbsp; : SAP ECC 6.0&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*----------------------------------------------------------------------*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; VERSION HISTORY&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*----------------------------------------------------------------------*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;* AUTHOR&amp;nbsp;&amp;nbsp;&amp;nbsp; |&amp;nbsp;&amp;nbsp; DATE&amp;nbsp;&amp;nbsp; |Req No| TR NO.&amp;nbsp;&amp;nbsp; | DESCRIPTION&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; *&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;************************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;************************************************************************&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN class="L0S52"&gt;FUNCTION &lt;/SPAN&gt;z_read_multisheet_excel.&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*"----------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*"*"Local Interface:&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*"&amp;nbsp; IMPORTING&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REFERENCE(XLS_FILE_NAME) TYPE&amp;nbsp; RLGRAP-FILENAME&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REFERENCE(START_ROW_ALLSHEETS) TYPE&amp;nbsp; I&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REFERENCE(START_COLUMN_ALLSHEETS) TYPE&amp;nbsp; I&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REFERENCE(END_ROW_ALLSHEETS) TYPE&amp;nbsp; I&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REFERENCE(END_COLUMN_ALLSHEETS) TYPE&amp;nbsp; I&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REFERENCE(MULTI_SHEET) TYPE&amp;nbsp; CHAR1 DEFAULT 'X'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; REFERENCE(WITH_HEADER) TYPE&amp;nbsp; CHAR1 DEFAULT 'X'&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*"&amp;nbsp; TABLES&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; IT_DATATAB STRUCTURE&amp;nbsp; ALSMEX_TABLINE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*"&amp;nbsp; EXCEPTIONS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; INCONSISTENT_PARAMETERS&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*"&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; UPLOAD_OLE&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*"----------------------------------------------------------------------&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; TYPES: ty_t_sender(1500) &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;c.&lt;BR /&gt;&amp;nbsp; DATA: application&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;ole2_object,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; workbook&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;ole2_object,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sheet&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;ole2_object,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; range&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;ole2_object,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; worksheet&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;ole2_object,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h_cell&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;ole2_object,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; h_cell1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;ole2_object,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ld_separator &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;c,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; ld_rc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;i,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lv_sheet&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;i,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; lv_flag&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;i.&lt;BR /&gt;&amp;nbsp; DATA: excel_tab&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;TABLE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF &lt;/SPAN&gt;ty_s_senderline,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; excel_tab1&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;TABLE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF &lt;/SPAN&gt;ty_s_senderline,&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; it_data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;TYPE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;STANDARD &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;TABLE &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF &lt;/SPAN&gt;alsmex_tabline &lt;SPAN class="L0S52"&gt;INITIAL &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;SIZE &lt;/SPAN&gt;&lt;SPAN class="L0S32"&gt;0.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*Function Module To Upload Data From&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*Excel File Into Two Internal Tables&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*© 2005 SAP AG 6&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*__MESSAGE DEFINATION&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;DEFINE &lt;/SPAN&gt;m_message.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;case &lt;/SPAN&gt;sy-subrc.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;when &lt;/SPAN&gt;&lt;SPAN class="L0S32"&gt;0.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;when &lt;/SPAN&gt;&lt;SPAN class="L0S32"&gt;1.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;message &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;id &lt;/SPAN&gt;sy-msgid &lt;SPAN class="L0S52"&gt;type &lt;/SPAN&gt;sy-msgty &lt;SPAN class="L0S52"&gt;number &lt;/SPAN&gt;sy-msgno&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;with &lt;/SPAN&gt;sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;when &lt;/SPAN&gt;others. &lt;SPAN class="L0S52"&gt;raise &lt;/SPAN&gt;upload_ole.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; endcase.&lt;BR /&gt;&amp;nbsp; END-OF-DEFINITION.&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*PARAMETER CHECK.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;IF &lt;/SPAN&gt;start_row_allsheets &amp;gt; end_row_allsheets.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;RAISE &lt;/SPAN&gt;inconsistent_parameters.&lt;BR /&gt;&amp;nbsp; ENDIF.&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;IF &lt;/SPAN&gt;start_column_allsheets &amp;gt; end_column_allsheets.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;RAISE &lt;/SPAN&gt;inconsistent_parameters.&lt;BR /&gt;&amp;nbsp; ENDIF.&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CLASS &lt;/SPAN&gt;cl_abap_char_utilities &lt;SPAN class="L0S52"&gt;DEFINITION &lt;/SPAN&gt;LOAD.&lt;BR /&gt;&amp;nbsp; ld_separator = cl_abap_char_utilities=&amp;gt;horizontal_tab.&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*__Create Excel Application.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;IF &lt;/SPAN&gt;application-header = space &lt;SPAN class="L0S52"&gt;OR &lt;/SPAN&gt;application-handle = -1.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CREATE &lt;/SPAN&gt;OBJECT application &lt;SPAN class="L0S33"&gt;'Excel.Application'&lt;/SPAN&gt;.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_message.&lt;BR /&gt;&amp;nbsp; ENDIF.&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CALL &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; application&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S33"&gt;'Workbooks' &lt;/SPAN&gt;= workbook.&lt;BR /&gt;&amp;nbsp; m_message.&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CALL &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; workbook&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S33"&gt;'Open'&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;EXPORTING&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = xls_file_name.&lt;BR /&gt;&amp;nbsp; m_message.&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp; CLEAR: lv_sheet, lv_flag.&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*__Check for multisheet.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;IF &lt;/SPAN&gt;multi_sheet &lt;SPAN class="L0S52"&gt;IS &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;NOT &lt;/SPAN&gt;INITIAL.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lv_sheet = &lt;SPAN class="L0S32"&gt;99.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; ELSE.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lv_sheet = &lt;SPAN class="L0S32"&gt;1.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; ENDIF.&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*__Get data from all worksheets; can work for 99 sheets.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;DO &lt;/SPAN&gt;lv_sheet TIMES.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; lv_flag = lv_flag + &lt;SPAN class="L0S32"&gt;1.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CALL &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; application&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S33"&gt;'Worksheets' &lt;/SPAN&gt;= sheet&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;EXPORTING&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = lv_flag.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_message.&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*__Make active the sheet of given sheet no.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CALL &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sheet&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S33"&gt;'Activate'&lt;/SPAN&gt;.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_message.&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;GET &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;PROPERTY &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF &lt;/SPAN&gt;application &lt;SPAN class="L0S33"&gt;'ACTIVESHEET' &lt;/SPAN&gt;= sheet.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_message.&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CALL &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sheet&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S33"&gt;'Cells' &lt;/SPAN&gt;= h_cell&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;EXPORTING&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = start_row_allsheets&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = start_column_allsheets.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_message.&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CALL &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sheet&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S33"&gt;'Cells' &lt;/SPAN&gt;= h_cell1&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;EXPORTING&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = end_row_allsheets&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = end_column_allsheets.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_message.&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CALL &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; sheet&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S33"&gt;'RANGE' &lt;/SPAN&gt;= range&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;EXPORTING&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #1&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = h_cell&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; #2&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = h_cell1.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_message.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CALL &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; range&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S33"&gt;'SELECT'&lt;/SPAN&gt;.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_message.&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*__Copy marked area (SHEET1) into Clippboard&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CALL &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; range&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S33"&gt;'COPY'&lt;/SPAN&gt;.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_message.&lt;BR /&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*__Read clipboard into ABAP.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; REFRESH: excel_tab, it_data.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CALL &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;cl_gui_frontend_services=&amp;gt;clipboard_import&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;IMPORTING&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;= excel_tab&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;EXCEPTIONS&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cntl_error&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = &lt;SPAN class="L0S32"&gt;1&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error_no_gui&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = &lt;SPAN class="L0S32"&gt;2&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; not_supported_by_gui = &lt;SPAN class="L0S32"&gt;3&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;OTHERS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;= &lt;SPAN class="L0S32"&gt;4.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;IF &lt;/SPAN&gt;sy-subrc &amp;lt;&amp;gt; &lt;SPAN class="L0S32"&gt;0.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;MESSAGE &lt;/SPAN&gt;a037(alsmex).&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*__Function Module To Upload Data From Excel File Into Two Internal Tables&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;PERFORM &lt;/SPAN&gt;separated_to_intern_convert &lt;SPAN class="L0S52"&gt;TABLES &lt;/SPAN&gt;excel_tab it_data&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;USING &lt;/SPAN&gt;ld_separator.&lt;BR /&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;APPEND &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;LINES &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF &lt;/SPAN&gt;it_data &lt;SPAN class="L0S52"&gt;TO &lt;/SPAN&gt;it_datatab.&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*__Clear the clipboard&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;REFRESH &lt;/SPAN&gt;excel_tab.&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CALL &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;cl_gui_frontend_services=&amp;gt;clipboard_export&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;IMPORTING&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;data&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;= excel_tab&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CHANGING&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; rc&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = ld_rc&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;EXCEPTIONS&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; cntl_error&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = &lt;SPAN class="L0S32"&gt;1&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; error_no_gui&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; = &lt;SPAN class="L0S32"&gt;2&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; not_supported_by_gui = &lt;SPAN class="L0S32"&gt;3&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;OTHERS&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;/SPAN&gt;= &lt;SPAN class="L0S32"&gt;4.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S52"&gt;IF &lt;/SPAN&gt;sy-subrc &lt;SPAN class="L0S52"&gt;EQ &lt;/SPAN&gt;&lt;SPAN class="L0S32"&gt;0.&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp; ENDIF.&lt;BR /&gt;&amp;nbsp; ENDDO.&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*__Leaving Application&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CALL &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; application&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S33"&gt;'QUIT'&lt;/SPAN&gt;.&lt;BR /&gt;&amp;nbsp; m_message.&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;CALL &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;METHOD &lt;/SPAN&gt;&lt;SPAN class="L0S52"&gt;OF&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; application&lt;BR /&gt;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; &lt;SPAN class="L0S33"&gt;'FREE'&lt;/SPAN&gt;.&lt;BR /&gt;&amp;nbsp; m_message.&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;* &amp;gt;&amp;gt;&amp;gt;&amp;gt;&amp;gt; Begin of change note 575877&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;* to kill the Excel process it's necessary to free all used objects&lt;/SPAN&gt;&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;FREE &lt;/SPAN&gt;OBJECT h_cell.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_message.&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;FREE &lt;/SPAN&gt;OBJECT h_cell1.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_message.&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;FREE &lt;/SPAN&gt;OBJECT range.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_message.&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;FREE &lt;/SPAN&gt;OBJECT worksheet.&amp;nbsp;&amp;nbsp;&amp;nbsp; m_message.&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;FREE &lt;/SPAN&gt;OBJECT workbook.&amp;nbsp;&amp;nbsp;&amp;nbsp;&amp;nbsp; m_message.&lt;BR /&gt;&amp;nbsp; &lt;SPAN class="L0S52"&gt;FREE &lt;/SPAN&gt;OBJECT application.&amp;nbsp; m_message.&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;* &amp;lt;&amp;lt;&amp;lt;&amp;lt;&amp;lt; End of change note 575877&lt;/SPAN&gt;&lt;BR /&gt;&lt;SPAN class="L0S31"&gt;*__Remove header records.&lt;/SPAN&gt;&lt;BR /&gt;&lt;BR /&gt;&lt;BR /&gt;ENDFUNCTION.&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;SPAN class="L0S31"&gt;&lt;SPAN style="color: #ff0000;"&gt;Moderator Message : Please do not ask for points hereafter.&lt;/SPAN&gt;&lt;BR /&gt;&lt;/SPAN&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Message was edited by: Kesavadas Thekkillath&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Jun 2012 06:56:20 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193205#M128978</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-06-26T06:56:20Z</dc:date>
    </item>
    <item>
      <title>Re: Reading data from excel files</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193206#M128979</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hi Aviroop,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Please, look through the next document &lt;/P&gt;&lt;P&gt;&lt;A href="http://wiki.sdn.sap.com/wiki/display/ABAP/Excel+with+SAP+-+An+overview"&gt;http://wiki.sdn.sap.com/wiki/display/ABAP/Excel+with+SAP+-+An+overview&lt;/A&gt;&lt;BR /&gt;There is collected lots of different ways how to read\write Excel documents. Choose the one which fits you. &lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Also for your case you can use DOI (Desktop Office Integration).&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Jun 2012 08:10:28 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193206#M128979</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-06-26T08:10:28Z</dc:date>
    </item>
    <item>
      <title>Re: Reading data from excel files</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193207#M128980</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;Please have a look at the following document. It will solve your problem.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;&lt;A __default_attr="28271" __jive_macro_name="document" class="jive_macro jive_macro_document" href="https://community.sap.com/"&gt;&lt;/A&gt;&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Here for copying the data, active excel sheet is used, in the same way you can pass sheet names as parameters and copy data from the specified sheet. Hope it helps. Thank you.&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Regards,&lt;/P&gt;&lt;P&gt;Kartik&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Jun 2012 11:17:39 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193207#M128980</guid>
      <dc:creator>Kartik2</dc:creator>
      <dc:date>2012-06-26T11:17:39Z</dc:date>
    </item>
    <item>
      <title>Re: Reading data from excel files</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193208#M128981</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;Hii Aviroop,&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;OLE concept is best method to upload Excel sheet.&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;Ashwath.&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Jun 2012 11:56:44 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193208#M128981</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-06-26T11:56:44Z</dc:date>
    </item>
    <item>
      <title>Re: Reading data from excel files</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193209#M128982</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;&lt;STRONG&gt;Question was posted : 6 years ago....&lt;/STRONG&gt;&lt;/P&gt;&lt;P&gt;&lt;STRONG&gt;Aviroop Deb Feb 16, 2006 3:54 PM&lt;/STRONG&gt;&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Jun 2012 16:12:16 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193209#M128982</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-06-26T16:12:16Z</dc:date>
    </item>
    <item>
      <title>Re: Reading data from excel files</title>
      <link>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193210#M128983</link>
      <description>&lt;HTML&gt;&lt;HEAD&gt;&lt;/HEAD&gt;&lt;BODY&gt;&lt;P&gt;And how would your employer feel if they new that code that they had paid you to develop is posted on the internet?&lt;/P&gt;&lt;P&gt;&lt;/P&gt;&lt;P&gt;Rob&lt;/P&gt;&lt;/BODY&gt;&lt;/HTML&gt;</description>
      <pubDate>Tue, 26 Jun 2012 17:15:05 GMT</pubDate>
      <guid>https://community.sap.com/t5/application-development-and-automation-discussions/reading-data-from-excel-files/m-p/1193210#M128983</guid>
      <dc:creator>Former Member</dc:creator>
      <dc:date>2012-06-26T17:15:05Z</dc:date>
    </item>
  </channel>
</rss>

