Application Development Discussions
Join the discussions or start your own on all things application development, including tools and APIs, programming models, and keeping your skills sharp.
cancel
Showing results for 
Search instead for 
Did you mean: 

Reading Excel File from Application Server

Former Member
0 Kudos

Hi Experts,

I have a requirement to read an excel file data from application server to an internal table. I have already checked it in scn but none is working. Please let me know code for the same.

Thanks in advance.

Suman

4 REPLIES 4

Former Member
0 Kudos

0 Kudos

I have already checked this. sorry

mmgc_riel
Participant
0 Kudos

Hi,

Maybe this helps,

DATA:   gr_bds            TYPE REF TO cl_bds_document_set.

DATA:   gr_control        TYPE REF TO i_oi_container_control,

         gr_container      TYPE REF TO cl_gui_custom_container,

         gr_proxy          TYPE REF TO i_oi_document_proxy,

         gr_sheet          TYPE REF TO i_oi_spreadsheet.



*&---------------------------------------------------------------------*

*&      Form  fil_export_table_xls

*&---------------------------------------------------------------------*

FORM fil_export_table_xls

   USING value(is_excel_parms)       TYPE zbds_excel_parms

   CHANGING    etb_excel_content     TYPE zbds_excel_content_tb.

   DATA:

     ltb_table_xls                      TYPE soi_generic_table,

     ltb_range_xls                      TYPE soi_range_list,

     ltb_dim_xls                        TYPE soi_dimension_table.

   DATA:

     ls_dim_item                       TYPE soi_dimension_item,

     ls_excel_content                  TYPE zbds_excel_content,

     ls_table_xls                      TYPE soi_generic_item.

   DATA:

     li_available                       TYPE i,

     li_ret_value                       TYPE i,              "#EC NEEDED

     lc_retcode                         TYPE soi_ret_string.

   REFRESH etb_excel_content.

* Check if the document is still open

   CALL METHOD gr_proxy->is_open

     IMPORTING

       retcode   = lc_retcode

       ret_value = li_ret_value.

   IF lc_retcode = 'OK'.

* Check if the document has a spreadsheet inteface

     CALL METHOD gr_proxy->has_spreadsheet_interface

       IMPORTING

         is_available = li_available

         retcode      = lc_retcode.

   ENDIF.

   IF li_available = 1.

*   Fil the object gr_sheet, so we can use the methods of the object

     CALL METHOD gr_proxy->get_spreadsheet_interface

       IMPORTING

         sheet_interface = gr_sheet

         retcode         = lc_retcode.

*   Select the worksheet of which you want the data

     IF lc_retcode = 'OK'.

       CALL METHOD gr_sheet->select_sheet

         EXPORTING

           name    = is_excel_parms-excel_sheetname

         IMPORTING

           retcode = lc_retcode.

     ENDIF.

   ENDIF.

   IF lc_retcode = 'OK'.

*   Get the data in a specific range on the chosen worksheet

     REFRESH ltb_range_xls.

     ls_dim_item-row     = is_excel_parms-excel_start_row.

     ls_dim_item-column  = is_excel_parms-excel_start_column.

     ls_dim_item-rows    = is_excel_parms-excel_rows.

     ls_dim_item-columns = is_excel_parms-excel_columns.

     APPEND ls_dim_item TO ltb_dim_xls.

     CALL METHOD gr_sheet->get_ranges_data

       EXPORTING

         rangesdef = ltb_dim_xls

       IMPORTING

         contents  = ltb_table_xls

         retcode   = lc_retcode

       CHANGING

         ranges    = ltb_range_xls.

   ENDIF.

   IF lc_retcode = 'OK'.

     LOOP AT ltb_table_xls INTO ls_table_xls.

       ls_excel_content-excel_row    = ls_table_xls-row.

       ls_excel_content-excel_column = ls_table_xls-column.

       ls_excel_content-excel_value  = ls_table_xls-value.

       APPEND ls_excel_content TO etb_excel_content.

     ENDLOOP.

   ENDIF.

   IF gr_sheet IS NOT INITIAL.

     FREE gr_sheet.

   ENDIF.

ENDFORM.                    "

Greetings Maarten

former_member202771
Contributor
0 Kudos

Hi Suman,

ARCHIVEFILE_SERVER_TO_TABLE.

Thanks,

Anil