Add exeption handling (#889)

* Add exeption handling

* Lint fixes

* Revert back keywords -> upper case

(test classes of zcl_excel_worksheet)

* revert pretty print->diff shows only excp handl

proposing to create a different pull request with only pretty print

* proposing tiny fixes

1) a few alignment fixes
2) ls_message renamed to lv_message
3) message ... type 'E' -> message ... type 'I' display like 'E' to avoid short dumps

Co-authored-by: John Doe <sandra.rossi@accenture.com>
Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
This commit is contained in:
Mike Pokraka 2021-11-24 18:40:45 +00:00 committed by GitHub
parent 68707e1469
commit dbd260da2c
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 150 additions and 48 deletions

View File

@ -96,6 +96,8 @@ START-OF-SELECTION.
* ALV user command * ALV user command
*--------------------------------------------------------------------* *--------------------------------------------------------------------*
FORM user_command . FORM user_command .
DATA: lo_error TYPE REF TO zcx_excel,
lv_message TYPE string.
IF sy-ucomm = 'EXCEL'. IF sy-ucomm = 'EXCEL'.
* get save file path * get save file path
@ -118,7 +120,12 @@ FORM user_command .
INTO l_path. INTO l_path.
* export file to save file path * export file to save file path
TRY.
PERFORM export_to_excel. PERFORM export_to_excel.
CATCH zcx_excel INTO lo_error.
lv_message = lo_error->get_text( ).
MESSAGE lv_message TYPE 'I' DISPLAY LIKE 'E'.
ENDTRY.
ENDIF. ENDIF.
ENDFORM. " USER_COMMAND ENDFORM. " USER_COMMAND
@ -129,6 +136,9 @@ ENDFORM. " USER_COMMAND
* This subroutine is principal demo session * This subroutine is principal demo session
*--------------------------------------------------------------------* *--------------------------------------------------------------------*
FORM export_to_excel RAISING zcx_excel. FORM export_to_excel RAISING zcx_excel.
DATA: lo_error TYPE REF TO zcx_excel,
lv_message TYPE string.
* create zcl_excel_worksheet object * create zcl_excel_worksheet object
CREATE OBJECT lo_excel. CREATE OBJECT lo_excel.
@ -136,15 +146,12 @@ FORM export_to_excel RAISING zcx_excel.
lo_worksheet->set_title( ip_title = 'Sheet1' ). lo_worksheet->set_title( ip_title = 'Sheet1' ).
* write to excel using method Bin_object * write to excel using method Bin_object
TRY.
lo_worksheet->bind_alv( lo_worksheet->bind_alv(
io_alv = lo_salv io_alv = lo_salv
it_table = gt_sbook it_table = gt_sbook
i_top = 2 i_top = 2
i_left = 1 i_left = 1
). ).
CATCH zcx_excel .
ENDTRY.
PERFORM write_file. PERFORM write_file.
@ -157,7 +164,7 @@ ENDFORM. "EXPORT_TO_EXCEL
* --> p1 text * --> p1 text
* <-- p2 text * <-- p2 text
*----------------------------------------------------------------------* *----------------------------------------------------------------------*
FORM write_file . FORM write_file RAISING zcx_excel.
DATA: lt_file TYPE solix_tab, DATA: lt_file TYPE solix_tab,
l_bytecount TYPE i, l_bytecount TYPE i,
l_file TYPE xstring. l_file TYPE xstring.

View File

@ -10,7 +10,9 @@ REPORT zdemo_excel27.
CLASS lcl_app DEFINITION. CLASS lcl_app DEFINITION.
PUBLIC SECTION. PUBLIC SECTION.
METHODS main. METHODS main
RAISING
zcx_excel.
PRIVATE SECTION. PRIVATE SECTION.
METHODS conditional_formatting_cellis METHODS conditional_formatting_cellis
IMPORTING IMPORTING
@ -20,14 +22,18 @@ CLASS lcl_app DEFINITION.
op TYPE zexcel_condition_operator op TYPE zexcel_condition_operator
f TYPE zexcel_style_formula f TYPE zexcel_style_formula
f2 TYPE zexcel_style_formula f2 TYPE zexcel_style_formula
numfmt TYPE string. numfmt TYPE string
RAISING
zcx_excel.
METHODS conditional_formatting_textfun METHODS conditional_formatting_textfun
IMPORTING IMPORTING
column TYPE simple column TYPE simple
row TYPE zexcel_cell_row row TYPE zexcel_cell_row
txtfun TYPE zcl_excel_style_cond=>tv_textfunction txtfun TYPE zcl_excel_style_cond=>tv_textfunction
text TYPE string text TYPE string
numfmt TYPE string. numfmt TYPE string
RAISING
zcx_excel.
ENDCLASS. ENDCLASS.
CONSTANTS: c_fish TYPE string VALUE 'Fish'. CONSTANTS: c_fish TYPE string VALUE 'Fish'.
@ -53,8 +59,16 @@ INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION. START-OF-SELECTION.
DATA: lo_error TYPE REF TO zcx_excel,
lv_message TYPE string.
CREATE OBJECT lo_app. CREATE OBJECT lo_app.
TRY.
lo_app->main( ). lo_app->main( ).
CATCH zcx_excel INTO lo_error.
lv_message = lo_error->get_text( ).
MESSAGE lv_message TYPE 'I' DISPLAY LIKE 'E'.
ENDTRY.
CLASS lcl_app IMPLEMENTATION. CLASS lcl_app IMPLEMENTATION.

