mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-03 23:46:13 +08:00
refactor to use new collection classes (#937)
* refactor to use new collection classes closes #880 * Update src/zcl_excel.clas.abap Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> * Update src/zcl_excel_comments.clas.abap Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> * Update src/zcl_excel_data_validations.clas.abap Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> * Update src/zcl_excel_drawings.clas.abap Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> * Update src/zcl_excel_worksheets.clas.abap Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> * Update src/zcl_excel_writer_csv.clas.abap Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> * Update src/zcl_excel_writer_huge_file.clas.abap Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> * Update src/zcl_excel_writer_xlsm.clas.abap Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> * Update src/zcl_excel_writer_2007.clas.abap Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> * Update src/zcl_excel_columns.clas.abap Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> * Update src/zcl_excel_fill_template.clas.abap Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> * Update src/zcl_excel_worksheet.clas.abap Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> * Update src/zcl_excel_ranges.clas.abap Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> * Update src/zcl_excel_reader_2007.clas.abap Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> * Update src/zcl_excel_rows.clas.abap Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> * Update src/zcl_excel_styles.clas.abap Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> * Update src/zcl_excel_styles_cond.clas.abap Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com> Co-authored-by: sandraros <34005250+sandraros@users.noreply.github.com>
This commit is contained in:
parent
f16a3cc9b2
commit
98d67652a9
|
@ -78,13 +78,13 @@ CLASS zcl_excel DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ip_type TYPE zexcel_drawing_type
|
!ip_type TYPE zexcel_drawing_type
|
||||||
RETURNING
|
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
|
METHODS get_next_table_id
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ep_id) TYPE i .
|
VALUE(ep_id) TYPE i .
|
||||||
METHODS get_ranges_iterator
|
METHODS get_ranges_iterator
|
||||||
RETURNING
|
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
|
METHODS get_static_cellstyle_guid
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ip_cstyle_complete TYPE zexcel_s_cstyle_complete
|
!ip_cstyle_complete TYPE zexcel_s_cstyle_complete
|
||||||
|
@ -93,7 +93,7 @@ CLASS zcl_excel DEFINITION
|
||||||
VALUE(ep_guid) TYPE zexcel_cell_style .
|
VALUE(ep_guid) TYPE zexcel_cell_style .
|
||||||
METHODS get_styles_iterator
|
METHODS get_styles_iterator
|
||||||
RETURNING
|
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
|
METHODS get_style_index_in_styles
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ip_guid TYPE zexcel_cell_style
|
!ip_guid TYPE zexcel_cell_style
|
||||||
|
@ -113,7 +113,7 @@ CLASS zcl_excel DEFINITION
|
||||||
!eo_theme TYPE REF TO zcl_excel_theme .
|
!eo_theme TYPE REF TO zcl_excel_theme .
|
||||||
METHODS get_worksheets_iterator
|
METHODS get_worksheets_iterator
|
||||||
RETURNING
|
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
|
METHODS get_worksheets_name
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ep_name) TYPE zexcel_worksheets_name .
|
VALUE(ep_name) TYPE zexcel_worksheets_name .
|
||||||
|
@ -364,6 +364,28 @@ CLASS zcl_excel IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
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.
|
METHOD get_active_sheet_index.
|
||||||
r_active_worksheet = me->worksheets->active_worksheet.
|
r_active_worksheet = me->worksheets->active_worksheet.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
@ -403,7 +425,7 @@ CLASS zcl_excel IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD get_next_table_id.
|
METHOD get_next_table_id.
|
||||||
DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
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.
|
lv_tables_count TYPE i.
|
||||||
|
|
||||||
lo_iterator = me->get_worksheets_iterator( ).
|
lo_iterator = me->get_worksheets_iterator( ).
|
||||||
|
@ -461,7 +483,7 @@ CLASS zcl_excel IMPLEMENTATION.
|
||||||
METHOD get_style_from_guid.
|
METHOD get_style_from_guid.
|
||||||
|
|
||||||
DATA: lo_style TYPE REF TO zcl_excel_style,
|
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( ).
|
lo_iterator = styles->get_iterator( ).
|
||||||
WHILE lo_iterator->has_next( ) = abap_true.
|
WHILE lo_iterator->has_next( ) = abap_true.
|
||||||
|
@ -477,7 +499,7 @@ CLASS zcl_excel IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD get_style_index_in_styles.
|
METHOD get_style_index_in_styles.
|
||||||
DATA: index TYPE syindex.
|
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.
|
lo_style TYPE REF TO zcl_excel_style.
|
||||||
|
|
||||||
CHECK ip_guid IS NOT INITIAL.
|
CHECK ip_guid IS NOT INITIAL.
|
||||||
|
@ -595,7 +617,7 @@ CLASS zcl_excel IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD set_active_sheet_index_by_name.
|
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,
|
ws TYPE REF TO zcl_excel_worksheet,
|
||||||
lv_title TYPE zexcel_sheet_title,
|
lv_title TYPE zexcel_sheet_title,
|
||||||
count TYPE i VALUE 1.
|
count TYPE i VALUE 1.
|
||||||
|
@ -675,26 +697,4 @@ CLASS zcl_excel IMPLEMENTATION.
|
||||||
METHOD zif_excel_book_vba_project~set_vbaproject.
|
METHOD zif_excel_book_vba_project~set_vbaproject.
|
||||||
me->zif_excel_book_vba_project~vbaproject = ip_vbaproject.
|
me->zif_excel_book_vba_project~vbaproject = ip_vbaproject.
|
||||||
ENDMETHOD.
|
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.
|
ENDCLASS.
|
||||||
|
|
|
@ -18,7 +18,7 @@ CLASS zcl_excel_columns DEFINITION
|
||||||
VALUE(eo_column) TYPE REF TO zcl_excel_column .
|
VALUE(eo_column) TYPE REF TO zcl_excel_column .
|
||||||
METHODS get_iterator
|
METHODS get_iterator
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS is_empty
|
METHODS is_empty
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(is_empty) TYPE flag .
|
VALUE(is_empty) TYPE flag .
|
||||||
|
@ -41,7 +41,7 @@ CLASS zcl_excel_columns DEFINITION
|
||||||
END OF mty_s_hashed_column ,
|
END OF mty_s_hashed_column ,
|
||||||
mty_ts_hashed_column TYPE HASHED TABLE OF mty_s_hashed_column WITH UNIQUE KEY column_index.
|
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 .
|
DATA columns_hashed TYPE mty_ts_hashed_column .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
|
@ -20,7 +20,7 @@ CLASS zcl_excel_comments DEFINITION
|
||||||
VALUE(eo_comment) TYPE REF TO zcl_excel_comment .
|
VALUE(eo_comment) TYPE REF TO zcl_excel_comment .
|
||||||
METHODS get_iterator
|
METHODS get_iterator
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS is_empty
|
METHODS is_empty
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(is_empty) TYPE flag .
|
VALUE(is_empty) TYPE flag .
|
||||||
|
@ -33,7 +33,7 @@ CLASS zcl_excel_comments DEFINITION
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
DATA comments TYPE REF TO cl_object_collection .
|
DATA comments TYPE REF TO zcl_excel_collection .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -15,7 +15,7 @@ CLASS zcl_excel_data_validations DEFINITION
|
||||||
METHODS constructor .
|
METHODS constructor .
|
||||||
METHODS get_iterator
|
METHODS get_iterator
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS is_empty
|
METHODS is_empty
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(is_empty) TYPE flag .
|
VALUE(is_empty) TYPE flag .
|
||||||
|
@ -32,7 +32,7 @@ CLASS zcl_excel_data_validations DEFINITION
|
||||||
*"* do not include other source files here!!!
|
*"* do not include other source files here!!!
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
DATA data_validations TYPE REF TO cl_object_collection .
|
DATA data_validations TYPE REF TO zcl_excel_collection .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@ CLASS zcl_excel_drawings DEFINITION
|
||||||
VALUE(eo_drawing) TYPE REF TO zcl_excel_drawing .
|
VALUE(eo_drawing) TYPE REF TO zcl_excel_drawing .
|
||||||
METHODS get_iterator
|
METHODS get_iterator
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS is_empty
|
METHODS is_empty
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(is_empty) TYPE flag .
|
VALUE(is_empty) TYPE flag .
|
||||||
|
@ -48,7 +48,7 @@ CLASS zcl_excel_drawings DEFINITION
|
||||||
|
|
||||||
*"* private components of class ZCL_EXCEL_DRAWINGS
|
*"* private components of class ZCL_EXCEL_DRAWINGS
|
||||||
*"* do not include other source files here!!!
|
*"* do not include other source files here!!!
|
||||||
DATA drawings TYPE REF TO cl_object_collection .
|
DATA drawings TYPE REF TO zcl_excel_collection .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -101,6 +101,7 @@ CLASS zcl_excel_fill_template IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD discard_overlapped.
|
METHOD discard_overlapped.
|
||||||
DATA:
|
DATA:
|
||||||
lt_range TYPE tt_ranges.
|
lt_range TYPE tt_ranges.
|
||||||
|
@ -520,9 +521,9 @@ CLASS zcl_excel_fill_template IMPLEMENTATION.
|
||||||
METHOD get_range.
|
METHOD get_range.
|
||||||
|
|
||||||
DATA:
|
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_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.
|
lo_range TYPE REF TO zcl_excel_range.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ CLASS zcl_excel_ranges DEFINITION
|
||||||
VALUE(eo_range) TYPE REF TO zcl_excel_range .
|
VALUE(eo_range) TYPE REF TO zcl_excel_range .
|
||||||
METHODS get_iterator
|
METHODS get_iterator
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS is_empty
|
METHODS is_empty
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(is_empty) TYPE flag .
|
VALUE(is_empty) TYPE flag .
|
||||||
|
@ -36,7 +36,7 @@ CLASS zcl_excel_ranges DEFINITION
|
||||||
*"* do not include other source files here!!!
|
*"* do not include other source files here!!!
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
DATA ranges TYPE REF TO cl_object_collection .
|
DATA ranges TYPE REF TO zcl_excel_collection .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -344,7 +344,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
|
||||||
lt_outline_rows TYPE zcl_excel_worksheet=>mty_ts_outlines_row,
|
lt_outline_rows TYPE zcl_excel_worksheet=>mty_ts_outlines_row,
|
||||||
ls_outline_row LIKE LINE OF lt_outline_rows,
|
ls_outline_row LIKE LINE OF lt_outline_rows,
|
||||||
lo_row TYPE REF TO zcl_excel_row,
|
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_offset TYPE i,
|
||||||
lv_row_collapse_flag TYPE i.
|
lv_row_collapse_flag TYPE i.
|
||||||
|
|
||||||
|
@ -2965,6 +2965,74 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
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.
|
METHOD load_worksheet_cond_format.
|
||||||
|
|
||||||
DATA: lo_ixml_cond_formats TYPE REF TO if_ixml_node_collection,
|
DATA: lo_ixml_cond_formats TYPE REF TO if_ixml_node_collection,
|
||||||
|
@ -3696,74 +3764,6 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
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.
|
METHOD load_worksheet_pagemargins.
|
||||||
|
|
||||||
TYPES: BEGIN OF lty_page_margins,
|
TYPES: BEGIN OF lty_page_margins,
|
||||||
|
|
|
@ -25,7 +25,7 @@ CLASS zcl_excel_rows DEFINITION
|
||||||
VALUE(eo_row) TYPE REF TO zcl_excel_row .
|
VALUE(eo_row) TYPE REF TO zcl_excel_row .
|
||||||
METHODS get_iterator
|
METHODS get_iterator
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS is_empty
|
METHODS is_empty
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(is_empty) TYPE flag .
|
VALUE(is_empty) TYPE flag .
|
||||||
|
@ -52,7 +52,7 @@ CLASS zcl_excel_rows DEFINITION
|
||||||
END OF mty_s_hashed_row ,
|
END OF mty_s_hashed_row ,
|
||||||
mty_ts_hashed_row TYPE HASHED TABLE OF mty_s_hashed_row WITH UNIQUE KEY row_index.
|
mty_ts_hashed_row TYPE HASHED TABLE OF mty_s_hashed_row WITH UNIQUE KEY row_index.
|
||||||
|
|
||||||
DATA rows TYPE REF TO cl_object_collection .
|
DATA rows TYPE REF TO zcl_excel_collection .
|
||||||
DATA rows_hashed TYPE mty_ts_hashed_row .
|
DATA rows_hashed TYPE mty_ts_hashed_row .
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
@ -102,6 +102,28 @@ CLASS zcl_excel_rows IMPLEMENTATION.
|
||||||
ENDMETHOD. "GET_ITERATOR
|
ENDMETHOD. "GET_ITERATOR
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_max_index.
|
||||||
|
FIELD-SYMBOLS: <ls_hashed_row> TYPE mty_s_hashed_row.
|
||||||
|
|
||||||
|
LOOP AT rows_hashed ASSIGNING <ls_hashed_row>.
|
||||||
|
IF <ls_hashed_row>-row_index > ep_index.
|
||||||
|
ep_index = <ls_hashed_row>-row_index.
|
||||||
|
ENDIF.
|
||||||
|
ENDLOOP.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD get_min_index.
|
||||||
|
FIELD-SYMBOLS: <ls_hashed_row> TYPE mty_s_hashed_row.
|
||||||
|
|
||||||
|
LOOP AT rows_hashed ASSIGNING <ls_hashed_row>.
|
||||||
|
IF ep_index = 0 OR <ls_hashed_row>-row_index < ep_index.
|
||||||
|
ep_index = <ls_hashed_row>-row_index.
|
||||||
|
ENDIF.
|
||||||
|
ENDLOOP.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD is_empty.
|
METHOD is_empty.
|
||||||
is_empty = rows->is_empty( ).
|
is_empty = rows->is_empty( ).
|
||||||
ENDMETHOD. "IS_EMPTY
|
ENDMETHOD. "IS_EMPTY
|
||||||
|
@ -116,25 +138,4 @@ CLASS zcl_excel_rows IMPLEMENTATION.
|
||||||
METHOD size.
|
METHOD size.
|
||||||
ep_size = rows->size( ).
|
ep_size = rows->size( ).
|
||||||
ENDMETHOD. "SIZE
|
ENDMETHOD. "SIZE
|
||||||
|
|
||||||
METHOD get_min_index.
|
|
||||||
FIELD-SYMBOLS: <ls_hashed_row> TYPE mty_s_hashed_row.
|
|
||||||
|
|
||||||
LOOP AT rows_hashed ASSIGNING <ls_hashed_row>.
|
|
||||||
IF ep_index = 0 OR <ls_hashed_row>-row_index < ep_index.
|
|
||||||
ep_index = <ls_hashed_row>-row_index.
|
|
||||||
ENDIF.
|
|
||||||
ENDLOOP.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD get_max_index.
|
|
||||||
FIELD-SYMBOLS: <ls_hashed_row> TYPE mty_s_hashed_row.
|
|
||||||
|
|
||||||
LOOP AT rows_hashed ASSIGNING <ls_hashed_row>.
|
|
||||||
IF <ls_hashed_row>-row_index > ep_index.
|
|
||||||
ep_index = <ls_hashed_row>-row_index.
|
|
||||||
ENDIF.
|
|
||||||
ENDLOOP.
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -19,7 +19,7 @@ CLASS zcl_excel_styles DEFINITION
|
||||||
VALUE(eo_style) TYPE REF TO zcl_excel_style .
|
VALUE(eo_style) TYPE REF TO zcl_excel_style .
|
||||||
METHODS get_iterator
|
METHODS get_iterator
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS is_empty
|
METHODS is_empty
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(is_empty) TYPE flag .
|
VALUE(is_empty) TYPE flag .
|
||||||
|
@ -43,7 +43,7 @@ CLASS zcl_excel_styles DEFINITION
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
DATA styles TYPE REF TO cl_object_collection .
|
DATA styles TYPE REF TO zcl_excel_collection .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -19,7 +19,7 @@ CLASS zcl_excel_styles_cond DEFINITION
|
||||||
VALUE(eo_style_cond) TYPE REF TO zcl_excel_style_cond .
|
VALUE(eo_style_cond) TYPE REF TO zcl_excel_style_cond .
|
||||||
METHODS get_iterator
|
METHODS get_iterator
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS is_empty
|
METHODS is_empty
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(is_empty) TYPE flag .
|
VALUE(is_empty) TYPE flag .
|
||||||
|
@ -36,7 +36,7 @@ CLASS zcl_excel_styles_cond DEFINITION
|
||||||
*"* do not include other source files here!!!
|
*"* do not include other source files here!!!
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
DATA styles_cond TYPE REF TO cl_object_collection .
|
DATA styles_cond TYPE REF TO zcl_excel_collection .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -50,8 +50,10 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
"! In other words, for a calculated column, a cell in that column is considered to have an error
|
"! In other words, for a calculated column, a cell in that column is considered to have an error
|
||||||
"! if its formula is different from the calculated column formula, or doesn't contain a formula at all.
|
"! if its formula is different from the calculated column formula, or doesn't contain a formula at all.
|
||||||
calculated_column TYPE abap_bool,
|
calculated_column TYPE abap_bool,
|
||||||
END OF mty_s_ignored_errors,
|
END OF mty_s_ignored_errors .
|
||||||
mty_th_ignored_errors TYPE HASHED TABLE OF mty_s_ignored_errors WITH UNIQUE KEY cell_coords,
|
TYPES:
|
||||||
|
mty_th_ignored_errors TYPE HASHED TABLE OF mty_s_ignored_errors WITH UNIQUE KEY cell_coords .
|
||||||
|
TYPES:
|
||||||
BEGIN OF mty_s_column_formula,
|
BEGIN OF mty_s_column_formula,
|
||||||
id TYPE i,
|
id TYPE i,
|
||||||
column TYPE zexcel_cell_column,
|
column TYPE zexcel_cell_column,
|
||||||
|
@ -63,9 +65,10 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
END OF mty_s_column_formula .
|
END OF mty_s_column_formula .
|
||||||
TYPES:
|
TYPES:
|
||||||
mty_th_column_formula
|
mty_th_column_formula
|
||||||
TYPE HASHED TABLE OF mty_s_column_formula
|
TYPE HASHED TABLE OF mty_s_column_formula
|
||||||
WITH UNIQUE KEY id .
|
WITH UNIQUE KEY id .
|
||||||
TYPES ty_doc_url TYPE c LENGTH 255.
|
TYPES:
|
||||||
|
ty_doc_url TYPE c LENGTH 255 .
|
||||||
TYPES:
|
TYPES:
|
||||||
BEGIN OF mty_merge,
|
BEGIN OF mty_merge,
|
||||||
row_from TYPE i,
|
row_from TYPE i,
|
||||||
|
@ -75,30 +78,33 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
END OF mty_merge .
|
END OF mty_merge .
|
||||||
TYPES:
|
TYPES:
|
||||||
mty_ts_merge TYPE SORTED TABLE OF mty_merge WITH UNIQUE KEY table_line .
|
mty_ts_merge TYPE SORTED TABLE OF mty_merge WITH UNIQUE KEY table_line .
|
||||||
TYPES ty_area TYPE c LENGTH 1.
|
TYPES:
|
||||||
|
ty_area TYPE c LENGTH 1 .
|
||||||
|
|
||||||
CONSTANTS c_break_column TYPE zexcel_break VALUE 2. "#EC NOTEXT
|
CONSTANTS c_break_column TYPE zexcel_break VALUE 2 ##NO_TEXT.
|
||||||
CONSTANTS c_break_none TYPE zexcel_break VALUE 0. "#EC NOTEXT
|
CONSTANTS c_break_none TYPE zexcel_break VALUE 0 ##NO_TEXT.
|
||||||
CONSTANTS c_break_row TYPE zexcel_break VALUE 1. "#EC NOTEXT
|
CONSTANTS c_break_row TYPE zexcel_break VALUE 1 ##NO_TEXT.
|
||||||
CONSTANTS: BEGIN OF c_area,
|
CONSTANTS:
|
||||||
whole TYPE ty_area VALUE 'W', "#EC NOTEXT
|
BEGIN OF c_area,
|
||||||
topleft TYPE ty_area VALUE 'T', "#EC NOTEXT
|
whole TYPE ty_area VALUE 'W', "#EC NOTEXT
|
||||||
END OF c_area.
|
topleft TYPE ty_area VALUE 'T', "#EC NOTEXT
|
||||||
|
END OF c_area .
|
||||||
DATA excel TYPE REF TO zcl_excel READ-ONLY .
|
DATA excel TYPE REF TO zcl_excel READ-ONLY .
|
||||||
DATA print_gridlines TYPE zexcel_print_gridlines READ-ONLY VALUE abap_false. "#EC NOTEXT
|
DATA print_gridlines TYPE zexcel_print_gridlines READ-ONLY VALUE abap_false ##NO_TEXT.
|
||||||
DATA sheet_content TYPE zexcel_t_cell_data .
|
DATA sheet_content TYPE zexcel_t_cell_data .
|
||||||
DATA sheet_setup TYPE REF TO zcl_excel_sheet_setup .
|
DATA sheet_setup TYPE REF TO zcl_excel_sheet_setup .
|
||||||
DATA show_gridlines TYPE zexcel_show_gridlines READ-ONLY VALUE abap_true. "#EC NOTEXT
|
DATA show_gridlines TYPE zexcel_show_gridlines READ-ONLY VALUE abap_true ##NO_TEXT.
|
||||||
DATA show_rowcolheaders TYPE zexcel_show_gridlines READ-ONLY VALUE abap_true. "#EC NOTEXT
|
DATA show_rowcolheaders TYPE zexcel_show_gridlines READ-ONLY VALUE abap_true ##NO_TEXT.
|
||||||
DATA styles TYPE zexcel_t_sheet_style .
|
DATA styles TYPE zexcel_t_sheet_style .
|
||||||
DATA tabcolor TYPE zexcel_s_tabcolor READ-ONLY .
|
DATA tabcolor TYPE zexcel_s_tabcolor READ-ONLY .
|
||||||
DATA column_formulas TYPE mty_th_column_formula READ-ONLY .
|
DATA column_formulas TYPE mty_th_column_formula READ-ONLY .
|
||||||
CLASS-DATA: BEGIN OF c_messages READ-ONLY,
|
CLASS-DATA:
|
||||||
formula_id_only_is_possible TYPE string,
|
BEGIN OF c_messages READ-ONLY,
|
||||||
column_formula_id_not_found TYPE string,
|
formula_id_only_is_possible TYPE string,
|
||||||
formula_not_in_this_table TYPE string,
|
column_formula_id_not_found TYPE string,
|
||||||
formula_in_other_column TYPE string,
|
formula_not_in_this_table TYPE string,
|
||||||
END OF c_messages.
|
formula_in_other_column TYPE string,
|
||||||
|
END OF c_messages .
|
||||||
DATA mt_merged_cells TYPE mty_ts_merge READ-ONLY .
|
DATA mt_merged_cells TYPE mty_ts_merge READ-ONLY .
|
||||||
|
|
||||||
METHODS add_comment
|
METHODS add_comment
|
||||||
|
@ -118,7 +124,7 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ip_dimension_range TYPE string DEFAULT 'A1'
|
!ip_dimension_range TYPE string DEFAULT 'A1'
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_style_cond) TYPE REF TO zcl_excel_style_cond.
|
VALUE(eo_style_cond) TYPE REF TO zcl_excel_style_cond .
|
||||||
METHODS add_new_data_validation
|
METHODS add_new_data_validation
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_data_validation) TYPE REF TO zcl_excel_data_validation .
|
VALUE(eo_data_validation) TYPE REF TO zcl_excel_data_validation .
|
||||||
|
@ -184,7 +190,7 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
!ip_row_to TYPE zexcel_cell_row OPTIONAL
|
!ip_row_to TYPE zexcel_cell_row OPTIONAL
|
||||||
!ip_style_changer TYPE REF TO zif_excel_style_changer
|
!ip_style_changer TYPE REF TO zif_excel_style_changer
|
||||||
RAISING
|
RAISING
|
||||||
zcx_excel.
|
zcx_excel .
|
||||||
METHODS change_cell_style
|
METHODS change_cell_style
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ip_column TYPE simple
|
!ip_column TYPE simple
|
||||||
|
@ -298,7 +304,7 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
VALUE(ep_guid) TYPE zexcel_cell_style
|
VALUE(ep_guid) TYPE zexcel_cell_style
|
||||||
RAISING
|
RAISING
|
||||||
zcx_excel .
|
zcx_excel .
|
||||||
CLASS-METHODS class_constructor.
|
CLASS-METHODS class_constructor .
|
||||||
METHODS constructor
|
METHODS constructor
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ip_excel TYPE REF TO zcl_excel
|
!ip_excel TYPE REF TO zcl_excel
|
||||||
|
@ -353,13 +359,13 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
VALUE(eo_columns) TYPE REF TO zcl_excel_columns .
|
VALUE(eo_columns) TYPE REF TO zcl_excel_columns .
|
||||||
METHODS get_columns_iterator
|
METHODS get_columns_iterator
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS get_style_cond_iterator
|
METHODS get_style_cond_iterator
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS get_data_validations_iterator
|
METHODS get_data_validations_iterator
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS get_data_validations_size
|
METHODS get_data_validations_size
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ep_size) TYPE i .
|
VALUE(ep_size) TYPE i .
|
||||||
|
@ -367,7 +373,7 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_column) TYPE REF TO zcl_excel_column
|
VALUE(eo_column) TYPE REF TO zcl_excel_column
|
||||||
RAISING
|
RAISING
|
||||||
zcx_excel.
|
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 .
|
||||||
|
@ -392,12 +398,12 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
VALUE(r_drawings) TYPE REF TO zcl_excel_drawings .
|
VALUE(r_drawings) TYPE REF TO zcl_excel_drawings .
|
||||||
METHODS get_comments_iterator
|
METHODS get_comments_iterator
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS get_drawings_iterator
|
METHODS get_drawings_iterator
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ip_type TYPE zexcel_drawing_type
|
!ip_type TYPE zexcel_drawing_type
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS get_freeze_cell
|
METHODS get_freeze_cell
|
||||||
EXPORTING
|
EXPORTING
|
||||||
!ep_row TYPE zexcel_cell_row
|
!ep_row TYPE zexcel_cell_row
|
||||||
|
@ -417,13 +423,13 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
zcx_excel .
|
zcx_excel .
|
||||||
METHODS get_hyperlinks_iterator
|
METHODS get_hyperlinks_iterator
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS get_hyperlinks_size
|
METHODS get_hyperlinks_size
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ep_size) TYPE i .
|
VALUE(ep_size) TYPE i .
|
||||||
METHODS get_ignored_errors
|
METHODS get_ignored_errors
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rt_ignored_errors) TYPE mty_th_ignored_errors.
|
VALUE(rt_ignored_errors) TYPE mty_th_ignored_errors .
|
||||||
METHODS get_merge
|
METHODS get_merge
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(merge_range) TYPE string_table
|
VALUE(merge_range) TYPE string_table
|
||||||
|
@ -436,7 +442,7 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
zcx_excel .
|
zcx_excel .
|
||||||
METHODS get_ranges_iterator
|
METHODS get_ranges_iterator
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS get_row
|
METHODS get_row
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ip_row TYPE int4
|
!ip_row TYPE int4
|
||||||
|
@ -447,7 +453,7 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
VALUE(eo_rows) TYPE REF TO zcl_excel_rows .
|
VALUE(eo_rows) TYPE REF TO zcl_excel_rows .
|
||||||
METHODS get_rows_iterator
|
METHODS get_rows_iterator
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS get_row_outlines
|
METHODS get_row_outlines
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rt_row_outlines) TYPE mty_ts_outlines_row .
|
VALUE(rt_row_outlines) TYPE mty_ts_outlines_row .
|
||||||
|
@ -461,7 +467,7 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
VALUE(ev_tabcolor) TYPE zexcel_s_tabcolor .
|
VALUE(ev_tabcolor) TYPE zexcel_s_tabcolor .
|
||||||
METHODS get_tables_iterator
|
METHODS get_tables_iterator
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS get_tables_size
|
METHODS get_tables_size
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ep_size) TYPE i .
|
VALUE(ep_size) TYPE i .
|
||||||
|
@ -520,16 +526,16 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
zcx_excel .
|
zcx_excel .
|
||||||
METHODS set_ignored_errors
|
METHODS set_ignored_errors
|
||||||
IMPORTING
|
IMPORTING
|
||||||
it_ignored_errors TYPE mty_th_ignored_errors.
|
!it_ignored_errors TYPE mty_th_ignored_errors .
|
||||||
METHODS set_merge
|
METHODS set_merge
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ip_column_start TYPE simple DEFAULT zcl_excel_common=>c_excel_sheet_min_col
|
!ip_column_start TYPE simple DEFAULT zcl_excel_common=>c_excel_sheet_min_col
|
||||||
!ip_column_end TYPE simple DEFAULT zcl_excel_common=>c_excel_sheet_max_col
|
!ip_column_end TYPE simple DEFAULT zcl_excel_common=>c_excel_sheet_max_col
|
||||||
!ip_row TYPE zexcel_cell_row DEFAULT zcl_excel_common=>c_excel_sheet_min_row
|
!ip_row TYPE zexcel_cell_row DEFAULT zcl_excel_common=>c_excel_sheet_min_row
|
||||||
!ip_row_to TYPE zexcel_cell_row DEFAULT zcl_excel_common=>c_excel_sheet_max_row
|
!ip_row_to TYPE zexcel_cell_row DEFAULT zcl_excel_common=>c_excel_sheet_max_row
|
||||||
!ip_style TYPE zexcel_cell_style OPTIONAL "added parameter
|
!ip_style TYPE zexcel_cell_style OPTIONAL "added parameter
|
||||||
!ip_value TYPE simple OPTIONAL "added parameter
|
!ip_value TYPE simple OPTIONAL "added parameter
|
||||||
!ip_formula TYPE zexcel_cell_formula OPTIONAL "added parameter
|
!ip_formula TYPE zexcel_cell_formula OPTIONAL "added parameter
|
||||||
RAISING
|
RAISING
|
||||||
zcx_excel .
|
zcx_excel .
|
||||||
METHODS set_print_gridlines
|
METHODS set_print_gridlines
|
||||||
|
@ -662,7 +668,7 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
DATA freeze_pane_cell_column TYPE zexcel_cell_column .
|
DATA freeze_pane_cell_column TYPE zexcel_cell_column .
|
||||||
DATA freeze_pane_cell_row TYPE zexcel_cell_row .
|
DATA freeze_pane_cell_row TYPE zexcel_cell_row .
|
||||||
DATA guid TYPE sysuuid_x16 .
|
DATA guid TYPE sysuuid_x16 .
|
||||||
DATA hyperlinks TYPE REF TO cl_object_collection .
|
DATA hyperlinks TYPE REF TO zcl_excel_collection .
|
||||||
DATA lower_cell TYPE zexcel_s_cell_data .
|
DATA lower_cell TYPE zexcel_s_cell_data .
|
||||||
DATA mo_pagebreaks TYPE REF TO zcl_excel_worksheet_pagebreaks .
|
DATA mo_pagebreaks TYPE REF TO zcl_excel_worksheet_pagebreaks .
|
||||||
DATA mt_row_outlines TYPE mty_ts_outlines_row .
|
DATA mt_row_outlines TYPE mty_ts_outlines_row .
|
||||||
|
@ -672,7 +678,7 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
DATA print_title_row_to TYPE zexcel_cell_row .
|
DATA print_title_row_to TYPE zexcel_cell_row .
|
||||||
DATA ranges TYPE REF TO zcl_excel_ranges .
|
DATA ranges TYPE REF TO zcl_excel_ranges .
|
||||||
DATA rows TYPE REF TO zcl_excel_rows .
|
DATA rows TYPE REF TO zcl_excel_rows .
|
||||||
DATA tables TYPE REF TO cl_object_collection .
|
DATA tables TYPE REF TO zcl_excel_collection .
|
||||||
DATA title TYPE zexcel_sheet_title VALUE 'Worksheet'. "#EC NOTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . " .
|
DATA title TYPE zexcel_sheet_title VALUE 'Worksheet'. "#EC NOTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . " .
|
||||||
DATA upper_cell TYPE zexcel_s_cell_data .
|
DATA upper_cell TYPE zexcel_s_cell_data .
|
||||||
DATA mt_ignored_errors TYPE mty_th_ignored_errors.
|
DATA mt_ignored_errors TYPE mty_th_ignored_errors.
|
||||||
|
@ -897,7 +903,7 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
|
||||||
lt_columns TYPE zexcel_t_fieldcatalog,
|
lt_columns TYPE zexcel_t_fieldcatalog,
|
||||||
lv_maxcol TYPE i,
|
lv_maxcol TYPE i,
|
||||||
lv_maxrow TYPE i,
|
lv_maxrow TYPE i,
|
||||||
lo_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_style_cond TYPE REF TO zcl_excel_style_cond,
|
lo_style_cond TYPE REF TO zcl_excel_style_cond,
|
||||||
lo_curtable TYPE REF TO zcl_excel_table.
|
lo_curtable TYPE REF TO zcl_excel_table.
|
||||||
DATA: ls_column_formula TYPE mty_s_column_formula,
|
DATA: ls_column_formula TYPE mty_s_column_formula,
|
||||||
|
@ -1348,7 +1354,7 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
|
||||||
END OF t_auto_size.
|
END OF t_auto_size.
|
||||||
TYPES: tt_auto_size TYPE TABLE OF t_auto_size.
|
TYPES: tt_auto_size TYPE TABLE OF t_auto_size.
|
||||||
|
|
||||||
DATA: lo_column_iterator TYPE REF TO cl_object_collection_iterator,
|
DATA: lo_column_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_column TYPE REF TO zcl_excel_column.
|
lo_column TYPE REF TO zcl_excel_column.
|
||||||
|
|
||||||
DATA: auto_size TYPE flag.
|
DATA: auto_size TYPE flag.
|
||||||
|
@ -1855,7 +1861,7 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
|
||||||
METHOD check_rtf.
|
METHOD check_rtf.
|
||||||
|
|
||||||
DATA: lo_style TYPE REF TO zcl_excel_style,
|
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,
|
||||||
lv_next_rtf_offset TYPE i,
|
lv_next_rtf_offset TYPE i,
|
||||||
lv_tabix TYPE i,
|
lv_tabix TYPE i,
|
||||||
lv_value TYPE string,
|
lv_value TYPE string,
|
||||||
|
@ -2045,7 +2051,7 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD generate_title.
|
METHOD generate_title.
|
||||||
DATA: lo_worksheets_iterator TYPE REF TO cl_object_collection_iterator,
|
DATA: lo_worksheets_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_worksheet TYPE REF TO zcl_excel_worksheet.
|
lo_worksheet TYPE REF TO zcl_excel_worksheet.
|
||||||
|
|
||||||
DATA: t_titles TYPE HASHED TABLE OF zexcel_sheet_title WITH UNIQUE KEY table_line,
|
DATA: t_titles TYPE HASHED TABLE OF zexcel_sheet_title WITH UNIQUE KEY table_line,
|
||||||
|
@ -2110,7 +2116,7 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
" Addition to solve issue #120, contribution by Stefan Schmöcker
|
" Addition to solve issue #120, contribution by Stefan Schmöcker
|
||||||
DATA: style_iterator TYPE REF TO cl_object_collection_iterator,
|
DATA: style_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
style TYPE REF TO zcl_excel_style.
|
style TYPE REF TO zcl_excel_style.
|
||||||
IF ep_style IS SUPPLIED.
|
IF ep_style IS SUPPLIED.
|
||||||
CLEAR ep_style.
|
CLEAR ep_style.
|
||||||
|
@ -2171,7 +2177,7 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD get_comments.
|
METHOD get_comments.
|
||||||
DATA: lo_comment TYPE REF TO zcl_excel_comment,
|
DATA: lo_comment TYPE REF TO zcl_excel_comment,
|
||||||
lo_iterator TYPE REF TO cl_object_collection_iterator.
|
lo_iterator TYPE REF TO zcl_excel_collection_iterator.
|
||||||
|
|
||||||
CREATE OBJECT r_comments.
|
CREATE OBJECT r_comments.
|
||||||
|
|
||||||
|
@ -2304,7 +2310,7 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
|
||||||
METHOD get_drawings.
|
METHOD get_drawings.
|
||||||
|
|
||||||
DATA: lo_drawing TYPE REF TO zcl_excel_drawing,
|
DATA: lo_drawing TYPE REF TO zcl_excel_drawing,
|
||||||
lo_iterator TYPE REF TO cl_object_collection_iterator.
|
lo_iterator TYPE REF TO zcl_excel_collection_iterator.
|
||||||
|
|
||||||
CASE ip_type.
|
CASE ip_type.
|
||||||
WHEN zcl_excel_drawing=>type_image.
|
WHEN zcl_excel_drawing=>type_image.
|
||||||
|
@ -2558,7 +2564,7 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD get_style_cond.
|
METHOD get_style_cond.
|
||||||
|
|
||||||
DATA: lo_style_iterator TYPE REF TO cl_object_collection_iterator,
|
DATA: lo_style_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_style_cond TYPE REF TO zcl_excel_style_cond.
|
lo_style_cond TYPE REF TO zcl_excel_style_cond.
|
||||||
|
|
||||||
lo_style_iterator = me->get_style_cond_iterator( ).
|
lo_style_iterator = me->get_style_cond_iterator( ).
|
||||||
|
@ -2882,7 +2888,7 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
|
||||||
*--------------------------------------------------------------------*
|
*--------------------------------------------------------------------*
|
||||||
|
|
||||||
|
|
||||||
DATA: lo_range_iterator TYPE REF TO cl_object_collection_iterator,
|
DATA: lo_range_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_range TYPE REF TO zcl_excel_range,
|
lo_range TYPE REF TO zcl_excel_range,
|
||||||
lv_repeat_range_sheetname TYPE string,
|
lv_repeat_range_sheetname TYPE string,
|
||||||
lv_repeat_range_col TYPE string,
|
lv_repeat_range_col TYPE string,
|
||||||
|
@ -3874,12 +3880,12 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
|
||||||
* - Stefan Schmoecker, 2012-12-02
|
* - Stefan Schmoecker, 2012-12-02
|
||||||
* changes: added additional check for ' as first character
|
* changes: added additional check for ' as first character
|
||||||
*--------------------------------------------------------------------*
|
*--------------------------------------------------------------------*
|
||||||
DATA: lo_worksheets_iterator TYPE REF TO cl_object_collection_iterator,
|
DATA: lo_worksheets_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
||||||
errormessage TYPE string,
|
errormessage TYPE string,
|
||||||
lv_rangesheetname_old TYPE string,
|
lv_rangesheetname_old TYPE string,
|
||||||
lv_rangesheetname_new TYPE string,
|
lv_rangesheetname_new TYPE string,
|
||||||
lo_ranges_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_ranges_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_range TYPE REF TO zcl_excel_range,
|
lo_range TYPE REF TO zcl_excel_range,
|
||||||
lv_range_value TYPE zexcel_range_value,
|
lv_range_value TYPE zexcel_range_value,
|
||||||
lv_errormessage TYPE string. " Can't pass '...'(abc) to exception-class
|
lv_errormessage TYPE string. " Can't pass '...'(abc) to exception-class
|
||||||
|
|
|
@ -22,7 +22,7 @@ CLASS zcl_excel_worksheets DEFINITION
|
||||||
VALUE(eo_worksheet) TYPE REF TO zcl_excel_worksheet .
|
VALUE(eo_worksheet) TYPE REF TO zcl_excel_worksheet .
|
||||||
METHODS get_iterator
|
METHODS get_iterator
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(eo_iterator) TYPE REF TO cl_object_collection_iterator .
|
VALUE(eo_iterator) TYPE REF TO zcl_excel_collection_iterator .
|
||||||
METHODS is_empty
|
METHODS is_empty
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(is_empty) TYPE flag .
|
VALUE(is_empty) TYPE flag .
|
||||||
|
@ -39,7 +39,7 @@ CLASS zcl_excel_worksheets DEFINITION
|
||||||
*"* do not include other source files here!!!
|
*"* do not include other source files here!!!
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
DATA worksheets TYPE REF TO cl_object_collection .
|
DATA worksheets TYPE REF TO zcl_excel_collection .
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -267,10 +267,6 @@ ENDCLASS.
|
||||||
|
|
||||||
CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD constructor.
|
|
||||||
me->ixml = cl_ixml=>create( ).
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD add_1_val_child_node.
|
METHOD add_1_val_child_node.
|
||||||
|
|
||||||
|
@ -292,6 +288,11 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD constructor.
|
||||||
|
me->ixml = cl_ixml=>create( ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD create.
|
METHOD create.
|
||||||
|
|
||||||
* Office 2007 file format is a cab of several xml files with extension .xlsx
|
* Office 2007 file format is a cab of several xml files with extension .xlsx
|
||||||
|
@ -299,8 +300,8 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
DATA: lo_zip TYPE REF TO cl_abap_zip,
|
DATA: lo_zip TYPE REF TO cl_abap_zip,
|
||||||
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
||||||
lo_active_worksheet TYPE REF TO zcl_excel_worksheet,
|
lo_active_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,
|
||||||
lo_nested_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_nested_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_table TYPE REF TO zcl_excel_table,
|
lo_table TYPE REF TO zcl_excel_table,
|
||||||
lo_drawing TYPE REF TO zcl_excel_drawing,
|
lo_drawing TYPE REF TO zcl_excel_drawing,
|
||||||
lo_drawings TYPE REF TO zcl_excel_drawings,
|
lo_drawings TYPE REF TO zcl_excel_drawings,
|
||||||
|
@ -602,8 +603,8 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
lo_element_root TYPE REF TO if_ixml_element,
|
lo_element_root TYPE REF TO if_ixml_element,
|
||||||
lo_element TYPE REF TO if_ixml_element,
|
lo_element TYPE REF TO if_ixml_element,
|
||||||
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
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,
|
||||||
lo_nested_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_nested_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_table TYPE REF TO zcl_excel_table.
|
lo_table TYPE REF TO zcl_excel_table.
|
||||||
|
|
||||||
DATA: lv_worksheets_num TYPE i,
|
DATA: lv_worksheets_num TYPE i,
|
||||||
|
@ -884,7 +885,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
lo_sub_element_variant TYPE REF TO if_ixml_element,
|
lo_sub_element_variant TYPE REF TO if_ixml_element,
|
||||||
lo_sub_element_lpstr TYPE REF TO if_ixml_element,
|
lo_sub_element_lpstr TYPE REF TO if_ixml_element,
|
||||||
lo_sub_element_i4 TYPE REF TO if_ixml_element,
|
lo_sub_element_i4 TYPE REF TO if_ixml_element,
|
||||||
lo_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_worksheet TYPE REF TO zcl_excel_worksheet.
|
lo_worksheet TYPE REF TO zcl_excel_worksheet.
|
||||||
|
|
||||||
DATA: lv_value TYPE string.
|
DATA: lv_value TYPE string.
|
||||||
|
@ -2347,7 +2348,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
* lo_element_charset TYPE REF TO if_ixml_element,
|
* lo_element_charset TYPE REF TO if_ixml_element,
|
||||||
lo_element_family TYPE REF TO if_ixml_element,
|
lo_element_family TYPE REF TO if_ixml_element,
|
||||||
lo_element_t TYPE REF TO if_ixml_element,
|
lo_element_t TYPE REF TO if_ixml_element,
|
||||||
lo_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_comments TYPE REF TO zcl_excel_comments,
|
lo_comments TYPE REF TO zcl_excel_comments,
|
||||||
lo_comment TYPE REF TO zcl_excel_comment.
|
lo_comment TYPE REF TO zcl_excel_comment.
|
||||||
DATA: lv_rel_id TYPE i,
|
DATA: lv_rel_id TYPE i,
|
||||||
|
@ -2448,7 +2449,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
DATA: lo_document TYPE REF TO if_ixml_document,
|
DATA: lo_document TYPE REF TO if_ixml_document,
|
||||||
lo_element_root TYPE REF TO if_ixml_element,
|
lo_element_root TYPE REF TO if_ixml_element,
|
||||||
lo_element_cellanchor TYPE REF TO if_ixml_element,
|
lo_element_cellanchor TYPE REF TO if_ixml_element,
|
||||||
lo_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_drawings TYPE REF TO zcl_excel_drawings,
|
lo_drawings TYPE REF TO zcl_excel_drawings,
|
||||||
lo_drawing TYPE REF TO zcl_excel_drawing.
|
lo_drawing TYPE REF TO zcl_excel_drawing.
|
||||||
DATA: lv_rel_id TYPE i.
|
DATA: lv_rel_id TYPE i.
|
||||||
|
@ -2510,8 +2511,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
lc_xml_node_rid_image_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',
|
lc_xml_node_rid_image_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',
|
||||||
lc_xml_node_rid_chart_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart'.
|
lc_xml_node_rid_chart_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart'.
|
||||||
|
|
||||||
DATA: lo_iterator TYPE REF TO cl_object_collection_iterator,
|
DATA: lo_drawing TYPE REF TO zcl_excel_drawing,
|
||||||
lo_drawing TYPE REF TO zcl_excel_drawing,
|
|
||||||
lo_document TYPE REF TO if_ixml_document,
|
lo_document TYPE REF TO if_ixml_document,
|
||||||
lo_element_root TYPE REF TO if_ixml_element,
|
lo_element_root TYPE REF TO if_ixml_element,
|
||||||
lo_element TYPE REF TO if_ixml_element,
|
lo_element TYPE REF TO if_ixml_element,
|
||||||
|
@ -2595,7 +2595,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
DATA: lo_document TYPE REF TO if_ixml_document,
|
DATA: lo_document TYPE REF TO if_ixml_document,
|
||||||
lo_element_root TYPE REF TO if_ixml_element,
|
lo_element_root TYPE REF TO if_ixml_element,
|
||||||
lo_element TYPE REF TO if_ixml_element,
|
lo_element TYPE REF TO if_ixml_element,
|
||||||
lo_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_drawings TYPE REF TO zcl_excel_drawings,
|
lo_drawings TYPE REF TO zcl_excel_drawings,
|
||||||
lo_drawing TYPE REF TO zcl_excel_drawing.
|
lo_drawing TYPE REF TO zcl_excel_drawing.
|
||||||
|
|
||||||
|
@ -2714,7 +2714,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
lc_xml_node_rid_image_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',
|
lc_xml_node_rid_image_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',
|
||||||
lc_xml_node_rid_chart_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart'.
|
lc_xml_node_rid_chart_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart'.
|
||||||
|
|
||||||
DATA: lo_iterator TYPE REF TO cl_object_collection_iterator,
|
DATA: lo_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_drawing TYPE REF TO zcl_excel_drawing,
|
lo_drawing TYPE REF TO zcl_excel_drawing,
|
||||||
lo_document TYPE REF TO if_ixml_document,
|
lo_document TYPE REF TO if_ixml_document,
|
||||||
lo_element_root TYPE REF TO if_ixml_element,
|
lo_element_root TYPE REF TO if_ixml_element,
|
||||||
|
@ -3156,7 +3156,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
lo_element_autofill TYPE REF TO if_ixml_element,
|
lo_element_autofill TYPE REF TO if_ixml_element,
|
||||||
lo_element_row TYPE REF TO if_ixml_element,
|
lo_element_row TYPE REF TO if_ixml_element,
|
||||||
lo_element_column TYPE REF TO if_ixml_element,
|
lo_element_column TYPE REF TO if_ixml_element,
|
||||||
lo_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_comments TYPE REF TO zcl_excel_comments,
|
lo_comments TYPE REF TO zcl_excel_comments,
|
||||||
lo_comment TYPE REF TO zcl_excel_comment,
|
lo_comment TYPE REF TO zcl_excel_comment,
|
||||||
lv_row TYPE zexcel_cell_row,
|
lv_row TYPE zexcel_cell_row,
|
||||||
|
@ -3560,7 +3560,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
lo_sub_element TYPE REF TO if_ixml_element,
|
lo_sub_element TYPE REF TO if_ixml_element,
|
||||||
lo_sub2_element TYPE REF TO if_ixml_element,
|
lo_sub2_element TYPE REF TO if_ixml_element,
|
||||||
lo_font_element TYPE REF TO if_ixml_element,
|
lo_font_element TYPE REF TO if_ixml_element,
|
||||||
lo_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_worksheet TYPE REF TO zcl_excel_worksheet.
|
lo_worksheet TYPE REF TO zcl_excel_worksheet.
|
||||||
|
|
||||||
DATA: lt_cell_data TYPE zexcel_t_cell_data_unsorted,
|
DATA: lt_cell_data TYPE zexcel_t_cell_data_unsorted,
|
||||||
|
@ -3893,7 +3893,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
lo_element_2 TYPE REF TO if_ixml_element,
|
lo_element_2 TYPE REF TO if_ixml_element,
|
||||||
lo_element_3 TYPE REF TO if_ixml_element,
|
lo_element_3 TYPE REF TO if_ixml_element,
|
||||||
lo_element_4 TYPE REF TO if_ixml_element,
|
lo_element_4 TYPE REF TO if_ixml_element,
|
||||||
lo_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_style_cond TYPE REF TO zcl_excel_style_cond,
|
lo_style_cond TYPE REF TO zcl_excel_style_cond,
|
||||||
lo_data_validation TYPE REF TO zcl_excel_data_validation,
|
lo_data_validation TYPE REF TO zcl_excel_data_validation,
|
||||||
lo_table TYPE REF TO zcl_excel_table,
|
lo_table TYPE REF TO zcl_excel_table,
|
||||||
|
@ -3924,9 +3924,9 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
lv_freeze_cell_row TYPE zexcel_cell_row,
|
lv_freeze_cell_row TYPE zexcel_cell_row,
|
||||||
lv_freeze_cell_column TYPE zexcel_cell_column,
|
lv_freeze_cell_column TYPE zexcel_cell_column,
|
||||||
lv_freeze_cell_column_alpha TYPE zexcel_cell_column_alpha,
|
lv_freeze_cell_column_alpha TYPE zexcel_cell_column_alpha,
|
||||||
lo_column_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_column_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_column TYPE REF TO zcl_excel_column,
|
lo_column TYPE REF TO zcl_excel_column,
|
||||||
lo_row_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_row_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
ls_style_cond_mapping TYPE zexcel_s_styles_cond_mapping,
|
ls_style_cond_mapping TYPE zexcel_s_styles_cond_mapping,
|
||||||
lv_relation_id TYPE i VALUE 0,
|
lv_relation_id TYPE i VALUE 0,
|
||||||
outline_level_col TYPE i VALUE 0,
|
outline_level_col TYPE i VALUE 0,
|
||||||
|
@ -5476,73 +5476,6 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD create_xl_sheet_ignored_errors.
|
|
||||||
DATA: lo_element TYPE REF TO if_ixml_element,
|
|
||||||
lo_element2 TYPE REF TO if_ixml_element,
|
|
||||||
lt_ignored_errors TYPE zcl_excel_worksheet=>mty_th_ignored_errors.
|
|
||||||
FIELD-SYMBOLS: <ls_ignored_errors> TYPE zcl_excel_worksheet=>mty_s_ignored_errors.
|
|
||||||
|
|
||||||
lt_ignored_errors = io_worksheet->get_ignored_errors( ).
|
|
||||||
|
|
||||||
IF lt_ignored_errors IS NOT INITIAL.
|
|
||||||
lo_element = io_document->create_simple_element( name = 'ignoredErrors'
|
|
||||||
parent = io_document ).
|
|
||||||
|
|
||||||
|
|
||||||
LOOP AT lt_ignored_errors ASSIGNING <ls_ignored_errors>.
|
|
||||||
|
|
||||||
lo_element2 = io_document->create_simple_element( name = 'ignoredError'
|
|
||||||
parent = io_document ).
|
|
||||||
|
|
||||||
lo_element2->set_attribute_ns( name = 'sqref'
|
|
||||||
value = <ls_ignored_errors>-cell_coords ).
|
|
||||||
|
|
||||||
IF <ls_ignored_errors>-eval_error = abap_true.
|
|
||||||
lo_element2->set_attribute_ns( name = 'evalError'
|
|
||||||
value = '1' ).
|
|
||||||
ENDIF.
|
|
||||||
IF <ls_ignored_errors>-two_digit_text_year = abap_true.
|
|
||||||
lo_element2->set_attribute_ns( name = 'twoDigitTextYear'
|
|
||||||
value = '1' ).
|
|
||||||
ENDIF.
|
|
||||||
IF <ls_ignored_errors>-number_stored_as_text = abap_true.
|
|
||||||
lo_element2->set_attribute_ns( name = 'numberStoredAsText'
|
|
||||||
value = '1' ).
|
|
||||||
ENDIF.
|
|
||||||
IF <ls_ignored_errors>-formula = abap_true.
|
|
||||||
lo_element2->set_attribute_ns( name = 'formula'
|
|
||||||
value = '1' ).
|
|
||||||
ENDIF.
|
|
||||||
IF <ls_ignored_errors>-formula_range = abap_true.
|
|
||||||
lo_element2->set_attribute_ns( name = 'formulaRange'
|
|
||||||
value = '1' ).
|
|
||||||
ENDIF.
|
|
||||||
IF <ls_ignored_errors>-unlocked_formula = abap_true.
|
|
||||||
lo_element2->set_attribute_ns( name = 'unlockedFormula'
|
|
||||||
value = '1' ).
|
|
||||||
ENDIF.
|
|
||||||
IF <ls_ignored_errors>-empty_cell_reference = abap_true.
|
|
||||||
lo_element2->set_attribute_ns( name = 'emptyCellReference'
|
|
||||||
value = '1' ).
|
|
||||||
ENDIF.
|
|
||||||
IF <ls_ignored_errors>-list_data_validation = abap_true.
|
|
||||||
lo_element2->set_attribute_ns( name = 'listDataValidation'
|
|
||||||
value = '1' ).
|
|
||||||
ENDIF.
|
|
||||||
IF <ls_ignored_errors>-calculated_column = abap_true.
|
|
||||||
lo_element2->set_attribute_ns( name = 'calculatedColumn'
|
|
||||||
value = '1' ).
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
lo_element->append_child( lo_element2 ).
|
|
||||||
|
|
||||||
ENDLOOP.
|
|
||||||
|
|
||||||
io_element_root->append_child( lo_element ).
|
|
||||||
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
METHOD create_xl_sheet_column_formula.
|
METHOD create_xl_sheet_column_formula.
|
||||||
|
|
||||||
TYPES: ls_column_formula_used TYPE mty_column_formula_used,
|
TYPES: ls_column_formula_used TYPE mty_column_formula_used,
|
||||||
|
@ -5620,6 +5553,75 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD create_xl_sheet_ignored_errors.
|
||||||
|
DATA: lo_element TYPE REF TO if_ixml_element,
|
||||||
|
lo_element2 TYPE REF TO if_ixml_element,
|
||||||
|
lt_ignored_errors TYPE zcl_excel_worksheet=>mty_th_ignored_errors.
|
||||||
|
FIELD-SYMBOLS: <ls_ignored_errors> TYPE zcl_excel_worksheet=>mty_s_ignored_errors.
|
||||||
|
|
||||||
|
lt_ignored_errors = io_worksheet->get_ignored_errors( ).
|
||||||
|
|
||||||
|
IF lt_ignored_errors IS NOT INITIAL.
|
||||||
|
lo_element = io_document->create_simple_element( name = 'ignoredErrors'
|
||||||
|
parent = io_document ).
|
||||||
|
|
||||||
|
|
||||||
|
LOOP AT lt_ignored_errors ASSIGNING <ls_ignored_errors>.
|
||||||
|
|
||||||
|
lo_element2 = io_document->create_simple_element( name = 'ignoredError'
|
||||||
|
parent = io_document ).
|
||||||
|
|
||||||
|
lo_element2->set_attribute_ns( name = 'sqref'
|
||||||
|
value = <ls_ignored_errors>-cell_coords ).
|
||||||
|
|
||||||
|
IF <ls_ignored_errors>-eval_error = abap_true.
|
||||||
|
lo_element2->set_attribute_ns( name = 'evalError'
|
||||||
|
value = '1' ).
|
||||||
|
ENDIF.
|
||||||
|
IF <ls_ignored_errors>-two_digit_text_year = abap_true.
|
||||||
|
lo_element2->set_attribute_ns( name = 'twoDigitTextYear'
|
||||||
|
value = '1' ).
|
||||||
|
ENDIF.
|
||||||
|
IF <ls_ignored_errors>-number_stored_as_text = abap_true.
|
||||||
|
lo_element2->set_attribute_ns( name = 'numberStoredAsText'
|
||||||
|
value = '1' ).
|
||||||
|
ENDIF.
|
||||||
|
IF <ls_ignored_errors>-formula = abap_true.
|
||||||
|
lo_element2->set_attribute_ns( name = 'formula'
|
||||||
|
value = '1' ).
|
||||||
|
ENDIF.
|
||||||
|
IF <ls_ignored_errors>-formula_range = abap_true.
|
||||||
|
lo_element2->set_attribute_ns( name = 'formulaRange'
|
||||||
|
value = '1' ).
|
||||||
|
ENDIF.
|
||||||
|
IF <ls_ignored_errors>-unlocked_formula = abap_true.
|
||||||
|
lo_element2->set_attribute_ns( name = 'unlockedFormula'
|
||||||
|
value = '1' ).
|
||||||
|
ENDIF.
|
||||||
|
IF <ls_ignored_errors>-empty_cell_reference = abap_true.
|
||||||
|
lo_element2->set_attribute_ns( name = 'emptyCellReference'
|
||||||
|
value = '1' ).
|
||||||
|
ENDIF.
|
||||||
|
IF <ls_ignored_errors>-list_data_validation = abap_true.
|
||||||
|
lo_element2->set_attribute_ns( name = 'listDataValidation'
|
||||||
|
value = '1' ).
|
||||||
|
ENDIF.
|
||||||
|
IF <ls_ignored_errors>-calculated_column = abap_true.
|
||||||
|
lo_element2->set_attribute_ns( name = 'calculatedColumn'
|
||||||
|
value = '1' ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
lo_element->append_child( lo_element2 ).
|
||||||
|
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
io_element_root->append_child( lo_element ).
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD create_xl_sheet_pagebreaks.
|
METHOD create_xl_sheet_pagebreaks.
|
||||||
DATA: lo_pagebreaks TYPE REF TO zcl_excel_worksheet_pagebreaks,
|
DATA: lo_pagebreaks TYPE REF TO zcl_excel_worksheet_pagebreaks,
|
||||||
lt_pagebreaks TYPE zcl_excel_worksheet_pagebreaks=>tt_pagebreak_at,
|
lt_pagebreaks TYPE zcl_excel_worksheet_pagebreaks=>tt_pagebreak_at,
|
||||||
|
@ -5722,7 +5724,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
DATA: lo_document TYPE REF TO if_ixml_document,
|
DATA: lo_document TYPE REF TO if_ixml_document,
|
||||||
lo_element_root TYPE REF TO if_ixml_element,
|
lo_element_root TYPE REF TO if_ixml_element,
|
||||||
lo_element TYPE REF TO if_ixml_element,
|
lo_element TYPE REF TO if_ixml_element,
|
||||||
lo_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_table TYPE REF TO zcl_excel_table,
|
lo_table TYPE REF TO zcl_excel_table,
|
||||||
lo_link TYPE REF TO zcl_excel_hyperlink.
|
lo_link TYPE REF TO zcl_excel_hyperlink.
|
||||||
|
|
||||||
|
@ -5967,7 +5969,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
ls_values TYPE zexcel_s_autofilter_values,
|
ls_values TYPE zexcel_s_autofilter_values,
|
||||||
ls_area TYPE zexcel_s_autofilter_area,
|
ls_area TYPE zexcel_s_autofilter_area,
|
||||||
|
|
||||||
lo_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_table TYPE REF TO zcl_excel_table,
|
lo_table TYPE REF TO zcl_excel_table,
|
||||||
lt_table_areas TYPE SORTED TABLE OF lty_table_area WITH NON-UNIQUE KEY left right top bottom,
|
lt_table_areas TYPE SORTED TABLE OF lty_table_area WITH NON-UNIQUE KEY left right top bottom,
|
||||||
ls_table_area LIKE LINE OF lt_table_areas,
|
ls_table_area LIKE LINE OF lt_table_areas,
|
||||||
|
@ -5980,7 +5982,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
lv_last_row TYPE i,
|
lv_last_row TYPE i,
|
||||||
|
|
||||||
* lts_row_dimensions TYPE zexcel_t_worksheet_rowdimensio,
|
* lts_row_dimensions TYPE zexcel_t_worksheet_rowdimensio,
|
||||||
lo_row_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_row_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_row TYPE REF TO zcl_excel_row,
|
lo_row TYPE REF TO zcl_excel_row,
|
||||||
lo_row_empty TYPE REF TO zcl_excel_row,
|
lo_row_empty TYPE REF TO zcl_excel_row,
|
||||||
lts_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row,
|
lts_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row,
|
||||||
|
@ -6435,8 +6437,8 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
lo_element TYPE REF TO if_ixml_element,
|
lo_element TYPE REF TO if_ixml_element,
|
||||||
lo_sub_element TYPE REF TO if_ixml_element,
|
lo_sub_element TYPE REF TO if_ixml_element,
|
||||||
lo_sub_element_2 TYPE REF TO if_ixml_element,
|
lo_sub_element_2 TYPE REF TO if_ixml_element,
|
||||||
lo_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_iterator2 TYPE REF TO cl_object_collection_iterator,
|
lo_iterator2 TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
||||||
lo_style_cond TYPE REF TO zcl_excel_style_cond,
|
lo_style_cond TYPE REF TO zcl_excel_style_cond,
|
||||||
lo_style TYPE REF TO zcl_excel_style.
|
lo_style TYPE REF TO zcl_excel_style.
|
||||||
|
@ -7641,8 +7643,8 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
lo_element TYPE REF TO if_ixml_element,
|
lo_element TYPE REF TO if_ixml_element,
|
||||||
lo_element_range TYPE REF TO if_ixml_element,
|
lo_element_range TYPE REF TO if_ixml_element,
|
||||||
lo_sub_element TYPE REF TO if_ixml_element,
|
lo_sub_element TYPE REF TO if_ixml_element,
|
||||||
lo_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_iterator_range TYPE REF TO cl_object_collection_iterator,
|
lo_iterator_range TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
||||||
lo_range TYPE REF TO zcl_excel_range,
|
lo_range TYPE REF TO zcl_excel_range,
|
||||||
lo_autofilters TYPE REF TO zcl_excel_autofilters,
|
lo_autofilters TYPE REF TO zcl_excel_autofilters,
|
||||||
|
@ -7889,6 +7891,16 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD create_xml_document.
|
||||||
|
DATA lo_encoding TYPE REF TO if_ixml_encoding.
|
||||||
|
lo_encoding = me->ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian
|
||||||
|
character_set = 'utf-8' ).
|
||||||
|
ro_document = me->ixml->create_document( ).
|
||||||
|
ro_document->set_encoding( lo_encoding ).
|
||||||
|
ro_document->set_standalone( abap_true ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD flag2bool.
|
METHOD flag2bool.
|
||||||
|
|
||||||
|
|
||||||
|
@ -7920,6 +7932,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD is_formula_shareable.
|
METHOD is_formula_shareable.
|
||||||
DATA: lv_test_shared TYPE string.
|
DATA: lv_test_shared TYPE string.
|
||||||
|
|
||||||
|
@ -7935,6 +7948,74 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD render_xml_document.
|
||||||
|
DATA lo_streamfactory TYPE REF TO if_ixml_stream_factory.
|
||||||
|
DATA lo_ostream TYPE REF TO if_ixml_ostream.
|
||||||
|
DATA lo_renderer TYPE REF TO if_ixml_renderer.
|
||||||
|
DATA lv_string TYPE string.
|
||||||
|
|
||||||
|
" So that the rendering of io_document to a XML text in UTF-8 XSTRING works for all Unicode characters (Chinese,
|
||||||
|
" emoticons, etc.) the method CREATE_OSTREAM_CSTRING must be used instead of CREATE_OSTREAM_XSTRING as explained
|
||||||
|
" in note 2922674 below (original there: https://launchpad.support.sap.com/#/notes/2922674), and then the STRING
|
||||||
|
" variable can be converted into UTF-8.
|
||||||
|
"
|
||||||
|
" Excerpt from Note 2922674 - Support for Unicode Characters U+10000 to U+10FFFF in the iXML kernel library / ABAP package SIXML.
|
||||||
|
"
|
||||||
|
" You are running a unicode system with SAP Netweaver / SAP_BASIS release equal or lower than 7.51.
|
||||||
|
"
|
||||||
|
" Some functions in the iXML kernel library / ABAP package SIXML does not fully or incorrectly support unicode
|
||||||
|
" characters of the supplementary planes. This is caused by using UCS-2 in codepage conversion functions.
|
||||||
|
" Therefore, when reading from iXML input steams, the characters from the supplementary planes, that are not
|
||||||
|
" supported by UCS-2, might be replaced by the character #. When writing to iXML output streams, UTF-16 surrogate
|
||||||
|
" pairs, representing characters from the supplementary planes, might be incorrectly encoded in UTF-8.
|
||||||
|
"
|
||||||
|
" The characters incorrectly encoded in UTF-8, might be accepted as input for the iXML parser or external parsers,
|
||||||
|
" but might also be rejected.
|
||||||
|
"
|
||||||
|
" Support for unicode characters of the supplementary planes was introduced for SAP_BASIS 7.51 or lower with note
|
||||||
|
" 2220720, but later withdrawn with note 2346627 for functional issues.
|
||||||
|
"
|
||||||
|
" Characters of the supplementary planes are supported with ABAP Platform 1709 / SAP_BASIS 7.52 and higher.
|
||||||
|
"
|
||||||
|
" Please note, that the iXML runtime behaves like the ABAP runtime concerning the handling of unicode characters of
|
||||||
|
" the supplementary planes. In iXML and ABAP, these characters have length 2 (as returned by ABAP build-in function
|
||||||
|
" STRLEN), and string processing functions like SUBSTRING might split these characters into 2 invalid characters
|
||||||
|
" with length 1. These invalid characters are commonly referred to as broken surrogate pairs.
|
||||||
|
"
|
||||||
|
" A workaround for the incorrect UTF-8 encoding in SAP_BASIS 7.51 or lower is to render the document to an ABAP
|
||||||
|
" variable with type STRING using a output stream created with factory method IF_IXML_STREAM_FACTORY=>CREATE_OSTREAM_CSTRING
|
||||||
|
" and then to convert the STRING variable to UTF-8 using method CL_ABAP_CODEPAGE=>CONVERT_TO.
|
||||||
|
|
||||||
|
" 1) RENDER TO XML STRING
|
||||||
|
lo_streamfactory = me->ixml->create_stream_factory( ).
|
||||||
|
lo_ostream = lo_streamfactory->create_ostream_cstring( string = lv_string ).
|
||||||
|
lo_renderer = me->ixml->create_renderer( ostream = lo_ostream document = io_document ).
|
||||||
|
lo_renderer->render( ).
|
||||||
|
|
||||||
|
" 2) CONVERT IT TO UTF-8
|
||||||
|
"-----------------
|
||||||
|
" The beginning of the XML string has these 57 characters:
|
||||||
|
" X<?xml version="1.0" encoding="utf-16" standalone="yes"?>
|
||||||
|
" (where "X" is the special character corresponding to the utf-16 BOM, hexadecimal FFFE or FEFF,
|
||||||
|
" but there's no "X" in non-Unicode SAP systems)
|
||||||
|
" The encoding must be removed otherwise Excel would fail to decode correctly the UTF-8 XML.
|
||||||
|
" For a better performance, it's assumed that "encoding" is in the first 100 characters.
|
||||||
|
IF strlen( lv_string ) < 100.
|
||||||
|
REPLACE REGEX 'encoding="[^"]+"' IN lv_string WITH ``.
|
||||||
|
ELSE.
|
||||||
|
REPLACE REGEX 'encoding="[^"]+"' IN SECTION LENGTH 100 OF lv_string WITH ``.
|
||||||
|
ENDIF.
|
||||||
|
" Convert XML text to UTF-8 (NB: if 2 first bytes are the UTF-16 BOM, they are converted into 3 bytes of UTF-8 BOM)
|
||||||
|
ep_content = cl_abap_codepage=>convert_to( source = lv_string ).
|
||||||
|
" Add the UTF-8 Byte Order Mark if missing (NB: that serves as substitute of "encoding")
|
||||||
|
IF xstrlen( ep_content ) >= 3 AND ep_content(3) <> cl_abap_char_utilities=>byte_order_mark_utf8.
|
||||||
|
CONCATENATE cl_abap_char_utilities=>byte_order_mark_utf8 ep_content INTO ep_content IN BYTE MODE.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD set_vml_shape_footer.
|
METHOD set_vml_shape_footer.
|
||||||
|
|
||||||
CONSTANTS: lc_shape TYPE string VALUE '<v:shape id="{ID}" o:spid="_x0000_s1025" type="#_x0000_t75" style=''position:absolute;margin-left:0;margin-top:0;width:{WIDTH}pt;height:{HEIGHT}pt; z-index:1''>',
|
CONSTANTS: lc_shape TYPE string VALUE '<v:shape id="{ID}" o:spid="_x0000_s1025" type="#_x0000_t75" style=''position:absolute;margin-left:0;margin-top:0;width:{WIDTH}pt;height:{HEIGHT}pt; z-index:1''>',
|
||||||
|
@ -8157,7 +8238,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
ld_7 TYPE string,
|
ld_7 TYPE string,
|
||||||
|
|
||||||
lv_relation_id TYPE i,
|
lv_relation_id TYPE i,
|
||||||
lo_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
||||||
ls_odd_header TYPE zexcel_s_worksheet_head_foot,
|
ls_odd_header TYPE zexcel_s_worksheet_head_foot,
|
||||||
ls_odd_footer TYPE zexcel_s_worksheet_head_foot,
|
ls_odd_footer TYPE zexcel_s_worksheet_head_foot,
|
||||||
|
@ -8218,86 +8299,10 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD create_xml_document.
|
|
||||||
DATA lo_encoding TYPE REF TO if_ixml_encoding.
|
|
||||||
lo_encoding = me->ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian
|
|
||||||
character_set = 'utf-8' ).
|
|
||||||
ro_document = me->ixml->create_document( ).
|
|
||||||
ro_document->set_encoding( lo_encoding ).
|
|
||||||
ro_document->set_standalone( abap_true ).
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
METHOD render_xml_document.
|
|
||||||
DATA lo_streamfactory TYPE REF TO if_ixml_stream_factory.
|
|
||||||
DATA lo_ostream TYPE REF TO if_ixml_ostream.
|
|
||||||
DATA lo_renderer TYPE REF TO if_ixml_renderer.
|
|
||||||
DATA lv_string TYPE string.
|
|
||||||
|
|
||||||
" So that the rendering of io_document to a XML text in UTF-8 XSTRING works for all Unicode characters (Chinese,
|
|
||||||
" emoticons, etc.) the method CREATE_OSTREAM_CSTRING must be used instead of CREATE_OSTREAM_XSTRING as explained
|
|
||||||
" in note 2922674 below (original there: https://launchpad.support.sap.com/#/notes/2922674), and then the STRING
|
|
||||||
" variable can be converted into UTF-8.
|
|
||||||
"
|
|
||||||
" Excerpt from Note 2922674 - Support for Unicode Characters U+10000 to U+10FFFF in the iXML kernel library / ABAP package SIXML.
|
|
||||||
"
|
|
||||||
" You are running a unicode system with SAP Netweaver / SAP_BASIS release equal or lower than 7.51.
|
|
||||||
"
|
|
||||||
" Some functions in the iXML kernel library / ABAP package SIXML does not fully or incorrectly support unicode
|
|
||||||
" characters of the supplementary planes. This is caused by using UCS-2 in codepage conversion functions.
|
|
||||||
" Therefore, when reading from iXML input steams, the characters from the supplementary planes, that are not
|
|
||||||
" supported by UCS-2, might be replaced by the character #. When writing to iXML output streams, UTF-16 surrogate
|
|
||||||
" pairs, representing characters from the supplementary planes, might be incorrectly encoded in UTF-8.
|
|
||||||
"
|
|
||||||
" The characters incorrectly encoded in UTF-8, might be accepted as input for the iXML parser or external parsers,
|
|
||||||
" but might also be rejected.
|
|
||||||
"
|
|
||||||
" Support for unicode characters of the supplementary planes was introduced for SAP_BASIS 7.51 or lower with note
|
|
||||||
" 2220720, but later withdrawn with note 2346627 for functional issues.
|
|
||||||
"
|
|
||||||
" Characters of the supplementary planes are supported with ABAP Platform 1709 / SAP_BASIS 7.52 and higher.
|
|
||||||
"
|
|
||||||
" Please note, that the iXML runtime behaves like the ABAP runtime concerning the handling of unicode characters of
|
|
||||||
" the supplementary planes. In iXML and ABAP, these characters have length 2 (as returned by ABAP build-in function
|
|
||||||
" STRLEN), and string processing functions like SUBSTRING might split these characters into 2 invalid characters
|
|
||||||
" with length 1. These invalid characters are commonly referred to as broken surrogate pairs.
|
|
||||||
"
|
|
||||||
" A workaround for the incorrect UTF-8 encoding in SAP_BASIS 7.51 or lower is to render the document to an ABAP
|
|
||||||
" variable with type STRING using a output stream created with factory method IF_IXML_STREAM_FACTORY=>CREATE_OSTREAM_CSTRING
|
|
||||||
" and then to convert the STRING variable to UTF-8 using method CL_ABAP_CODEPAGE=>CONVERT_TO.
|
|
||||||
|
|
||||||
" 1) RENDER TO XML STRING
|
|
||||||
lo_streamfactory = me->ixml->create_stream_factory( ).
|
|
||||||
lo_ostream = lo_streamfactory->create_ostream_cstring( string = lv_string ).
|
|
||||||
lo_renderer = me->ixml->create_renderer( ostream = lo_ostream document = io_document ).
|
|
||||||
lo_renderer->render( ).
|
|
||||||
|
|
||||||
" 2) CONVERT IT TO UTF-8
|
|
||||||
"-----------------
|
|
||||||
" The beginning of the XML string has these 57 characters:
|
|
||||||
" X<?xml version="1.0" encoding="utf-16" standalone="yes"?>
|
|
||||||
" (where "X" is the special character corresponding to the utf-16 BOM, hexadecimal FFFE or FEFF,
|
|
||||||
" but there's no "X" in non-Unicode SAP systems)
|
|
||||||
" The encoding must be removed otherwise Excel would fail to decode correctly the UTF-8 XML.
|
|
||||||
" For a better performance, it's assumed that "encoding" is in the first 100 characters.
|
|
||||||
IF strlen( lv_string ) < 100.
|
|
||||||
REPLACE REGEX 'encoding="[^"]+"' IN lv_string WITH ``.
|
|
||||||
ELSE.
|
|
||||||
REPLACE REGEX 'encoding="[^"]+"' IN SECTION LENGTH 100 OF lv_string WITH ``.
|
|
||||||
ENDIF.
|
|
||||||
" Convert XML text to UTF-8 (NB: if 2 first bytes are the UTF-16 BOM, they are converted into 3 bytes of UTF-8 BOM)
|
|
||||||
ep_content = cl_abap_codepage=>convert_to( source = lv_string ).
|
|
||||||
" Add the UTF-8 Byte Order Mark if missing (NB: that serves as substitute of "encoding")
|
|
||||||
IF xstrlen( ep_content ) >= 3 AND ep_content(3) <> cl_abap_char_utilities=>byte_order_mark_utf8.
|
|
||||||
CONCATENATE cl_abap_char_utilities=>byte_order_mark_utf8 ep_content INTO ep_content IN BYTE MODE.
|
|
||||||
ENDIF.
|
|
||||||
|
|
||||||
ENDMETHOD.
|
|
||||||
|
|
||||||
|
|
||||||
METHOD zif_excel_writer~write_file.
|
METHOD zif_excel_writer~write_file.
|
||||||
me->excel = io_excel.
|
me->excel = io_excel.
|
||||||
|
|
||||||
ep_file = me->create( ).
|
ep_file = me->create( ).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -77,7 +77,7 @@ CLASS zcl_excel_writer_csv IMPLEMENTATION.
|
||||||
lv_tmp TYPE string,
|
lv_tmp TYPE string,
|
||||||
lv_time TYPE c LENGTH 8.
|
lv_time TYPE c LENGTH 8.
|
||||||
|
|
||||||
DATA: lo_iterator TYPE REF TO cl_object_collection_iterator,
|
DATA: lo_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_worksheet TYPE REF TO zcl_excel_worksheet.
|
lo_worksheet TYPE REF TO zcl_excel_worksheet.
|
||||||
|
|
||||||
DATA: lt_cell_data TYPE zexcel_t_cell_data_unsorted,
|
DATA: lt_cell_data TYPE zexcel_t_cell_data_unsorted,
|
||||||
|
|
|
@ -55,7 +55,7 @@ CLASS zcl_excel_writer_huge_file IMPLEMENTATION.
|
||||||
lv_invalid TYPE string.
|
lv_invalid TYPE string.
|
||||||
|
|
||||||
DATA:
|
DATA:
|
||||||
lo_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_worksheet TYPE REF TO zcl_excel_worksheet.
|
lo_worksheet TYPE REF TO zcl_excel_worksheet.
|
||||||
|
|
||||||
DATA:
|
DATA:
|
||||||
|
@ -279,7 +279,7 @@ CLASS zcl_excel_writer_huge_file IMPLEMENTATION.
|
||||||
* Local data
|
* Local data
|
||||||
*
|
*
|
||||||
DATA:
|
DATA:
|
||||||
lo_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_table TYPE REF TO zcl_excel_table,
|
lo_table TYPE REF TO zcl_excel_table,
|
||||||
lo_column_default TYPE REF TO zcl_excel_column,
|
lo_column_default TYPE REF TO zcl_excel_column,
|
||||||
lo_row_default TYPE REF TO zcl_excel_row,
|
lo_row_default TYPE REF TO zcl_excel_row,
|
||||||
|
@ -293,9 +293,9 @@ CLASS zcl_excel_writer_huge_file IMPLEMENTATION.
|
||||||
lv_freeze_cell_row TYPE zexcel_cell_row,
|
lv_freeze_cell_row TYPE zexcel_cell_row,
|
||||||
lv_freeze_cell_column TYPE zexcel_cell_column,
|
lv_freeze_cell_column TYPE zexcel_cell_column,
|
||||||
lv_freeze_cell_column_alpha TYPE zexcel_cell_column_alpha,
|
lv_freeze_cell_column_alpha TYPE zexcel_cell_column_alpha,
|
||||||
lo_column_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_column_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_column TYPE REF TO zcl_excel_column,
|
lo_column TYPE REF TO zcl_excel_column,
|
||||||
lo_row_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_row_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_row TYPE REF TO zcl_excel_row,
|
lo_row TYPE REF TO zcl_excel_row,
|
||||||
lv_relation_id TYPE i VALUE 0,
|
lv_relation_id TYPE i VALUE 0,
|
||||||
outline_level_row TYPE i VALUE 0,
|
outline_level_row TYPE i VALUE 0,
|
||||||
|
|
|
@ -53,8 +53,8 @@ CLASS zcl_excel_writer_xlsm IMPLEMENTATION.
|
||||||
DATA: lo_zip TYPE REF TO cl_abap_zip,
|
DATA: lo_zip TYPE REF TO cl_abap_zip,
|
||||||
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
lo_worksheet TYPE REF TO zcl_excel_worksheet,
|
||||||
lo_active_worksheet TYPE REF TO zcl_excel_worksheet,
|
lo_active_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,
|
||||||
lo_nested_iterator TYPE REF TO cl_object_collection_iterator,
|
lo_nested_iterator TYPE REF TO zcl_excel_collection_iterator,
|
||||||
lo_table TYPE REF TO zcl_excel_table,
|
lo_table TYPE REF TO zcl_excel_table,
|
||||||
lo_drawing TYPE REF TO zcl_excel_drawing,
|
lo_drawing TYPE REF TO zcl_excel_drawing,
|
||||||
lo_drawings TYPE REF TO zcl_excel_drawings.
|
lo_drawings TYPE REF TO zcl_excel_drawings.
|
||||||
|
|
Loading…
Reference in New Issue
Block a user