diff --git a/src/not_cloud/zcl_excel_converter.clas.abap b/src/not_cloud/zcl_excel_converter.clas.abap index 24d70c3..26ef15b 100644 --- a/src/not_cloud/zcl_excel_converter.clas.abap +++ b/src/not_cloud/zcl_excel_converter.clas.abap @@ -524,8 +524,10 @@ CLASS zcl_excel_converter IMPLEMENTATION. METHOD create_color_style. DATA: ls_styles TYPE ts_styles. DATA: lo_style TYPE REF TO zcl_excel_style. - - READ TABLE wt_styles INTO ls_styles WITH KEY guid = i_style. +* Begin of ATC fix-issue-1014-part1 +* READ TABLE wt_styles INTO ls_styles WITH KEY guid = i_style. + READ TABLE wt_styles INTO ls_styles WITH KEY guid COMPONENTS guid = i_style. +* End of ATC fix-issue-1014-part1 IF sy-subrc = 0. lo_style = wo_excel->add_new_style( ). lo_style->font->bold = ls_styles-style->font->bold. @@ -1370,9 +1372,14 @@ CLASS zcl_excel_converter IMPLEMENTATION. IF l_line <= 1. CLEAR l_hidden. ELSE. - LOOP AT wt_sort_values INTO ls_sort_values WHERE is_collapsed = abap_false. - IF l_hidden < ls_sort_values-sort_level. - l_hidden = ls_sort_values-sort_level. +* Begin of ATC fix-issue-1014-part1 +* LOOP AT wt_sort_values INTO ls_sort_values WHERE is_collapsed = abap_false. + LOOP AT wt_sort_values INTO ls_sort_values USING KEY sort_level. "WHERE is_collapsed = abap_false. +* End of ATC fix-issue-1014-part1 + IF ls_sort_values-is_collapsed = abap_false. "ATC fix-issue-1014-part1 + IF l_hidden < ls_sort_values-sort_level. + l_hidden = ls_sort_values-sort_level. + ENDIF. ENDIF. ENDLOOP. ENDIF. @@ -1418,8 +1425,13 @@ CLASS zcl_excel_converter IMPLEMENTATION. = . -new = abap_false. l_line = -sort_level. - LOOP AT wt_sort_values ASSIGNING WHERE sort_level >= l_line. - -row_int = l_row_int. +* Begin of ATC fix-issue-1014-part1 +* LOOP AT wt_sort_values ASSIGNING WHERE sort_level >= l_line. + LOOP AT wt_sort_values ASSIGNING USING KEY sort_level . +* End of ATC fix-issue-1014-part1 + IF -sort_level >= l_line. "ATC fix-issue-1014-part1 + -row_int = l_row_int. + ENDIF. "ATC fix-issue-1014-part1 ENDLOOP. ENDIF. ENDIF. diff --git a/src/not_cloud/zcl_excel_converter.clas.locals_def.abap b/src/not_cloud/zcl_excel_converter.clas.locals_def.abap index a61e25e..565fafe 100644 --- a/src/not_cloud/zcl_excel_converter.clas.locals_def.abap +++ b/src/not_cloud/zcl_excel_converter.clas.locals_def.abap @@ -4,46 +4,56 @@ TYPES ty_style_type TYPE c LENGTH 1. -TYPES: BEGIN OF ts_alv_types, - seoclass TYPE seoclsname, - clsname TYPE seoclsname, - END OF ts_alv_types, - tt_alv_types TYPE HASHED TABLE OF ts_alv_types WITH UNIQUE KEY seoclass. +TYPES: BEGIN OF ts_alv_types, + seoclass TYPE seoclsname, + clsname TYPE seoclsname, + END OF ts_alv_types, + tt_alv_types TYPE HASHED TABLE OF ts_alv_types WITH UNIQUE KEY seoclass. -TYPES: BEGIN OF ts_sort_values, - fieldname TYPE fieldname, - row_int TYPE zexcel_cell_row, - value TYPE REF TO data, - new TYPE flag, - sort_level TYPE int4, - is_collapsed TYPE flag, - END OF ts_sort_values, +TYPES: BEGIN OF ts_sort_values, + fieldname TYPE fieldname, + row_int TYPE zexcel_cell_row, + value TYPE REF TO data, + new TYPE flag, + sort_level TYPE int4, + is_collapsed TYPE flag, + END OF ts_sort_values, +* Begin of ATC fix-issue-1014-part1 +* tt_sort_values TYPE HASHED TABLE OF ts_sort_values WITH UNIQUE KEY fieldname . + tt_sort_values TYPE HASHED TABLE OF ts_sort_values + WITH UNIQUE KEY primary_key COMPONENTS fieldname + WITH NON-UNIQUE SORTED KEY sort_level COMPONENTS sort_level is_collapsed . - tt_sort_values TYPE HASHED TABLE OF ts_sort_values WITH UNIQUE KEY fieldname. -TYPES: BEGIN OF ts_subtotal_rows, - row_int TYPE zexcel_cell_row, - row_int_start TYPE zexcel_cell_row, - columnname TYPE fieldname, - END OF ts_subtotal_rows, +* End of ATC fix-issue-1014-part1 +TYPES: BEGIN OF ts_subtotal_rows, + row_int TYPE zexcel_cell_row, + row_int_start TYPE zexcel_cell_row, + columnname TYPE fieldname, + END OF ts_subtotal_rows, - tt_subtotal_rows TYPE HASHED TABLE OF ts_subtotal_rows WITH UNIQUE KEY row_int. + tt_subtotal_rows TYPE HASHED TABLE OF ts_subtotal_rows WITH UNIQUE KEY row_int. -TYPES: BEGIN OF ts_styles, - type TYPE ty_style_type, - alignment TYPE zexcel_alignment, - inttype TYPE abap_typekind, - decimals TYPE int1, - style TYPE REF TO zcl_excel_style, - guid TYPE zexcel_cell_style, - END OF ts_styles, +TYPES: BEGIN OF ts_styles, + type TYPE ty_style_type, + alignment TYPE zexcel_alignment, + inttype TYPE abap_typekind, + decimals TYPE int1, + style TYPE REF TO zcl_excel_style, + guid TYPE zexcel_cell_style, + END OF ts_styles, +* Begin of ATC fix-issue-1014-part1 +* tt_styles TYPE HASHED TABLE OF ts_styles WITH UNIQUE KEY type alignment inttype decimals. + tt_styles TYPE HASHED TABLE OF ts_styles with UNIQUE KEY primary_key + COMPONENTS type alignment inttype decimals + WITH NON-UNIQUE SORTED KEY guid COMPONENTS guid . + . +* End of ATC fix-issue-1014-part1 - tt_styles TYPE HASHED TABLE OF ts_styles WITH UNIQUE KEY type alignment inttype decimals. +TYPES: BEGIN OF ts_color_styles, + guid_old TYPE zexcel_cell_style, + fontcolor TYPE zexcel_style_color_argb, + fillcolor TYPE zexcel_style_color_argb, + style_new TYPE REF TO zcl_excel_style, + END OF ts_color_styles, -TYPES: BEGIN OF ts_color_styles, - guid_old TYPE zexcel_cell_style, - fontcolor TYPE zexcel_style_color_argb, - fillcolor TYPE zexcel_style_color_argb, - style_new TYPE REF TO zcl_excel_style, - END OF ts_color_styles, - - tt_color_styles TYPE HASHED TABLE OF ts_color_styles WITH UNIQUE KEY guid_old fontcolor fillcolor. + tt_color_styles TYPE HASHED TABLE OF ts_color_styles WITH UNIQUE KEY guid_old fontcolor fillcolor. diff --git a/src/zcl_excel_autofilter.clas.abap b/src/zcl_excel_autofilter.clas.abap index a0ed31f..7073983 100644 --- a/src/zcl_excel_autofilter.clas.abap +++ b/src/zcl_excel_autofilter.clas.abap @@ -192,7 +192,7 @@ CLASS zcl_excel_autofilter IMPLEMENTATION. DATA: ls_filter LIKE LINE OF rt_filter. - LOOP AT me->mt_filters ASSIGNING WHERE rule = mc_filter_rule_single_values. + LOOP AT me->mt_filters ASSIGNING WHERE rule = mc_filter_rule_single_values. "#EC CI_HASHSEQ ls_filter-column = -column. LOOP AT -t_values ASSIGNING . diff --git a/src/zcl_excel_reader_2007.clas.abap b/src/zcl_excel_reader_2007.clas.abap index 5c55965..1da291f 100644 --- a/src/zcl_excel_reader_2007.clas.abap +++ b/src/zcl_excel_reader_2007.clas.abap @@ -98,7 +98,11 @@ CLASS zcl_excel_reader_2007 DEFINITION formula TYPE string, END OF ty_ref_formulae . TYPES: - tyt_ref_formulae TYPE HASHED TABLE OF ty_ref_formulae WITH UNIQUE KEY sheet row column . +* Begin of ATC fix-issue-1014-part1 +* tyt_ref_formulae TYPE HASHED TABLE OF ty_ref_formulae WITH UNIQUE KEY sheet row column . + tyt_ref_formulae TYPE TABLE OF ty_ref_formulae WITH UNIQUE HASHED KEY hash_key COMPONENTS + sheet row column si ref formula. +* End of ATC fix-issue-1014-part1 TYPES: BEGIN OF t_shared_string, value TYPE string, @@ -361,8 +365,11 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION. row TYPE i, outline_level TYPE i, END OF lts_row_data, - ltt_row_data TYPE SORTED TABLE OF lts_row_data WITH UNIQUE KEY row. - +* Begin of ATC fix-issue-1014-part1 +* ltt_row_data TYPE SORTED TABLE OF lts_row_data WITH UNIQUE KEY row. + ltt_row_data TYPE TABLE OF lts_row_data WITH NON-UNIQUE SORTED KEY sort_key + COMPONENTS outline_level. +* End of ATC fix-issue-1014-part1 DATA: lt_row_data TYPE ltt_row_data, ls_row_data LIKE LINE OF lt_row_data, lt_collapse_rows TYPE HASHED TABLE OF i WITH UNIQUE KEY table_line, diff --git a/src/zcl_excel_row.clas.abap b/src/zcl_excel_row.clas.abap index 61479ae..b1b9043 100644 --- a/src/zcl_excel_row.clas.abap +++ b/src/zcl_excel_row.clas.abap @@ -140,11 +140,15 @@ CLASS zcl_excel_row IMPLEMENTATION. CHECK io_worksheet IS BOUND. lt_row_outlines = io_worksheet->get_row_outlines( ). - LOOP AT lt_row_outlines ASSIGNING WHERE row_from <= me->row_index - AND row_to >= me->row_index. - - ADD 1 TO r_outline_level. - +* Begin of ATC fix-issue-1014-part1 +* LOOP AT lt_row_outlines ASSIGNING WHERE row_from <= me->row_index +* AND row_to >= me->row_index. + LOOP AT lt_row_outlines ASSIGNING USING KEY collapsed . + IF -row_from <= me->row_index + AND -row_to >= me->row_index. +* End of ATC fix-issue-1014-part1 + ADD 1 TO r_outline_level. + ENDIF. ENDLOOP. ENDMETHOD. @@ -175,12 +179,21 @@ CLASS zcl_excel_row IMPLEMENTATION. CHECK io_worksheet IS BOUND. " But we have to see the worksheet to make sure lt_row_outlines = io_worksheet->get_row_outlines( ). - LOOP AT lt_row_outlines ASSIGNING WHERE row_from <= me->row_index - AND row_to >= me->row_index - AND collapsed = abap_true. " row is in a collapsed outline --> not visible - CLEAR r_visible. - RETURN. " one hit is enough to ensure invisibility +* Begin of ATC fix-issue-1014-part1 +* LOOP AT lt_row_outlines ASSIGNING WHERE row_from <= me->row_index +* AND row_to >= me->row_index +* AND collapsed = abap_true. " row is in a collapsed outline --> not visible + LOOP AT lt_row_outlines ASSIGNING USING KEY collapsed. + + IF -row_from <= me->row_index + AND -row_to >= me->row_index + AND -collapsed = abap_true. + +* End of ATC fix-issue-1014-part1 + CLEAR r_visible. + RETURN. " one hit is enough to ensure invisibility + ENDIF. "ATC fix-issue-1014-part1 ENDLOOP. ENDMETHOD. diff --git a/src/zcl_excel_worksheet.clas.abap b/src/zcl_excel_worksheet.clas.abap index 6ee2401..47722dc 100644 --- a/src/zcl_excel_worksheet.clas.abap +++ b/src/zcl_excel_worksheet.clas.abap @@ -22,7 +22,12 @@ CLASS zcl_excel_worksheet DEFINITION collapsed TYPE abap_bool, END OF mty_s_outline_row . TYPES: - mty_ts_outlines_row TYPE SORTED TABLE OF mty_s_outline_row WITH UNIQUE KEY row_from row_to . +* Begin of ATC fix-issue-1014-part1 +* mty_ts_outlines_row TYPE SORTED TABLE OF mty_s_outline_row WITH UNIQUE KEY row_from row_to . + mty_ts_outlines_row TYPE SORTED TABLE OF mty_s_outline_row WITH UNIQUE KEY primary_key + COMPONENTS row_from row_to + WITH NON-UNIQUE SORTED KEY collapsed COMPONENTS collapsed. +* End of ATC fix-issue-1014-part1 . TYPES: BEGIN OF mty_s_ignored_errors, "! Cell reference (e.g. "A1") or list like "A1 A2" or range "A1:G1" @@ -73,10 +78,11 @@ CLASS zcl_excel_worksheet DEFINITION col_from TYPE i, col_to TYPE i, END OF mty_merge . - TYPES: - mty_ts_merge TYPE SORTED TABLE OF mty_merge WITH UNIQUE KEY table_line . -* mty_ts_merge TYPE TABLE OF mty_merge WITH UNIQUE SORTED KEY sort_key COMPONENTS row_from row_to. - + TYPES: +* Begin of ATC fix-issue-1014-part1 +* mty_ts_merge TYPE SORTED TABLE OF mty_merge WITH UNIQUE KEY table_line . + mty_ts_merge TYPE TABLE OF mty_merge WITH UNIQUE SORTED KEY sort_key COMPONENTS row_from row_to. +* End of ATC fix-issue-1014-part1 TYPES: ty_area TYPE c LENGTH 1 . @@ -776,15 +782,15 @@ CLASS zcl_excel_worksheet DEFINITION iv_default_descr TYPE c it_field_catalog TYPE zexcel_t_fieldcatalog RETURNING - VALUE(result) TYPE zexcel_t_fieldcatalog. + VALUE(result) TYPE zexcel_t_fieldcatalog. METHODS normalize_columnrow_parameter IMPORTING - ip_columnrow TYPE csequence OPTIONAL - ip_column TYPE simple OPTIONAL - ip_row TYPE zexcel_cell_row OPTIONAL + ip_columnrow TYPE csequence OPTIONAL + ip_column TYPE simple OPTIONAL + ip_row TYPE zexcel_cell_row OPTIONAL EXPORTING - ep_column TYPE zexcel_cell_column - ep_row TYPE zexcel_cell_row + ep_column TYPE zexcel_cell_column + ep_row TYPE zexcel_cell_row RAISING zcx_excel. METHODS normalize_range_parameter @@ -816,7 +822,7 @@ ENDCLASS. -CLASS ZCL_EXCEL_WORKSHEET IMPLEMENTATION. +CLASS zcl_excel_worksheet IMPLEMENTATION. METHOD add_comment. @@ -2969,9 +2975,9 @@ CLASS ZCL_EXCEL_WORKSHEET IMPLEMENTATION. lv_syindex TYPE c LENGTH 3, lt_column_name_buffer TYPE SORTED TABLE OF string WITH UNIQUE KEY table_line. FIELD-SYMBOLS: TYPE zexcel_s_fieldcatalog, - TYPE any, - TYPE any, - TYPE any. + TYPE any, + TYPE any, + TYPE any. " Due restrinction of new table object we cannot have two column with the same name " Check if a column with the same name exists, if exists add a counter diff --git a/src/zcl_excel_writer_2007.clas.abap b/src/zcl_excel_writer_2007.clas.abap index a5a1580..541fb3e 100644 --- a/src/zcl_excel_writer_2007.clas.abap +++ b/src/zcl_excel_writer_2007.clas.abap @@ -5924,7 +5924,12 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION. lo_iterator TYPE REF TO zcl_excel_collection_iterator, 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, +* Begin of ATC fix-issue-1014-part1 +* lt_table_areas TYPE SORTED TABLE OF lty_table_area WITH NON-UNIQUE KEY left right top bottom, + lt_table_areas TYPE STANDARD TABLE OF lty_table_area WITH + NON-UNIQUE SORTED KEY sort_key + COMPONENTS left right top bottom, +* End of ATC fix-issue-1014-part1 ls_table_area LIKE LINE OF lt_table_areas, lo_column TYPE REF TO zcl_excel_column, @@ -6264,7 +6269,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION. ENDIF. rv_ixml_sheet_data_root->append_child( new_child = lo_element_2 ). " row node ENDIF. - DELETE io_worksheet->sheet_content WHERE cell_value = lc_dummy_cell_content. " Get rid of dummyentries + DELETE io_worksheet->sheet_content WHERE cell_value = lc_dummy_cell_content. " Get rid of dummyentries ENDMETHOD. diff --git a/src/zexcel_t_cell_data.ttyp.xml b/src/zexcel_t_cell_data.ttyp.xml index 097bd37..c2c83f8 100644 --- a/src/zexcel_t_cell_data.ttyp.xml +++ b/src/zexcel_t_cell_data.ttyp.xml @@ -12,7 +12,9 @@ K U 0002 + X Excel worksheet content + W