View File

@ -97,6 +97,8 @@ START-OF-SELECTION.
* ALV user command * ALV user command
*--------------------------------------------------------------------* *--------------------------------------------------------------------*
FORM user_command . FORM user_command .
DATA: lo_error TYPE REF TO zcx_excel,
lv_message TYPE string.
* get save file path * get save file path
cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = l_path ). cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = l_path ).
@ -117,6 +119,7 @@ FORM user_command .
* export file to save file path * export file to save file path
TRY.
CASE sy-ucomm. CASE sy-ucomm.
WHEN 'EXCELBIND'. WHEN 'EXCELBIND'.
CONCATENATE l_path lv_file_separator lv_default_file_name CONCATENATE l_path lv_file_separator lv_default_file_name
@ -130,6 +133,12 @@ FORM user_command .
PERFORM export_to_excel_conv. PERFORM export_to_excel_conv.
ENDCASE. ENDCASE.
CATCH zcx_excel INTO lo_error.
lv_message = lo_error->get_text( ).
MESSAGE lv_message TYPE 'I' DISPLAY LIKE 'E'.
ENDTRY.
ENDFORM. " USER_COMMAND ENDFORM. " USER_COMMAND
*--------------------------------------------------------------------* *--------------------------------------------------------------------*
* FORM EXPORT_TO_EXCEL_CONV * FORM EXPORT_TO_EXCEL_CONV
@ -193,7 +202,7 @@ ENDFORM. "EXPORT_TO_EXCEL_BIND
* --> p1 text * --> p1 text
* <-- p2 text * <-- p2 text
*----------------------------------------------------------------------* *----------------------------------------------------------------------*
FORM write_file . FORM write_file RAISING zcx_excel.
DATA: lt_file TYPE solix_tab, DATA: lt_file TYPE solix_tab,
l_bytecount TYPE i, l_bytecount TYPE i,
l_file TYPE xstring. l_file TYPE xstring.

View File

@ -5,7 +5,8 @@ CLASS lcl_output DEFINITION CREATE PRIVATE.
PUBLIC SECTION. PUBLIC SECTION.
CLASS-METHODS: CLASS-METHODS:
output IMPORTING cl_excel TYPE REF TO zcl_excel output IMPORTING cl_excel TYPE REF TO zcl_excel
iv_writerclass_name TYPE clike OPTIONAL, iv_writerclass_name TYPE clike OPTIONAL
RAISING zcx_excel,
f4_path RETURNING VALUE(selected_folder) TYPE string, f4_path RETURNING VALUE(selected_folder) TYPE string,
parametertexts. parametertexts.

View File

