Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

refactor to use new collection classes #937

Merged
merged 19 commits into from
Jan 1, 2022
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
60 changes: 30 additions & 30 deletions src/zcl_excel.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -78,13 +78,13 @@ CLASS zcl_excel DEFINITION
IMPORTING
!ip_type TYPE zexcel_drawing_type
RETURNING
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
METHODS get_next_table_id
RETURNING
VALUE(ep_id) TYPE i .
METHODS get_ranges_iterator
RETURNING
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
METHODS get_static_cellstyle_guid
IMPORTING
!ip_cstyle_complete TYPE zexcel_s_cstyle_complete
Expand All @@ -93,7 +93,7 @@ CLASS zcl_excel DEFINITION
VALUE(ep_guid) TYPE zexcel_cell_style .
METHODS get_styles_iterator
RETURNING
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
METHODS get_style_index_in_styles
IMPORTING
!ip_guid TYPE zexcel_cell_style
Expand All @@ -113,7 +113,7 @@ CLASS zcl_excel DEFINITION
!eo_theme TYPE REF TO zcl_excel_theme .
METHODS get_worksheets_iterator
RETURNING
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
METHODS get_worksheets_name
RETURNING
VALUE(ep_name) TYPE zexcel_worksheets_name .
Expand Down Expand Up @@ -364,6 +364,28 @@ CLASS zcl_excel IMPLEMENTATION.
ENDMETHOD.


METHOD fill_template.

DATA: lo_template_filler TYPE REF TO zcl_excel_fill_template.

FIELD-SYMBOLS:
<lv_sheet> TYPE zexcel_sheet_title,
<lv_data_line> TYPE zcl_excel_template_data=>ts_template_data_sheet.


lo_template_filler = zcl_excel_fill_template=>create( me ).

LOOP AT lo_template_filler->mt_sheet ASSIGNING <lv_sheet>.

READ TABLE iv_data->mt_data ASSIGNING <lv_data_line> WITH KEY sheet = <lv_sheet>.
CHECK sy-subrc = 0.
lo_template_filler->fill_sheet( <lv_data_line> ).

ENDLOOP.

ENDMETHOD.


METHOD get_active_sheet_index.
r_active_worksheet = me->worksheets->active_worksheet.
ENDMETHOD.
Expand Down Expand Up @@ -403,7 +425,7 @@ CLASS zcl_excel IMPLEMENTATION.

METHOD get_next_table_id.
DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_iterator TYPE REF TO zcl_excel_collection_iterator,
lv_tables_count TYPE i.

lo_iterator = me->get_worksheets_iterator( ).
Expand Down Expand Up @@ -461,7 +483,7 @@ CLASS zcl_excel IMPLEMENTATION.
METHOD get_style_from_guid.

DATA: lo_style TYPE REF TO zcl_excel_style,
lo_iterator TYPE REF TO cl_object_collection_iterator.
lo_iterator TYPE REF TO zcl_excel_collection_iterator.

lo_iterator = styles->get_iterator( ).
WHILE lo_iterator->has_next( ) = abap_true.
Expand All @@ -477,7 +499,7 @@ CLASS zcl_excel IMPLEMENTATION.

METHOD get_style_index_in_styles.
DATA: index TYPE syindex.
DATA: lo_iterator TYPE REF TO cl_object_collection_iterator,
DATA: lo_iterator TYPE REF TO zcl_excel_collection_iterator,
lo_style TYPE REF TO zcl_excel_style.

CHECK ip_guid IS NOT INITIAL.
Expand Down Expand Up @@ -595,7 +617,7 @@ CLASS zcl_excel IMPLEMENTATION.

METHOD set_active_sheet_index_by_name.

DATA: ws_it TYPE REF TO cl_object_collection_iterator,
DATA: ws_it TYPE REF TO zcl_excel_collection_iterator,
ws TYPE REF TO zcl_excel_worksheet,
lv_title TYPE zexcel_sheet_title,
count TYPE i VALUE 1.
Expand Down Expand Up @@ -675,26 +697,4 @@ CLASS zcl_excel IMPLEMENTATION.
METHOD zif_excel_book_vba_project~set_vbaproject.
me->zif_excel_book_vba_project~vbaproject = ip_vbaproject.
ENDMETHOD.


METHOD fill_template.

DATA: lo_template_filler TYPE REF TO zcl_excel_fill_template.

