From 6c124bf61db140afc1f43e302f34e78230b88acd Mon Sep 17 00:00:00 2001 From: Ivan Femia Date: Fri, 19 May 2017 23:52:29 +0200 Subject: [PATCH] Fix issue #484 Removed row dimension and introduced row object --- src/zangry_birds.prog.abap | 10 +- src/zcl_excel_converter.clas.abap | 44 ++-- src/zcl_excel_reader_2007.clas.abap | 53 ++-- ...ensi.clas.abap => zcl_excel_row.clas.abap} | 16 +- ...imensi.clas.xml => zcl_excel_row.clas.xml} | 60 +---- src/zcl_excel_rows.clas.abap | 92 +++++++ src/zcl_excel_rows.clas.xml | 70 ++++++ src/zcl_excel_worksheet.clas.abap | 108 ++++---- src/zcl_excel_worksheet.clas.xml | 64 ++--- src/zcl_excel_worksheet_columndime.clas.abap | 230 ------------------ src/zcl_excel_worksheet_columndime.clas.xml | 166 ------------- src/zcl_excel_writer_2007.clas.abap | 81 +++--- src/zcl_excel_writer_huge_file.clas.abap | 58 ++--- src/zdemo_calendar.prog.abap | 20 +- src/zdemo_calendar_classes.prog.abap | 42 ++-- src/zdemo_excel1.prog.abap | 2 +- src/zdemo_excel11.prog.abap | 6 +- src/zdemo_excel12.prog.abap | 10 +- src/zdemo_excel14.prog.abap | 6 +- src/zdemo_excel2.prog.abap | 58 ++--- src/zdemo_excel34.prog.abap | 6 +- src/zexcel_s_worksheet_rowdimensio.tabl.xml | 41 ---- src/zexcel_t_worksheet_rowdimensio.ttyp.xml | 20 -- 23 files changed, 463 insertions(+), 800 deletions(-) rename src/{zcl_excel_worksheet_rowdimensi.clas.abap => zcl_excel_row.clas.abap} (94%) rename src/{zcl_excel_worksheet_rowdimensi.clas.xml => zcl_excel_row.clas.xml} (55%) create mode 100644 src/zcl_excel_rows.clas.abap create mode 100644 src/zcl_excel_rows.clas.xml delete mode 100644 src/zcl_excel_worksheet_columndime.clas.abap delete mode 100644 src/zcl_excel_worksheet_columndime.clas.xml delete mode 100644 src/zexcel_s_worksheet_rowdimensio.tabl.xml delete mode 100644 src/zexcel_t_worksheet_rowdimensio.ttyp.xml diff --git a/src/zangry_birds.prog.abap b/src/zangry_birds.prog.abap index 07cdec5..788d37c 100644 --- a/src/zangry_birds.prog.abap +++ b/src/zangry_birds.prog.abap @@ -23,7 +23,7 @@ DATA: lo_excel TYPE REF TO zcl_excel, lo_style_credit TYPE REF TO zcl_excel_style, lo_style_link TYPE REF TO zcl_excel_style, lo_column TYPE REF TO zcl_excel_column, - lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, + lo_row TYPE REF TO zcl_excel_row, lo_hyperlink TYPE REF TO zcl_excel_hyperlink. DATA: lv_style_color0_guid TYPE zexcel_cell_style, @@ -700,8 +700,8 @@ START-OF-SELECTION. LOOP AT lt_mapper INTO ls_mapper. lv_col_str = zcl_excel_common=>convert_column2alpha( lv_col ). IF ls_mapper IS INITIAL. - lo_row_dimension = lo_worksheet->get_row_dimension( ip_row = lv_row ). - lo_row_dimension->set_row_height( ip_row_height = 8 ). + lo_row = lo_worksheet->get_row( ip_row = lv_row ). + lo_row->set_row_height( ip_row_height = 8 ). lv_col = 1. lv_row = lv_row + 1. CONTINUE. @@ -723,10 +723,10 @@ START-OF-SELECTION. ip_value = 'Created with abap2xlsx' ip_style = lv_style_credit_guid ). - lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'http://www.abap2xlsx.org' ). + lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'http://www.plinky.it/abap/abap2xlsx.php' ). lo_worksheet->set_cell( ip_column = 'AP' ip_row = 24 - ip_value = 'http://www.abap2xlsx.org' + ip_value = 'http://www.plinky.it/abap/abap2xlsx.php' ip_style = lv_style_link_guid ip_hyperlink = lo_hyperlink ). diff --git a/src/zcl_excel_converter.clas.abap b/src/zcl_excel_converter.clas.abap index e37aee7..7198837 100644 --- a/src/zcl_excel_converter.clas.abap +++ b/src/zcl_excel_converter.clas.abap @@ -356,7 +356,7 @@ METHOD bind_table. ls_field_catalog TYPE zexcel_s_fieldcatalog, ls_fcat TYPE zexcel_s_converter_fcat, lo_column TYPE REF TO zcl_excel_column, - lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi, + lo_row TYPE REF TO zcl_excel_row, lv_col_int TYPE zexcel_cell_column, lv_col_alpha TYPE zexcel_cell_column_alpha, ls_settings TYPE zexcel_s_table_settings, @@ -1174,7 +1174,7 @@ method LOOP_NORMAL. l_cell_value TYPE zexcel_cell_value, l_s_color TYPE abap_bool, lo_column TYPE REF TO zcl_excel_column, - lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi, + lo_row TYPE REF TO zcl_excel_row, l_formula TYPE zexcel_cell_formula, l_style TYPE zexcel_cell_style, l_cells TYPE i, @@ -1293,7 +1293,7 @@ method LOOP_SUBTOTAL. l_cell_value TYPE zexcel_cell_value, l_s_color TYPE abap_bool, lo_column TYPE REF TO zcl_excel_column, - lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi, + lo_row TYPE REF TO zcl_excel_row, l_formula TYPE zexcel_cell_formula, l_style TYPE zexcel_cell_style, l_subtotalled TYPE flag, @@ -1385,13 +1385,13 @@ method LOOP_SUBTOTAL. ip_value = l_cell_value ip_abap_type = cl_abap_typedescr=>typekind_string ip_style = -style_subtotal ). - lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ). - lo_row_dim->set_outline_level( ip_outline_level = -sort_level ) . + lo_row = wo_worksheet->get_row( ip_row = l_row_int ). + lo_row->set_outline_level( ip_outline_level = -sort_level ) . IF -is_collapsed = abap_true. IF -sort_level > l_hidden. - lo_row_dim->set_visible( ip_visible = abap_false ) . + lo_row->set_visible( ip_visible = abap_false ) . ENDIF. - lo_row_dim->set_collapsed( ip_collapsed = -is_collapsed ) . + lo_row->set_collapsed( ip_collapsed = -is_collapsed ) . ENDIF. * Now let's change the key ADD 1 TO l_row_int. @@ -1429,21 +1429,21 @@ method LOOP_SUBTOTAL. ip_style = -style_subtotal ). l_sort_level = -sort_level. - lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ). - lo_row_dim->set_outline_level( ip_outline_level = l_sort_level ) . + lo_row = wo_worksheet->get_row( ip_row = l_row_int ). + lo_row->set_outline_level( ip_outline_level = l_sort_level ) . IF -is_collapsed = abap_true. IF -sort_level > l_hidden. - lo_row_dim->set_visible( ip_visible = abap_false ) . + lo_row->set_visible( ip_visible = abap_false ) . ENDIF. - lo_row_dim->set_collapsed( ip_collapsed = -is_collapsed ) . + lo_row->set_collapsed( ip_collapsed = -is_collapsed ) . ENDIF. ADD 1 TO l_row_int. ENDIF. ENDLOOP. * Let's write the Grand total l_sort_level = 0. - lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ). - lo_row_dim->set_outline_level( ip_outline_level = l_sort_level ) . + lo_row = wo_worksheet->get_row( ip_row = l_row_int ). + lo_row->set_outline_level( ip_outline_level = l_sort_level ) . * lo_row_dim->set_collapsed( ip_collapsed = -is_collapsed ) . Not on grand total l_text = create_text_subtotal( i_value = 'Grand'(002) @@ -1500,10 +1500,10 @@ method LOOP_SUBTOTAL. ip_formula = l_formula ip_style = -style_subtotal ). IF -is_collapsed = abap_true. - lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ). - lo_row_dim->set_collapsed( ip_collapsed = -is_collapsed ). + lo_row = wo_worksheet->get_row( ip_row = l_row_int ). + lo_row->set_collapsed( ip_collapsed = -is_collapsed ). IF -sort_level > l_hidden. - lo_row_dim->set_visible( ip_visible = abap_false ) . + lo_row->set_visible( ip_visible = abap_false ) . ENDIF. ENDIF. ADD 1 TO l_row_int. @@ -1519,11 +1519,11 @@ method LOOP_SUBTOTAL. ENDIF. ENDDO. * Let's set the row dimension values - lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ). - lo_row_dim->set_outline_level( ip_outline_level = ws_layout-max_subtotal_level ) . + lo_row = wo_worksheet->get_row( ip_row = l_row_int ). + lo_row->set_outline_level( ip_outline_level = ws_layout-max_subtotal_level ) . IF -is_collapsed = abap_true. - lo_row_dim->set_visible( ip_visible = abap_false ) . - lo_row_dim->set_collapsed( ip_collapsed = -is_collapsed ) . + lo_row->set_visible( ip_visible = abap_false ) . + lo_row->set_collapsed( ip_collapsed = -is_collapsed ) . ENDIF. * Now let's write the cell values IF ws_layout-is_stripped = abap_true AND l_s_color = abap_true. @@ -1579,8 +1579,8 @@ method LOOP_SUBTOTAL. ip_formula = l_formula ip_style = -style_subtotal ). IF -is_collapsed = abap_true. - lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ). - lo_row_dim->set_collapsed( ip_collapsed = -is_collapsed ). + lo_row = wo_worksheet->get_row( ip_row = l_row_int ). + lo_row->set_collapsed( ip_collapsed = -is_collapsed ). ENDIF. ADD 1 TO l_row_int. ELSE. diff --git a/src/zcl_excel_reader_2007.clas.abap b/src/zcl_excel_reader_2007.clas.abap index 9b99d59..72e44ce 100644 --- a/src/zcl_excel_reader_2007.clas.abap +++ b/src/zcl_excel_reader_2007.clas.abap @@ -304,9 +304,7 @@ METHOD fill_row_outlines. END OF lts_row_data, ltt_row_data TYPE SORTED TABLE OF lts_row_data WITH UNIQUE KEY row. - DATA: lt_row_dimensions TYPE zexcel_t_worksheet_rowdimensio, - - lt_row_data TYPE ltt_row_data, + 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, @@ -316,30 +314,29 @@ METHOD fill_row_outlines. lv_next_consecutive_row TYPE i, lt_outline_rows TYPE zcl_excel_worksheet=>mty_ts_outlines_row, ls_outline_row LIKE LINE OF lt_outline_rows, - + lo_row TYPE REF TO zcl_excel_row, + lo_row_iterator TYPE REF TO cl_object_collection_iterator, lv_row_offset TYPE i, lv_row_collapse_flag TYPE i. - FIELD-SYMBOLS: LIKE LINE OF lt_row_dimensions, - LIKE LINE OF lt_row_data. + FIELD-SYMBOLS: LIKE LINE OF lt_row_data. * First collect information about outlines ( outline leven and collapsed state ) - lt_row_dimensions = io_worksheet->get_row_dimensions( ). - LOOP AT lt_row_dimensions ASSIGNING . - - ls_row_data-row = -row. - ls_row_data-outline_level = -row_dimension->get_outline_level( ). + lo_row_iterator = io_worksheet->get_rows_iterator( ). + WHILE lo_row_iterator->has_next( ) = abap_true. + lo_row ?= lo_row_iterator->get_next( ). + ls_row_data-row = lo_row->get_row_index( ). + ls_row_data-outline_level = lo_row->get_outline_level( ). IF ls_row_data-outline_level IS NOT INITIAL. INSERT ls_row_data INTO TABLE lt_row_data. ENDIF. - lv_collapsed = -row_dimension->get_collapsed( ). + lv_collapsed = lo_row->get_collapsed( ). IF lv_collapsed = abap_true. - INSERT -row INTO TABLE lt_collapse_rows. + INSERT lo_row->get_row_index( ) INTO TABLE lt_collapse_rows. ENDIF. - - ENDLOOP. + ENDWHILE. * Now parse this information - we need consecutive rows - any gap will create a new outline DO 7 TIMES. " max number of outlines allowed @@ -387,12 +384,14 @@ METHOD fill_row_outlines. ENDLOOP. * Finally purge outline information ( collapsed state, outline leve) from row_dimensions, since we want to keep these in the outline-table - LOOP AT lt_row_dimensions ASSIGNING . + lo_row_iterator = io_worksheet->get_rows_iterator( ). + WHILE lo_row_iterator->has_next( ) = abap_true. + lo_row ?= lo_row_iterator->get_next( ). - -row_dimension->set_outline_level( 0 ). - -row_dimension->set_collapsed( abap_false ). + lo_row->set_outline_level( 0 ). + lo_row->set_collapsed( abap_false ). - ENDLOOP. + ENDWHILE. ENDMETHOD. @@ -2268,7 +2267,7 @@ METHOD load_worksheet. * lv_min_col TYPE i, "for use with SPANS element " not in use currently lv_max_col_s TYPE char10, "for use with SPANS element lv_min_col_s TYPE char10, "for use with SPANS element - lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, + lo_row TYPE REF TO zcl_excel_row, *--- End of current code aligning ------------------------------------------------------------------- lv_path TYPE string, @@ -2392,19 +2391,19 @@ METHOD load_worksheet. OR ls_row-hidden = lc_xml_attr_true OR ls_row-hidden = lc_xml_attr_true_int OR ls_row-outlinelevel > '0'. - lo_row_dimension = io_worksheet->get_row_dimension( lv_cell_row ). + lo_row = io_worksheet->get_row( lv_cell_row ). IF ls_row-customheight = '1'. - lo_row_dimension->set_row_height( ls_row-ht ). + lo_row->set_row_height( ls_row-ht ). ENDIF. IF ls_row-collapsed = lc_xml_attr_true OR ls_row-collapsed = lc_xml_attr_true_int. - lo_row_dimension->set_collapsed( abap_true ). + lo_row->set_collapsed( abap_true ). ENDIF. IF ls_row-hidden = lc_xml_attr_true OR ls_row-hidden = lc_xml_attr_true_int. - lo_row_dimension->set_visible( abap_false ). + lo_row->set_visible( abap_false ). ENDIF. IF ls_row-outlinelevel > ''. @@ -2412,7 +2411,7 @@ METHOD load_worksheet. CONDENSE ls_row-outlinelevel. lv_outline_level = ls_row-outlinelevel. IF lv_outline_level > 0. - lo_row_dimension->set_outline_level( lv_outline_level ). + lo_row->set_outline_level( lv_outline_level ). ENDIF. ENDIF. ENDIF. @@ -2662,8 +2661,8 @@ METHOD load_worksheet. fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_sheetformatpr_elem CHANGING cp_structure = ls_sheetformatpr ). IF ls_sheetformatpr-customheight = '1'. lv_height = ls_sheetformatpr-defaultrowheight. - lo_row_dimension = io_worksheet->get_default_row_dimension( ). - lo_row_dimension->set_row_height( lv_height ). + lo_row = io_worksheet->get_default_row( ). + lo_row->set_row_height( lv_height ). ENDIF. " TODO... column diff --git a/src/zcl_excel_worksheet_rowdimensi.clas.abap b/src/zcl_excel_row.clas.abap similarity index 94% rename from src/zcl_excel_worksheet_rowdimensi.clas.abap rename to src/zcl_excel_row.clas.abap index cdad436..ad1b19c 100644 --- a/src/zcl_excel_worksheet_rowdimensi.clas.abap +++ b/src/zcl_excel_row.clas.abap @@ -1,9 +1,9 @@ -class ZCL_EXCEL_WORKSHEET_ROWDIMENSI definition +class ZCL_EXCEL_ROW definition public final create public . -*"* public components of class ZCL_EXCEL_WORKSHEET_ROWDIMENSI +*"* public components of class ZCL_EXCEL_ROW *"* do not include other source files here!!! public section. type-pools ABAP . @@ -57,10 +57,10 @@ public section. methods SET_XF_INDEX importing !IP_XF_INDEX type INT4 . -*"* protected components of class ZCL_EXCEL_WORKSHEET_ROWDIMENSI +*"* protected components of class ZCL_EXCEL_ROW *"* do not include other source files here!!! protected section. -*"* private components of class ZCL_EXCEL_WORKSHEET_ROWDIMENSI +*"* private components of class ZCL_EXCEL_ROW *"* do not include other source files here!!! private section. @@ -74,7 +74,7 @@ ENDCLASS. -CLASS ZCL_EXCEL_WORKSHEET_ROWDIMENSI IMPLEMENTATION. +CLASS ZCL_EXCEL_ROW IMPLEMENTATION. method CONSTRUCTOR. @@ -90,7 +90,7 @@ method CONSTRUCTOR. endmethod. -METHOD get_collapsed. +METHOD GET_COLLAPSED. DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row, lv_previous_row TYPE i, @@ -121,7 +121,7 @@ METHOD get_collapsed. ENDMETHOD. -METHOD get_outline_level. +METHOD GET_OUTLINE_LEVEL. DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row. FIELD-SYMBOLS: LIKE LINE OF lt_row_outlines. @@ -155,7 +155,7 @@ method GET_ROW_INDEX. endmethod. -METHOD get_visible. +METHOD GET_VISIBLE. DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row. FIELD-SYMBOLS: LIKE LINE OF lt_row_outlines. diff --git a/src/zcl_excel_worksheet_rowdimensi.clas.xml b/src/zcl_excel_row.clas.xml similarity index 55% rename from src/zcl_excel_worksheet_rowdimensi.clas.xml rename to src/zcl_excel_row.clas.xml index 6a08b3a..d18e750 100644 --- a/src/zcl_excel_worksheet_rowdimensi.clas.xml +++ b/src/zcl_excel_row.clas.xml @@ -3,7 +3,7 @@ - ZCL_EXCEL_WORKSHEET_ROWDIMENSI + ZCL_EXCEL_ROW 1 E Worksheet RowDimension @@ -17,107 +17,71 @@ - ZCL_EXCEL_WORKSHEET_ROWDIMENSI + ZCL_EXCEL_ROW COLLAPSED E Boolean Variable (X=True, -=False, Space=Unknown) - ZCL_EXCEL_WORKSHEET_ROWDIMENSI - COLLAPSED - I - Boolean Variable (X=True, -=False, Space=Unknown) - - - ZCL_EXCEL_WORKSHEET_ROWDIMENSI + ZCL_EXCEL_ROW GET_COLLAPSED E new - please pass worksheet to make use of new outline info - ZCL_EXCEL_WORKSHEET_ROWDIMENSI + ZCL_EXCEL_ROW GET_OUTLINE_LEVEL E new - please pass worksheet to make use of new outline info - ZCL_EXCEL_WORKSHEET_ROWDIMENSI + ZCL_EXCEL_ROW GET_VISIBLE E new - please pass worksheet to make use of new outline info - ZCL_EXCEL_WORKSHEET_ROWDIMENSI + ZCL_EXCEL_ROW OUTLINE_LEVEL E Natural number - ZCL_EXCEL_WORKSHEET_ROWDIMENSI - OUTLINE_LEVEL - I - Natural number - - - ZCL_EXCEL_WORKSHEET_ROWDIMENSI + ZCL_EXCEL_ROW ROW_HEIGHT E Field of type FLTP - ZCL_EXCEL_WORKSHEET_ROWDIMENSI - ROW_HEIGHT - I - Field of type FLTP - - - ZCL_EXCEL_WORKSHEET_ROWDIMENSI + ZCL_EXCEL_ROW ROW_INDEX E Natural number - ZCL_EXCEL_WORKSHEET_ROWDIMENSI - ROW_INDEX - I - Natural number - - - ZCL_EXCEL_WORKSHEET_ROWDIMENSI + ZCL_EXCEL_ROW SET_COLLAPSED E obsolete - please use worksheet->set_outline instead - ZCL_EXCEL_WORKSHEET_ROWDIMENSI + ZCL_EXCEL_ROW SET_OUTLINE_LEVEL E obsolete - please use worksheet->set_outline instead - ZCL_EXCEL_WORKSHEET_ROWDIMENSI + ZCL_EXCEL_ROW VISIBLE E Boolean Variable (X=True, -=False, Space=Unknown) - ZCL_EXCEL_WORKSHEET_ROWDIMENSI - VISIBLE - I - Boolean Variable (X=True, -=False, Space=Unknown) - - - ZCL_EXCEL_WORKSHEET_ROWDIMENSI + ZCL_EXCEL_ROW XF_INDEX E Natural number - - ZCL_EXCEL_WORKSHEET_ROWDIMENSI - XF_INDEX - I - Natural number - diff --git a/src/zcl_excel_rows.clas.abap b/src/zcl_excel_rows.clas.abap new file mode 100644 index 0000000..c1cf0f1 --- /dev/null +++ b/src/zcl_excel_rows.clas.abap @@ -0,0 +1,92 @@ +*----------------------------------------------------------------------* +* CLASS ZCL_EXCEL_ROWS DEFINITION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +class ZCL_EXCEL_ROWS definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_ROWS +*"* do not include other source files here!!! +*"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +public section. + + methods ADD + importing + !IO_ROW type ref to ZCL_EXCEL_ROW . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type I + returning + value(EO_ROW) type ref to ZCL_EXCEL_ROW . + methods GET_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods IS_EMPTY + returning + value(IS_EMPTY) type FLAG . + methods REMOVE + importing + !IO_ROW type ref to ZCL_EXCEL_ROW . + methods SIZE + returning + value(EP_SIZE) type I . + PROTECTED SECTION. +*"* private components of class ZABAP_EXCEL_RANGES +*"* do not include other source files here!!! + PRIVATE SECTION. + + DATA rows TYPE REF TO cl_object_collection . +ENDCLASS. + + + +CLASS ZCL_EXCEL_ROWS IMPLEMENTATION. + + + METHOD add. + rows->add( io_row ). + ENDMETHOD. "ADD + + + METHOD clear. + rows->clear( ). + ENDMETHOD. "CLEAR + + + METHOD constructor. + + CREATE OBJECT rows. + + ENDMETHOD. "CONSTRUCTOR + + + METHOD get. + eo_row ?= rows->if_object_collection~get( ip_index ). + ENDMETHOD. "GET + + + METHOD get_iterator. + eo_iterator ?= rows->if_object_collection~get_iterator( ). + ENDMETHOD. "GET_ITERATOR + + + METHOD is_empty. + is_empty = rows->if_object_collection~is_empty( ). + ENDMETHOD. "IS_EMPTY + + + METHOD remove. + rows->remove( io_row ). + ENDMETHOD. "REMOVE + + + METHOD size. + ep_size = rows->if_object_collection~size( ). + ENDMETHOD. "SIZE +ENDCLASS. diff --git a/src/zcl_excel_rows.clas.xml b/src/zcl_excel_rows.clas.xml new file mode 100644 index 0000000..3d5c18a --- /dev/null +++ b/src/zcl_excel_rows.clas.xml @@ -0,0 +1,70 @@ + + + + + + ZCL_EXCEL_ROWS + 1 + E + Ranges collection + 2 + 1 + X + X + X + X + + + + + ZCL_EXCEL_ROWS + ADD + E + Adds an Element to the Collection + + + ZCL_EXCEL_ROWS + CLEAR + E + Initializes the Collection + + + ZCL_EXCEL_ROWS + CONSTRUCTOR + E + CONSTRUCTOR + + + ZCL_EXCEL_ROWS + GET + E + Gets Element + + + ZCL_EXCEL_ROWS + GET_ITERATOR + E + Returns an iterator + + + ZCL_EXCEL_ROWS + IS_EMPTY + E + Checks whether elements are contained + + + ZCL_EXCEL_ROWS + REMOVE + E + Deletes an Element from the Collection + + + ZCL_EXCEL_ROWS + SIZE + E + Specifies number of contained elements + + + + + diff --git a/src/zcl_excel_worksheet.clas.abap b/src/zcl_excel_worksheet.clas.abap index 512f08c..4b283e9 100644 --- a/src/zcl_excel_worksheet.clas.abap +++ b/src/zcl_excel_worksheet.clas.abap @@ -25,17 +25,22 @@ public section. constants C_BREAK_NONE type ZEXCEL_BREAK value 0. "#EC NOTEXT constants C_BREAK_ROW type ZEXCEL_BREAK value 1. "#EC NOTEXT 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. "#EC NOTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " . data SHEET_CONTENT type ZEXCEL_T_CELL_DATA . 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_ROWCOLHEADERS type ZEXCEL_SHOW_GRIDLINES read-only value ABAP_TRUE. "#EC NOTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " . + data SHOW_GRIDLINES type ZEXCEL_SHOW_GRIDLINES read-only value ABAP_TRUE. "#EC NOTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " . + data SHOW_ROWCOLHEADERS type ZEXCEL_SHOW_GRIDLINES read-only value ABAP_TRUE. "#EC NOTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " . data STYLES type ZEXCEL_T_SHEET_STYLE . data TABCOLOR type ZEXCEL_S_TABCOLOR read-only . methods ADD_DRAWING importing !IP_DRAWING type ref to ZCL_EXCEL_DRAWING . + methods ADD_NEW_ROW + importing + !IP_ROW type SIMPLE + returning + value(EO_ROW) type ref to ZCL_EXCEL_ROW . methods ADD_NEW_COLUMN importing !IP_COLUMN type SIMPLE @@ -257,6 +262,9 @@ public section. methods GET_COLUMNS returning value(EO_COLUMNS) type ref to ZCL_EXCEL_COLUMNS . + methods GET_ROWS_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . methods GET_COLUMNS_ITERATOR returning value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . @@ -278,9 +286,9 @@ public section. methods GET_DEFAULT_EXCEL_TIME_FORMAT returning value(EP_DEFAULT_EXCEL_TIME_FORMAT) type ZEXCEL_NUMBER_FORMAT . - methods GET_DEFAULT_ROW_DIMENSION + methods GET_DEFAULT_ROW returning - value(R_ROW_DIMENSION) type ref to ZCL_EXCEL_WORKSHEET_ROWDIMENSI . + value(EO_ROW) type ref to ZCL_EXCEL_ROW . methods GET_DIMENSION_RANGE returning value(EP_DIMENSION_RANGE) type STRING @@ -332,14 +340,14 @@ public section. methods GET_RANGES_ITERATOR returning value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . - methods GET_ROW_DIMENSION + methods GET_ROW importing !IP_ROW type INT4 returning - value(R_ROW_DIMENSION) type ref to ZCL_EXCEL_WORKSHEET_ROWDIMENSI . - methods GET_ROW_DIMENSIONS + value(EO_ROW) type ref to ZCL_EXCEL_ROW . + methods GET_ROWS returning - value(R_ROW_DIMENSION) type ZEXCEL_T_WORKSHEET_ROWDIMENSIO . + value(EO_ROWS) type ref to ZCL_EXCEL_ROWS . methods GET_ROW_OUTLINES returning value(RT_ROW_OUTLINES) type MTY_TS_OUTLINES_ROW . @@ -479,8 +487,8 @@ private section. mty_th_font_cache TYPE HASHED TABLE OF mty_s_font_cache WITH UNIQUE KEY font_name font_height flag_bold flag_italic . - types: - mty_ts_row_dimension TYPE SORTED TABLE OF zexcel_s_worksheet_rowdimensio WITH UNIQUE KEY row . +* types: +* mty_ts_row_dimension TYPE SORTED TABLE OF zexcel_s_worksheet_rowdimensio WITH UNIQUE KEY row . types: BEGIN OF mty_merge, row_from TYPE i, @@ -496,12 +504,12 @@ private section. data ACTIVE_CELL type ZEXCEL_S_CELL_DATA . data CHARTS type ref to ZCL_EXCEL_DRAWINGS . data COLUMNS type ref to ZCL_EXCEL_COLUMNS . + data ROW_DEFAULT type ref to ZCL_EXCEL_ROW . + data COLUMN_DEFAULT type ref to ZCL_EXCEL_COLUMN . data CONDITIONAL_STYLES type ref to ZCL_EXCEL_STYLES_CONDITIONAL . data DATA_VALIDATIONS type ref to ZCL_EXCEL_DATA_VALIDATIONS . - data COLUMN_DEFAULT type ref to ZCL_EXCEL_COLUMN . data DEFAULT_EXCEL_DATE_FORMAT type ZEXCEL_NUMBER_FORMAT . data DEFAULT_EXCEL_TIME_FORMAT type ZEXCEL_NUMBER_FORMAT . - data DEFAULT_ROW_DIMENSION type ref to ZCL_EXCEL_WORKSHEET_ROWDIMENSI . data DRAWINGS type ref to ZCL_EXCEL_DRAWINGS . data FREEZE_PANE_CELL_COLUMN type ZEXCEL_CELL_COLUMN . data FREEZE_PANE_CELL_ROW type ZEXCEL_CELL_ROW . @@ -517,9 +525,9 @@ private section. data PRINT_TITLE_ROW_FROM type ZEXCEL_CELL_ROW . data PRINT_TITLE_ROW_TO type ZEXCEL_CELL_ROW . data RANGES type ref to ZCL_EXCEL_RANGES . - data ROW_DIMENSIONS type MTY_TS_ROW_DIMENSION . + data ROWS type ref to ZCL_EXCEL_ROWS . data TABLES type ref to CL_OBJECT_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 . methods CALCULATE_CELL_WIDTH @@ -594,6 +602,14 @@ METHOD add_new_range. ENDMETHOD. +METHOD add_new_row. + CREATE OBJECT eo_row + EXPORTING + ip_index = ip_row. + rows->add( eo_row ). +ENDMETHOD. + + method BIND_ALV. data: lo_converter type ref to zcl_excel_converter. @@ -3650,6 +3666,7 @@ METHOD constructor. CREATE OBJECT data_validations. CREATE OBJECT tables. CREATE OBJECT columns. + CREATE OBJECT rows. CREATE OBJECT ranges. " issue #163 CREATE OBJECT mo_pagebreaks. CREATE OBJECT drawings @@ -3949,13 +3966,13 @@ method GET_DEFAULT_EXCEL_TIME_FORMAT. endmethod. -method GET_DEFAULT_ROW_DIMENSION. - IF me->default_row_dimension IS NOT BOUND. - CREATE OBJECT me->default_row_dimension. +METHOD get_default_row. + IF me->row_default IS NOT BOUND. + CREATE OBJECT me->row_default. ENDIF. - r_row_dimension = me->default_row_dimension. - endmethod. + eo_row = me->row_default. +ENDMETHOD. method GET_DIMENSION_RANGE. @@ -4089,32 +4106,35 @@ method GET_RANGES_ITERATOR. endmethod. -METHOD GET_ROW_DIMENSION. +METHOD get_row. - FIELD-SYMBOLS: LIKE LINE OF me->row_dimensions. + DATA: lo_row_iterator TYPE REF TO cl_object_collection_iterator, + lo_row TYPE REF TO zcl_excel_row. - DATA: ls_row_dimension LIKE LINE OF me->row_dimensions. + lo_row_iterator = me->get_rows_iterator( ). + WHILE lo_row_iterator->has_next( ) = abap_true. + lo_row ?= lo_row_iterator->get_next( ). + IF lo_row->get_row_index( ) = ip_row. + eo_row = lo_row. + EXIT. + ENDIF. + ENDWHILE. - READ TABLE me->row_dimensions ASSIGNING - WITH TABLE KEY row = ip_row. - - IF NOT IS ASSIGNED. - CREATE OBJECT r_row_dimension - EXPORTING - ip_index = ip_row. - ls_row_dimension-row = ip_row. - ls_row_dimension-row_dimension = r_row_dimension. - INSERT ls_row_dimension INTO TABLE me->row_dimensions. - ELSE. - r_row_dimension = -row_dimension. + IF eo_row IS NOT BOUND. + eo_row = me->add_new_row( ip_row ). ENDIF. ENDMETHOD. -METHOD get_row_dimensions. +METHOD GET_ROWS. + eo_rows = me->rows. +ENDMETHOD. - r_row_dimension[] = me->row_dimensions[]. + +METHOD get_rows_iterator. + + eo_iterator = me->rows->get_iterator( ). ENDMETHOD. @@ -4724,11 +4744,11 @@ method SET_PRINT_GRIDLINES. endmethod. -method SET_ROW_HEIGHT. - DATA: row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. - DATA: height TYPE float. +METHOD set_row_height. + DATA: lo_row TYPE REF TO zcl_excel_row. + DATA: height TYPE float. - row_dimension = me->get_row_dimension( ip_row ). + lo_row = me->get_row( ip_row ). * if a fix size is supplied use this TRY. @@ -4738,7 +4758,7 @@ method SET_ROW_HEIGHT. EXPORTING error = 'Please supply a positive number as row-height'. ENDIF. - row_dimension->set_row_height( height ). + lo_row->set_row_height( height ). EXIT. CATCH cx_sy_conversion_no_number. * Strange stuff passed --> raise error @@ -4747,9 +4767,7 @@ method SET_ROW_HEIGHT. error = 'Unable to interpret supplied input as number'. ENDTRY. - - - endmethod. +ENDMETHOD. METHOD set_row_outline. diff --git a/src/zcl_excel_worksheet.clas.xml b/src/zcl_excel_worksheet.clas.xml index 9ca4636..3ecc84a 100644 --- a/src/zcl_excel_worksheet.clas.xml +++ b/src/zcl_excel_worksheet.clas.xml @@ -130,6 +130,12 @@ I Create a new local range + + ZCL_EXCEL_WORKSHEET + ADD_NEW_ROW + E + Create a new row + ZCL_EXCEL_WORKSHEET BIND_ALV @@ -322,18 +328,6 @@ I Date format used in case style is not provide for D fields - - ZCL_EXCEL_WORKSHEET - DEFAULT_ROW_DIMENSION - E - Worksheet RowDimension - - - ZCL_EXCEL_WORKSHEET - DEFAULT_ROW_DIMENSION - I - Worksheet RowDimension - ZCL_EXCEL_WORKSHEET DELETE_MERGE @@ -522,15 +516,9 @@ ZCL_EXCEL_WORKSHEET - GET_DEFAULT_ROW_DIMENSION + GET_DEFAULT_ROW E - Get column at a specific column - - - ZCL_EXCEL_WORKSHEET - GET_DEFAULT_ROW_DIMENSION - I - Get column dimension at a specific column + Get row at a specific row ZCL_EXCEL_WORKSHEET @@ -648,27 +636,21 @@ ZCL_EXCEL_WORKSHEET - GET_ROW_DIMENSION + GET_ROW E - Get row dimension at a specific row + Get row at a specific row ZCL_EXCEL_WORKSHEET - GET_ROW_DIMENSION - I - Get column dimension at a specific column - - - ZCL_EXCEL_WORKSHEET - GET_ROW_DIMENSIONS + GET_ROWS E - Get row dimensions + Get rows ZCL_EXCEL_WORKSHEET - GET_ROW_DIMENSIONS - I - Get column dimensions + GET_ROWS_ITERATOR + E + Get rows iterator ZCL_EXCEL_WORKSHEET @@ -814,12 +796,6 @@ E All row outlines ( sorted table ) - - ZCL_EXCEL_WORKSHEET - MTY_TS_ROW_DIMENSION - E - Sorted table for row dimensions - ZCL_EXCEL_WORKSHEET MT_MERGED_CELLS @@ -918,15 +894,15 @@ ZCL_EXCEL_WORKSHEET - ROW_DIMENSIONS + ROWS E - Collection of row dimensions + Ranges collection ZCL_EXCEL_WORKSHEET - ROW_DIMENSIONS - I - Collection of row dimensions + ROW_DEFAULT + E + Worksheet ColumnDimension ZCL_EXCEL_WORKSHEET diff --git a/src/zcl_excel_worksheet_columndime.clas.abap b/src/zcl_excel_worksheet_columndime.clas.abap deleted file mode 100644 index 9b1d6c4..0000000 --- a/src/zcl_excel_worksheet_columndime.clas.abap +++ /dev/null @@ -1,230 +0,0 @@ -class ZCL_EXCEL_WORKSHEET_COLUMNDIME definition - public - final - create public . - -*"* public components of class ZCL_EXCEL_WORKSHEET_COLUMNDIME -*"* do not include other source files here!!! -public section. - type-pools ABAP . - - methods CONSTRUCTOR - importing - !IP_INDEX type ZEXCEL_CELL_COLUMN_ALPHA - !IP_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET - !IP_EXCEL type ref to ZCL_EXCEL . - methods GET_AUTO_SIZE - returning - value(R_AUTO_SIZE) type ABAP_BOOL . - methods GET_COLLAPSED - returning - value(R_COLLAPSED) type ABAP_BOOL . - methods GET_COLUMN_INDEX - returning - value(R_COLUMN_INDEX) type INT4 . - methods GET_OUTLINE_LEVEL - returning - value(R_OUTLINE_LEVEL) type INT4 . - methods GET_VISIBLE - returning - value(R_VISIBLE) type ABAP_BOOL . - methods GET_WIDTH - returning - value(R_WIDTH) type FLOAT . - methods GET_XF_INDEX - returning - value(R_XF_INDEX) type INT4 . - methods SET_AUTO_SIZE - importing - !IP_AUTO_SIZE type ABAP_BOOL - returning - value(R_WORKSHEET_COLUMNDIME) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME . - methods SET_COLLAPSED - importing - !IP_COLLAPSED type ABAP_BOOL - returning - value(R_WORKSHEET_COLUMNDIME) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME . - methods SET_COLUMN_INDEX - importing - !IP_INDEX type ZEXCEL_CELL_COLUMN_ALPHA - returning - value(R_WORKSHEET_COLUMNDIME) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME . - methods SET_OUTLINE_LEVEL - importing - !IP_OUTLINE_LEVEL type INT4 . - methods SET_VISIBLE - importing - !IP_VISIBLE type ABAP_BOOL - returning - value(R_WORKSHEET_COLUMNDIME) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME . - methods SET_WIDTH - importing - !IP_WIDTH type SIMPLE - returning - value(R_WORKSHEET_COLUMNDIME) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME - raising - ZCX_EXCEL . - methods SET_XF_INDEX - importing - !IP_XF_INDEX type INT4 - returning - value(R_WORKSHEET_COLUMNDIME) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME . - methods SET_COLUMN_STYLE_BY_GUID - importing - !IP_STYLE_GUID type ZEXCEL_CELL_STYLE - raising - ZCX_EXCEL . - methods GET_COLUMN_STYLE_GUID - returning - value(EP_STYLE_GUID) type ZEXCEL_CELL_STYLE - raising - ZCX_EXCEL . -*"* protected components of class ZCL_EXCEL_WORKSHEET_COLUMNDIME -*"* do not include other source files here!!! -protected section. -*"* private components of class ZCL_EXCEL_WORKSHEET_COLUMNDIME -*"* do not include other source files here!!! -private section. - - data COLUMN_INDEX type INT4 . - data WIDTH type FLOAT . - data AUTO_SIZE type ABAP_BOOL . - data VISIBLE type ABAP_BOOL . - data OUTLINE_LEVEL type INT4 . - data COLLAPSED type ABAP_BOOL . - data XF_INDEX type INT4 . - data STYLE_GUID type ZEXCEL_CELL_STYLE . - data EXCEL type ref to ZCL_EXCEL . - data WORKSHEET type ref to ZCL_EXCEL_WORKSHEET . -ENDCLASS. - - - -CLASS ZCL_EXCEL_WORKSHEET_COLUMNDIME IMPLEMENTATION. - - -method CONSTRUCTOR. - me->column_index = zcl_excel_common=>convert_column2int( ip_index ). - me->width = -1. - me->auto_size = abap_false. - me->visible = abap_true. - me->outline_level = 0. - me->collapsed = abap_false. - me->excel = ip_excel. "ins issue #157 - Allow Style for columns - me->worksheet = ip_worksheet. "ins issue #157 - Allow Style for columns - - " set default index to cellXf - me->xf_index = 0. - - endmethod. - - -method GET_AUTO_SIZE. - r_auto_size = me->auto_size. - endmethod. - - -method GET_COLLAPSED. - r_Collapsed = me->Collapsed. - endmethod. - - -method GET_COLUMN_INDEX. - r_column_index = me->column_index. - endmethod. - - -method GET_COLUMN_STYLE_GUID. - IF me->style_guid IS NOT INITIAL. - ep_style_guid = me->style_guid. - ELSE. - ep_style_guid = me->worksheet->zif_excel_sheet_properties~get_style( ). - ENDIF. - endmethod. - - -method GET_OUTLINE_LEVEL. - r_outline_level = me->outline_level. - endmethod. - - -method GET_VISIBLE. - r_Visible = me->Visible. - endmethod. - - -method GET_WIDTH. - r_WIDTH = me->WIDTH. - endmethod. - - -method GET_XF_INDEX. - r_xf_index = me->xf_index. - endmethod. - - -method SET_AUTO_SIZE. - me->auto_size = ip_auto_size. - r_worksheet_columndime = me. - endmethod. - - -method SET_COLLAPSED. - me->Collapsed = ip_Collapsed. - r_worksheet_columndime = me. - endmethod. - - -method SET_COLUMN_INDEX. - me->column_index = zcl_excel_common=>convert_column2int( ip_index ). - r_worksheet_columndime = me. - endmethod. - - -method SET_COLUMN_STYLE_BY_GUID. - DATA: stylemapping TYPE zexcel_s_stylemapping. - - IF me->excel IS NOT BOUND. - RAISE EXCEPTION TYPE zcx_excel - EXPORTING - error = 'Internal error - reference to ZCL_EXCEL not bound'. - ENDIF. - TRY. - stylemapping = me->excel->get_style_to_guid( ip_style_guid ). - me->style_guid = stylemapping-guid. - - CATCH zcx_excel . - EXIT. " leave as is in case of error - ENDTRY. - - endmethod. - - -method SET_OUTLINE_LEVEL. - me->outline_level = ip_outline_level. - endmethod. - - -method SET_VISIBLE. - me->Visible = ip_Visible. - r_worksheet_columndime = me. - endmethod. - - -method SET_WIDTH. - TRY. - me->width = ip_width. - r_worksheet_columndime = me. - CATCH cx_sy_conversion_no_number. - RAISE EXCEPTION TYPE zcx_excel - EXPORTING - error = 'Unable to interpret width as number'. - ENDTRY. - endmethod. - - -method SET_XF_INDEX. - me->XF_INDEX = ip_XF_INDEX. - r_worksheet_columndime = me. - endmethod. -ENDCLASS. diff --git a/src/zcl_excel_worksheet_columndime.clas.xml b/src/zcl_excel_worksheet_columndime.clas.xml deleted file mode 100644 index d29281d..0000000 --- a/src/zcl_excel_worksheet_columndime.clas.xml +++ /dev/null @@ -1,166 +0,0 @@ - - - - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - 1 - E - Worksheet ColumnDimension - 2 - 1 - X - X - X - X - - - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - AUTO_SIZE - E - Auto size? - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - AUTO_SIZE - I - Auto size? - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - COLLAPSED - E - Collapsed? - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - COLLAPSED - I - Collapsed? - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - COLUMN_INDEX - E - Column index - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - COLUMN_INDEX - I - Column index - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - EXCEL - E - Excel creator - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - EXCEL - I - Excel creator - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - GET_COLUMN_STYLE_GUID - E - Get guid of column style - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - GET_COLUMN_STYLE_GUID - I - Get guid of column style - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - OUTLINE_LEVEL - E - Outline level - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - OUTLINE_LEVEL - I - Outline level - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - SET_COLUMN_STYLE_BY_GUID - E - Set column style by style guid - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - SET_COLUMN_STYLE_BY_GUID - I - Set column style by style guid - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - STYLE_GUID - E - Style identifier - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - STYLE_GUID - I - Style identifier - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - VISIBLE - E - Visible? - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - VISIBLE - I - Visible? - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - WIDTH - E - Column width - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - WIDTH - I - Column width - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - WORKSHEET - E - Worksheet - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - WORKSHEET - I - Worksheet - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - XF_INDEX - E - Index to cellXf - - - ZCL_EXCEL_WORKSHEET_COLUMNDIME - XF_INDEX - I - Index to cellXf - - - - - diff --git a/src/zcl_excel_writer_2007.clas.abap b/src/zcl_excel_writer_2007.clas.abap index b8ca8dc..9ac09e2 100644 --- a/src/zcl_excel_writer_2007.clas.abap +++ b/src/zcl_excel_writer_2007.clas.abap @@ -3092,10 +3092,8 @@ METHOD create_xl_sheet. lo_style_conditional TYPE REF TO zcl_excel_style_conditional, lo_data_validation TYPE REF TO zcl_excel_data_validation, lo_table TYPE REF TO zcl_excel_table, - row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, - lo_row_dim_empty TYPE REF TO zcl_excel_worksheet_rowdimensi, lo_column_default TYPE REF TO zcl_excel_column, - default_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. + lo_row_default TYPE REF TO zcl_excel_row. DATA: lv_value TYPE string, lt_range_merge TYPE string_table, @@ -3124,7 +3122,8 @@ METHOD create_xl_sheet. lv_freeze_cell_column_alpha TYPE zexcel_cell_column_alpha, lo_column_iterator TYPE REF TO cl_object_collection_iterator, lo_column TYPE REF TO zcl_excel_column, - row_dimensions TYPE zexcel_t_worksheet_rowdimensio, + lo_row_iterator TYPE REF TO cl_object_collection_iterator, + lo_row TYPE REF TO zcl_excel_row, ls_style_cond_mapping TYPE zexcel_s_styles_cond_mapping, lv_relation_id TYPE i VALUE 0, outline_level_row TYPE i VALUE 0, @@ -3134,7 +3133,6 @@ METHOD create_xl_sheet. ls_sheet_content LIKE LINE OF io_worksheet->sheet_content, ls_sheet_content_empty LIKE LINE OF io_worksheet->sheet_content, lv_last_row TYPE i, - lts_row_dimensions TYPE zexcel_t_worksheet_rowdimensio, lts_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row, col_count TYPE int4, merge_count TYPE int4, @@ -3152,7 +3150,6 @@ METHOD create_xl_sheet. FIELD-SYMBOLS: TYPE zexcel_s_cell_data, LIKE LINE OF lt_range_merge, - TYPE zexcel_s_worksheet_rowdimensio, LIKE LINE OF lts_row_outlines. *--------------------------------------------------------------------* @@ -3379,22 +3376,23 @@ METHOD create_xl_sheet. lo_column_iterator = io_worksheet->get_columns_iterator( ). + lo_row_iterator = io_worksheet->get_rows_iterator( ). " Calculate col IF NOT lo_column_iterator IS BOUND. io_worksheet->calculate_column_widths( ). lo_column_iterator = io_worksheet->get_columns_iterator( ). ENDIF. - row_dimensions[] = io_worksheet->get_row_dimensions( ). + " sheetFormatPr node lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetformatpr parent = lo_document ). " defaultRowHeight - default_row_dimension = io_worksheet->get_default_row_dimension( ). - IF default_row_dimension IS BOUND. - IF default_row_dimension->get_row_height( ) >= 0. + lo_row_default = io_worksheet->get_default_row( ). + IF lo_row_default IS BOUND. + IF lo_row_default->get_row_height( ) >= 0. lo_element->set_attribute_ns( name = lc_xml_attr_customheight value = lc_xml_attr_true ). - lv_value = default_row_dimension->get_row_height( ). + lv_value = lo_row_default->get_row_height( ). ELSE. lv_value = '12.75'. ENDIF. @@ -4785,9 +4783,10 @@ METHOD create_xl_sheet_sheet_data. lv_next_row TYPE i, lv_last_row TYPE i, - lts_row_dimensions TYPE zexcel_t_worksheet_rowdimensio, - lo_row_dim_empty TYPE REF TO zcl_excel_worksheet_rowdimensi, - row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, +* lts_row_dimensions TYPE zexcel_t_worksheet_rowdimensio, + lo_row_iterator TYPE REF TO cl_object_collection_iterator, + lo_row 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, ls_last_row TYPE zexcel_s_cell_data, @@ -4801,7 +4800,6 @@ METHOD create_xl_sheet_sheet_data. lv_style_guid TYPE zexcel_cell_style. FIELD-SYMBOLS: TYPE zexcel_s_cell_data, - TYPE zexcel_s_worksheet_rowdimensio, LIKE LINE OF lts_row_outlines. @@ -4854,12 +4852,15 @@ METHOD create_xl_sheet_sheet_data. *Last row with cell content lv_last_row = io_worksheet->get_highest_row( ). *Last line with row-information set directly ( like line height, hidden-status ... ) - lts_row_dimensions = io_worksheet->get_row_dimensions( ). - SORT lts_row_dimensions BY row DESCENDING. - READ TABLE lts_row_dimensions INDEX 1 ASSIGNING . - IF sy-subrc = 0 AND -row > lv_last_row. - lv_last_row = -row. - ENDIF. + + lo_row_iterator = io_worksheet->get_rows_iterator( ). + WHILE lo_row_iterator->has_next( ) = abap_true. + lo_row ?= lo_row_iterator->get_next( ). + IF lo_row->get_row_index( ) > lv_last_row. + lv_last_row = lo_row->get_row_index( ). + ENDIF. + ENDWHILE. + *Last line with row-information set indirectly by row outline lts_row_outlines = io_worksheet->get_row_outlines( ). LOOP AT lts_row_outlines ASSIGNING . @@ -4908,11 +4909,11 @@ METHOD create_xl_sheet_sheet_data. ASSIGN ls_sheet_content TO . ELSE. *Check if empty row is really necessary - this is basically the case when we have information in row_dimension - lo_row_dim_empty = io_worksheet->get_row_dimension( lv_current_row ). - CHECK lo_row_dim_empty->get_row_height( ) >= 0 OR - lo_row_dim_empty->get_collapsed( io_worksheet ) = abap_true OR - lo_row_dim_empty->get_outline_level( io_worksheet ) > 0 OR - lo_row_dim_empty->get_xf_index( ) <> 0. + lo_row_empty = io_worksheet->get_row( lv_current_row ). + CHECK lo_row_empty->get_row_height( ) >= 0 OR + lo_row_empty->get_collapsed( io_worksheet ) = abap_true OR + lo_row_empty->get_outline_level( io_worksheet ) > 0 OR + lo_row_empty->get_xf_index( ) <> 0. " Dummyentry A1 ls_sheet_content_empty-cell_row = lv_current_row. ls_sheet_content_empty-cell_column = 1. @@ -4930,7 +4931,7 @@ METHOD create_xl_sheet_sheet_data. ENDIF. IF ls_last_row-cell_row IS NOT INITIAL. " Row visibility of previos row. - IF row_dimension->get_visible( io_worksheet ) = abap_false OR + IF lo_row->get_visible( io_worksheet ) = abap_false OR l_autofilter_hidden = abap_true. lo_element_2->set_attribute_ns( name = 'hidden' value = 'true'). ENDIF. @@ -4956,33 +4957,33 @@ METHOD create_xl_sheet_sheet_data. SHIFT lv_value LEFT DELETING LEADING space. lo_element_2->set_attribute_ns( name = lc_xml_attr_spans value = lv_value ). - row_dimension = io_worksheet->get_row_dimension( -cell_row ). + lo_row = io_worksheet->get_row( -cell_row ). " Do we need the row dimension attributes? - IF row_dimension->get_row_height( ) >= 0 OR - row_dimension->get_collapsed( io_worksheet ) = abap_true OR - row_dimension->get_outline_level( io_worksheet ) > 0 OR - row_dimension->get_xf_index( ) <> 0 OR + IF lo_row->get_row_height( ) >= 0 OR + lo_row->get_collapsed( io_worksheet ) = abap_true OR + lo_row->get_outline_level( io_worksheet ) > 0 OR + lo_row->get_xf_index( ) <> 0 OR l_autofilter_hidden = abap_true. " Row dimensions - IF row_dimension->get_row_height( ) >= 0. + IF lo_row->get_row_height( ) >= 0. lo_element_2->set_attribute_ns( name = 'customHeight' value = '1'). - lv_value = row_dimension->get_row_height( ). + lv_value = lo_row->get_row_height( ). lo_element_2->set_attribute_ns( name = 'ht' value = lv_value ). ENDIF. " Collapsed - IF row_dimension->get_collapsed( io_worksheet ) = abap_true. + IF lo_row->get_collapsed( io_worksheet ) = abap_true. lo_element_2->set_attribute_ns( name = 'collapsed' value = 'true'). ENDIF. " Outline level - IF row_dimension->get_outline_level( io_worksheet ) > 0. - lv_value = row_dimension->get_outline_level( io_worksheet ). + IF lo_row->get_outline_level( io_worksheet ) > 0. + lv_value = lo_row->get_outline_level( io_worksheet ). SHIFT lv_value RIGHT DELETING TRAILING space. SHIFT lv_value LEFT DELETING LEADING space. lo_element_2->set_attribute_ns( name = 'outlineLevel' value = lv_value ). ENDIF. " Style - IF row_dimension->get_xf_index( ) <> 0. - lv_value = row_dimension->get_xf_index( ). + IF lo_row->get_xf_index( ) <> 0. + lv_value = lo_row->get_xf_index( ). lo_element_2->set_attribute_ns( name = 's' value = lv_value ). lo_element_2->set_attribute_ns( name = 'customFormat' value = '1'). ENDIF. @@ -5108,7 +5109,7 @@ METHOD create_xl_sheet_sheet_data. CLEAR l_autofilter_hidden. ENDIF. " Row visibility of previos row. - IF row_dimension->get_visible( ) = abap_false OR + IF lo_row->get_visible( ) = abap_false OR l_autofilter_hidden = abap_true. lo_element_2->set_attribute_ns( name = 'hidden' value = 'true'). ENDIF. diff --git a/src/zcl_excel_writer_huge_file.clas.abap b/src/zcl_excel_writer_huge_file.clas.abap index c2f22f8..4edb948 100644 --- a/src/zcl_excel_writer_huge_file.clas.abap +++ b/src/zcl_excel_writer_huge_file.clas.abap @@ -281,9 +281,8 @@ METHOD create_xl_sheet. DATA: lo_iterator TYPE REF TO cl_object_collection_iterator, lo_table TYPE REF TO zcl_excel_table, - row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, lo_column_default TYPE REF TO zcl_excel_column, - default_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, + lo_row_default TYPE REF TO zcl_excel_row, lv_value TYPE string, lv_index TYPE i, lv_spans TYPE string, @@ -296,7 +295,8 @@ METHOD create_xl_sheet. lv_freeze_cell_column_alpha TYPE zexcel_cell_column_alpha, lo_column_iterator TYPE REF TO cl_object_collection_iterator, lo_column TYPE REF TO zcl_excel_column, - row_dimensions TYPE zexcel_t_worksheet_rowdimensio, + lo_row_iterator TYPE REF TO cl_object_collection_iterator, + lo_row TYPE REF TO zcl_excel_row, lv_relation_id TYPE i VALUE 0, outline_level_row TYPE i VALUE 0, outline_level_col TYPE i VALUE 0, @@ -428,18 +428,23 @@ METHOD create_xl_sheet. * Row and column info * lo_column_iterator = io_worksheet->get_columns_iterator( ). - row_dimensions[] = io_worksheet->get_row_dimensions( ). - IF NOT lo_column_iterator IS BOUND. io_worksheet->calculate_column_widths( ). lo_column_iterator = io_worksheet->get_columns_iterator( ). ENDIF. - default_row_dimension = io_worksheet->get_default_row_dimension( ). - IF default_row_dimension IS BOUND. - IF default_row_dimension->get_row_height( ) >= 0. + lo_column_default = io_worksheet->get_default_column( ). + IF lo_column_default IS BOUND. + IF lo_column_default->get_width( ) >= 0. + l_worksheet-defaultcolwidth = lo_column_default->get_width( ). + ENDIF. + ENDIF. + + lo_row_default = io_worksheet->get_default_row( ). + IF lo_row_default IS BOUND. + IF lo_row_default->get_row_height( ) >= 0. l_worksheet-customheight = lc_true. - lv_value = default_row_dimension->get_row_height( ). + lv_value = lo_row_default->get_row_height( ). ELSE. lv_value = '12.75'. ENDIF. @@ -449,21 +454,16 @@ METHOD create_xl_sheet. CONDENSE lv_value. l_worksheet-defaultrowheight = lv_value. - lo_column_default = io_worksheet->get_default_column( ). - IF lo_column_default IS BOUND. - IF lo_column_default->get_width( ) >= 0. - l_worksheet-defaultcolwidth = lo_column_default->get_width( ). + lo_row_iterator = io_worksheet->get_rows_iterator( ). + WHILE lo_row_iterator->has_next( ) = abap_true. + lo_row ?= lo_row_iterator->get_next( ). + IF lo_row->get_outline_level( ) > outline_level_row. + l_worksheet-outlinelevelrow = lo_row->get_outline_level( ). ENDIF. - ENDIF. - - LOOP AT row_dimensions ASSIGNING . - IF -row_dimension->get_outline_level( ) > outline_level_row. - l_worksheet-outlinelevelrow = -row_dimension->get_outline_level( ). - ENDIF. - ENDLOOP. + ENDWHILE. * Set column information (width, style, ...) - IF lo_column_iterator->has_next( ) = abap_true. +* IF lo_column_iterator->has_next( ) = abap_true. WHILE lo_column_iterator->has_next( ) = abap_true. lo_column ?= lo_column_iterator->get_next( ). IF lo_column->get_outline_level( ) > outline_level_col. @@ -504,7 +504,7 @@ METHOD create_xl_sheet. lv_column = zcl_excel_common=>convert_column2int( lo_column->get_column_index( ) ). INSERT lv_column INTO TABLE lts_sorted_columns. ENDWHILE. - ENDIF. +* ENDIF. * * Now find all columns that were missing so far @@ -577,32 +577,32 @@ METHOD create_xl_sheet. * * Row dimension attributes * - row_dimension = io_worksheet->get_row_dimension( -cell_row ). - IF row_dimension->get_visible( ) = abap_false. + lo_row = io_worksheet->get_row( -cell_row ). + IF lo_row->get_visible( ) = abap_false. -hidden = lc_true. ENDIF. - IF row_dimension->get_row_height( ) >= 0. + IF lo_row->get_row_height( ) >= 0. -customheight = lc_one. - -height = row_dimension->get_row_height( ). + -height = lo_row->get_row_height( ). ENDIF. * * Collapsed * - IF row_dimension->get_collapsed( ) = abap_true. + IF lo_row->get_collapsed( ) = abap_true. -collapsed = lc_true. ENDIF. * * Outline level * - -outlinelevel = row_dimension->get_outline_level( ). + -outlinelevel = lo_row->get_outline_level( ). * * Style * - -style = row_dimension->get_xf_index( ). + -style = lo_row->get_xf_index( ). IF -style <> 0. -customformat = lc_one. ENDIF. diff --git a/src/zdemo_calendar.prog.abap b/src/zdemo_calendar.prog.abap index af80072..25b92e9 100644 --- a/src/zdemo_calendar.prog.abap +++ b/src/zdemo_calendar.prog.abap @@ -49,8 +49,8 @@ START-OF-SELECTION. lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_column TYPE REF TO zcl_excel_column, - lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi, - hyperlink TYPE REF TO zcl_excel_hyperlink, + lo_row TYPE REF TO zcl_excel_row, + lo_hyperlink TYPE REF TO zcl_excel_hyperlink, lo_drawing TYPE REF TO zcl_excel_drawing. DATA: lo_style_month TYPE REF TO zcl_excel_style, @@ -291,13 +291,13 @@ START-OF-SELECTION. row = lv_from_row - 2. ENDIF. IF NOT -url IS INITIAL. - hyperlink = zcl_excel_hyperlink=>create_external_link( -url ). + lo_hyperlink = zcl_excel_hyperlink=>create_external_link( -url ). lo_worksheet->set_cell( EXPORTING ip_column = from_col " Cell Column ip_row = row " Cell Row ip_value = value " Cell Value - ip_hyperlink = hyperlink + ip_hyperlink = lo_hyperlink ). ELSE. lo_worksheet->set_cell( @@ -307,8 +307,8 @@ START-OF-SELECTION. ip_value = value " Cell Value ). ENDIF. - lo_row_dim = lo_worksheet->get_row_dimension( row ). - lo_row_dim->set_row_height( '22.0' ). + lo_row = lo_worksheet->get_row( row ). + lo_row->set_row_height( '22.0' ). " In Landscape mode the row between the description and the " dates should be not so high @@ -320,11 +320,11 @@ START-OF-SELECTION. ip_row = row " Cell Row ip_value = ' ' " Cell Value ). - lo_row_dim = lo_worksheet->get_row_dimension( row ). - lo_row_dim->set_row_height( '7.0' ). + lo_row = lo_worksheet->get_row( row ). + lo_row->set_row_height( '7.0' ). row = lv_from_row - 1. - lo_row_dim = lo_worksheet->get_row_dimension( row ). - lo_row_dim->set_row_height( '5.0' ). + lo_row = lo_worksheet->get_row( row ). + lo_row->set_row_height( '5.0' ). ENDIF. CONCATENATE p_path lv_file_separator -filename INTO image_path. diff --git a/src/zdemo_calendar_classes.prog.abap b/src/zdemo_calendar_classes.prog.abap index 19cdc2c..322c493 100644 --- a/src/zdemo_calendar_classes.prog.abap +++ b/src/zdemo_calendar_classes.prog.abap @@ -209,15 +209,15 @@ CLASS zcl_helper IMPLEMENTATION. ENDIF. ENDMETHOD. "load_image METHOD add_calendar. - DATA: day_names TYPE TABLE OF t246. - DATA: row TYPE zexcel_cell_row, - row_max TYPE i, - col_int TYPE zexcel_cell_column, - col_max TYPE i, - from_col_int TYPE zexcel_cell_column, - col TYPE zexcel_cell_column_alpha, - lo_column TYPE REF TO zcl_excel_column, - lr_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi. + DATA: day_names TYPE TABLE OF t246. + DATA: row TYPE zexcel_cell_row, + row_max TYPE i, + col_int TYPE zexcel_cell_column, + col_max TYPE i, + from_col_int TYPE zexcel_cell_column, + col TYPE zexcel_cell_column_alpha, + lo_column TYPE REF TO zcl_excel_column, + lo_row TYPE REF TO zcl_excel_row. DATA: lv_date TYPE datum, value TYPE string, weekday TYPE wotnr, @@ -333,8 +333,8 @@ CLASS zcl_helper IMPLEMENTATION. row_max = i_from_row + 6. WHILE row <= row_max. height = 50. - lr_row_dim = c_worksheet->get_row_dimension( row ). - lr_row_dim->set_row_height( height ). + lo_row = c_worksheet->get_row( row ). + lo_row->set_row_height( height ). row = row + 1. ENDWHILE. ENDMETHOD. "add_calendar @@ -342,8 +342,8 @@ CLASS zcl_helper IMPLEMENTATION. DATA: value TYPE string, hyperlink TYPE REF TO zcl_excel_hyperlink. - value = 'Created with abap2xlsx. Find more information at http://abap2xlsx.org.'(002). - hyperlink = zcl_excel_hyperlink=>create_external_link( 'http://abap2xlsx.org' ). "#EC NOTEXT + value = 'Created with abap2xlsx. Find more information at http://www.plinky.it/abap/abap2xlsx.php.'(002). + hyperlink = zcl_excel_hyperlink=>create_external_link( 'http://www.plinky.it/abap/abap2xlsx.php' ). "#EC NOTEXT c_worksheet->set_cell( EXPORTING ip_column = i_from_col " Cell Column @@ -360,12 +360,12 @@ CLASS zcl_helper IMPLEMENTATION. day TYPE i, value TYPE string, weekday TYPE wotnr. - DATA: row TYPE zexcel_cell_row, - from_col_int TYPE zexcel_cell_column, - col_int TYPE zexcel_cell_column, - col TYPE zexcel_cell_column_alpha. - DATA: lo_column TYPE REF TO zcl_excel_column, - lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi. + DATA: row TYPE zexcel_cell_row, + from_col_int TYPE zexcel_cell_column, + col_int TYPE zexcel_cell_column, + col TYPE zexcel_cell_column_alpha. + DATA: lo_column TYPE REF TO zcl_excel_column, + lo_row TYPE REF TO zcl_excel_row. FIELD-SYMBOLS: LIKE LINE OF day_names. @@ -424,8 +424,8 @@ CLASS zcl_helper IMPLEMENTATION. ip_row = row " Cell Row ip_value = ' ' " Cell Value ). - lo_row_dim = c_worksheet->get_row_dimension( row ). - lo_row_dim->set_row_height( '5.0' ). + lo_row = c_worksheet->get_row( row ). + lo_row->set_row_height( '5.0' ). row = i_from_row + 3. zcl_helper=>add_a2x_footer( EXPORTING diff --git a/src/zdemo_excel1.prog.abap b/src/zdemo_excel1.prog.abap index 8442ba8..ff94444 100644 --- a/src/zdemo_excel1.prog.abap +++ b/src/zdemo_excel1.prog.abap @@ -28,7 +28,7 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ). lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = sy-datum ). lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ). - lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'http://www.abap2xlsx.org' ). + lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'http://www.plinky.it/abap/abap2xlsx.php' ). lo_worksheet->set_cell( ip_column = 'B' ip_row = 4 ip_value = 'Click here to visit abap2xlsx homepage' ip_hyperlink = lo_hyperlink ). lo_column = lo_worksheet->get_column( ip_column = 'B' ). diff --git a/src/zdemo_excel11.prog.abap b/src/zdemo_excel11.prog.abap index b939e80..c05ae30 100644 --- a/src/zdemo_excel11.prog.abap +++ b/src/zdemo_excel11.prog.abap @@ -192,7 +192,7 @@ START-OF-SELECTION. lo_style_body TYPE REF TO zcl_excel_style, lo_border_dark TYPE REF TO zcl_excel_style_border, lo_column TYPE REF TO zcl_excel_column, - row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. + lo_row TYPE REF TO zcl_excel_row. DATA: lv_style_body_even_guid TYPE zexcel_cell_style, lv_style_body_green TYPE zexcel_cell_style. @@ -358,8 +358,8 @@ START-OF-SELECTION. ip_style = lv_style_body_even_guid ). ENDLOOP. " Hide first row - row_dimension = lo_worksheet->get_row_dimension( 1 ). - row_dimension->set_visible( abap_false ). + lo_row = lo_worksheet->get_row( 1 ). + lo_row->set_visible( abap_false ). DATA: highest_column TYPE zexcel_cell_column, count TYPE int4, diff --git a/src/zdemo_excel12.prog.abap b/src/zdemo_excel12.prog.abap index 5c06367..1574ccf 100644 --- a/src/zdemo_excel12.prog.abap +++ b/src/zdemo_excel12.prog.abap @@ -11,7 +11,7 @@ REPORT zdemo_excel12. DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_column TYPE REF TO zcl_excel_column, - row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. + lo_row TYPE REF TO zcl_excel_row. DATA: lv_file TYPE xstring, lv_bytecount TYPE i, @@ -71,10 +71,10 @@ START-OF-SELECTION. lo_column = lo_worksheet->get_column( ip_column = 'H' ). lo_column->set_outline_level( ip_outline_level = 2 ). - row_dimension = lo_worksheet->get_row_dimension( ip_row = 1 ). - row_dimension->set_visible( ip_visible = abap_false ). - row_dimension = lo_worksheet->get_row_dimension( ip_row = 5 ). - row_dimension->set_row_height( ip_row_height = 20 ). + lo_row = lo_worksheet->get_row( ip_row = 1 ). + lo_row->set_visible( ip_visible = abap_false ). + lo_row = lo_worksheet->get_row( ip_row = 5 ). + lo_row->set_row_height( ip_row_height = 20 ). * Define an outline rows 10-16, collapsed on startup lo_worksheet->set_row_outline( iv_row_from = 10 diff --git a/src/zdemo_excel14.prog.abap b/src/zdemo_excel14.prog.abap index 162cafc..0870fdf 100644 --- a/src/zdemo_excel14.prog.abap +++ b/src/zdemo_excel14.prog.abap @@ -37,7 +37,7 @@ DATA: lo_excel TYPE REF TO zcl_excel, lv_style_shrink_guid TYPE zexcel_cell_style, lv_style_indent_guid TYPE zexcel_cell_style. -DATA: lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. +DATA: lo_row TYPE REF TO zcl_excel_row. CONSTANTS: gc_save_file_name TYPE string VALUE '14_Alignment.xlsx'. INCLUDE zdemo_excel_outputopt_incl. @@ -117,8 +117,8 @@ START-OF-SELECTION. " Set row size for first 7 rows to 40 DO 7 TIMES. - lo_row_dimension = lo_worksheet->get_row_dimension( sy-index ). - lo_row_dimension->set_row_height( 40 ). + lo_row = lo_worksheet->get_row( sy-index ). + lo_row->set_row_height( 40 ). ENDDO. "Horizontal alignment diff --git a/src/zdemo_excel2.prog.abap b/src/zdemo_excel2.prog.abap index be733fa..3e9660e 100644 --- a/src/zdemo_excel2.prog.abap +++ b/src/zdemo_excel2.prog.abap @@ -47,7 +47,7 @@ DATA: lv_file TYPE xstring, DATA: lv_full_path TYPE string, lv_workdir TYPE string, lv_file_separator TYPE c. -DATA: lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi. +DATA: lo_row TYPE REF TO zcl_excel_row. CONSTANTS: gc_save_file_name TYPE string VALUE '02_Styles.xlsx'. INCLUDE zdemo_excel_outputopt_incl. @@ -262,47 +262,47 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_column = 'B' ip_row = 10 ip_style = lv_style_gr_cornerlb_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_cornerlb ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 10 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). + lo_row = lo_worksheet->get_row( ip_row = 10 ). + lo_row->set_row_height( ip_row_height = 30 ). lo_worksheet->set_cell( ip_column = 'C' ip_row = 11 ip_style = lv_style_gr_cornerlt_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_cornerlt ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 11 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). + lo_row = lo_worksheet->get_row( ip_row = 11 ). + lo_row->set_row_height( ip_row_height = 30 ). lo_worksheet->set_cell( ip_column = 'B' ip_row = 12 ip_style = lv_style_gr_cornerrb_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_cornerrb ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 12 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). + lo_row = lo_worksheet->get_row( ip_row = 12 ). + lo_row->set_row_height( ip_row_height = 30 ). lo_worksheet->set_cell( ip_column = 'C' ip_row = 13 ip_style = lv_style_gr_cornerrt_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_cornerrt ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 13 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). + lo_row = lo_worksheet->get_row( ip_row = 13 ). + lo_row->set_row_height( ip_row_height = 30 ). lo_worksheet->set_cell( ip_column = 'B' ip_row = 14 ip_style = lv_style_gr_horizontal90_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_horizontal90 ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 14 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). + lo_row = lo_worksheet->get_row( ip_row = 14 ). + lo_row->set_row_height( ip_row_height = 30 ). lo_worksheet->set_cell( ip_column = 'C' ip_row = 15 ip_style = lv_style_gr_horizontal270_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_horizontal270 ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 15 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). + lo_row = lo_worksheet->get_row( ip_row = 15 ). + lo_row->set_row_height( ip_row_height = 30 ). lo_worksheet->set_cell( ip_column = 'B' ip_row = 16 ip_style = lv_style_gr_horizontalb_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_horizontalb ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 16 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). + lo_row = lo_worksheet->get_row( ip_row = 16 ). + lo_row->set_row_height( ip_row_height = 30 ). lo_worksheet->set_cell( ip_column = 'C' ip_row = 17 ip_style = lv_style_gr_vertical_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_vertical ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 17 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). + lo_row = lo_worksheet->get_row( ip_row = 17 ). + lo_row->set_row_height( ip_row_height = 30 ). lo_worksheet->set_cell( ip_column = 'B' ip_row = 18 ip_style = lv_style_gr_vertical2_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_vertical ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 18 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). + lo_row = lo_worksheet->get_row( ip_row = 18 ). + lo_row->set_row_height( ip_row_height = 30 ). lo_worksheet->set_cell( ip_column = 'C' ip_row = 19 ip_style = lv_style_gr_fromcenter_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_fromcenter ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 19 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). + lo_row = lo_worksheet->get_row( ip_row = 19 ). + lo_row->set_row_height( ip_row_height = 30 ). lo_worksheet->set_cell( ip_column = 'B' ip_row = 20 ip_style = lv_style_gr_diagonal45_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_diagonal45 ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 20 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). + lo_row = lo_worksheet->get_row( ip_row = 20 ). + lo_row->set_row_height( ip_row_height = 30 ). lo_worksheet->set_cell( ip_column = 'C' ip_row = 21 ip_style = lv_style_gr_diagonal45b_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_diagonal45b ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 21 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). + lo_row = lo_worksheet->get_row( ip_row = 21 ). + lo_row->set_row_height( ip_row_height = 30 ). lo_worksheet->set_cell( ip_column = 'B' ip_row = 22 ip_style = lv_style_gr_diagonal135_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_diagonal135 ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 22 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). + lo_row = lo_worksheet->get_row( ip_row = 22 ). + lo_row->set_row_height( ip_row_height = 30 ). lo_worksheet->set_cell( ip_column = 'C' ip_row = 23 ip_style = lv_style_gr_diagonal135b_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_diagonal135b ). - lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 23 ). - lo_row_dim->set_row_height( ip_row_height = 30 ). + lo_row = lo_worksheet->get_row( ip_row = 23 ). + lo_row->set_row_height( ip_row_height = 30 ). diff --git a/src/zdemo_excel34.prog.abap b/src/zdemo_excel34.prog.abap index 8638666..4fe0f32 100644 --- a/src/zdemo_excel34.prog.abap +++ b/src/zdemo_excel34.prog.abap @@ -20,7 +20,7 @@ DATA: current_row TYPE i, color TYPE zexcel_style_color_argb, lo_column TYPE REF TO zcl_excel_column, - row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, + lo_row TYPE REF TO zcl_excel_row, writing1 TYPE string, writing2 TYPE string. @@ -69,8 +69,8 @@ START-OF-SELECTION. lo_column->set_width( width ). * Set size of row - row_dimension = lo_worksheet->get_row_dimension( row ). - row_dimension->set_row_height( height ). + lo_row = lo_worksheet->get_row( row ). + lo_row->set_row_height( height ). * Set writing on chessboard lo_worksheet->set_cell( ip_row = row diff --git a/src/zexcel_s_worksheet_rowdimensio.tabl.xml b/src/zexcel_s_worksheet_rowdimensio.tabl.xml deleted file mode 100644 index a65e202..0000000 --- a/src/zexcel_s_worksheet_rowdimensio.tabl.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - ZEXCEL_S_WORKSHEET_ROWDIMENSIO - E - INTTAB - Stucture for the collection of row dimensions - 1 - - - - ZEXCEL_S_WORKSHEET_ROWDIMENSIO - ROW - 0001 - INT4 - 0 - E - - - ZEXCEL_S_WORKSHEET_ROWDIMENSIO - ROW_DIMENSION - 0002 - ZCL_EXCEL_WORKSHEET_ROWDIMENSI - 0 - REF - REF RC - R - C - - - - - - - - - - - diff --git a/src/zexcel_t_worksheet_rowdimensio.ttyp.xml b/src/zexcel_t_worksheet_rowdimensio.ttyp.xml deleted file mode 100644 index 338fdfc..0000000 --- a/src/zexcel_t_worksheet_rowdimensio.ttyp.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - ZEXCEL_T_WORKSHEET_ROWDIMENSIO - E - ZEXCEL_S_WORKSHEET_ROWDIMENSIO - S - STRU - T - D - N - Collection of row dimensions - - - - - -