@ -969,148 +969,176 @@
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>8</LINE_NUMBER> <LINE_NUMBER>8</LINE_NUMBER>
<SOURCE_LINE> CREATE OBJECT lo_excel.</SOURCE_LINE> <SOURCE_LINE> TRY.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>9</LINE_NUMBER> <LINE_NUMBER>9</LINE_NUMBER>
<SOURCE_LINE> lo_worksheet = lo_excel-&gt;get_active_worksheet( ).</SOURCE_LINE> <SOURCE_LINE> CREATE OBJECT lo_excel.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>10</LINE_NUMBER> <LINE_NUMBER>10</LINE_NUMBER>
<SOURCE_LINE> lo_worksheet = lo_excel-&gt;get_active_worksheet( ).</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>11</LINE_NUMBER> <LINE_NUMBER>11</LINE_NUMBER>
<SOURCE_LINE> lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos;</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>12</LINE_NUMBER> <LINE_NUMBER>12</LINE_NUMBER>
<SOURCE_LINE> ip_row = &apos;2&apos;</SOURCE_LINE> <SOURCE_LINE> lo_worksheet-&gt;set_cell( ip_column = &apos;B&apos;</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>13</LINE_NUMBER> <LINE_NUMBER>13</LINE_NUMBER>
<SOURCE_LINE> ip_value = &apos;Welcome to Web Dynpro and abap2xlsx.&apos; ).</SOURCE_LINE> <SOURCE_LINE> ip_row = &apos;2&apos;</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>14</LINE_NUMBER> <LINE_NUMBER>14</LINE_NUMBER>
<SOURCE_LINE> ip_value = &apos;Welcome to Web Dynpro and abap2xlsx.&apos; ).</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>15</LINE_NUMBER> <LINE_NUMBER>15</LINE_NUMBER>
<SOURCE_LINE> CREATE OBJECT lo_excel_writer.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>16</LINE_NUMBER> <LINE_NUMBER>16</LINE_NUMBER>
<SOURCE_LINE> lv_content = lo_excel_writer-&gt;zif_excel_writer~write_file( lo_excel ).</SOURCE_LINE> <SOURCE_LINE> CREATE OBJECT lo_excel_writer.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>17</LINE_NUMBER> <LINE_NUMBER>17</LINE_NUMBER>
<SOURCE_LINE> lv_content = lo_excel_writer-&gt;zif_excel_writer~write_file( lo_excel ).</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>18</LINE_NUMBER> <LINE_NUMBER>18</LINE_NUMBER>
<SOURCE_LINE> DATA: lv_filename TYPE string.</SOURCE_LINE> <SOURCE_LINE> CATCH zcx_excel.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>19</LINE_NUMBER> <LINE_NUMBER>19</LINE_NUMBER>
<SOURCE_LINE> lv_filename = &apos;wda01.xlsx&apos;.</SOURCE_LINE> <SOURCE_LINE> &quot;Unlikely, ignore to keep demo simple.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>20</LINE_NUMBER> <LINE_NUMBER>20</LINE_NUMBER>
<SOURCE_LINE> ENDTRY.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>21</LINE_NUMBER> <LINE_NUMBER>21</LINE_NUMBER>
<SOURCE_LINE> CALL METHOD cl_wd_runtime_services=&gt;attach_file_to_response</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>22</LINE_NUMBER> <LINE_NUMBER>22</LINE_NUMBER>
<SOURCE_LINE> EXPORTING</SOURCE_LINE> <SOURCE_LINE> DATA: lv_filename TYPE string.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>23</LINE_NUMBER> <LINE_NUMBER>23</LINE_NUMBER>
<SOURCE_LINE> i_filename = lv_filename</SOURCE_LINE> <SOURCE_LINE> lv_filename = &apos;wda01.xlsx&apos;.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>24</LINE_NUMBER> <LINE_NUMBER>24</LINE_NUMBER>
<SOURCE_LINE> i_content = lv_content</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>25</LINE_NUMBER> <LINE_NUMBER>25</LINE_NUMBER>
<SOURCE_LINE> i_mime_type = &apos;EXCEL&apos;</SOURCE_LINE> <SOURCE_LINE> CALL METHOD cl_wd_runtime_services=&gt;attach_file_to_response</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>26</LINE_NUMBER> <LINE_NUMBER>26</LINE_NUMBER>
<SOURCE_LINE> i_in_new_window = abap_false</SOURCE_LINE> <SOURCE_LINE> EXPORTING</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>27</LINE_NUMBER> <LINE_NUMBER>27</LINE_NUMBER>
<SOURCE_LINE> i_inplace = abap_false.</SOURCE_LINE> <SOURCE_LINE> i_filename = lv_filename</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>28</LINE_NUMBER> <LINE_NUMBER>28</LINE_NUMBER>
<SOURCE_LINE> i_content = lv_content</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME> <COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME> <CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME> <CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>29</LINE_NUMBER> <LINE_NUMBER>29</LINE_NUMBER>
<SOURCE_LINE> i_mime_type = &apos;EXCEL&apos;</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>30</LINE_NUMBER>
<SOURCE_LINE> i_in_new_window = abap_false</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>31</LINE_NUMBER>
<SOURCE_LINE> i_inplace = abap_false.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>32</LINE_NUMBER>
</WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS>
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
<LINE_NUMBER>33</LINE_NUMBER>
<SOURCE_LINE>ENDMETHOD.</SOURCE_LINE> <SOURCE_LINE>ENDMETHOD.</SOURCE_LINE>
</WDY_CTLR_COMPO_SOURCE_VRS> </WDY_CTLR_COMPO_SOURCE_VRS>
<WDY_CTLR_COMPO_SOURCE_VRS> <WDY_CTLR_COMPO_SOURCE_VRS>