FIELD-SYMBOLS:
<lv_sheet> TYPE zexcel_sheet_title,
<lv_data_line> TYPE zcl_excel_template_data=>ts_template_data_sheet.


lo_template_filler = zcl_excel_fill_template=>create( me ).

LOOP AT lo_template_filler->mt_sheet ASSIGNING <lv_sheet>.

READ TABLE iv_data->mt_data ASSIGNING <lv_data_line> WITH KEY sheet = <lv_sheet>.
CHECK sy-subrc = 0.
lo_template_filler->fill_sheet( <lv_data_line> ).

ENDLOOP.

ENDMETHOD.
ENDCLASS.
4 changes: 2 additions & 2 deletions src/zcl_excel_columns.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,7 @@ CLASS zcl_excel_columns DEFINITION
VALUE(eo_column) TYPE REF TO zcl_excel_column .
METHODS get_iterator
RETURNING
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
METHODS is_empty
RETURNING
VALUE(is_empty) TYPE flag .
Expand All @@ -41,7 +41,7 @@ CLASS zcl_excel_columns DEFINITION
END OF mty_s_hashed_column ,
mty_ts_hashed_column TYPE HASHED TABLE OF mty_s_hashed_column WITH UNIQUE KEY column_index.

DATA columns TYPE REF TO cl_object_collection .
DATA columns TYPE REF TO zcl_excel_collection .
DATA columns_hashed TYPE mty_ts_hashed_column .
ENDCLASS.

Expand Down
4 changes: 2 additions & 2 deletions src/zcl_excel_comments.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -20,7 +20,7 @@ CLASS zcl_excel_comments DEFINITION
VALUE(eo_comment) TYPE REF TO zcl_excel_comment .
METHODS get_iterator
RETURNING
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
METHODS is_empty
RETURNING
VALUE(is_empty) TYPE flag .
Expand All @@ -33,7 +33,7 @@ CLASS zcl_excel_comments DEFINITION
PROTECTED SECTION.
PRIVATE SECTION.

DATA comments TYPE REF TO cl_object_collection .
DATA comments TYPE REF TO zcl_excel_collection .
ENDCLASS.


Expand Down
4 changes: 2 additions & 2 deletions src/zcl_excel_data_validations.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ CLASS zcl_excel_data_validations DEFINITION
METHODS constructor .
METHODS get_iterator
RETURNING
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
METHODS is_empty
RETURNING
VALUE(is_empty) TYPE flag .
Expand All @@ -32,7 +32,7 @@ CLASS zcl_excel_data_validations DEFINITION
*"* do not include other source files here!!!
PRIVATE SECTION.

DATA data_validations TYPE REF TO cl_object_collection .
DATA data_validations TYPE REF TO zcl_excel_collection .
ENDCLASS.


Expand Down
4 changes: 2 additions & 2 deletions src/zcl_excel_drawings.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,7 @@ CLASS zcl_excel_drawings DEFINITION
VALUE(eo_drawing) TYPE REF TO zcl_excel_drawing .
METHODS get_iterator
RETURNING
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
METHODS is_empty
RETURNING
VALUE(is_empty) TYPE flag .
Expand All @@ -48,7 +48,7 @@ CLASS zcl_excel_drawings DEFINITION

*"* private components of class ZCL_EXCEL_DRAWINGS
*"* do not include other source files here!!!
DATA drawings TYPE REF TO cl_object_collection .
DATA drawings TYPE REF TO zcl_excel_collection .
ENDCLASS.


Expand Down
5 changes: 3 additions & 2 deletions src/zcl_excel_fill_template.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -101,6 +101,7 @@ CLASS zcl_excel_fill_template IMPLEMENTATION.

ENDMETHOD.


METHOD discard_overlapped.
DATA:
lt_range TYPE tt_ranges.
Expand Down Expand Up @@ -520,9 +521,9 @@ CLASS zcl_excel_fill_template IMPLEMENTATION.
METHOD get_range.

DATA:
lo_worksheets_iterator TYPE REF TO cl_object_collection_iterator,
lo_worksheets_iterator TYPE REF TO zcl_excel_collection_iterator,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range_iterator TYPE REF TO cl_object_collection_iterator,
lo_range_iterator TYPE REF TO zcl_excel_collection_iterator,
lo_range TYPE REF TO zcl_excel_range.


