0% found this document useful (0 votes)
330 views3 pages

Zalsm Excel To Internal Table

This document contains the code for a function that summarizes the steps to: 1. Open an Excel file and select a range of cells based on input parameters. 2. Copy the selected range to the clipboard. 3. Import the clipboard contents into an internal ABAP table. 4. Clear the clipboard and quit Excel to free up resources.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
0% found this document useful (0 votes)
330 views3 pages

Zalsm Excel To Internal Table

This document contains the code for a function that summarizes the steps to: 1. Open an Excel file and select a range of cells based on input parameters. 2. Copy the selected range to the clipboard. 3. Import the clipboard contents into an internal ABAP table. 4. Clear the clipboard and quit Excel to free up resources.
Copyright
© © All Rights Reserved
We take content rights seriously. If you suspect this is your content, claim it here.
Available Formats
Download as TXT, PDF, TXT or read online on Scribd
You are on page 1/ 3

FUNCTION zalsm_excel_to_internal_table.

*"---------------------------------------------------------------------*"*"Local Interface:
*" IMPORTING
*"
VALUE(FILENAME) LIKE RLGRAP-FILENAME
*"
VALUE(I_BEGIN_COL) TYPE I
*"
VALUE(I_BEGIN_ROW) TYPE I
*"
VALUE(I_END_COL) TYPE I
*"
VALUE(I_END_ROW) TYPE I
*" TABLES
*"
INTERN STRUCTURE ZALSMEX_TABLINE
*" EXCEPTIONS
*"
INCONSISTENT_PARAMETERS
*"
UPLOAD_OLE
*"---------------------------------------------------------------------DATA: excel_tab
TYPE ty_t_sender.
DATA: ld_separator TYPE c.
DATA: application TYPE ole2_object,
workbook
TYPE ole2_object,
range
TYPE ole2_object,
worksheet TYPE ole2_object.
DATA: h_cell TYPE ole2_object,
h_cell1 TYPE ole2_object.
DATA:
ld_rc
TYPE i.
* Rckgabewert der Methode "clipboard_export

"

* Makro fr Fehlerbehandlung der Methods


DEFINE m_message.
case sy-subrc.
when 0.
when 1.
message id sy-msgid type sy-msgty number sy-msgno
with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
when others. raise upload_ole.
endcase.
END-OF-DEFINITION.
* check parameters
IF i_begin_row > i_end_row. RAISE inconsistent_parameters. ENDIF.
IF i_begin_col > i_end_col. RAISE inconsistent_parameters. ENDIF.
* Get TAB-sign for separation of fields
CLASS cl_abap_char_utilities DEFINITION LOAD.
ld_separator = cl_abap_char_utilities=>horizontal_tab.
* open file in Excel
IF application-header = space OR application-handle = -1.
CREATE OBJECT application 'Excel.Application'.
m_message.
ENDIF.
CALL METHOD OF application 'Workbooks' = workbook.
m_message.
CALL METHOD OF workbook 'Open' EXPORTING #1 = filename.
m_message.
* set property of application 'Visible' = 1.
* m_message.
GET PROPERTY OF application 'ACTIVESHEET' = worksheet.

m_message.
* mark whole spread sheet
CALL METHOD OF worksheet 'Cells' = h_cell
EXPORTING #1 = i_begin_row #2 = i_begin_col.
m_message.
CALL METHOD OF worksheet 'Cells' = h_cell1
EXPORTING #1 = i_end_row #2 = i_end_col.
m_message.
CALL METHOD OF worksheet 'RANGE' = range
EXPORTING #1 = h_cell #2 = h_cell1.
m_message.
CALL METHOD OF range 'SELECT'.
m_message.
* copy marked area (whole spread sheet) into Clippboard
CALL METHOD OF range 'COPY'.
m_message.
* read clipboard into ABAP
CALL METHOD cl_gui_frontend_services=>clipboard_import
IMPORTING
data
= excel_tab
EXCEPTIONS
cntl_error = 1
*
ERROR_NO_GUI
= 2
*
NOT_SUPPORTED_BY_GUI = 3
OTHERS
= 4.
IF sy-subrc <> 0.
MESSAGE a037(alsmex).
ENDIF.
PERFORM separated_to_intern_convert TABLES excel_tab intern
USING ld_separator.
* clear clipboard
REFRESH excel_tab.
CALL METHOD cl_gui_frontend_services=>clipboard_export
IMPORTING
data
= excel_tab
CHANGING
rc
= ld_rc
EXCEPTIONS
cntl_error = 1
*
ERROR_NO_GUI
= 2
*
NOT_SUPPORTED_BY_GUI = 3
OTHERS
= 4.
* quit Excel and free ABAP Object - unfortunately, this does not kill
* the Excel process
CALL METHOD OF application 'QUIT'.
m_message.
* >>>>> Begin
* to kill the
FREE OBJECT
FREE OBJECT
FREE OBJECT
FREE OBJECT

of change note 575877


Excel process it's necessary to free all used objects
h_cell.
m_message.
h_cell1.
m_message.
range.
m_message.
worksheet.
m_message.

FREE OBJECT workbook.


m_message.
FREE OBJECT application. m_message.
* <<<<< End of change note 575877

ENDFUNCTION.
--------------------------------------------------------------------------------Extracted by Mass Download version 1.5.2 - E.G.Mellodew. 1998-2016. Sap Release
740

You might also like