View File

@ -33,7 +33,9 @@ CLASS zcl_excel_autofilter DEFINITION
!io_sheet TYPE REF TO zcl_excel_worksheet . !io_sheet TYPE REF TO zcl_excel_worksheet .
METHODS get_filter_area METHODS get_filter_area
RETURNING RETURNING
VALUE(rs_area) TYPE zexcel_s_autofilter_area . VALUE(rs_area) TYPE zexcel_s_autofilter_area
RAISING
zcx_excel .
METHODS get_filter_range METHODS get_filter_range
RETURNING RETURNING
VALUE(r_range) TYPE zexcel_cell_value VALUE(r_range) TYPE zexcel_cell_value

View File

@ -12,7 +12,9 @@ CLASS zcl_excel_column DEFINITION
IMPORTING IMPORTING
!ip_index TYPE zexcel_cell_column_alpha !ip_index TYPE zexcel_cell_column_alpha
!ip_worksheet TYPE REF TO zcl_excel_worksheet !ip_worksheet TYPE REF TO zcl_excel_worksheet
!ip_excel TYPE REF TO zcl_excel . !ip_excel TYPE REF TO zcl_excel
RAISING
zcx_excel .
METHODS get_auto_size METHODS get_auto_size
RETURNING RETURNING
VALUE(r_auto_size) TYPE abap_bool . VALUE(r_auto_size) TYPE abap_bool .
@ -48,7 +50,9 @@ CLASS zcl_excel_column DEFINITION
IMPORTING IMPORTING
!ip_index TYPE zexcel_cell_column_alpha !ip_index TYPE zexcel_cell_column_alpha
RETURNING RETURNING
VALUE(io_column) TYPE REF TO zcl_excel_column . VALUE(io_column) TYPE REF TO zcl_excel_column
RAISING
zcx_excel .
METHODS set_outline_level METHODS set_outline_level
IMPORTING IMPORTING
!ip_outline_level TYPE int4 . !ip_outline_level TYPE int4 .

View File

@ -34,17 +34,23 @@ CLASS zcl_excel_converter DEFINITION
EXPORTING EXPORTING
!e_bytecount TYPE i !e_bytecount TYPE i
!et_file TYPE solix_tab !et_file TYPE solix_tab
!e_file TYPE xstring . !e_file TYPE xstring
RAISING
zcx_excel .
METHODS get_option METHODS get_option
RETURNING RETURNING
VALUE(rs_option) TYPE zexcel_s_converter_option . VALUE(rs_option) TYPE zexcel_s_converter_option .
METHODS open_file . METHODS open_file
RAISING
zcx_excel .
METHODS set_option METHODS set_option
IMPORTING IMPORTING
!is_option TYPE zexcel_s_converter_option . !is_option TYPE zexcel_s_converter_option .
METHODS write_file METHODS write_file
IMPORTING IMPORTING
!i_path TYPE string OPTIONAL . !i_path TYPE string OPTIONAL
RAISING
zcx_excel .
*"* protected components of class ZCL_EXCEL_CONVERTER *"* protected components of class ZCL_EXCEL_CONVERTER
*"* do not include other source files here!!! *"* do not include other source files here!!!
PROTECTED SECTION. PROTECTED SECTION.

View File

@ -254,7 +254,9 @@ CLASS zcl_excel_reader_2007 DEFINITION
METHODS load_worksheet_autofilter METHODS load_worksheet_autofilter
IMPORTING IMPORTING
io_ixml_worksheet TYPE REF TO if_ixml_document io_ixml_worksheet TYPE REF TO if_ixml_document
io_worksheet TYPE REF TO zcl_excel_worksheet. io_worksheet TYPE REF TO zcl_excel_worksheet
RAISING
zcx_excel.
METHODS load_worksheet_pagemargins METHODS load_worksheet_pagemargins
IMPORTING IMPORTING
!io_ixml_worksheet TYPE REF TO if_ixml_document !io_ixml_worksheet TYPE REF TO if_ixml_document
@ -276,7 +278,9 @@ CLASS zcl_excel_reader_2007 DEFINITION
METHODS load_theme METHODS load_theme
IMPORTING IMPORTING
VALUE(iv_path) TYPE string VALUE(iv_path) TYPE string
!ip_excel TYPE REF TO zcl_excel . !ip_excel TYPE REF TO zcl_excel
RAISING
zcx_excel .
PRIVATE SECTION. PRIVATE SECTION.
DATA zip TYPE REF TO lcl_zip_archive . DATA zip TYPE REF TO lcl_zip_archive .