Expand Down
4 changes: 2 additions & 2 deletions src/zcl_excel_ranges.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,7 @@ CLASS zcl_excel_ranges DEFINITION
VALUE(eo_range) TYPE REF TO zcl_excel_range .
METHODS get_iterator
RETURNING
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
METHODS is_empty
RETURNING
VALUE(is_empty) TYPE flag .
Expand All @@ -36,7 +36,7 @@ CLASS zcl_excel_ranges DEFINITION
*"* do not include other source files here!!!
PRIVATE SECTION.

DATA ranges TYPE REF TO cl_object_collection .
DATA ranges TYPE REF TO zcl_excel_collection .
ENDCLASS.


Expand Down
138 changes: 69 additions & 69 deletions src/zcl_excel_reader_2007.clas.abap
Original file line number Diff line number Diff line change
Expand Up @@ -344,7 +344,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
lt_outline_rows TYPE zcl_excel_worksheet=>mty_ts_outlines_row,
ls_outline_row LIKE LINE OF lt_outline_rows,
lo_row TYPE REF TO zcl_excel_row,
lo_row_iterator TYPE REF TO cl_object_collection_iterator,
lo_row_iterator TYPE REF TO zcl_excel_collection_iterator,
lv_row_offset TYPE i,
lv_row_collapse_flag TYPE i.

Expand Down Expand Up @@ -2965,6 +2965,74 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
ENDMETHOD.


METHOD load_worksheet_autofilter.

TYPES: BEGIN OF lty_autofilter,
ref TYPE string,
END OF lty_autofilter.

DATA: lo_ixml_autofilter_elem TYPE REF TO if_ixml_element,
lv_ref TYPE string,
lo_ixml_filter_column_coll TYPE REF TO if_ixml_node_collection,
lo_ixml_filter_column_iter TYPE REF TO if_ixml_node_iterator,
lo_ixml_filter_column TYPE REF TO if_ixml_element,
lv_col_id TYPE i,
lv_column TYPE zexcel_cell_column,
lo_ixml_filters_coll TYPE REF TO if_ixml_node_collection,
lo_ixml_filters_iter TYPE REF TO if_ixml_node_iterator,
lo_ixml_filters TYPE REF TO if_ixml_element,
lo_ixml_filter_coll TYPE REF TO if_ixml_node_collection,
lo_ixml_filter_iter TYPE REF TO if_ixml_node_iterator,
lo_ixml_filter TYPE REF TO if_ixml_element,
lv_val TYPE string,
lo_autofilters TYPE REF TO zcl_excel_autofilters,
lo_autofilter TYPE REF TO zcl_excel_autofilter.

lo_autofilters = io_worksheet->excel->get_autofilters_reference( ).

lo_ixml_autofilter_elem = io_ixml_worksheet->find_from_name( 'autoFilter' ).
IF lo_ixml_autofilter_elem IS BOUND.
lv_ref = lo_ixml_autofilter_elem->get_attribute_ns( 'ref' ).

lo_ixml_filter_column_coll = lo_ixml_autofilter_elem->get_elements_by_tag_name( name = 'filterColumn' ).
lo_ixml_filter_column_iter = lo_ixml_filter_column_coll->create_iterator( ).
lo_ixml_filter_column ?= lo_ixml_filter_column_iter->get_next( ).
WHILE lo_ixml_filter_column IS BOUND.
lv_col_id = lo_ixml_filter_column->get_attribute_ns( 'colId' ).
lv_column = lv_col_id + 1.

lo_ixml_filters_coll = lo_ixml_filter_column->get_elements_by_tag_name( name = 'filters' ).
lo_ixml_filters_iter = lo_ixml_filters_coll->create_iterator( ).
lo_ixml_filters ?= lo_ixml_filters_iter->get_next( ).
WHILE lo_ixml_filters IS BOUND.

lo_ixml_filter_coll = lo_ixml_filter_column->get_elements_by_tag_name( name = 'filter' ).
lo_ixml_filter_iter = lo_ixml_filter_coll->create_iterator( ).
lo_ixml_filter ?= lo_ixml_filter_iter->get_next( ).
WHILE lo_ixml_filter IS BOUND.
lv_val = lo_ixml_filter->get_attribute_ns( 'val' ).

lo_autofilter = lo_autofilters->get( io_worksheet = io_worksheet ).
IF lo_autofilter IS NOT BOUND.
lo_autofilter = lo_autofilters->add( io_sheet = io_worksheet ).
ENDIF.
lo_autofilter->set_value(
i_column = lv_column
i_value = lv_val ).