View File

@ -68,7 +68,9 @@ CLASS zcl_excel_reader_huge_file DEFINITION
METHODS put_cell_to_worksheet METHODS put_cell_to_worksheet
IMPORTING IMPORTING
!io_worksheet TYPE REF TO zcl_excel_worksheet !io_worksheet TYPE REF TO zcl_excel_worksheet
!is_cell TYPE t_cell . !is_cell TYPE t_cell
RAISING
zcx_excel.
METHODS get_shared_string METHODS get_shared_string
IMPORTING IMPORTING
!iv_index TYPE any !iv_index TYPE any
@ -88,7 +90,8 @@ CLASS zcl_excel_reader_huge_file DEFINITION
!io_reader TYPE REF TO if_sxml_reader !io_reader TYPE REF TO if_sxml_reader
!io_worksheet TYPE REF TO zcl_excel_worksheet !io_worksheet TYPE REF TO zcl_excel_worksheet
RAISING RAISING
lcx_not_found . lcx_not_found
zcx_excel .
METHODS get_sxml_reader METHODS get_sxml_reader
IMPORTING IMPORTING
!iv_path TYPE string !iv_path TYPE string

View File

@ -111,7 +111,9 @@ CLASS zcl_excel_worksheet DEFINITION
IMPORTING IMPORTING
!ip_column TYPE simple !ip_column TYPE simple
RETURNING RETURNING
VALUE(eo_column) TYPE REF TO zcl_excel_column . VALUE(eo_column) TYPE REF TO zcl_excel_column
RAISING
zcx_excel .
METHODS add_new_style_cond METHODS add_new_style_cond
IMPORTING IMPORTING
!ip_dimension_range TYPE string DEFAULT 'A1' !ip_dimension_range TYPE string DEFAULT 'A1'
@ -334,7 +336,9 @@ CLASS zcl_excel_worksheet DEFINITION
IMPORTING IMPORTING
!ip_column TYPE simple !ip_column TYPE simple
RETURNING RETURNING
VALUE(eo_column) TYPE REF TO zcl_excel_column . VALUE(eo_column) TYPE REF TO zcl_excel_column
RAISING
zcx_excel .
METHODS get_columns METHODS get_columns
RETURNING RETURNING
VALUE(eo_columns) TYPE REF TO zcl_excel_columns . VALUE(eo_columns) TYPE REF TO zcl_excel_columns .
@ -352,7 +356,9 @@ CLASS zcl_excel_worksheet DEFINITION
VALUE(ep_size) TYPE i . VALUE(ep_size) TYPE i .
METHODS get_default_column METHODS get_default_column
RETURNING RETURNING
VALUE(eo_column) TYPE REF TO zcl_excel_column . VALUE(eo_column) TYPE REF TO zcl_excel_column
RAISING
zcx_excel.
METHODS get_default_excel_date_format METHODS get_default_excel_date_format
RETURNING RETURNING
VALUE(ep_default_excel_date_format) TYPE zexcel_number_format . VALUE(ep_default_excel_date_format) TYPE zexcel_number_format .
@ -575,7 +581,9 @@ CLASS zcl_excel_worksheet DEFINITION
!ip_column_end TYPE simple OPTIONAL !ip_column_end TYPE simple OPTIONAL
!ip_row TYPE zexcel_cell_row OPTIONAL !ip_row TYPE zexcel_cell_row OPTIONAL
!ip_row_to TYPE zexcel_cell_row OPTIONAL !ip_row_to TYPE zexcel_cell_row OPTIONAL
!ip_style TYPE zexcel_cell_style OPTIONAL . !ip_style TYPE zexcel_cell_style OPTIONAL
RAISING
zcx_excel .
METHODS set_area_formula METHODS set_area_formula
IMPORTING IMPORTING
!ip_column_start TYPE simple !ip_column_start TYPE simple
@ -594,7 +602,9 @@ CLASS zcl_excel_worksheet DEFINITION
!ip_row TYPE zexcel_cell_row !ip_row TYPE zexcel_cell_row
!ip_row_to TYPE zexcel_cell_row OPTIONAL !ip_row_to TYPE zexcel_cell_row OPTIONAL
!ip_style TYPE zexcel_cell_style !ip_style TYPE zexcel_cell_style
!ip_merge TYPE abap_bool OPTIONAL . !ip_merge TYPE abap_bool OPTIONAL
RAISING
zcx_excel .
METHODS set_area METHODS set_area
IMPORTING IMPORTING
!ip_column_start TYPE simple !ip_column_start TYPE simple

View File

@ -15,9 +15,9 @@ CLASS lcl_excel_worksheet_test DEFINITION FOR TESTING
CLASS-METHODS: class_teardown. CLASS-METHODS: class_teardown.
METHODS: setup. METHODS: setup.
METHODS: teardown. METHODS: teardown.
METHODS: set_merge FOR TESTING. METHODS: set_merge FOR TESTING RAISING cx_static_check.
METHODS: delete_merge FOR TESTING. METHODS: delete_merge FOR TESTING RAISING cx_static_check.
METHODS: get_dimension_range FOR TESTING. METHODS: get_dimension_range FOR TESTING RAISING cx_static_check.
ENDCLASS. "lcl_Excel_Worksheet_Test ENDCLASS. "lcl_Excel_Worksheet_Test
@ -78,9 +78,13 @@ CLASS lcl_excel_worksheet_test IMPLEMENTATION.
CREATE OBJECT lo_excel. CREATE OBJECT lo_excel.
TRY.
CREATE OBJECT f_cut CREATE OBJECT f_cut
EXPORTING EXPORTING
ip_excel = lo_excel. ip_excel = lo_excel.
CATCH zcx_excel.
cl_abap_unit_assert=>fail( 'Could not create instance' ).
ENDTRY.
ENDMETHOD. "setup ENDMETHOD. "setup

View File

@ -48,13 +48,17 @@ CLASS zcl_excel_writer_2007 DEFINITION
!io_document TYPE REF TO if_ixml_document !io_document TYPE REF TO if_ixml_document
!io_worksheet TYPE REF TO zcl_excel_worksheet !io_worksheet TYPE REF TO zcl_excel_worksheet
RETURNING RETURNING
VALUE(rv_ixml_sheet_data_root) TYPE REF TO if_ixml_element . VALUE(rv_ixml_sheet_data_root) TYPE REF TO if_ixml_element
RAISING
zcx_excel .
METHODS add_further_data_to_zip METHODS add_further_data_to_zip
IMPORTING IMPORTING
!io_zip TYPE REF TO cl_abap_zip . !io_zip TYPE REF TO cl_abap_zip .
METHODS create METHODS create
RETURNING RETURNING
VALUE(ep_excel) TYPE xstring . VALUE(ep_excel) TYPE xstring
RAISING
zcx_excel .
METHODS create_content_types METHODS create_content_types
RETURNING RETURNING
VALUE(ep_content) TYPE xstring . VALUE(ep_content) TYPE xstring .
@ -108,7 +112,9 @@ CLASS zcl_excel_writer_2007 DEFINITION
IMPORTING IMPORTING
!io_worksheet TYPE REF TO zcl_excel_worksheet !io_worksheet TYPE REF TO zcl_excel_worksheet
RETURNING RETURNING
VALUE(ep_content) TYPE xstring . VALUE(ep_content) TYPE xstring
RAISING
zcx_excel .
METHODS create_xl_relationships METHODS create_xl_relationships
RETURNING RETURNING
VALUE(ep_content) TYPE xstring . VALUE(ep_content) TYPE xstring .
@ -161,13 +167,17 @@ CLASS zcl_excel_writer_2007 DEFINITION
IMPORTING IMPORTING
!io_table TYPE REF TO zcl_excel_table !io_table TYPE REF TO zcl_excel_table
RETURNING RETURNING
VALUE(ep_content) TYPE xstring . VALUE(ep_content) TYPE xstring
RAISING
zcx_excel .
METHODS create_xl_theme METHODS create_xl_theme
RETURNING RETURNING
VALUE(ep_content) TYPE xstring . VALUE(ep_content) TYPE xstring .
METHODS create_xl_workbook METHODS create_xl_workbook
RETURNING RETURNING
VALUE(ep_content) TYPE xstring . VALUE(ep_content) TYPE xstring
RAISING
zcx_excel .
METHODS get_shared_string_index METHODS get_shared_string_index
IMPORTING IMPORTING
!ip_cell_value TYPE zexcel_cell_value !ip_cell_value TYPE zexcel_cell_value