lo_ixml_filter ?= lo_ixml_filter_iter->get_next( ).
ENDWHILE.

lo_ixml_filters ?= lo_ixml_filters_iter->get_next( ).
ENDWHILE.

lo_ixml_filter_column ?= lo_ixml_filter_column_iter->get_next( ).
ENDWHILE.
ENDIF.

ENDMETHOD.


METHOD load_worksheet_cond_format.

DATA: lo_ixml_cond_formats TYPE REF TO if_ixml_node_collection,
Expand Down Expand Up @@ -3696,74 +3764,6 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
ENDMETHOD.


METHOD load_worksheet_autofilter.

TYPES: BEGIN OF lty_autofilter,
ref TYPE string,
END OF lty_autofilter.

DATA: lo_ixml_autofilter_elem TYPE REF TO if_ixml_element,
lv_ref TYPE string,
lo_ixml_filter_column_coll TYPE REF TO if_ixml_node_collection,
lo_ixml_filter_column_iter TYPE REF TO if_ixml_node_iterator,
lo_ixml_filter_column TYPE REF TO if_ixml_element,
lv_col_id TYPE i,
lv_column TYPE zexcel_cell_column,
lo_ixml_filters_coll TYPE REF TO if_ixml_node_collection,
lo_ixml_filters_iter TYPE REF TO if_ixml_node_iterator,
lo_ixml_filters TYPE REF TO if_ixml_element,
lo_ixml_filter_coll TYPE REF TO if_ixml_node_collection,
lo_ixml_filter_iter TYPE REF TO if_ixml_node_iterator,
lo_ixml_filter TYPE REF TO if_ixml_element,
lv_val TYPE string,
lo_autofilters TYPE REF TO zcl_excel_autofilters,
lo_autofilter TYPE REF TO zcl_excel_autofilter.

lo_autofilters = io_worksheet->excel->get_autofilters_reference( ).

lo_ixml_autofilter_elem = io_ixml_worksheet->find_from_name( 'autoFilter' ).
IF lo_ixml_autofilter_elem IS BOUND.
lv_ref = lo_ixml_autofilter_elem->get_attribute_ns( 'ref' ).

lo_ixml_filter_column_coll = lo_ixml_autofilter_elem->get_elements_by_tag_name( name = 'filterColumn' ).
lo_ixml_filter_column_iter = lo_ixml_filter_column_coll->create_iterator( ).
lo_ixml_filter_column ?= lo_ixml_filter_column_iter->get_next( ).
WHILE lo_ixml_filter_column IS BOUND.
lv_col_id = lo_ixml_filter_column->get_attribute_ns( 'colId' ).
lv_column = lv_col_id + 1.

lo_ixml_filters_coll = lo_ixml_filter_column->get_elements_by_tag_name( name = 'filters' ).
lo_ixml_filters_iter = lo_ixml_filters_coll->create_iterator( ).
lo_ixml_filters ?= lo_ixml_filters_iter->get_next( ).
WHILE lo_ixml_filters IS BOUND.

lo_ixml_filter_coll = lo_ixml_filter_column->get_elements_by_tag_name( name = 'filter' ).
lo_ixml_filter_iter = lo_ixml_filter_coll->create_iterator( ).
lo_ixml_filter ?= lo_ixml_filter_iter->get_next( ).
WHILE lo_ixml_filter IS BOUND.
lv_val = lo_ixml_filter->get_attribute_ns( 'val' ).

lo_autofilter = lo_autofilters->get( io_worksheet = io_worksheet ).
IF lo_autofilter IS NOT BOUND.
lo_autofilter = lo_autofilters->add( io_sheet = io_worksheet ).
ENDIF.
lo_autofilter->set_value(
i_column = lv_column
i_value = lv_val ).

lo_ixml_filter ?= lo_ixml_filter_iter->get_next( ).
ENDWHILE.

lo_ixml_filters ?= lo_ixml_filters_iter->get_next( ).
ENDWHILE.

lo_ixml_filter_column ?= lo_ixml_filter_column_iter->get_next( ).
ENDWHILE.
ENDIF.

ENDMETHOD.


METHOD load_worksheet_pagemargins.

TYPES: BEGIN OF lty_page_margins,
Expand Down
Loading