From 68b2c66edd6f2a8c786f0dad51d310241dbfa21c Mon Sep 17 00:00:00 2001 From: Ivan Femia Date: Fri, 19 May 2017 00:11:31 +0200 Subject: [PATCH 1/6] First implementation for issue #484 --- src/zangry_birds.prog.abap | 10 +- src/zcl_excel_column.clas.abap | 230 ++++++++++++ src/zcl_excel_column.clas.xml | 94 +++++ src/zcl_excel_columns.clas.abap | 87 +++++ src/zcl_excel_columns.clas.xml | 70 ++++ src/zcl_excel_converter.clas.abap | 100 +++--- src/zcl_excel_reader_2007.clas.abap | 16 +- src/zcl_excel_worksheet.clas.abap | 200 ++++++----- src/zcl_excel_worksheet.clas.xml | 60 ++-- src/zcl_excel_writer_2007.clas.abap | 437 +++-------------------- src/zcl_excel_writer_huge_file.clas.abap | 97 +++-- src/zdemo_calendar.prog.abap | 14 +- src/zdemo_calendar_classes.prog.abap | 16 +- src/zdemo_excel1.prog.abap | 12 +- src/zdemo_excel10.prog.abap | 6 +- src/zdemo_excel11.prog.abap | 42 +-- src/zdemo_excel12.prog.abap | 38 +- src/zdemo_excel24.prog.abap | 6 +- src/zdemo_excel28.prog.abap | 8 +- src/zdemo_excel3.prog.abap | 6 +- src/zdemo_excel30.prog.abap | 22 +- src/zdemo_excel31.prog.abap | 42 +-- src/zdemo_excel34.prog.abap | 14 +- src/zdemo_excel36.prog.abap | 14 +- src/zdemo_excel38.prog.abap | 10 +- src/zdemo_teched6.prog.abap | 10 +- src/zdemo_teched7.prog.abap | 10 +- src/zdemo_teched8.prog.abap | 10 +- src/zdemo_teched9.prog.abap | 10 +- 29 files changed, 884 insertions(+), 807 deletions(-) create mode 100644 src/zcl_excel_column.clas.abap create mode 100644 src/zcl_excel_column.clas.xml create mode 100644 src/zcl_excel_columns.clas.abap create mode 100644 src/zcl_excel_columns.clas.xml diff --git a/src/zangry_birds.prog.abap b/src/zangry_birds.prog.abap index a31d4ea..07cdec5 100644 --- a/src/zangry_birds.prog.abap +++ b/src/zangry_birds.prog.abap @@ -22,7 +22,7 @@ DATA: lo_excel TYPE REF TO zcl_excel, lo_style_color7 TYPE REF TO zcl_excel_style, lo_style_credit TYPE REF TO zcl_excel_style, lo_style_link TYPE REF TO zcl_excel_style, - lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_column TYPE REF TO zcl_excel_column, lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, lo_hyperlink TYPE REF TO zcl_excel_hyperlink. @@ -712,8 +712,8 @@ START-OF-SELECTION. ip_style = ls_mapper ). lv_col = lv_col + 1. - lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = lv_col_str ). - lo_column_dimension->set_width( ip_width = 2 ). + lo_column = lo_worksheet->get_column( ip_column = lv_col_str ). + lo_column->set_width( ip_width = 2 ). ENDLOOP. lo_worksheet->set_show_gridlines( i_show_gridlines = abap_false ). @@ -730,8 +730,8 @@ START-OF-SELECTION. ip_style = lv_style_link_guid ip_hyperlink = lo_hyperlink ). - lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'AP' ). - lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( ip_column = 'AP' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). lo_worksheet->set_merge( ip_row = 15 ip_column_start = 'AP' ip_row_to = 22 ip_column_end = 'AR' ). lo_worksheet->set_merge( ip_row = 24 ip_column_start = 'AP' ip_row_to = 26 ip_column_end = 'AR' ). diff --git a/src/zcl_excel_column.clas.abap b/src/zcl_excel_column.clas.abap new file mode 100644 index 0000000..35c310b --- /dev/null +++ b/src/zcl_excel_column.clas.abap @@ -0,0 +1,230 @@ +class ZCL_EXCEL_COLUMN definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_COLUMN +*"* 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(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN . + methods SET_COLLAPSED + importing + !IP_COLLAPSED type ABAP_BOOL + returning + value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN . + methods SET_COLUMN_INDEX + importing + !IP_INDEX type ZEXCEL_CELL_COLUMN_ALPHA + returning + value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN . + methods SET_OUTLINE_LEVEL + importing + !IP_OUTLINE_LEVEL type INT4 . + methods SET_VISIBLE + importing + !IP_VISIBLE type ABAP_BOOL + returning + value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN . + methods SET_WIDTH + importing + !IP_WIDTH type SIMPLE + returning + value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN + raising + ZCX_EXCEL . + methods SET_XF_INDEX + importing + !IP_XF_INDEX type INT4 + returning + value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN . + 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_COLUMN +*"* do not include other source files here!!! +protected section. +*"* private components of class ZCL_EXCEL_COLUMN +*"* 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_COLUMN 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. + io_column = me. +ENDMETHOD. + + +METHOD set_collapsed. + me->collapsed = ip_collapsed. + io_column = me. +ENDMETHOD. + + +METHOD set_column_index. + me->column_index = zcl_excel_common=>convert_column2int( ip_index ). + io_column = 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. + io_column = me. +ENDMETHOD. + + +METHOD set_width. + TRY. + me->width = ip_width. + io_column = 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. + io_column = me. +ENDMETHOD. +ENDCLASS. diff --git a/src/zcl_excel_column.clas.xml b/src/zcl_excel_column.clas.xml new file mode 100644 index 0000000..b92f1e7 --- /dev/null +++ b/src/zcl_excel_column.clas.xml @@ -0,0 +1,94 @@ + + + + + + ZCL_EXCEL_COLUMN + 1 + E + Worksheet Column + 2 + 1 + X + X + X + X + + + + + ZCL_EXCEL_COLUMN + AUTO_SIZE + E + Auto size? + + + ZCL_EXCEL_COLUMN + COLLAPSED + E + Collapsed? + + + ZCL_EXCEL_COLUMN + COLUMN_INDEX + E + Column index + + + ZCL_EXCEL_COLUMN + EXCEL + E + Excel creator + + + ZCL_EXCEL_COLUMN + GET_COLUMN_STYLE_GUID + E + Get guid of column style + + + ZCL_EXCEL_COLUMN + OUTLINE_LEVEL + E + Outline level + + + ZCL_EXCEL_COLUMN + SET_COLUMN_STYLE_BY_GUID + E + Set column style by style guid + + + ZCL_EXCEL_COLUMN + STYLE_GUID + E + Style identifier + + + ZCL_EXCEL_COLUMN + VISIBLE + E + Visible? + + + ZCL_EXCEL_COLUMN + WIDTH + E + Column width + + + ZCL_EXCEL_COLUMN + WORKSHEET + E + Worksheet + + + ZCL_EXCEL_COLUMN + XF_INDEX + E + Index to cellXf + + + + + diff --git a/src/zcl_excel_columns.clas.abap b/src/zcl_excel_columns.clas.abap new file mode 100644 index 0000000..ddbdae5 --- /dev/null +++ b/src/zcl_excel_columns.clas.abap @@ -0,0 +1,87 @@ +class ZCL_EXCEL_COLUMNS definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_COLUMNS +*"* do not include other source files here!!! +public section. + + methods ADD + importing + !IO_COLUMN type ref to ZCL_EXCEL_COLUMN . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type I + returning + value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN . + 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_COLUMN type ref to ZCL_EXCEL_COLUMN . + methods SIZE + returning + value(EP_SIZE) type I . +*"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. +*"* private components of class ZABAP_EXCEL_RANGES +*"* do not include other source files here!!! +private section. + + data COLUMNS type ref to CL_OBJECT_COLLECTION . +ENDCLASS. + + + +CLASS ZCL_EXCEL_COLUMNS IMPLEMENTATION. + + +METHOD add. + columns->add( io_column ). +ENDMETHOD. + + +METHOD clear. + columns->clear( ). +ENDMETHOD. + + +METHOD constructor. + + CREATE OBJECT columns. + +ENDMETHOD. + + +METHOD get. + eo_column ?= columns->if_object_collection~get( ip_index ). +ENDMETHOD. + + +METHOD get_iterator. + eo_iterator ?= columns->if_object_collection~get_iterator( ). +ENDMETHOD. + + +METHOD is_empty. + is_empty = columns->if_object_collection~is_empty( ). +ENDMETHOD. + + +METHOD remove. + columns->remove( io_column ). +ENDMETHOD. + + +METHOD size. + ep_size = columns->if_object_collection~size( ). +ENDMETHOD. +ENDCLASS. diff --git a/src/zcl_excel_columns.clas.xml b/src/zcl_excel_columns.clas.xml new file mode 100644 index 0000000..21c109f --- /dev/null +++ b/src/zcl_excel_columns.clas.xml @@ -0,0 +1,70 @@ + + + + + + ZCL_EXCEL_COLUMNS + 1 + E + Ranges collection + 2 + 1 + X + X + X + X + + + + + ZCL_EXCEL_COLUMNS + ADD + E + Adds an Element to the Collection + + + ZCL_EXCEL_COLUMNS + CLEAR + E + Initializes the Collection + + + ZCL_EXCEL_COLUMNS + CONSTRUCTOR + E + CONSTRUCTOR + + + ZCL_EXCEL_COLUMNS + GET + E + Gets Element + + + ZCL_EXCEL_COLUMNS + GET_ITERATOR + E + Returns an iterator + + + ZCL_EXCEL_COLUMNS + IS_EMPTY + E + Checks whether elements are contained + + + ZCL_EXCEL_COLUMNS + REMOVE + E + Deletes an Element from the Collection + + + ZCL_EXCEL_COLUMNS + SIZE + E + Specifies number of contained elements + + + + + diff --git a/src/zcl_excel_converter.clas.abap b/src/zcl_excel_converter.clas.abap index e178be0..e37aee7 100644 --- a/src/zcl_excel_converter.clas.abap +++ b/src/zcl_excel_converter.clas.abap @@ -351,67 +351,67 @@ method BIND_CELLS. endmethod. -method BIND_TABLE. - data: lt_field_catalog type zexcel_t_fieldcatalog, - ls_field_catalog type zexcel_s_fieldcatalog, - ls_fcat type zexcel_s_converter_fcat, - lo_col_dim type ref to zcl_excel_worksheet_columndime, - lo_row_dim type ref to zcl_excel_worksheet_rowdimensi, - l_col_int type zexcel_cell_column, - l_col_alpha type zexcel_cell_column_alpha, - ls_settings type zexcel_s_table_settings, - l_line type i. +METHOD bind_table. + DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog, + 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, + lv_col_int TYPE zexcel_cell_column, + lv_col_alpha TYPE zexcel_cell_column_alpha, + ls_settings TYPE zexcel_s_table_settings, + lv_line TYPE i. - field-symbols: type any table. + FIELD-SYMBOLS: TYPE ANY TABLE. - assign wo_data->* to . + ASSIGN wo_data->* TO . ls_settings-table_style = i_style_table. ls_settings-top_left_column = zcl_excel_common=>convert_column2alpha( ip_column = w_col_int ). ls_settings-top_left_row = w_row_int. ls_settings-show_row_stripes = ws_layout-is_stripped. - describe table wt_fieldcatalog lines l_line. - l_line = l_line + 1 + w_col_int. - ls_settings-bottom_right_column = zcl_excel_common=>convert_column2alpha( ip_column = l_line ). + DESCRIBE TABLE wt_fieldcatalog LINES lv_line. + lv_line = lv_line + 1 + w_col_int. + ls_settings-bottom_right_column = zcl_excel_common=>convert_column2alpha( ip_column = lv_line ). - describe table lines l_line. - ls_settings-bottom_right_row = l_line + 1 + w_row_int. - sort wt_fieldcatalog by position. - loop at wt_fieldcatalog into ls_fcat. - move-corresponding ls_fcat to ls_field_catalog. + DESCRIBE TABLE LINES lv_line. + ls_settings-bottom_right_row = lv_line + 1 + w_row_int. + SORT wt_fieldcatalog BY position. + LOOP AT wt_fieldcatalog INTO ls_fcat. + MOVE-CORRESPONDING ls_fcat TO ls_field_catalog. ls_field_catalog-dynpfld = abap_true. - insert ls_field_catalog into table lt_field_catalog. - endloop. + INSERT ls_field_catalog INTO TABLE lt_field_catalog. + ENDLOOP. wo_worksheet->bind_table( - exporting + EXPORTING ip_table = it_field_catalog = lt_field_catalog is_table_settings = ls_settings - importing + IMPORTING es_table_settings = ls_settings ). - loop at wt_fieldcatalog into ls_fcat. - l_col_int = w_col_int + ls_fcat-position - 1. - l_col_alpha = zcl_excel_common=>convert_column2alpha( l_col_int ). + LOOP AT wt_fieldcatalog INTO ls_fcat. + lv_col_int = w_col_int + ls_fcat-position - 1. + lv_col_alpha = zcl_excel_common=>convert_column2alpha( lv_col_int ). * Freeze panes - if ls_fcat-fix_column = abap_true. - add 1 to r_freeze_col. - endif. + IF ls_fcat-fix_column = abap_true. + ADD 1 TO r_freeze_col. + ENDIF. * Now let's check for optimized - if ls_fcat-is_optimized = abap_true. - lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ). - lo_col_dim->set_auto_size( ip_auto_size = abap_true ) . - endif. + IF ls_fcat-is_optimized = abap_true. + lo_column = wo_worksheet->get_column( ip_column = lv_col_alpha ). + lo_column->set_auto_size( ip_auto_size = abap_true ) . + ENDIF. * Now let's check for visible - if ls_fcat-is_hidden = abap_true. - lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ). - lo_col_dim->set_visible( ip_visible = abap_false ) . - endif. - endloop. + IF ls_fcat-is_hidden = abap_true. + lo_column = wo_worksheet->get_column( ip_column = lv_col_alpha ). + lo_column->set_visible( ip_visible = abap_false ) . + ENDIF. + ENDLOOP. - endmethod. +ENDMETHOD. method CLASS_CONSTRUCTOR. @@ -1173,7 +1173,7 @@ method LOOP_NORMAL. l_col_alpha_start TYPE zexcel_cell_column_alpha, l_cell_value TYPE zexcel_cell_value, l_s_color TYPE abap_bool, - lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime, + lo_column TYPE REF TO zcl_excel_column, lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi, l_formula TYPE zexcel_cell_formula, l_style TYPE zexcel_cell_style, @@ -1255,13 +1255,13 @@ method LOOP_NORMAL. ENDLOOP. * Now let's check for optimized IF -is_optimized = abap_true . - lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ). - lo_col_dim->set_auto_size( ip_auto_size = abap_true ) . + lo_column = wo_worksheet->get_column( ip_column = l_col_alpha ). + lo_column->set_auto_size( ip_auto_size = abap_true ) . ENDIF. * Now let's check for visible IF -is_hidden = abap_true. - lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ). - lo_col_dim->set_visible( ip_visible = abap_false ) . + lo_column = wo_worksheet->get_column( ip_column = l_col_alpha ). + lo_column->set_visible( ip_visible = abap_false ) . ENDIF. * Now let's check for total versus subtotal. IF -totals_function IS NOT INITIAL. @@ -1292,7 +1292,7 @@ method LOOP_SUBTOTAL. l_col_alpha_start TYPE zexcel_cell_column_alpha, l_cell_value TYPE zexcel_cell_value, l_s_color TYPE abap_bool, - lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime, + lo_column TYPE REF TO zcl_excel_column, lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi, l_formula TYPE zexcel_cell_formula, l_style TYPE zexcel_cell_style, @@ -1611,13 +1611,13 @@ method LOOP_SUBTOTAL. ENDIF. * Now let's check for optimized IF -is_optimized = abap_true. - lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ). - lo_col_dim->set_auto_size( ip_auto_size = abap_true ) . + lo_column = wo_worksheet->get_column( ip_column = l_col_alpha ). + lo_column->set_auto_size( ip_auto_size = abap_true ) . ENDIF. * Now let's check for visible IF -is_hidden = abap_true. - lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ). - lo_col_dim->set_visible( ip_visible = abap_false ) . + lo_column = wo_worksheet->get_column( ip_column = l_col_alpha ). + lo_column->set_visible( ip_visible = abap_false ) . ENDIF. ENDLOOP. diff --git a/src/zcl_excel_reader_2007.clas.abap b/src/zcl_excel_reader_2007.clas.abap index da1134f..9b99d59 100644 --- a/src/zcl_excel_reader_2007.clas.abap +++ b/src/zcl_excel_reader_2007.clas.abap @@ -2255,7 +2255,7 @@ METHOD load_worksheet. lo_ixml_column_elem TYPE REF TO if_ixml_element, ls_column TYPE lty_column, lv_column_alpha TYPE zexcel_cell_column_alpha, - lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_column TYPE REF TO zcl_excel_column, lv_outline_level TYPE int4, lo_ixml_tabcolor TYPE REF TO if_ixml_element, @@ -2557,27 +2557,27 @@ METHOD load_worksheet. WHILE lv_index <= ls_column-max AND lv_index <= lv_max_col. lv_column_alpha = zcl_excel_common=>convert_column2alpha( lv_index ). - lo_column_dimension = io_worksheet->get_column_dimension( lv_column_alpha ). + lo_column = io_worksheet->get_column( lv_column_alpha ). IF ls_column-customwidth = lc_xml_attr_true OR ls_column-customwidth = lc_xml_attr_true_int OR ls_column-width IS NOT INITIAL. "+#234 - lo_column_dimension->set_width( ls_column-width ). + lo_column->set_width( ls_column-width ). ENDIF. IF ls_column-bestfit = lc_xml_attr_true OR ls_column-bestfit = lc_xml_attr_true_int. - lo_column_dimension->set_auto_size( abap_true ). + lo_column->set_auto_size( abap_true ). ENDIF. IF ls_column-collapsed = lc_xml_attr_true OR ls_column-collapsed = lc_xml_attr_true_int. - lo_column_dimension->set_collapsed( abap_true ). + lo_column->set_collapsed( abap_true ). ENDIF. IF ls_column-hidden = lc_xml_attr_true OR ls_column-hidden = lc_xml_attr_true_int. - lo_column_dimension->set_visible( abap_false ). + lo_column->set_visible( abap_false ). ENDIF. IF ls_column-outlinelevel > ''. @@ -2585,7 +2585,7 @@ METHOD load_worksheet. CONDENSE ls_column-outlinelevel. lv_outline_level = ls_column-outlinelevel. IF lv_outline_level > 0. - lo_column_dimension->set_outline_level( lv_outline_level ). + lo_column->set_outline_level( lv_outline_level ). ENDIF. ENDIF. @@ -2594,7 +2594,7 @@ METHOD load_worksheet. READ TABLE styles INTO lo_excel_style INDEX sy-index. DATA: dummy_zexcel_cell_style TYPE zexcel_cell_style. dummy_zexcel_cell_style = lo_excel_style->get_guid( ). - lo_column_dimension->set_column_style_by_guid( dummy_zexcel_cell_style ). + lo_column->set_column_style_by_guid( dummy_zexcel_cell_style ). ENDIF. ADD 1 TO lv_index. diff --git a/src/zcl_excel_worksheet.clas.abap b/src/zcl_excel_worksheet.clas.abap index 9b97c76..512f08c 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_COLUMN + importing + !IP_COLUMN type SIMPLE + returning + value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN . methods ADD_NEW_CONDITIONAL_STYLE returning value(EO_CONDITIONAL_STYLE) type ref to ZCL_EXCEL_STYLE_CONDITIONAL . @@ -244,16 +249,17 @@ public section. !EP_FORMULA type ZEXCEL_CELL_FORMULA raising ZCX_EXCEL . - methods GET_COLUMN_DIMENSION + methods GET_COLUMN importing !IP_COLUMN type SIMPLE returning - value(R_COLUMN_DIMENSION) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME - raising - ZCX_EXCEL . - methods GET_COLUMN_DIMENSIONS + value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN . + methods GET_COLUMNS returning - value(R_COLUMN_DIMENSION) type ZEXCEL_T_WORKSHEET_COLUMNDIME . + value(EO_COLUMNS) type ref to ZCL_EXCEL_COLUMNS . + methods GET_COLUMNS_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . methods GET_COND_STYLES_ITERATOR returning value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . @@ -263,9 +269,9 @@ public section. methods GET_DATA_VALIDATIONS_SIZE returning value(EP_SIZE) type I . - methods GET_DEFAULT_COLUMN_DIMENSION + methods GET_DEFAULT_COLUMN returning - value(R_COLUMN_DIMENSION) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME . + value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN . methods GET_DEFAULT_EXCEL_DATE_FORMAT returning value(EP_DEFAULT_EXCEL_DATE_FORMAT) type ZEXCEL_NUMBER_FORMAT . @@ -485,15 +491,14 @@ private section. types: mty_ts_merge TYPE SORTED TABLE OF mty_merge WITH UNIQUE KEY table_line . - class-data MTH_FONT_CACHE type MTY_TH_FONT_CACHE . *"* private components of class ZCL_EXCEL_WORKSHEET *"* do not include other source files here!!! data ACTIVE_CELL type ZEXCEL_S_CELL_DATA . data CHARTS type ref to ZCL_EXCEL_DRAWINGS . - data COLUMN_DIMENSIONS type ZEXCEL_T_WORKSHEET_COLUMNDIME . + data COLUMNS type ref to ZCL_EXCEL_COLUMNS . data CONDITIONAL_STYLES type ref to ZCL_EXCEL_STYLES_CONDITIONAL . data DATA_VALIDATIONS type ref to ZCL_EXCEL_DATA_VALIDATIONS . - data DEFAULT_COLUMN_DIMENSION type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME . + 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 . @@ -503,9 +508,10 @@ private section. data GUID type UUID . data HYPERLINKS type ref to CL_OBJECT_COLLECTION . data LOWER_CELL type ZEXCEL_S_CELL_DATA . + data MO_PAGEBREAKS type ref to ZCL_EXCEL_WORKSHEET_PAGEBREAKS . + class-data MTH_FONT_CACHE type MTY_TH_FONT_CACHE . data MT_MERGED_CELLS type MTY_TS_MERGE . data MT_ROW_OUTLINES type MTY_TS_OUTLINES_ROW . - data MO_PAGEBREAKS type ref to ZCL_EXCEL_WORKSHEET_PAGEBREAKS . data PRINT_TITLE_COL_FROM type ZEXCEL_CELL_COLUMN_ALPHA . data PRINT_TITLE_COL_TO type ZEXCEL_CELL_COLUMN_ALPHA . data PRINT_TITLE_ROW_FROM type ZEXCEL_CELL_ROW . @@ -513,7 +519,7 @@ private section. data RANGES type ref to ZCL_EXCEL_RANGES . data ROW_DIMENSIONS type MTY_TS_ROW_DIMENSION . 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 @@ -554,11 +560,24 @@ method ADD_DRAWING. endmethod. -method ADD_NEW_CONDITIONAL_STYLE. +METHOD add_new_column. + DATA: lv_column_alpha TYPE zexcel_cell_column_alpha. + lv_column_alpha = zcl_excel_common=>convert_column2alpha( ip_column ). + + CREATE OBJECT eo_column + EXPORTING + ip_index = lv_column_alpha + ip_excel = me->excel + ip_worksheet = me. + columns->add( eo_column ). +ENDMETHOD. + + +METHOD add_new_conditional_style. CREATE OBJECT eo_conditional_style. conditional_styles->add( eo_conditional_style ). - endmethod. +ENDMETHOD. method ADD_NEW_DATA_VALIDATION. @@ -568,11 +587,11 @@ method ADD_NEW_DATA_VALIDATION. endmethod. -method ADD_NEW_RANGE. +METHOD add_new_range. * Create default blank range CREATE OBJECT eo_range. ranges->add( eo_range ). - endmethod. +ENDMETHOD. method BIND_ALV. @@ -3238,7 +3257,7 @@ METHOD calculate_cell_width. ENDMETHOD. -method CALCULATE_COLUMN_WIDTHS. +METHOD calculate_column_widths. TYPES: BEGIN OF t_auto_size, col_index TYPE int4, @@ -3246,79 +3265,54 @@ method CALCULATE_COLUMN_WIDTHS. END OF t_auto_size. TYPES: tt_auto_size TYPE TABLE OF t_auto_size. - DATA: column_dimensions TYPE zexcel_t_worksheet_columndime. - DATA: column_dimension TYPE REF TO zcl_excel_worksheet_columndime. + DATA: lo_column_iterator TYPE REF TO cl_object_collection_iterator, + lo_column TYPE REF TO zcl_excel_column. DATA: auto_size TYPE flag. DATA: auto_sizes TYPE tt_auto_size. -* DATA: col_alpha TYPE zexcel_cell_column_alpha." issue #155 - less restrictive typing for ip_column DATA: cell_value TYPE zexcel_cell_value. DATA: cell_style TYPE REF TO zcl_excel_style. DATA: count TYPE int4. DATA: highest_row TYPE int4. DATA: width TYPE float. - FIELD-SYMBOLS: LIKE LINE OF column_dimensions. FIELD-SYMBOLS: LIKE LINE OF auto_sizes. - column_dimensions[] = me->get_column_dimensions( ). - LOOP AT column_dimensions ASSIGNING . - auto_size = -column_dimension->get_auto_size( ). + lo_column_iterator = me->get_columns_iterator( ). + WHILE lo_column_iterator->has_next( ) = abap_true. + lo_column ?= lo_column_iterator->get_next( ). + auto_size = lo_column->get_auto_size( ). IF auto_size = abap_true. APPEND INITIAL LINE TO auto_sizes ASSIGNING . - -col_index = -column_dimension->get_column_index( ). + -col_index = lo_column->get_column_index( ). -width = -1. ENDIF. - ENDLOOP. + ENDWHILE. " There is only something to do if there are some auto-size columns IF NOT auto_sizes IS INITIAL. highest_row = me->get_highest_row( ). LOOP AT auto_sizes ASSIGNING . -* col_alpha = zcl_excel_common=>convert_column2alpha( -col_index )." issue #155 - less restrictive typing for ip_column count = 1. WHILE count <= highest_row. * Do not check merged cells IF is_cell_merged( ip_column = -col_index ip_row = count ) = abap_false. -* Start of change # issue 139 - Dateretention of cellstyles -* IF cell_style IS BOUND. -* CREATE OBJECT cell_style. -* ENDIF. -* me->get_cell( -* EXPORTING -* ip_column = col_alpha " Cell Column -* ip_row = count " Cell Row -* IMPORTING -* ep_value = cell_value " Cell Value -* ep_style = cell_style " Request Cell Style as well -* ). -* " For an easy start we just take the number of characters as the width -* width = strlen( cell_value ). -* " Addition to solve issue #120, contribution by Stefan Schmöcker -* " Calculate width using Font Size and Font Type -* IF cell_style IS BOUND -* AND cell_style->font IS BOUND. -* width = cell_style->font->calculate_text_width( cell_value ). -* ENDIF. -* width = calculate_cell_width( ip_column = col_alpha " issue #155 - less restrictive typing for ip_column - width = calculate_cell_width( ip_column = -col_index " issue #155 - less restrictive typing for ip_column - ip_row = count ). -* End of change # issue 139 - Dateretention of cellstyles - IF width > -width. - -width = width. - ENDIF. + width = calculate_cell_width( ip_column = -col_index " issue #155 - less restrictive typing for ip_column + ip_row = count ). + IF width > -width. + -width = width. + ENDIF. ENDIF. count = count + 1. ENDWHILE. -* column_dimension = me->get_column_dimension( col_alpha ). " issue #155 - less restrictive typing for ip_column - column_dimension = me->get_column_dimension( -col_index ). " issue #155 - less restrictive typing for ip_column - column_dimension->set_width( -width ). + lo_column = me->get_column( -col_index ). " issue #155 - less restrictive typing for ip_column + lo_column->set_width( -width ). ENDLOOP. ENDIF. - endmethod. +ENDMETHOD. METHOD change_cell_style. @@ -3655,6 +3649,7 @@ METHOD constructor. CREATE OBJECT conditional_styles. CREATE OBJECT data_validations. CREATE OBJECT tables. + CREATE OBJECT columns. CREATE OBJECT ranges. " issue #163 CREATE OBJECT mo_pagebreaks. CREATE OBJECT drawings @@ -3795,7 +3790,7 @@ method GET_ACTIVE_CELL. endmethod. -method GET_CELL. +METHOD get_cell. DATA: lv_column TYPE zexcel_cell_column, ls_sheet_content TYPE zexcel_s_cell_data. @@ -3825,36 +3820,43 @@ method GET_CELL. ENDIF. ENDWHILE. ENDIF. - endmethod. +ENDMETHOD. -method GET_COLUMN_DIMENSION. - FIELD-SYMBOLS: LIKE LINE OF column_dimensions. - DATA: lv_column_alpha TYPE zexcel_cell_column_alpha. " issue #155 - less restrictive typing for ip_column +METHOD get_column. - lv_column_alpha = zcl_excel_common=>convert_column2alpha( ip_column )." issue #155 - less restrictive typing for ip_column - READ TABLE me->column_dimensions ASSIGNING - WITH KEY column = lv_column_alpha. " issue #155 - less restrictive typing for ip_column + DATA: lo_column_iterator TYPE REF TO cl_object_collection_iterator, + lo_column TYPE REF TO zcl_excel_column, + lv_column TYPE zexcel_cell_column. - IF NOT IS ASSIGNED. - CREATE OBJECT r_column_dimension - EXPORTING - ip_index = lv_column_alpha " issue #155 - less restrictive typing for ip_column - ip_excel = me->excel " issue #157 - Allow style for columns - ip_worksheet = me. " issue #157 - Allow style for columns - APPEND INITIAL LINE TO me->column_dimensions ASSIGNING . - -column = lv_column_alpha. " issue #155 - less restrictive typing for ip_column - -column_dimension = r_column_dimension. - ELSE. - r_column_dimension = -column_dimension. + lv_column = zcl_excel_common=>convert_column2int( ip_column ). + + lo_column_iterator = me->get_columns_iterator( ). + WHILE lo_column_iterator->has_next( ) = abap_true. + lo_column ?= lo_column_iterator->get_next( ). + IF lo_column->get_column_index( ) = lv_column. + eo_column = lo_column. + EXIT. + ENDIF. + ENDWHILE. + + IF eo_column IS NOT BOUND. + eo_column = me->add_new_column( ip_column ). ENDIF. - endmethod. +ENDMETHOD. -method GET_COLUMN_DIMENSIONS. - r_column_dimension[] = me->column_dimensions[]. - endmethod. +METHOD get_columns. + eo_columns = me->columns. +ENDMETHOD. + + +METHOD get_columns_iterator. + + eo_iterator = me->columns->get_iterator( ). + +ENDMETHOD. method GET_COND_STYLES_ITERATOR. @@ -3874,17 +3876,17 @@ method GET_DATA_VALIDATIONS_SIZE. endmethod. -method GET_DEFAULT_COLUMN_DIMENSION. - IF me->default_column_dimension IS NOT BOUND. - CREATE OBJECT me->default_column_dimension +METHOD GET_DEFAULT_COLUMN. + IF me->column_default IS NOT BOUND. + CREATE OBJECT me->column_default EXPORTING - ip_index = 'A' " ???? - ip_worksheet = me - ip_excel = me->excel. + ip_index = 'A' " ???? + ip_worksheet = me + ip_excel = me->excel. ENDIF. - r_column_dimension = me->default_column_dimension. - endmethod. + eo_column = me->column_default. +ENDMETHOD. method GET_DEFAULT_EXCEL_DATE_FORMAT. @@ -4589,7 +4591,7 @@ method SET_CELL_FORMULA. endmethod. -method SET_CELL_STYLE. +METHOD set_cell_style. DATA: lv_column TYPE zexcel_cell_column, ls_sheet_content TYPE zexcel_s_cell_data, @@ -4612,14 +4614,14 @@ method SET_CELL_STYLE. set_cell( ip_column = ip_column ip_row = ip_row ip_value = '' ip_style = ip_style ). ENDIF. - endmethod. +ENDMETHOD. method SET_COLUMN_WIDTH. - DATA: column_dimension TYPE REF TO zcl_excel_worksheet_columndime. + DATA: lo_column TYPE REF TO zcl_excel_column. DATA: width TYPE float. - column_dimension = me->get_column_dimension( ip_column ). + lo_column = me->get_column( ip_column ). * if a fix size is supplied use this IF ip_width_fix IS SUPPLIED. @@ -4630,7 +4632,7 @@ method SET_COLUMN_WIDTH. EXPORTING error = 'Please supply a positive number as column-width'. ENDIF. - column_dimension->set_width( width ). + lo_column->set_width( width ). EXIT. CATCH cx_sy_conversion_no_number. * Strange stuff passed --> raise error @@ -4641,7 +4643,7 @@ method SET_COLUMN_WIDTH. ENDIF. * If we get down to here, we have to use whatever is found in autosize. - column_dimension->set_auto_size( ip_width_autosize ). + lo_column->set_auto_size( ip_width_autosize ). endmethod. diff --git a/src/zcl_excel_worksheet.clas.xml b/src/zcl_excel_worksheet.clas.xml index d2a7734..9ca4636 100644 --- a/src/zcl_excel_worksheet.clas.xml +++ b/src/zcl_excel_worksheet.clas.xml @@ -88,6 +88,12 @@ I Add drawing to the sheet + + ZCL_EXCEL_WORKSHEET + ADD_NEW_COLUMN + E + Create a new column + ZCL_EXCEL_WORKSHEET ADD_NEW_CONDITIONAL_STYLE @@ -210,15 +216,15 @@ ZCL_EXCEL_WORKSHEET - COLUMN_DIMENSIONS + COLUMNS E - Collection of column dimensions + Ranges collection ZCL_EXCEL_WORKSHEET - COLUMN_DIMENSIONS - I - Collection of column dimensions + COLUMN_DEFAULT + E + Worksheet ColumnDimension ZCL_EXCEL_WORKSHEET @@ -292,18 +298,6 @@ I Data validations collection - - ZCL_EXCEL_WORKSHEET - DEFAULT_COLUMN_DIMENSION - E - Worksheet ColumnDimension - - - ZCL_EXCEL_WORKSHEET - DEFAULT_COLUMN_DIMENSION - I - Worksheet ColumnDimension - ZCL_EXCEL_WORKSHEET DEFAULT_EXCEL_DATE_FORMAT @@ -444,27 +438,21 @@ ZCL_EXCEL_WORKSHEET - GET_COLUMN_DIMENSION + GET_COLUMN E - Get column dimension at a specific column + Get column object at a specific column ZCL_EXCEL_WORKSHEET - GET_COLUMN_DIMENSION - I - Get column dimension at a specific column - - - ZCL_EXCEL_WORKSHEET - GET_COLUMN_DIMENSIONS + GET_COLUMNS E - Get column dimensions + Get columns ZCL_EXCEL_WORKSHEET - GET_COLUMN_DIMENSIONS - I - Get column dimensions + GET_COLUMNS_ITERATOR + E + Get columns iterator ZCL_EXCEL_WORKSHEET @@ -504,15 +492,9 @@ ZCL_EXCEL_WORKSHEET - GET_DEFAULT_COLUMN_DIMENSION + GET_DEFAULT_COLUMN E - Get column dimension at a specific column - - - ZCL_EXCEL_WORKSHEET - GET_DEFAULT_COLUMN_DIMENSION - I - Get column dimension at a specific column + Get column at a specific column ZCL_EXCEL_WORKSHEET @@ -542,7 +524,7 @@ ZCL_EXCEL_WORKSHEET GET_DEFAULT_ROW_DIMENSION E - Get column dimension at a specific column + Get column at a specific column ZCL_EXCEL_WORKSHEET diff --git a/src/zcl_excel_writer_2007.clas.abap b/src/zcl_excel_writer_2007.clas.abap index 41815c0..b8ca8dc 100644 --- a/src/zcl_excel_writer_2007.clas.abap +++ b/src/zcl_excel_writer_2007.clas.abap @@ -36,7 +36,6 @@ protected section. importing !IO_DOCUMENT type ref to IF_IXML_DOCUMENT !IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET - !IT_COLUMN_DIMENSIONS type ZEXCEL_T_WORKSHEET_COLUMNDIME returning value(RV_IXML_SHEET_DATA_ROOT) type ref to IF_IXML_ELEMENT . methods ADD_FURTHER_DATA_TO_ZIP @@ -2948,11 +2947,6 @@ METHOD create_xl_sheet. lc_xml_node_sheetformatpr TYPE string VALUE 'sheetFormatPr', lc_xml_node_cols TYPE string VALUE 'cols', lc_xml_node_col TYPE string VALUE 'col', -* lc_xml_node_sheetdata TYPE string VALUE 'sheetData', -* lc_xml_node_row TYPE string VALUE 'row', -* lc_xml_node_c TYPE string VALUE 'c', -* lc_xml_node_v TYPE string VALUE 'v', -* lc_xml_node_f TYPE string VALUE 'f', lc_xml_node_sheetprotection TYPE string VALUE 'sheetProtection', lc_xml_node_pagemargins TYPE string VALUE 'pageMargins', lc_xml_node_pagesetup TYPE string VALUE 'pageSetup', @@ -3013,10 +3007,6 @@ METHOD create_xl_sheet. lc_xml_attr_outlinelevelrow TYPE string VALUE 'x14ac:outlineLevelRow', lc_xml_attr_outlinelevelcol TYPE string VALUE 'x14ac:outlineLevelCol', lc_xml_attr_outlinelevel TYPE string VALUE 'outlineLevel', -* lc_xml_attr_r TYPE string VALUE 'r', -* lc_xml_attr_s TYPE string VALUE 's', -* lc_xml_attr_spans TYPE string VALUE 'spans', -* lc_xml_attr_t TYPE string VALUE 't', lc_xml_attr_password TYPE string VALUE 'password', lc_xml_attr_sheet TYPE string VALUE 'sheet', lc_xml_attr_objects TYPE string VALUE 'objects', @@ -3104,7 +3094,7 @@ METHOD create_xl_sheet. 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, - default_col_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_column_default TYPE REF TO zcl_excel_column, default_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. DATA: lv_value TYPE string, @@ -3132,7 +3122,8 @@ METHOD create_xl_sheet. lv_freeze_cell_row TYPE zexcel_cell_row, lv_freeze_cell_column TYPE zexcel_cell_column, lv_freeze_cell_column_alpha TYPE zexcel_cell_column_alpha, - column_dimensions TYPE zexcel_t_worksheet_columndime, + 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, ls_style_cond_mapping TYPE zexcel_s_styles_cond_mapping, lv_relation_id TYPE i VALUE 0, @@ -3150,7 +3141,6 @@ METHOD create_xl_sheet. write_current_row TYPE boolean, lt_values TYPE zexcel_t_autofilter_values, ls_values TYPE zexcel_s_autofilter_values, -* lv_guid TYPE uuid, lo_autofilters TYPE REF TO zcl_excel_autofilters, lo_autofilter TYPE REF TO zcl_excel_autofilter, l_autofilter_hidden TYPE flag, @@ -3162,7 +3152,6 @@ METHOD create_xl_sheet. FIELD-SYMBOLS: TYPE zexcel_s_cell_data, LIKE LINE OF lt_range_merge, - TYPE zexcel_s_worksheet_columndime, TYPE zexcel_s_worksheet_rowdimensio, LIKE LINE OF lts_row_outlines. @@ -3389,11 +3378,11 @@ METHOD create_xl_sheet. lo_element_root->append_child( new_child = lo_element ). " sheetViews node - column_dimensions[] = io_worksheet->get_column_dimensions( ). + lo_column_iterator = io_worksheet->get_columns_iterator( ). " Calculate col - IF NOT column_dimensions IS INITIAL. + IF NOT lo_column_iterator IS BOUND. io_worksheet->calculate_column_widths( ). - column_dimensions[] = io_worksheet->get_column_dimensions( ). + lo_column_iterator = io_worksheet->get_columns_iterator( ). ENDIF. row_dimensions[] = io_worksheet->get_row_dimensions( ). " sheetFormatPr node @@ -3417,61 +3406,48 @@ METHOD create_xl_sheet. lo_element->set_attribute_ns( name = lc_xml_attr_defaultrowheight value = lv_value ). " defaultColWidth - default_col_dimension = io_worksheet->get_default_column_dimension( ). - IF default_col_dimension IS BOUND. - IF default_col_dimension->get_width( ) >= 0. - lv_value = default_col_dimension->get_width( ). + lo_column_default = io_worksheet->get_default_column( ). + IF lo_column_default IS BOUND. + IF lo_column_default->get_width( ) >= 0. + lv_value = lo_column_default->get_width( ). SHIFT lv_value RIGHT DELETING TRAILING space. SHIFT lv_value LEFT DELETING LEADING space. lo_element->set_attribute_ns( name = lc_xml_attr_defaultcolwidth value = lv_value ). ENDIF. ENDIF. - " outlineLevelRow -* Excel is recalculating the outlinelevel on startup from the outline levels found in the rows -* If we place anything incorrect here it gets corrected, if don't place anything it gets added -* So no need to calculate the outlinelevel here ( at least for rows - probably for columns as well but I haven't tested yet -* LOOP AT row_dimensions ASSIGNING . -* IF -row_dimension->get_outline_level( ) > outline_level_row. -* outline_level_row = -row_dimension->get_outline_level( ). -* ENDIF. -* ENDLOOP. -* lv_value = outline_level_row. -* SHIFT lv_value RIGHT DELETING TRAILING space. -* SHIFT lv_value LEFT DELETING LEADING space. -* lo_element->set_attribute_ns( name = lc_xml_attr_outlinelevelrow -* value = lv_value ). + " outlineLevelCol - LOOP AT column_dimensions ASSIGNING . - IF -column_dimension->get_outline_level( ) > outline_level_col. - outline_level_col = -column_dimension->get_outline_level( ). + WHILE lo_column_iterator->has_next( ) = abap_true. + lo_column ?= lo_column_iterator->get_next( ). + IF lo_column->get_outline_level( ) > outline_level_col. + outline_level_col = lo_column->get_outline_level( ). ENDIF. - ENDLOOP. + ENDWHILE. + lv_value = outline_level_col. SHIFT lv_value RIGHT DELETING TRAILING space. SHIFT lv_value LEFT DELETING LEADING space. lo_element->set_attribute_ns( name = lc_xml_attr_outlinelevelcol value = lv_value ). -* lv_value = 0. -* SHIFT lv_value RIGHT DELETING TRAILING space. -* SHIFT lv_value LEFT DELETING LEADING space. -* lo_element->set_attribute_ns( name = lc_xml_attr_dydescent -* value = lv_value ). lo_element_root->append_child( new_child = lo_element ). " sheetFormatPr node - IF io_worksheet->zif_excel_sheet_properties~get_style( ) IS NOT INITIAL OR NOT column_dimensions IS INITIAL. +* Reset column iterator + lo_column_iterator = io_worksheet->get_columns_iterator( ). + IF io_worksheet->zif_excel_sheet_properties~get_style( ) IS NOT INITIAL OR lo_column_iterator->has_next( ) = abap_true. " cols node lo_element = lo_document->create_simple_element( name = lc_xml_node_cols parent = lo_document ). " This code have to be enhanced in order to manage also column style properties " Now it is an out/out - IF NOT column_dimensions IS INITIAL. - LOOP AT column_dimensions ASSIGNING . + IF lo_column_iterator->has_next( ) = abap_true. + WHILE lo_column_iterator->has_next( ) = abap_true. + lo_column ?= lo_column_iterator->get_next( ). " col node lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_col parent = lo_document ). - lv_value = -column_dimension->get_column_index( ). + lv_value = lo_column->get_column_index( ). SHIFT lv_value RIGHT DELETING TRAILING space. SHIFT lv_value LEFT DELETING LEADING space. lo_element_2->set_attribute_ns( name = lc_xml_attr_min @@ -3479,28 +3455,27 @@ METHOD create_xl_sheet. lo_element_2->set_attribute_ns( name = lc_xml_attr_max value = lv_value ). " Width - IF -column_dimension->get_width( ) < 0. + IF lo_column->get_width( ) < 0. lo_element_2->set_attribute_ns( name = lc_xml_attr_width value = lc_xml_attr_defaultwidth ). ELSE. - lv_value = -column_dimension->get_width( ). + lv_value = lo_column->get_width( ). lo_element_2->set_attribute_ns( name = lc_xml_attr_width value = lv_value ). ENDIF. " Column visibility - IF -column_dimension->get_visible( ) = abap_false. + IF lo_column->get_visible( ) = abap_false. lo_element_2->set_attribute_ns( name = lc_xml_attr_hidden value = lc_xml_attr_true ). ENDIF. " Auto size? - IF -column_dimension->get_auto_size( ) = abap_true. + IF lo_column->get_auto_size( ) = abap_true. lo_element_2->set_attribute_ns( name = lc_xml_attr_bestfit value = lc_xml_attr_true ). ENDIF. " Custom width? - IF default_col_dimension IS BOUND. - IF -column_dimension->get_width( ) - <> default_col_dimension->get_width( ). + IF lo_column_default IS BOUND. + IF lo_column->get_width( ) <> lo_column_default->get_width( ). lo_element_2->set_attribute_ns( name = lc_xml_attr_customwidth value = lc_xml_attr_true ). @@ -3510,13 +3485,13 @@ METHOD create_xl_sheet. value = lc_xml_attr_true ). ENDIF. " Collapsed - IF -column_dimension->get_collapsed( ) = abap_true. + IF lo_column->get_collapsed( ) = abap_true. lo_element_2->set_attribute_ns( name = lc_xml_attr_collapsed value = lc_xml_attr_true ). ENDIF. " outlineLevel - IF -column_dimension->get_outline_level( ) > 0. - lv_value = -column_dimension->get_outline_level( ). + IF lo_column->get_outline_level( ) > 0. + lv_value = lo_column->get_outline_level( ). SHIFT lv_value RIGHT DELETING TRAILING space. SHIFT lv_value LEFT DELETING LEADING space. @@ -3524,14 +3499,9 @@ METHOD create_xl_sheet. value = lv_value ). ENDIF. " Style -* lv_value = -column_dimension->get_xf_index( ). "del issue #157 - set column style - lv_style_guid = -column_dimension->get_column_style_guid( ). "ins issue #157 - set column style -* lv_value = me->excel->get_style_index_in_styles( lv_style_guid ). "del issue #237 + lv_style_guid = lo_column->get_column_style_guid( ). "ins issue #157 - set column style CLEAR ls_style_mapping. READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = lv_style_guid. -* lv_style_index = ls_style_mapping-style. "del issue #295 -* IF lv_style_index > 0. "ins issue #237 - del issue #295 -* lv_value = lv_style_index - 1. "ins issue #237 - del issue #295 IF sy-subrc = 0. "ins issue #295 lv_value = ls_style_mapping-style. "ins issue #295 SHIFT lv_value RIGHT DELETING TRAILING space. @@ -3541,7 +3511,7 @@ METHOD create_xl_sheet. ENDIF. "ins issue #237 lo_element->append_child( new_child = lo_element_2 ). " col node - ENDLOOP. + ENDWHILE. * ELSE. "del issue #157 - set sheet style ( add missing columns * IF io_worksheet->zif_excel_sheet_properties~get_style( ) IS NOT INITIAL. "del issue #157 - set sheet style ( add missing columns * Begin of insertion issue #157 - set sheet style ( add missing columns @@ -3557,10 +3527,12 @@ METHOD create_xl_sheet. missing_column LIKE LINE OF t_missing_columns. * First collect columns that were already handled before. The rest has to be inserted now - LOOP AT column_dimensions ASSIGNING . - lv_column = zcl_excel_common=>convert_column2int( -column ). + lo_column_iterator = io_worksheet->get_columns_iterator( ). + WHILE lo_column_iterator->has_next( ) = abap_true. + lo_column ?= lo_column_iterator->get_next( ). + lv_column = zcl_excel_common=>convert_column2int( lo_column->get_column_index( ) ). INSERT lv_column INTO TABLE lts_sorted_columns. - ENDLOOP. + ENDWHILE. * Now find all columns that were missing so far missing_column-first_column = 1. @@ -3624,312 +3596,10 @@ METHOD create_xl_sheet. * Sheet content - use own method to create this *--------------------------------------------------------------------* lo_element = create_xl_sheet_sheet_data( io_worksheet = io_worksheet - io_document = lo_document - it_column_dimensions = column_dimensions ) . -* " sheetData node -* lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetdata -* parent = lo_document ). -* " Get column count -* col_count = io_worksheet->get_highest_column( ). -* " Get autofilter -** lv_guid = io_worksheet->get_guid( ) . + io_document = lo_document ) . + lo_autofilters = excel->get_autofilters_reference( ). lo_autofilter = lo_autofilters->get( io_worksheet = io_worksheet ) . -* IF lo_autofilter IS BOUND. -* lt_values = lo_autofilter->get_values( ) . -* ls_area = lo_autofilter->get_filter_area( ) . -* l_autofilter_hidden = abap_true. " First defautl is not showing -* ENDIF. -**--------------------------------------------------------------------* -** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 1 - start -**--------------------------------------------------------------------* -** Build table to hold all table-areas attached to this sheet -* lo_iterator = io_worksheet->get_tables_iterator( ). -* WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. -* lo_table ?= lo_iterator->if_object_collection_iterator~get_next( ). -* ls_table_area-left = zcl_excel_common=>convert_column2int( lo_table->settings-top_left_column ). -* ls_table_area-right = lo_table->get_right_column_integer( ). -* ls_table_area-top = lo_table->settings-top_left_row. -* ls_table_area-bottom = lo_table->get_bottom_row_integer( ). -* INSERT ls_table_area INTO TABLE lt_table_areas. -* ENDWHILE. -**--------------------------------------------------------------------* -** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 1 - end -**--------------------------------------------------------------------* -** We have problems when the first rows or trailing rows are not set but we have rowinformation -** to solve this we add dummycontent into first and last line that will not be set -** Set first line if necessary -* READ TABLE io_worksheet->sheet_content TRANSPORTING NO FIELDS WITH KEY cell_row = 1. -* IF sy-subrc <> 0. -* ls_sheet_content_empty-cell_row = 1. -* ls_sheet_content_empty-cell_column = 1. -* ls_sheet_content_empty-cell_value = lc_dummy_cell_content. -* INSERT ls_sheet_content_empty INTO TABLE io_worksheet->sheet_content. -* ENDIF. -** Set last line if necessary -** 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. -** Last line with row-information set indirectly by row outline -* lts_row_outlines = io_worksheet->get_row_outlines( ). -* LOOP AT lts_row_outlines ASSIGNING . -* IF -collapsed = 'X'. -* lv_current_row = -row_to + 1. " collapsed-status may be set on following row -* ELSE. -* lv_current_row = -row_to. " collapsed-status may be set on following row -* ENDIF. -* IF lv_current_row > lv_last_row. -* lv_last_row = lv_current_row. -* ENDIF. -* ENDLOOP. -* READ TABLE io_worksheet->sheet_content TRANSPORTING NO FIELDS WITH KEY cell_row = lv_last_row. -* IF sy-subrc <> 0. -* ls_sheet_content_empty-cell_row = lv_last_row. -* ls_sheet_content_empty-cell_column = 1. -* ls_sheet_content_empty-cell_value = lc_dummy_cell_content. -* INSERT ls_sheet_content_empty INTO TABLE io_worksheet->sheet_content. -* ENDIF. -* -* CLEAR ls_sheet_content. -* LOOP AT io_worksheet->sheet_content INTO ls_sheet_content. -* IF lt_values IS INITIAL. " no values attached to autofilter " issue #368 autofilter filtering too much -* CLEAR l_autofilter_hidden. -* ELSE. -* READ TABLE lt_values INTO ls_values WITH KEY column = ls_last_row-cell_column. -* IF sy-subrc = 0 AND ls_values-value = ls_last_row-cell_value. -* CLEAR l_autofilter_hidden. -* ENDIF. -* ENDIF. -* CLEAR ls_style_mapping. -** Create row element -** issues #346,#154, #195 - problems when we have information in row_dimension but no cell content in that row -** Get next line that may have to be added. If we have empty lines this is the next line after previous cell content -** Otherwise it is the line of the current cell content -* lv_current_row = ls_last_row-cell_row + 1. -* IF lv_current_row > ls_sheet_content-cell_row. -* lv_current_row = ls_sheet_content-cell_row. -* ENDIF. -** Fill in empty lines if necessary - assign an emtpy sheet content -* lv_next_row = lv_current_row. -* WHILE lv_next_row <= ls_sheet_content-cell_row. -* lv_current_row = lv_next_row. -* lv_next_row = lv_current_row + 1. -* IF lv_current_row = ls_sheet_content-cell_row. " cell value found in this row -* 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. -* " Dummyentry A1 -* ls_sheet_content_empty-cell_row = lv_current_row. -* ls_sheet_content_empty-cell_column = 1. -* ASSIGN ls_sheet_content_empty TO . -* ENDIF. -* -* IF ls_last_row-cell_row NE -cell_row. -* IF lo_autofilter IS BOUND. -* IF ls_area-row_start >= ls_last_row-cell_row OR " One less for header -* ls_area-row_end < ls_last_row-cell_row . -* CLEAR l_autofilter_hidden. -* ENDIF. -* ELSE. -* CLEAR l_autofilter_hidden. -* 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 -* l_autofilter_hidden = abap_true. -* lo_element_2->set_attribute_ns( name = 'hidden' value = 'true'). -* ENDIF. -* lo_element->append_child( new_child = lo_element_2 ). " row node -* ENDIF. -* " Add new row -* lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_row -* parent = lo_document ). -* " r -* lv_value = -cell_row. -* SHIFT lv_value RIGHT DELETING TRAILING space. -* SHIFT lv_value LEFT DELETING LEADING space. -* -* lo_element_2->set_attribute_ns( name = lc_xml_attr_r -* value = lv_value ). -* " Spans -* lv_value = col_count. -* CONCATENATE '1:' lv_value INTO lv_value. -* SHIFT lv_value RIGHT DELETING TRAILING space. -* 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 ). -* " 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 -* l_autofilter_hidden = abap_true. -* " Row dimensions -* IF row_dimension->get_row_height( ) >= 0. -* lo_element_2->set_attribute_ns( name = 'customHeight' value = '1'). -* lv_value = row_dimension->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. -* 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 ). -* 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( ). -* lo_element_2->set_attribute_ns( name = 's' value = lv_value ). -* lo_element_2->set_attribute_ns( name = 'customFormat' value = '1'). -* ENDIF. -* ENDIF. -* IF lt_values IS INITIAL. " no values attached to autofilter " issue #368 autofilter filtering too much -* CLEAR l_autofilter_hidden. -* ELSE. -* l_autofilter_hidden = abap_true. " First default is not showing -* ENDIF. -* ELSE. -* -* ENDIF. -* ENDWHILE. -* -* lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_c -* parent = lo_document ). -* -* lo_element_3->set_attribute_ns( name = lc_xml_attr_r -* value = -cell_coords ). -* -** begin of change issue #157 - allow column cellstyle -** if no cellstyle is set, look into column, then into sheet -* IF -cell_style IS NOT INITIAL. -* lv_style_guid = -cell_style. -* ELSE. -**--------------------------------------------------------------------* -** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 2 - start -**--------------------------------------------------------------------* -** Check if cell in any of the table areas -* LOOP AT lt_table_areas TRANSPORTING NO FIELDS WHERE top <= -cell_row -* AND bottom >= -cell_row -* AND left <= -cell_column -* AND right >= -cell_column. -* EXIT. -* ENDLOOP. -* IF sy-subrc = 0. -* CLEAR lv_style_guid. " No style --> EXCEL will use built-in-styles as declared in the tables-section -* ELSE. -**--------------------------------------------------------------------* -** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 2 - end -**--------------------------------------------------------------------* -* lv_column_p = zcl_excel_common=>convert_column2alpha( -cell_column ). -* READ TABLE column_dimensions WITH KEY column = lv_column_p ASSIGNING . -* IF sy-subrc = 0. -* lv_style_guid = -column_dimension->get_column_style_guid( ). -* IF lv_style_guid IS INITIAL. -* lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ). -* ENDIF. -* ELSE. -* lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ). -* ENDIF. -**--------------------------------------------------------------------* -** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 3 - start -**--------------------------------------------------------------------* -* ENDIF. -**--------------------------------------------------------------------* -** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 3 - end -**--------------------------------------------------------------------* -* ENDIF. -** IF -cell_style IS NOT INITIAL. -** READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = -cell_style. -* IF lv_style_guid IS NOT INITIAL. -* READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = lv_style_guid. -** end of change issue #157 - allow column cellstyles -* lv_value = ls_style_mapping-style. -* SHIFT lv_value RIGHT DELETING TRAILING space. -* SHIFT lv_value LEFT DELETING LEADING space. -* lo_element_3->set_attribute_ns( name = lc_xml_attr_s -* value = lv_value ). -* ENDIF. -* -* " For cells with formula ignore the value - Excel will calculate it -* IF -cell_formula IS NOT INITIAL. -* " fomula node -* lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_f -* parent = lo_document ). -* lv_value = -cell_formula. -* CONDENSE lv_value. -* lo_element_4->set_value( value = lv_value ). -* lo_element_3->append_child( new_child = lo_element_4 ). " fomula node -* ELSEIF -cell_value IS NOT INITIAL "cell can have just style or formula -* AND -cell_value <> lc_dummy_cell_content. -* IF -data_type IS NOT INITIAL. -* IF -data_type EQ 's_leading_blanks'. -* lo_element_3->set_attribute_ns( name = lc_xml_attr_t -* value = 's' ). -* ELSE. -* lo_element_3->set_attribute_ns( name = lc_xml_attr_t -* value = -data_type ). -* ENDIF. -* ENDIF. -* -* " value node -* lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_v -* parent = lo_document ). -* -* IF -data_type EQ 's' OR -data_type EQ 's_leading_blanks'. -* lv_value = me->get_shared_string_index( -cell_value ). -* CONDENSE lv_value. -* lo_element_4->set_value( value = lv_value ). -* ELSE. -* lv_value = -cell_value. -* CONDENSE lv_value. -* lo_element_4->set_value( value = lv_value ). -* ENDIF. -* -* lo_element_3->append_child( new_child = lo_element_4 ). " value node -* ENDIF. -* -* lo_element_2->append_child( new_child = lo_element_3 ). " column node -* ls_last_row = . -* ENDLOOP. -* IF sy-subrc = 0. -* READ TABLE lt_values INTO ls_values WITH KEY column = ls_last_row-cell_column. -* IF sy-subrc = 0 AND ls_values-value = ls_last_row-cell_value. -* CLEAR l_autofilter_hidden. -* ENDIF. -* IF lo_autofilter IS BOUND. -* IF ls_area-row_start >= ls_last_row-cell_row OR " One less for header -* ls_area-row_end < ls_last_row-cell_row . -* CLEAR l_autofilter_hidden. -* ENDIF. -* ELSE. -* CLEAR l_autofilter_hidden. -* ENDIF. -* " Row visibility of previos row. -* IF row_dimension->get_visible( ) = abap_false OR -* l_autofilter_hidden = abap_true. -* lo_element_2->set_attribute_ns( name = 'hidden' value = 'true'). -* ENDIF. -* lo_element->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 - lo_element_root->append_child( new_child = lo_element ). " sheetData node IF lo_autofilter IS BOUND. @@ -4815,8 +4485,6 @@ METHOD create_xl_sheet. ENDIF. - - ********************************************************************** * STEP 5: Create xstring stream lo_streamfactory = lo_ixml->create_stream_factory( ). @@ -4824,9 +4492,6 @@ METHOD create_xl_sheet. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). - -* REPLACE FIRST OCCURRENCE OF me->mv_sheet_data_xstring_dummy IN ep_content WITH me->mv_sheet_data_xstring IN BYTE MODE. - ENDMETHOD. @@ -5112,6 +4777,7 @@ METHOD create_xl_sheet_sheet_data. 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, ls_table_area LIKE LINE OF lt_table_areas, + lo_column TYPE REF TO zcl_excel_column, ls_sheet_content LIKE LINE OF io_worksheet->sheet_content, ls_sheet_content_empty LIKE LINE OF io_worksheet->sheet_content, @@ -5132,13 +4798,9 @@ METHOD create_xl_sheet_sheet_data. lo_element_4 TYPE REF TO if_ixml_element, lv_value TYPE string, - lv_style_guid TYPE zexcel_cell_style, - lv_column_p TYPE zexcel_cell_column_alpha, - - xxx. + lv_style_guid TYPE zexcel_cell_style. FIELD-SYMBOLS: TYPE zexcel_s_cell_data, - TYPE zexcel_s_worksheet_columndime, TYPE zexcel_s_worksheet_rowdimensio, LIKE LINE OF lts_row_outlines. @@ -5362,16 +5024,15 @@ METHOD create_xl_sheet_sheet_data. *--------------------------------------------------------------------* *issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 2 - end *--------------------------------------------------------------------* - lv_column_p = zcl_excel_common=>convert_column2alpha( -cell_column ). - READ TABLE it_column_dimensions WITH KEY column = lv_column_p ASSIGNING . - IF sy-subrc = 0. - lv_style_guid = -column_dimension->get_column_style_guid( ). + lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ). + lo_column ?= io_worksheet->get_column( -cell_column ). + IF lo_column->get_column_index( ) = -cell_column. + lv_style_guid = lo_column->get_column_style_guid( ). IF lv_style_guid IS INITIAL. lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ). ENDIF. - ELSE. - lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ). ENDIF. + *--------------------------------------------------------------------* *issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 3 - start *--------------------------------------------------------------------* diff --git a/src/zcl_excel_writer_huge_file.clas.abap b/src/zcl_excel_writer_huge_file.clas.abap index e1abf4b..c2f22f8 100644 --- a/src/zcl_excel_writer_huge_file.clas.abap +++ b/src/zcl_excel_writer_huge_file.clas.abap @@ -282,7 +282,7 @@ METHOD create_xl_sheet. 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, - default_col_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_column_default TYPE REF TO zcl_excel_column, default_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, lv_value TYPE string, lv_index TYPE i, @@ -294,7 +294,8 @@ METHOD create_xl_sheet. lv_freeze_cell_row TYPE zexcel_cell_row, lv_freeze_cell_column TYPE zexcel_cell_column, lv_freeze_cell_column_alpha TYPE zexcel_cell_column_alpha, - column_dimensions TYPE zexcel_t_worksheet_columndime, + 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, lv_relation_id TYPE i VALUE 0, outline_level_row TYPE i VALUE 0, @@ -314,7 +315,6 @@ METHOD create_xl_sheet. FIELD-SYMBOLS: TYPE zexcel_s_cell_data, LIKE LINE OF lt_range_merge, - TYPE zexcel_s_worksheet_columndime, TYPE zexcel_s_worksheet_rowdimensio, TYPE lty_column, TYPE lty_row, @@ -427,12 +427,12 @@ METHOD create_xl_sheet. * * Row and column info * - column_dimensions[] = io_worksheet->get_column_dimensions( ). + lo_column_iterator = io_worksheet->get_columns_iterator( ). row_dimensions[] = io_worksheet->get_row_dimensions( ). - IF NOT column_dimensions IS INITIAL. + IF NOT lo_column_iterator IS BOUND. io_worksheet->calculate_column_widths( ). - column_dimensions[] = io_worksheet->get_column_dimensions( ). + lo_column_iterator = io_worksheet->get_columns_iterator( ). ENDIF. default_row_dimension = io_worksheet->get_default_row_dimension( ). @@ -449,10 +449,10 @@ METHOD create_xl_sheet. CONDENSE lv_value. l_worksheet-defaultrowheight = lv_value. - default_col_dimension = io_worksheet->get_default_column_dimension( ). - IF default_col_dimension IS BOUND. - IF default_col_dimension->get_width( ) >= 0. - l_worksheet-defaultcolwidth = default_col_dimension->get_width( ). + 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. @@ -462,54 +462,49 @@ METHOD create_xl_sheet. ENDIF. ENDLOOP. - LOOP AT column_dimensions ASSIGNING . - IF -column_dimension->get_outline_level( ) > outline_level_col. - l_worksheet-outlinelevelcol = -column_dimension->get_outline_level( ). - ENDIF. - ENDLOOP. - -* * Set column information (width, style, ...) -* - LOOP AT column_dimensions ASSIGNING . - APPEND INITIAL LINE TO l_worksheet-cols ASSIGNING . - -min = -max = -column_dimension->get_column_index( ). - -width = -column_dimension->get_width( ). - IF -width < 0. - -width = lc_default_col_width. - ENDIF. - IF -column_dimension->get_visible( ) = abap_false. - -hidden = lc_true. - ENDIF. - IF -column_dimension->get_auto_size( ) = abap_true. - -bestfit = lc_true. - ENDIF. - IF default_col_dimension IS BOUND. - IF -column_dimension->get_width( ) - <> default_col_dimension->get_width( ). + 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. + l_worksheet-outlinelevelcol = lo_column->get_outline_level( ). + ENDIF. + APPEND INITIAL LINE TO l_worksheet-cols ASSIGNING . + -min = -max = lo_column->get_column_index( ). + -width = lo_column->get_width( ). + IF -width < 0. + -width = lc_default_col_width. + ENDIF. + IF lo_column->get_visible( ) = abap_false. + -hidden = lc_true. + ENDIF. + IF lo_column->get_auto_size( ) = abap_true. + -bestfit = lc_true. + ENDIF. + IF lo_column_default IS BOUND. + IF lo_column->get_width( ) <> lo_column_default->get_width( ). + -customwidth = lc_true. + ENDIF. + ELSE. -customwidth = lc_true. ENDIF. - ELSE. - -customwidth = lc_true. - ENDIF. - IF -column_dimension->get_collapsed( ) = abap_true. - -collapsed = lc_true. - ENDIF. - -outlinelevel = -column_dimension->get_outline_level( ). - lv_style_guid = -column_dimension->get_column_style_guid( ). - -style = me->excel->get_style_index_in_styles( lv_style_guid ) - 1. - ENDLOOP. - + IF lo_column->get_collapsed( ) = abap_true. + -collapsed = lc_true. + ENDIF. + -outlinelevel = lo_column->get_outline_level( ). + lv_style_guid = lo_column->get_column_style_guid( ). + -style = me->excel->get_style_index_in_styles( lv_style_guid ) - 1. * * Missing columns * * First collect columns that were already handled before. * The rest has to be inserted now. * - LOOP AT column_dimensions ASSIGNING . - lv_column = zcl_excel_common=>convert_column2int( -column ). - INSERT lv_column INTO TABLE lts_sorted_columns. - ENDLOOP. + + lv_column = zcl_excel_common=>convert_column2int( lo_column->get_column_index( ) ). + INSERT lv_column INTO TABLE lts_sorted_columns. + ENDWHILE. + ENDIF. * * Now find all columns that were missing so far @@ -534,8 +529,8 @@ METHOD create_xl_sheet. APPEND INITIAL LINE TO l_worksheet-cols ASSIGNING . -min = missing_column-first_column. -max = missing_column-last_column. - IF default_col_dimension IS BOUND AND default_col_dimension->get_width( ) >= 0. - -width = default_col_dimension->get_width( ). + IF lo_column_default IS BOUND AND lo_column_default->get_width( ) >= 0. + -width = lo_column_default->get_width( ). ELSE. -width = lc_default_col_width. ENDIF. diff --git a/src/zdemo_calendar.prog.abap b/src/zdemo_calendar.prog.abap index c188a3b..af80072 100644 --- a/src/zdemo_calendar.prog.abap +++ b/src/zdemo_calendar.prog.abap @@ -48,7 +48,7 @@ START-OF-SELECTION. DATA: lo_excel TYPE REF TO zcl_excel, lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, - lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime, + 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_drawing TYPE REF TO zcl_excel_drawing. @@ -215,10 +215,10 @@ START-OF-SELECTION. lo_worksheet->sheet_setup->paper_size = zcl_excel_sheet_setup=>c_papersize_a4. lo_worksheet->sheet_setup->horizontal_centered = abap_true. lo_worksheet->sheet_setup->vertical_centered = abap_true. - lo_col_dim = lo_worksheet->get_column_dimension( 'A' ). - lo_col_dim->set_width( '1.0' ). - lo_col_dim = lo_worksheet->get_column_dimension( 'B' ). - lo_col_dim->set_width( '2.0' ). + lo_column = lo_worksheet->get_column( 'A' ). + lo_column->set_width( '1.0' ). + lo_column = lo_worksheet->get_column( 'B' ). + lo_column->set_width( '2.0' ). IF p_lands = abap_true. lo_worksheet->sheet_setup->orientation = zcl_excel_sheet_setup=>c_orientation_landscape. lv_height = c_height_landscape. @@ -228,8 +228,8 @@ START-OF-SELECTION. lo_worksheet->sheet_setup->margin_right = '0.10'. lo_worksheet->sheet_setup->margin_bottom = '0.10'. ELSE. - lo_col_dim = lo_worksheet->get_column_dimension( 'K' ). - lo_col_dim->set_width( '3.0' ). + lo_column = lo_worksheet->get_column( 'K' ). + lo_column->set_width( '3.0' ). lo_worksheet->sheet_setup->margin_top = '0.80'. lo_worksheet->sheet_setup->margin_left = '0.55'. lo_worksheet->sheet_setup->margin_right = '0.05'. diff --git a/src/zdemo_calendar_classes.prog.abap b/src/zdemo_calendar_classes.prog.abap index fedf291..19cdc2c 100644 --- a/src/zdemo_calendar_classes.prog.abap +++ b/src/zdemo_calendar_classes.prog.abap @@ -216,7 +216,7 @@ CLASS zcl_helper IMPLEMENTATION. col_max TYPE i, from_col_int TYPE zexcel_cell_column, col TYPE zexcel_cell_column_alpha, - lr_col_dim TYPE REF TO zcl_excel_worksheet_columndime, + lo_column TYPE REF TO zcl_excel_column, lr_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi. DATA: lv_date TYPE datum, value TYPE string, @@ -325,8 +325,8 @@ CLASS zcl_helper IMPLEMENTATION. ELSE. width = '11.4'. ENDIF. - lr_col_dim = c_worksheet->get_column_dimension( col ). - lr_col_dim->set_width( width ). + lo_column = c_worksheet->get_column( col ). + lo_column->set_width( width ). col_int = col_int + 1. ENDWHILE. row = i_from_row + 1. @@ -364,7 +364,7 @@ CLASS zcl_helper IMPLEMENTATION. from_col_int TYPE zexcel_cell_column, col_int TYPE zexcel_cell_column, col TYPE zexcel_cell_column_alpha. - DATA: lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime, + DATA: lo_column TYPE REF TO zcl_excel_column, lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi. FIELD-SYMBOLS: LIKE LINE OF day_names. @@ -410,8 +410,8 @@ CLASS zcl_helper IMPLEMENTATION. ip_style = i_day_style " Single-Character Indicator ). " width - lo_col_dim = c_worksheet->get_column_dimension( col ). - lo_col_dim->set_width( '3.6' ). + lo_column = c_worksheet->get_column( col ). + lo_column->set_width( '3.6' ). lv_date = lv_date + 1. @@ -441,8 +441,8 @@ CLASS zcl_helper IMPLEMENTATION. col_int = from_col_int + day + 2. col = zcl_excel_common=>convert_column2alpha( col_int ). " width - lo_col_dim = c_worksheet->get_column_dimension( col ). - lo_col_dim->set_width( '3.6' ). + lo_column = c_worksheet->get_column( col ). + lo_column->set_width( '3.6' ). ENDWHILE. ENDMETHOD. "ADD_CALENDAR_LANDSCAPE diff --git a/src/zdemo_excel1.prog.abap b/src/zdemo_excel1.prog.abap index 7f393a7..8442ba8 100644 --- a/src/zdemo_excel1.prog.abap +++ b/src/zdemo_excel1.prog.abap @@ -9,10 +9,10 @@ REPORT zdemo_excel1. -DATA: lo_excel TYPE REF TO zcl_excel, - lo_worksheet TYPE REF TO zcl_excel_worksheet, - lo_hyperlink TYPE REF TO zcl_excel_hyperlink, - column_dimension TYPE REF TO zcl_excel_worksheet_columndime. +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_hyperlink TYPE REF TO zcl_excel_hyperlink, + lo_column TYPE REF TO zcl_excel_column. CONSTANTS: gc_save_file_name TYPE string VALUE '01_HelloWorld.xlsx'. INCLUDE zdemo_excel_outputopt_incl. @@ -31,8 +31,8 @@ START-OF-SELECTION. lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'http://www.abap2xlsx.org' ). lo_worksheet->set_cell( ip_column = 'B' ip_row = 4 ip_value = 'Click here to visit abap2xlsx homepage' ip_hyperlink = lo_hyperlink ). - column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). - column_dimension->set_width( ip_width = 11 ). + lo_column = lo_worksheet->get_column( ip_column = 'B' ). + lo_column->set_width( ip_width = 11 ). diff --git a/src/zdemo_excel10.prog.abap b/src/zdemo_excel10.prog.abap index 2aaff40..a648afe 100644 --- a/src/zdemo_excel10.prog.abap +++ b/src/zdemo_excel10.prog.abap @@ -11,7 +11,7 @@ REPORT zdemo_excel10. DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_style_conditional2 TYPE REF TO zcl_excel_style_conditional, - column_dimension TYPE REF TO zcl_excel_worksheet_columndime. + lo_column TYPE REF TO zcl_excel_column. DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog, ls_table_settings TYPE zexcel_s_table_settings, @@ -87,8 +87,8 @@ START-OF-SELECTION. is_table_settings = ls_table_settings it_field_catalog = lt_field_catalog ). - column_dimension = lo_worksheet->get_column_dimension( ip_column = 'D' ). "make date field a bit wider - column_dimension->set_width( ip_width = 13 ). + lo_column = lo_worksheet->get_column( ip_column = 'D' ). "make date field a bit wider + lo_column->set_width( ip_width = 13 ). *** Create output diff --git a/src/zdemo_excel11.prog.abap b/src/zdemo_excel11.prog.abap index 250a940..b939e80 100644 --- a/src/zdemo_excel11.prog.abap +++ b/src/zdemo_excel11.prog.abap @@ -191,7 +191,7 @@ START-OF-SELECTION. lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_style_body TYPE REF TO zcl_excel_style, lo_border_dark TYPE REF TO zcl_excel_style_border, - column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_column TYPE REF TO zcl_excel_column, row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. DATA: lv_style_body_even_guid TYPE zexcel_cell_style, @@ -369,46 +369,10 @@ START-OF-SELECTION. count = 1. WHILE count <= highest_column. col_alpha = zcl_excel_common=>convert_column2alpha( ip_column = count ). - column_dimension = lo_worksheet->get_column_dimension( ip_column = col_alpha ). - column_dimension->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( ip_column = col_alpha ). + lo_column->set_auto_size( ip_auto_size = abap_true ). count = count + 1. ENDWHILE. -* " Set Column width manuall -* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ). -* column_dimension->set_width( ip_width = 11 ). -* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). -* column_dimension->set_width( ip_width = 11 ). -* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). -* column_dimension->set_width( ip_width = 35 ). -* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'E' ). -* column_dimension->set_width( ip_width = 18 ). -* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'F' ). -* column_dimension->set_width( ip_width = 5 ). -* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'G' ). -* column_dimension->set_width( ip_width = 6 ). -* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'H' ). -* column_dimension->set_width( ip_width = 12 ). -* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'I' ). -* column_dimension->set_width( ip_width = 3 ). -* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'J' ). -* column_dimension->set_width( ip_width = 13 ). -* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'K' ). -* column_dimension->set_width( ip_width = 13 ). -* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'L' ). -* column_dimension->set_width( ip_width = 13 ). -* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'M' ). -* column_dimension->set_width( ip_width = 13 ). -* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'N' ). -* column_dimension->set_width( ip_width = 12 ). -* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'O' ). -* column_dimension->set_width( ip_width = 9 ). -* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'P' ). -* column_dimension->set_width( ip_width = 12 ). -* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'Q' ). -* column_dimension->set_width( ip_width = 9 ). -* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'R' ). -* column_dimension->set_width( ip_width = 40 ). - *** Create output lcl_output=>output( lo_excel ). diff --git a/src/zdemo_excel12.prog.abap b/src/zdemo_excel12.prog.abap index 4041f53..5c06367 100644 --- a/src/zdemo_excel12.prog.abap +++ b/src/zdemo_excel12.prog.abap @@ -10,7 +10,7 @@ REPORT zdemo_excel12. DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, - column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_column TYPE REF TO zcl_excel_column, row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. DATA: lv_file TYPE xstring, @@ -54,35 +54,27 @@ START-OF-SELECTION. " Column Settings " Auto size - column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). - column_dimension->set_auto_size( ip_auto_size = abap_true ). - column_dimension = lo_worksheet->get_column_dimension( ip_column = 'I' ). - column_dimension->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( ip_column = 'B' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( ip_column = 'I' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). " Manual Width - column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). - column_dimension->set_width( ip_width = 50 ). - column_dimension = lo_worksheet->get_column_dimension( ip_column = 'D' ). - column_dimension->set_visible( ip_visible = abap_false ). + lo_column = lo_worksheet->get_column( ip_column = 'C' ). + lo_column->set_width( ip_width = 50 ). + lo_column = lo_worksheet->get_column( ip_column = 'D' ). + lo_column->set_visible( ip_visible = abap_false ). " Implementation in the Writer is not working yet ===== TODO ===== - column_dimension = lo_worksheet->get_column_dimension( ip_column = 'F' ). - column_dimension->set_outline_level( ip_outline_level = 0 ). - column_dimension = lo_worksheet->get_column_dimension( ip_column = 'G' ). - column_dimension->set_outline_level( ip_outline_level = 1 ). - column_dimension = lo_worksheet->get_column_dimension( ip_column = 'H' ). - column_dimension->set_outline_level( ip_outline_level = 2 ). + lo_column = lo_worksheet->get_column( ip_column = 'F' ). + lo_column->set_outline_level( ip_outline_level = 0 ). + lo_column = lo_worksheet->get_column( ip_column = 'G' ). + lo_column->set_outline_level( ip_outline_level = 1 ). + 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 ). -* obsolete, not intuitive. Use new method shown below -* " Implementation in the Writer is not working yet ===== TODO ===== -* row_dimension = lo_worksheet->get_row_dimension( ip_row = 6 ). -* row_dimension->set_outline_level( ip_outline_level = 0 ). -* row_dimension = lo_worksheet->get_row_dimension( ip_row = 7 ). -* row_dimension->set_outline_level( ip_outline_level = 1 ). -* row_dimension = lo_worksheet->get_row_dimension( ip_row = 8 ). -* row_dimension->set_outline_level( ip_outline_level = 2 ). * Define an outline rows 10-16, collapsed on startup lo_worksheet->set_row_outline( iv_row_from = 10 diff --git a/src/zdemo_excel24.prog.abap b/src/zdemo_excel24.prog.abap index 1104942..ace4342 100644 --- a/src/zdemo_excel24.prog.abap +++ b/src/zdemo_excel24.prog.abap @@ -12,7 +12,7 @@ TYPE-POOLS: abap. DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, - column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_column TYPE REF TO zcl_excel_column, lo_hyperlink TYPE REF TO zcl_excel_hyperlink. DATA: lv_file TYPE xstring, @@ -44,8 +44,8 @@ START-OF-SELECTION. lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet2!A1' ). lo_worksheet->set_cell( ip_column = 'A' ip_row = 6 ip_value = 'This is a link to the second sheet' ip_hyperlink = lo_hyperlink ). - column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ). - column_dimension->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( ip_column = 'A' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). " Second sheet diff --git a/src/zdemo_excel28.prog.abap b/src/zdemo_excel28.prog.abap index 88c7cb8..0c3b4e6 100644 --- a/src/zdemo_excel28.prog.abap +++ b/src/zdemo_excel28.prog.abap @@ -12,7 +12,7 @@ DATA: lo_excel TYPE REF TO zcl_excel, lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_hyperlink TYPE REF TO zcl_excel_hyperlink, - column_dimension TYPE REF TO zcl_excel_worksheet_columndime. + lo_column TYPE REF TO zcl_excel_column. DATA: lv_file TYPE xstring, lv_bytecount TYPE i, @@ -56,8 +56,8 @@ START-OF-SELECTION. 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 ). - column_dimension = lo_worksheet->get_column_dimension( 'B' ). - column_dimension->set_width( 11 ). + lo_column = lo_worksheet->get_column( 'B' ). + lo_column->set_width( 11 ). lo_worksheet = lo_excel->add_new_worksheet( ). lo_worksheet->set_title( ip_title = 'Sheet2' ). @@ -93,7 +93,7 @@ START-OF-SELECTION. CHANGING data_tab = lt_file_tab ). * zcl_excel_writer_csv=>set_active_sheet_index( i_active_worksheet = 2 ). - zcl_excel_writer_csv=>set_active_sheet_index_by_name( I_WORKSHEET_NAME = 'Sheet1' ). + zcl_excel_writer_csv=>set_active_sheet_index_by_name( i_worksheet_name = 'Sheet1' ). lv_file = lo_excel_writer->write_file( lo_excel ). REPLACE FIRST OCCURRENCE OF '_Sheet2.csv' IN lv_full_path WITH '_Sheet1.csv'. diff --git a/src/zdemo_excel3.prog.abap b/src/zdemo_excel3.prog.abap index 53584bf..cfc4805 100644 --- a/src/zdemo_excel3.prog.abap +++ b/src/zdemo_excel3.prog.abap @@ -12,7 +12,7 @@ TYPE-POOLS: abap. DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, - column_dimension TYPE REF TO zcl_excel_worksheet_columndime. + lo_column TYPE REF TO zcl_excel_column. DATA: ls_table_settings TYPE zexcel_s_table_settings. @@ -55,8 +55,8 @@ START-OF-SELECTION. lo_worksheet->freeze_panes( ip_num_rows = 3 ). "freeze column headers when scrolling - column_dimension = lo_worksheet->get_column_dimension( ip_column = 'E' ). "make date field a bit wider - column_dimension->set_width( ip_width = 11 ). + lo_column = lo_worksheet->get_column( ip_column = 'E' ). "make date field a bit wider + lo_column->set_width( ip_width = 11 ). " Add another table for data validations lo_worksheet = lo_excel->add_new_worksheet( ). lv_title = 'Data Validation'. diff --git a/src/zdemo_excel30.prog.abap b/src/zdemo_excel30.prog.abap index 836df2b..71d8432 100644 --- a/src/zdemo_excel30.prog.abap +++ b/src/zdemo_excel30.prog.abap @@ -11,7 +11,7 @@ REPORT zdemo_excel30. DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_hyperlink TYPE REF TO zcl_excel_hyperlink, - column_dimension TYPE REF TO zcl_excel_worksheet_columndime. + lo_column TYPE REF TO zcl_excel_column. DATA: lv_value TYPE string, @@ -81,16 +81,16 @@ START-OF-SELECTION. lv_count = lv_count + 1. ENDWHILE. - column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ). - column_dimension->set_auto_size( abap_true ). - column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). - column_dimension->set_auto_size( abap_true ). - column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). - column_dimension->set_auto_size( abap_true ). - column_dimension = lo_worksheet->get_column_dimension( ip_column = 'D' ). - column_dimension->set_auto_size( abap_true ). - column_dimension = lo_worksheet->get_column_dimension( ip_column = 'E' ). - column_dimension->set_auto_size( abap_true ). + lo_column = lo_worksheet->get_column( ip_column = 'A' ). + lo_column->set_auto_size( abap_true ). + lo_column = lo_worksheet->get_column( ip_column = 'B' ). + lo_column->set_auto_size( abap_true ). + lo_column = lo_worksheet->get_column( ip_column = 'C' ). + lo_column->set_auto_size( abap_true ). + lo_column = lo_worksheet->get_column( ip_column = 'D' ). + lo_column->set_auto_size( abap_true ). + lo_column = lo_worksheet->get_column( ip_column = 'E' ). + lo_column->set_auto_size( abap_true ). diff --git a/src/zdemo_excel31.prog.abap b/src/zdemo_excel31.prog.abap index 081003b..84f1737 100644 --- a/src/zdemo_excel31.prog.abap +++ b/src/zdemo_excel31.prog.abap @@ -11,7 +11,7 @@ REPORT zdemo_excel31. DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_hyperlink TYPE REF TO zcl_excel_hyperlink, - column_dimension TYPE REF TO zcl_excel_worksheet_columndime. + lo_column TYPE REF TO zcl_excel_column. DATA: fieldval TYPE text80, @@ -55,12 +55,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_column = 'C' ip_row = row ip_value = fieldval ip_style = style_column_c_guid ). ENDDO. - column_dimension = lo_worksheet->get_column_dimension( 'A' ). - column_dimension->set_auto_size( ip_auto_size = abap_true ). - column_dimension = lo_worksheet->get_column_dimension( 'B' ). - column_dimension->set_auto_size( ip_auto_size = abap_true ). - column_dimension = lo_worksheet->get_column_dimension( 'C' ). - column_dimension->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( 'A' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( 'B' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( 'C' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). " Add sheet lo_worksheet = lo_excel->add_new_worksheet( ). @@ -91,12 +91,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_column = 'C' ip_row = row ip_value = fieldval ip_style = style_column_c_guid ). ENDDO. - column_dimension = lo_worksheet->get_column_dimension( 'A' ). - column_dimension->set_auto_size( ip_auto_size = abap_true ). - column_dimension = lo_worksheet->get_column_dimension( 'B' ). - column_dimension->set_auto_size( ip_auto_size = abap_true ). - column_dimension = lo_worksheet->get_column_dimension( 'C' ). - column_dimension->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( 'A' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( 'B' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( 'C' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). " Add sheet lo_worksheet = lo_excel->add_new_worksheet( ). @@ -127,12 +127,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_column = 'C' ip_row = row ip_value = fieldval ip_style = style_column_c_guid ). ENDDO. - column_dimension = lo_worksheet->get_column_dimension( 'A' ). - column_dimension->set_auto_size( ip_auto_size = abap_true ). - column_dimension = lo_worksheet->get_column_dimension( 'B' ). - column_dimension->set_auto_size( ip_auto_size = abap_true ). - column_dimension = lo_worksheet->get_column_dimension( 'C' ). - column_dimension->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( 'A' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( 'B' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( 'C' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). " Add sheet for merged cells lo_worksheet = lo_excel->add_new_worksheet( ). @@ -148,8 +148,8 @@ START-OF-SELECTION. ip_column_end = 'C' ip_row = 1 ). - column_dimension = lo_worksheet->get_column_dimension( 'A' ). - column_dimension->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( 'A' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). lo_excel->set_active_sheet_index( i_active_worksheet = 1 ). diff --git a/src/zdemo_excel34.prog.abap b/src/zdemo_excel34.prog.abap index 1334d8d..8638666 100644 --- a/src/zdemo_excel34.prog.abap +++ b/src/zdemo_excel34.prog.abap @@ -19,7 +19,7 @@ DATA: current_row TYPE i, colorflag TYPE i, color TYPE zexcel_style_color_argb, - column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_column TYPE REF TO zcl_excel_column, row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, writing1 TYPE string, @@ -65,8 +65,8 @@ START-OF-SELECTION. col_alpha = zcl_excel_common=>convert_column2alpha( col ). * Set size of column - column_dimension = lo_worksheet->get_column_dimension( col_alpha ). - column_dimension->set_width( width ). + lo_column = lo_worksheet->get_column( col_alpha ). + lo_column->set_width( width ). * Set size of row row_dimension = lo_worksheet->get_row_dimension( row ). @@ -100,10 +100,10 @@ START-OF-SELECTION. ip_row = row ip_alignment_horizontal = zcl_excel_style_alignment=>c_horizontal_center ). ENDDO. - column_dimension = lo_worksheet->get_column_dimension( 'A' ). - column_dimension->set_auto_size( abap_true ). - column_dimension = lo_worksheet->get_column_dimension( 'J' ). - column_dimension->set_auto_size( abap_true ). + lo_column = lo_worksheet->get_column( 'A' ). + lo_column->set_auto_size( abap_true ). + lo_column = lo_worksheet->get_column( 'J' ). + lo_column->set_auto_size( abap_true ). * Set win-position CONSTANTS: c_pawn TYPE string VALUE 'Pawn'. diff --git a/src/zdemo_excel36.prog.abap b/src/zdemo_excel36.prog.abap index 74f2258..8fecb97 100644 --- a/src/zdemo_excel36.prog.abap +++ b/src/zdemo_excel36.prog.abap @@ -4,7 +4,7 @@ REPORT zdemo_excel36. DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, - column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_column TYPE REF TO zcl_excel_column, col TYPE i. DATA: lo_style_arial20 TYPE REF TO zcl_excel_style, @@ -69,12 +69,12 @@ START-OF-SELECTION. * 3rd sheet - defaultstyle for columns ( set to Times New Roman 11 ) lo_worksheet = lo_excel->add_new_worksheet( ). lo_worksheet->set_title( 'Style for 3 columns' ). - column_dimension = lo_worksheet->get_column_dimension( 'B' ). - column_dimension->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ). - column_dimension = lo_worksheet->get_column_dimension( 'C' ). - column_dimension->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ). - column_dimension = lo_worksheet->get_column_dimension( 'F' ). - column_dimension->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ). + lo_column = lo_worksheet->get_column( 'B' ). + lo_column->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ). + lo_column = lo_worksheet->get_column( 'C' ). + lo_column->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ). + lo_column = lo_worksheet->get_column( 'F' ). + lo_column->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ). lo_worksheet->set_cell( ip_column = 2 ip_row = 4 ip_value = 'The columns B,C and F are set to Times New Roman' ). lo_worksheet->set_cell( ip_column = 2 ip_row = 10 ip_value = 'All other cells in this sheet are set to font Arial, fontsize 20' ). diff --git a/src/zdemo_excel38.prog.abap b/src/zdemo_excel38.prog.abap index 553f151..a67772a 100644 --- a/src/zdemo_excel38.prog.abap +++ b/src/zdemo_excel38.prog.abap @@ -3,7 +3,7 @@ REPORT. DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, - lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_column TYPE REF TO zcl_excel_column, lo_drawing TYPE REF TO zcl_excel_drawing. TYPES: BEGIN OF gty_icon, @@ -36,10 +36,10 @@ START-OF-SELECTION. " Get active sheet lo_worksheet = lo_excel->get_active_worksheet( ). lo_worksheet->set_title( ip_title = 'Demo Icons' ). - lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ). - lo_column_dimension->set_auto_size( 'X' ). - lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). - lo_column_dimension->set_auto_size( 'X' ). + lo_column = lo_worksheet->get_column( ip_column = 'A' ). + lo_column->set_auto_size( 'X' ). + lo_column = lo_worksheet->get_column( ip_column = 'B' ). + lo_column->set_auto_size( 'X' ). * Get all icons SELECT name diff --git a/src/zdemo_teched6.prog.abap b/src/zdemo_teched6.prog.abap index 9752085..f9f7a61 100644 --- a/src/zdemo_teched6.prog.abap +++ b/src/zdemo_teched6.prog.abap @@ -20,7 +20,7 @@ DATA: lo_style_title TYPE REF TO zcl_excel_style, lo_drawing TYPE REF TO zcl_excel_drawing, lo_range TYPE REF TO zcl_excel_range, lo_data_validation TYPE REF TO zcl_excel_data_validation, - lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_column TYPE REF TO zcl_excel_column, lv_style_title_guid TYPE zexcel_cell_style, ls_key TYPE wwwdatatab. @@ -133,10 +133,10 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ). " add autosize (column width) - lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). - lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). - lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). - lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( ip_column = 'B' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( ip_column = 'C' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). " Create xlsx stream CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. diff --git a/src/zdemo_teched7.prog.abap b/src/zdemo_teched7.prog.abap index a429c8f..5a7249c 100644 --- a/src/zdemo_teched7.prog.abap +++ b/src/zdemo_teched7.prog.abap @@ -20,7 +20,7 @@ DATA: lo_style_title TYPE REF TO zcl_excel_style, lo_drawing TYPE REF TO zcl_excel_drawing, lo_range TYPE REF TO zcl_excel_range, lo_data_validation TYPE REF TO zcl_excel_data_validation, - lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_column TYPE REF TO zcl_excel_column, lv_style_title_guid TYPE zexcel_cell_style, ls_key TYPE wwwdatatab. @@ -136,10 +136,10 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ). " add autosize (column width) - lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). - lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). - lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). - lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( ip_column = 'B' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( ip_column = 'C' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). " Create xlsx stream CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. diff --git a/src/zdemo_teched8.prog.abap b/src/zdemo_teched8.prog.abap index 109064a..da49146 100644 --- a/src/zdemo_teched8.prog.abap +++ b/src/zdemo_teched8.prog.abap @@ -23,7 +23,7 @@ DATA: lo_style_title TYPE REF TO zcl_excel_style, lo_drawing TYPE REF TO zcl_excel_drawing, lo_range TYPE REF TO zcl_excel_range, lo_data_validation TYPE REF TO zcl_excel_data_validation, - lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_column TYPE REF TO zcl_excel_column, lo_style_conditional TYPE REF TO zcl_excel_style_conditional, lv_style_title_guid TYPE zexcel_cell_style, lv_style_green_guid TYPE zexcel_cell_style, @@ -144,10 +144,10 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ). " add autosize (column width) - lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). - lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). - lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). - lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( ip_column = 'B' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( ip_column = 'C' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). " defne conditional styles lo_style_green = lo_excel->add_new_style( ). diff --git a/src/zdemo_teched9.prog.abap b/src/zdemo_teched9.prog.abap index c9b0ac8..0127c24 100644 --- a/src/zdemo_teched9.prog.abap +++ b/src/zdemo_teched9.prog.abap @@ -23,7 +23,7 @@ DATA: lo_style_title TYPE REF TO zcl_excel_style, lo_drawing TYPE REF TO zcl_excel_drawing, lo_range TYPE REF TO zcl_excel_range, lo_data_validation TYPE REF TO zcl_excel_data_validation, - lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_column TYPE REF TO zcl_excel_column, lo_style_conditional TYPE REF TO zcl_excel_style_conditional, lv_style_title_guid TYPE zexcel_cell_style, lv_style_green_guid TYPE zexcel_cell_style, @@ -122,10 +122,10 @@ CONSTANTS: lv_default_file_name TYPE string VALUE 'TechEd01.xlsx'. lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ). " add autosize (column width) - lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). - lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). - lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). - lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( ip_column = 'B' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). + lo_column = lo_worksheet->get_column( ip_column = 'C' ). + lo_column->set_auto_size( ip_auto_size = abap_true ). " defne conditional styles lo_style_green = lo_excel->add_new_style( ). From 18cfa99a1808cd04664d3fc7e1aa24372a00e76e Mon Sep 17 00:00:00 2001 From: Ivan Femia Date: Fri, 19 May 2017 00:39:03 +0200 Subject: [PATCH 2/6] Remove old objects #484 Moving from the old column dimension class to the new column class and aligning the management of the collection --- src/zexcel_s_worksheet_columndime.tabl.xml | 41 ---------------------- src/zexcel_t_worksheet_columndime.ttyp.xml | 20 ----------- 2 files changed, 61 deletions(-) delete mode 100644 src/zexcel_s_worksheet_columndime.tabl.xml delete mode 100644 src/zexcel_t_worksheet_columndime.ttyp.xml diff --git a/src/zexcel_s_worksheet_columndime.tabl.xml b/src/zexcel_s_worksheet_columndime.tabl.xml deleted file mode 100644 index b4168f6..0000000 --- a/src/zexcel_s_worksheet_columndime.tabl.xml +++ /dev/null @@ -1,41 +0,0 @@ - - - - - - ZEXCEL_S_WORKSHEET_COLUMNDIME - E - INTTAB - Stucture for the collection of column dimensions - 1 - - - - ZEXCEL_S_WORKSHEET_COLUMNDIME - COLUMN - 0001 - ZEXCEL_CELL_COLUMN_ALPHA - 0 - E - - - ZEXCEL_S_WORKSHEET_COLUMNDIME - COLUMN_DIMENSION - 0002 - ZCL_EXCEL_WORKSHEET_COLUMNDIME - 0 - REF - REF RC - R - C - - - - - - - - - - - diff --git a/src/zexcel_t_worksheet_columndime.ttyp.xml b/src/zexcel_t_worksheet_columndime.ttyp.xml deleted file mode 100644 index b15c1ab..0000000 --- a/src/zexcel_t_worksheet_columndime.ttyp.xml +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - ZEXCEL_T_WORKSHEET_COLUMNDIME - E - ZEXCEL_S_WORKSHEET_COLUMNDIME - S - STRU - T - D - N - Collection of column dimensions - - - - - - From 6c124bf61db140afc1f43e302f34e78230b88acd Mon Sep 17 00:00:00 2001 From: Ivan Femia Date: Fri, 19 May 2017 23:52:29 +0200 Subject: [PATCH 3/6] 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 - - - - - - From d4464072c199ce8635c77d9fe441feeaf2d7085d Mon Sep 17 00:00:00 2001 From: Ivan Femia Date: Sat, 20 May 2017 00:42:59 +0200 Subject: [PATCH 4/6] Fixed #484 Removed also issue with style class --- src/zcl_excel.clas.abap | 62 ++++++++++++++++++++---------- src/zcl_excel.clas.xml | 6 +++ src/zcl_excel_styles.clas.abap | 18 +++------ src/zexcel_s_stylemapping.tabl.xml | 11 ------ 4 files changed, 53 insertions(+), 44 deletions(-) diff --git a/src/zcl_excel.clas.abap b/src/zcl_excel.clas.abap index 28b095c..5674810 100644 --- a/src/zcl_excel.clas.abap +++ b/src/zcl_excel.clas.abap @@ -14,12 +14,6 @@ public section. data SECURITY type ref to ZCL_EXCEL_SECURITY . data USE_TEMPLATE type XFELD . - methods SET_THEME - importing - !IO_THEME type ref to ZCL_EXCEL_THEME . - methods GET_THEME - exporting - !EO_THEME type ref to ZCL_EXCEL_THEME . methods ADD_NEW_AUTOFILTER importing !IO_SHEET type ref to ZCL_EXCEL_WORKSHEET @@ -55,12 +49,12 @@ public section. !IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET raising ZCX_EXCEL . - methods DELETE_WORKSHEET_BY_NAME - importing - !IV_TITLE type CLIKE . methods DELETE_WORKSHEET_BY_INDEX importing !IV_INDEX type NUMERIC . + methods DELETE_WORKSHEET_BY_NAME + importing + !IV_TITLE type CLIKE . methods GET_ACTIVE_SHEET_INDEX returning value(R_ACTIVE_WORKSHEET) type ZEXCEL_ACTIVE_WORKSHEET . @@ -107,6 +101,9 @@ public section. value(EP_STYLEMAPPING) type ZEXCEL_S_STYLEMAPPING raising ZCX_EXCEL . + methods GET_THEME + exporting + !EO_THEME type ref to ZCL_EXCEL_THEME . methods GET_WORKSHEETS_ITERATOR returning value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . @@ -116,16 +113,16 @@ public section. methods GET_WORKSHEETS_SIZE returning value(EP_SIZE) type I . - methods GET_WORKSHEET_BY_NAME - importing - !IP_SHEET_NAME type ZEXCEL_SHEET_TITLE - returning - value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET . methods GET_WORKSHEET_BY_INDEX importing !IV_INDEX type NUMERIC returning value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET . + methods GET_WORKSHEET_BY_NAME + importing + !IP_SHEET_NAME type ZEXCEL_SHEET_TITLE + returning + value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET . methods SET_ACTIVE_SHEET_INDEX importing !I_ACTIVE_WORKSHEET type ZEXCEL_ACTIVE_WORKSHEET @@ -139,6 +136,9 @@ public section. !IP_STYLE type ZEXCEL_CELL_STYLE raising ZCX_EXCEL . + methods SET_THEME + importing + !IO_THEME type ref to ZCL_EXCEL_THEME . *"* protected components of class ZCL_EXCEL *"* do not include other source files here!!! protected section. @@ -159,6 +159,11 @@ private section. data T_STYLEMAPPING2 type ZEXCEL_T_STYLEMAPPING2 . data THEME type ref to ZCL_EXCEL_THEME . + methods GET_STYLE_FROM_GUID + importing + !IP_GUID type ZEXCEL_CELL_STYLE + returning + value(EO_STYLE) type ref to ZCL_EXCEL_STYLE . methods STYLEMAPPING_DYNAMIC_STYLE importing !IP_STYLE type ref to ZCL_EXCEL_STYLE @@ -436,6 +441,23 @@ method GET_STYLES_ITERATOR. endmethod. +METHOD get_style_from_guid. + + DATA: lo_style TYPE REF TO zcl_excel_style, + lo_iterator TYPE REF TO cl_object_collection_iterator. + + lo_iterator = styles->get_iterator( ). + WHILE lo_iterator->has_next( ) = abap_true. + lo_style ?= lo_iterator->get_next( ). + IF lo_style->get_guid( ) = ip_guid. + eo_style = lo_style. + RETURN. + ENDIF. + ENDWHILE. + +ENDMETHOD. + + method GET_STYLE_INDEX_IN_STYLES. DATA: index TYPE syindex. DATA: lo_iterator TYPE REF TO cl_object_collection_iterator, @@ -464,9 +486,9 @@ method GET_STYLE_INDEX_IN_STYLES. endmethod. -method GET_STYLE_TO_GUID. +METHOD get_style_to_guid. + DATA: lo_style TYPE REF TO zcl_excel_style. " # issue 139 - READ TABLE me->t_stylemapping2 INTO ep_stylemapping WITH TABLE KEY guid = ip_guid. IF sy-subrc <> 0. RAISE EXCEPTION TYPE zcx_excel @@ -475,13 +497,12 @@ method GET_STYLE_TO_GUID. ENDIF. IF ep_stylemapping-dynamic_style_guid IS NOT INITIAL. - zcl_excel_common=>recursive_class_to_struct( EXPORTING i_source = ep_stylemapping-cl_style + lo_style = me->get_style_from_guid( ip_guid ). + zcl_excel_common=>recursive_class_to_struct( EXPORTING i_source = lo_style CHANGING e_target = ep_stylemapping-complete_style e_targetx = ep_stylemapping-complete_stylex ). ENDIF. - - - endmethod. +ENDMETHOD. method GET_THEME. @@ -598,7 +619,6 @@ method STYLEMAPPING_DYNAMIC_STYLE. eo_style2-dynamic_style_guid = ip_style->get_guid( ). eo_style2-guid = eo_style2-dynamic_style_guid. eo_style2-added_to_iterator = abap_true. - eo_style2-cl_style = ip_style. * don't care about attributes here, since this data may change * dynamically diff --git a/src/zcl_excel.clas.xml b/src/zcl_excel.clas.xml index de0529e..41afad4 100644 --- a/src/zcl_excel.clas.xml +++ b/src/zcl_excel.clas.xml @@ -286,6 +286,12 @@ I Get styles iterator + + ZCL_EXCEL + GET_STYLE_FROM_GUID + E + Return a style object from a GUID + ZCL_EXCEL GET_STYLE_INDEX_IN_STYLES diff --git a/src/zcl_excel_styles.clas.abap b/src/zcl_excel_styles.clas.abap index acab4f7..57423cb 100644 --- a/src/zcl_excel_styles.clas.abap +++ b/src/zcl_excel_styles.clas.abap @@ -49,11 +49,9 @@ ENDCLASS. CLASS ZCL_EXCEL_STYLES IMPLEMENTATION. -method ADD. - - +METHOD add. styles->add( ip_style ). - endmethod. +ENDMETHOD. method CLEAR. @@ -70,11 +68,9 @@ method CONSTRUCTOR. endmethod. -method GET. - - +METHOD get. eo_style ?= styles->if_object_collection~get( ip_index ). - endmethod. +ENDMETHOD. method GET_ITERATOR. @@ -91,12 +87,10 @@ method IS_EMPTY. endmethod. -method REGISTER_NEW_STYLE. - - +METHOD register_new_style. me->add( io_style ). ep_style_code = me->size( ) - 1. "style count starts from 0 - endmethod. +ENDMETHOD. method REMOVE. diff --git a/src/zexcel_s_stylemapping.tabl.xml b/src/zexcel_s_stylemapping.tabl.xml index 5450b02..aa35eec 100644 --- a/src/zexcel_s_stylemapping.tabl.xml +++ b/src/zexcel_s_stylemapping.tabl.xml @@ -56,17 +56,6 @@ F E - - ZEXCEL_S_STYLEMAPPING - CL_STYLE - 0194 - ZCL_EXCEL_STYLE - 0 - REF - REF RC - R - C - From 969da4a9dc574db57d88a5b0d7bb102dd1616398 Mon Sep 17 00:00:00 2001 From: Ivan Femia Date: Mon, 22 May 2017 21:00:39 +0200 Subject: [PATCH 5/6] Fix issue #484 Removed the conditional formatting object from the structure --- src/zcl_excel.clas.abap | 2 - src/zcl_excel_autofilter.clas.abap | 11 +- src/zcl_excel_autofilters.clas.abap | 8 +- src/zcl_excel_common.clas.abap | 18 +- src/zcl_excel_converter.clas.abap | 80 ++-- src/zcl_excel_converter_alv.clas.abap | 3 - src/zcl_excel_converter_alv_grid.clas.abap | 4 +- src/zcl_excel_converter_result_ex.clas.abap | 6 +- src/zcl_excel_converter_result_wd.clas.abap | 13 +- src/zcl_excel_converter_salv_table.clas.abap | 10 +- src/zcl_excel_drawing.clas.abap | 7 +- src/zcl_excel_reader_2007.clas.abap | 237 +++++------ ...cel_reader_huge_file.clas.testclasses.abap | 4 +- src/zcl_excel_reader_xlsm.clas.abap | 5 +- src/zcl_excel_style.clas.abap | 9 +- src/zcl_excel_style_cond.clas.abap | 261 ++++++++++++ src/zcl_excel_style_cond.clas.xml | 400 ++++++++++++++++++ src/zcl_excel_styles.clas.abap | 22 +- src/zcl_excel_styles_cond.clas.abap | 89 ++++ src/zcl_excel_styles_cond.clas.xml | 20 + src/zcl_excel_table.clas.abap | 8 +- src/zcl_excel_theme_color_scheme.clas.abap | 1 - src/zcl_excel_theme_eclrschemelst.clas.abap | 1 - src/zcl_excel_theme_elements.clas.abap | 2 +- src/zcl_excel_worksheet.clas.abap | 174 ++++---- src/zcl_excel_worksheet.clas.xml | 62 ++- src/zcl_excel_writer_2007.clas.abap | 106 ++--- src/zcl_excel_writer_huge_file.clas.abap | 1 - src/zdemo_excel.prog.abap | 2 +- src/zdemo_excel10.prog.abap | 28 +- src/zdemo_excel27.prog.abap | 50 ++- src/zdemo_excel5.prog.abap | 42 +- src/zdemo_excel7.prog.abap | 280 ++++++------ src/zdemo_teched6.prog.abap | 2 +- src/zdemo_teched7.prog.abap | 2 +- src/zexcel_s_fieldcatalog.tabl.xml | 9 +- 36 files changed, 1327 insertions(+), 652 deletions(-) create mode 100644 src/zcl_excel_style_cond.clas.abap create mode 100644 src/zcl_excel_style_cond.clas.xml create mode 100644 src/zcl_excel_styles_cond.clas.abap create mode 100644 src/zcl_excel_styles_cond.clas.xml diff --git a/src/zcl_excel.clas.abap b/src/zcl_excel.clas.abap index 5674810..433627f 100644 --- a/src/zcl_excel.clas.abap +++ b/src/zcl_excel.clas.abap @@ -139,8 +139,6 @@ public section. methods SET_THEME importing !IO_THEME type ref to ZCL_EXCEL_THEME . -*"* protected components of class ZCL_EXCEL -*"* do not include other source files here!!! protected section. data WORKSHEETS type ref to ZCL_EXCEL_WORKSHEETS . diff --git a/src/zcl_excel_autofilter.clas.abap b/src/zcl_excel_autofilter.clas.abap index c0a9b42..42554ce 100644 --- a/src/zcl_excel_autofilter.clas.abap +++ b/src/zcl_excel_autofilter.clas.abap @@ -134,8 +134,7 @@ METHOD get_filter_range. DATA: l_row_start_c TYPE string, l_row_end_c TYPE string, l_col_start_c TYPE string, - l_col_end_c TYPE string, - l_value TYPE string. + l_col_end_c TYPE string. validate_area( ). @@ -203,8 +202,7 @@ METHOD is_row_hidden. DATA: lr_filter TYPE REF TO ts_filter, - lv_col TYPE i, - ls_value TYPE zexcel_s_autofilter_values. + lv_col TYPE i. FIELD-SYMBOLS: TYPE ts_filter. @@ -289,7 +287,6 @@ METHOD is_row_hidden_single_values. READ TABLE is_filter-t_values TRANSPORTING NO FIELDS WITH TABLE KEY table_line = lv_value. IF sy-subrc <> 0. rv_is_hidden = abap_true. - RETURN. ENDIF. ENDMETHOD. @@ -323,7 +320,6 @@ METHOD is_row_hidden_text_pattern. *--------------------------------------------------------------------* IF lv_value NOT IN is_filter-tr_textfilter1. rv_is_hidden = abap_true. - RETURN. ENDIF. ENDMETHOD. @@ -367,8 +363,7 @@ ENDMETHOD. METHOD set_value. - DATA: lr_filter TYPE REF TO ts_filter, - ls_value TYPE zexcel_s_autofilter_values. + DATA: lr_filter TYPE REF TO ts_filter. FIELD-SYMBOLS: TYPE ts_filter. diff --git a/src/zcl_excel_autofilters.clas.abap b/src/zcl_excel_autofilters.clas.abap index 6535ab5..ebcc2a3 100644 --- a/src/zcl_excel_autofilters.clas.abap +++ b/src/zcl_excel_autofilters.clas.abap @@ -35,9 +35,9 @@ public section. value(R_SIZE) type I . *"* protected components of class ZABAP_EXCEL_WORKSHEETS *"* do not include other source files here!!! -protected section. -*"* private components of class ZCL_EXCEL_AUTOFILTERS +*"* protected components of class ZABAP_EXCEL_WORKSHEETS *"* do not include other source files here!!! +protected section. private section. types: @@ -88,8 +88,6 @@ ENDMETHOD. METHOD get. - DATA: ls_autofilter LIKE LINE OF me->mt_autofilters. - FIELD-SYMBOLS: LIKE LINE OF me->mt_autofilters. READ TABLE me->mt_autofilters ASSIGNING WITH TABLE KEY worksheet = io_worksheet. @@ -113,8 +111,6 @@ METHOD remove. DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet. - FIELD-SYMBOLS: LIKE LINE OF me->mt_autofilters. - DELETE TABLE me->mt_autofilters WITH TABLE KEY worksheet = lo_worksheet. ENDMETHOD. diff --git a/src/zcl_excel_common.clas.abap b/src/zcl_excel_common.clas.abap index 4ea3e89..c255cb1 100644 --- a/src/zcl_excel_common.clas.abap +++ b/src/zcl_excel_common.clas.abap @@ -198,9 +198,9 @@ public section. ZCX_EXCEL . *"* protected components of class ZCL_EXCEL_COMMON *"* do not include other source files here!!! -protected section. -*"* private components of class ZCL_EXCEL_COMMON +*"* protected components of class ZCL_EXCEL_COMMON *"* do not include other source files here!!! +protected section. private section. class-data C_EXCEL_COL_MODULE type INT2 value 64. "#EC NOTEXT . . . . . . . . . . . . . . . " . @@ -745,7 +745,6 @@ endmethod. method DESCRIBE_STRUCTURE. DATA: lt_components TYPE abap_component_tab, lt_comps TYPE abap_component_tab, - lo_struct TYPE REF TO cl_abap_structdescr, ls_component TYPE abap_componentdescr, lo_elemdescr TYPE REF TO cl_abap_elemdescr, ls_dfies TYPE dfies, @@ -1111,12 +1110,10 @@ method RECURSIVE_CLASS_TO_STRUCT. DATA: descr TYPE REF TO cl_abap_structdescr, wa_component LIKE LINE OF descr->components, attribute_name TYPE fieldname, - flag_class TYPE flag, - o_border TYPE REF TO zcl_excel_style_border. + flag_class TYPE flag. FIELD-SYMBOLS: TYPE any, TYPE any, - TYPE REF TO object, TYPE any. @@ -1172,9 +1169,7 @@ METHOD recursive_struct_to_class. FIELD-SYMBOLS: TYPE any, TYPE any, - TYPE REF TO object, - TYPE any, - TYPE ANY TABLE. + TYPE any. descr ?= cl_abap_structdescr=>describe_by_data( i_source ). @@ -1257,8 +1252,6 @@ METHOD shift_formula. lv_errormessage TYPE string. - FIELD-SYMBOLS: TYPE ANY. - *--------------------------------------------------------------------* * When copying a cell in EXCEL to another cell any inherent formulas * are copied as well. Cell-references in the formula are being adjusted @@ -1613,8 +1606,7 @@ method SPLIT_FILE. DATA: lf_ext(10) TYPE c, lf_dot_ext(10) TYPE c. - DATA: lf_str TYPE text255, - lf_anz TYPE i, + DATA: lf_anz TYPE i, lf_len TYPE i. ** --------------------------------------------------------------------- diff --git a/src/zcl_excel_converter.clas.abap b/src/zcl_excel_converter.clas.abap index 7198837..ec8401f 100644 --- a/src/zcl_excel_converter.clas.abap +++ b/src/zcl_excel_converter.clas.abap @@ -246,42 +246,29 @@ ENDCLASS. CLASS ZCL_EXCEL_CONVERTER IMPLEMENTATION. -method ASK_OPTION. +METHOD ask_option. DATA: ls_sval TYPE sval, lt_sval TYPE STANDARD TABLE OF sval, l_returncode TYPE string, lt_fields TYPE ddfields, ls_fields TYPE dfies. - FIELD-SYMBOLS: TYPE ANY. + FIELD-SYMBOLS: TYPE any. rs_option = ws_option. CALL FUNCTION 'DDIF_FIELDINFO_GET' EXPORTING - tabname = 'ZEXCEL_S_CONVERTER_OPTION' -* FIELDNAME = ' ' -* LANGU = sy-langu -* LFIELDNAME = ' ' -* ALL_TYPES = ' ' -* GROUP_NAMES = ' ' -* UCLEN = -* IMPORTING -* X030L_WA = -* DDOBJTYPE = -* DFIES_WA = -* LINES_DESCR = + tabname = 'ZEXCEL_S_CONVERTER_OPTION' TABLES - dfies_tab = lt_fields -* FIXED_VALUES = - EXCEPTIONS - not_found = 1 - internal_error = 2 - OTHERS = 3 - . + dfies_tab = lt_fields + EXCEPTIONS + not_found = 1 + internal_error = 2 + OTHERS = 3. IF sy-subrc <> 0. -* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO -* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. + MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno + WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ENDIF. LOOP AT lt_fields INTO ls_fields. @@ -304,21 +291,17 @@ method ASK_OPTION. CALL FUNCTION 'POPUP_GET_VALUES' EXPORTING -* NO_VALUE_CHECK = space - popup_title = 'Excel creation options'(008) -* START_COLUMN = '5' -* START_ROW = '5' + popup_title = 'Excel creation options'(008) IMPORTING - returncode = l_returncode + returncode = l_returncode TABLES - fields = lt_sval + fields = lt_sval EXCEPTIONS - error_in_fields = 1 - OTHERS = 2 - . + error_in_fields = 1 + OTHERS = 2. IF sy-subrc <> 0. -* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO -* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. + MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno + WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. ELSE. IF l_returncode = 'A'. RAISE EXCEPTION TYPE zcx_excel. @@ -333,7 +316,7 @@ method ASK_OPTION. rs_option = ws_option. ENDIF. ENDIF. - endmethod. +ENDMETHOD. method BIND_CELLS. @@ -499,10 +482,8 @@ method CONVERT. ws_option = is_option. ENDIF. - TRY. - execute_converter( EXPORTING io_object = io_alv - it_table = it_table ) . - ENDTRY. + execute_converter( EXPORTING io_object = io_alv + it_table = it_table ) . IF io_worksheet IS SUPPLIED AND io_worksheet IS BOUND. wo_worksheet = io_worksheet. @@ -788,8 +769,7 @@ method CREATE_TABLE. lt_components_tab TYPE cl_abap_structdescr=>component_table, ls_components TYPE abap_componentdescr, lo_table TYPE REF TO cl_abap_tabledescr, - lo_struc TYPE REF TO cl_abap_structdescr, - lt_fieldcatalog TYPE zexcel_t_converter_fcat. + lo_struc TYPE REF TO cl_abap_structdescr. FIELD-SYMBOLS: TYPE zexcel_s_converter_fcat, TYPE ANY, @@ -873,7 +853,6 @@ ENDMETHOD. method CREATE_WORKSHEET. DATA: l_freeze_col TYPE i. - DATA: l_guid TYPE oltpguid16. IF wo_data IS BOUND AND wo_worksheet IS BOUND. @@ -913,9 +892,7 @@ method CREATE_WORKSHEET. method EXECUTE_CONVERTER. - DATA: lt_fieldcatalog TYPE zexcel_t_fieldcatalog, - ls_fieldcatalog TYPE zexcel_s_converter_fcat, - lo_if TYPE REF TO zif_excel_converter, + DATA: lo_if TYPE REF TO zif_excel_converter, ls_types TYPE ts_alv_types, lo_addit TYPE REF TO cl_abap_classdescr, lo_addit_superclass type ref to cl_abap_classdescr. @@ -946,8 +923,7 @@ method EXECUTE_CONVERTER. endif. if sy-subrc = 0. CREATE OBJECT lo_if type (ls_types-clsname). - try. - lo_if->create_fieldcatalog( + lo_if->create_fieldcatalog( exporting is_option = ws_option io_object = io_object @@ -959,7 +935,6 @@ method EXECUTE_CONVERTER. et_colors = wt_colors et_filter = wt_filter ). - endtry. * data lines of highest level. if ws_layout-max_subtotal_level > 0. add 1 to ws_layout-max_subtotal_level. endif. else. @@ -1031,8 +1006,7 @@ method GET_COLOR_STYLE. method GET_FILE. - data: lo_excel_writer type ref to zif_excel_writer, - lo_excel type ref to zcl_excel. + data: lo_excel_writer type ref to zif_excel_writer. data: ls_seoclass type seoclass. @@ -1627,8 +1601,7 @@ method LOOP_SUBTOTAL. method OPEN_FILE. data: l_bytecount type i, lt_file type solix_tab, - l_dir type string, - l_sep type c. + l_dir type string. field-symbols: type any table. @@ -1733,8 +1706,7 @@ method SET_FIELDCATALOG. DATA: lr_data TYPE REF TO data, lo_structdescr TYPE REF TO cl_abap_structdescr, lt_dfies TYPE ddfields, - ls_dfies TYPE dfies, - ls_fieldcatalog TYPE zexcel_s_fieldcatalog. + ls_dfies TYPE dfies. DATA: ls_fcat TYPE zexcel_s_converter_fcat. FIELD-SYMBOLS: TYPE ANY TABLE. diff --git a/src/zcl_excel_converter_alv.clas.abap b/src/zcl_excel_converter_alv.clas.abap index 019085b..7ede32e 100644 --- a/src/zcl_excel_converter_alv.clas.abap +++ b/src/zcl_excel_converter_alv.clas.abap @@ -305,8 +305,6 @@ method GET_COLOR. FIELD-SYMBOLS: TYPE STANDARD TABLE, TYPE ANY, TYPE ANY, - TYPE lvc_t_scol, - TYPE lvc_s_scol, type standard table, type any. @@ -493,7 +491,6 @@ ENDMETHOD. method UPDATE_CATALOG. DATA: ls_fieldcatalog TYPE zexcel_s_converter_fcat, - ls_ref TYPE salv_s_ddic_reference, ls_fcat TYPE lvc_s_fcat, ls_sort TYPE lvc_s_sort, l_decimals TYPE lvc_decmls. diff --git a/src/zcl_excel_converter_alv_grid.clas.abap b/src/zcl_excel_converter_alv_grid.clas.abap index 96814d4..8cf0089 100644 --- a/src/zcl_excel_converter_alv_grid.clas.abap +++ b/src/zcl_excel_converter_alv_grid.clas.abap @@ -40,9 +40,7 @@ endmethod. METHOD zif_excel_converter~create_fieldcatalog. DATA: lo_alv TYPE REF TO cl_gui_alv_grid. - TRY. - zif_excel_converter~can_convert_object( io_object = io_object ). - ENDTRY. + zif_excel_converter~can_convert_object( io_object = io_object ). ws_option = is_option. diff --git a/src/zcl_excel_converter_result_ex.clas.abap b/src/zcl_excel_converter_result_ex.clas.abap index 3c6d71a..da1f6a5 100644 --- a/src/zcl_excel_converter_result_ex.clas.abap +++ b/src/zcl_excel_converter_result_ex.clas.abap @@ -14,6 +14,8 @@ public section. redefinition . *"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_EX *"* do not include other source files here!!! +*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_EX +*"* do not include other source files here!!! protected section. *"* private components of class ZCL_EXCEL_CONVERTER_EX_RESULT *"* do not include other source files here!!! @@ -45,9 +47,7 @@ METHOD zif_excel_converter~create_fieldcatalog. FIELD-SYMBOLS: TYPE STANDARD TABLE. - TRY. - zif_excel_converter~can_convert_object( io_object = io_object ). - ENDTRY. + zif_excel_converter~can_convert_object( io_object = io_object ). ws_option = is_option. diff --git a/src/zcl_excel_converter_result_wd.clas.abap b/src/zcl_excel_converter_result_wd.clas.abap index 97333c1..930acab 100644 --- a/src/zcl_excel_converter_result_wd.clas.abap +++ b/src/zcl_excel_converter_result_wd.clas.abap @@ -14,9 +14,9 @@ public section. redefinition . *"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_WD *"* do not include other source files here!!! -protected section. -*"* private components of class ZCL_EXCEL_CONVERTER_RESULT_WD +*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_WD *"* do not include other source files here!!! +protected section. private section. data WO_CONFIG type ref to CL_SALV_WD_CONFIG_TABLE . @@ -45,8 +45,7 @@ method CREATE_WT_FCAT. DATA: lr_data TYPE REF TO data, lo_structdescr TYPE REF TO cl_abap_structdescr, lt_dfies TYPE ddfields, - ls_dfies TYPE dfies, - lv_sytabix TYPE sytabix. + ls_dfies TYPE dfies. DATA: ls_fcat TYPE lvc_s_fcat. @@ -79,8 +78,6 @@ method CREATE_WT_FCAT. method CREATE_WT_FILT. * No neeed for superclass. * Only for WD - DATA: lt_otab TYPE abap_sortorder_tab, - ls_otab TYPE abap_sortorder. DATA: lt_filters TYPE salv_wd_t_filter_rule_ref, ls_filt TYPE lvc_s_filt. @@ -213,9 +210,7 @@ METHOD zif_excel_converter~create_fieldcatalog. FIELD-SYMBOLS: TYPE STANDARD TABLE. - TRY. - zif_excel_converter~can_convert_object( io_object = io_object ). - ENDTRY. + zif_excel_converter~can_convert_object( io_object = io_object ). ws_option = is_option. diff --git a/src/zcl_excel_converter_salv_table.clas.abap b/src/zcl_excel_converter_salv_table.clas.abap index 267752e..66e3280 100644 --- a/src/zcl_excel_converter_salv_table.clas.abap +++ b/src/zcl_excel_converter_salv_table.clas.abap @@ -14,9 +14,9 @@ public section. redefinition . *"* protected components of class ZCL_EXCEL_CONVERTER_SALV_TABLE *"* do not include other source files here!!! -protected section. -*"* private components of class ZCL_EXCEL_CONVERTER_SALV_TABLE +*"* protected components of class ZCL_EXCEL_CONVERTER_SALV_TABLE *"* do not include other source files here!!! +protected section. private section. methods LOAD_DATA @@ -36,15 +36,11 @@ method LOAD_DATA. lo_sorts TYPE REF TO cl_salv_sorts, lo_filters TYPE REF TO cl_salv_filters, lo_functional TYPE REF TO cl_salv_functional_settings, - lo_display TYPE REF TO cl_salv_display_settings, - lo_selections TYPE REF TO cl_salv_selections. + lo_display TYPE REF TO cl_salv_display_settings. DATA: ls_vari TYPE disvariant, lo_layout TYPE REF TO cl_salv_layout. - DATA: lr_form_tol TYPE REF TO cl_salv_form, - lr_form_eol TYPE REF TO cl_salv_form. - DATA lt_kkblo_fieldcat TYPE kkblo_t_fieldcat. DATA ls_kkblo_layout TYPE kkblo_layout. DATA lt_kkblo_filter TYPE kkblo_t_filter. diff --git a/src/zcl_excel_drawing.clas.abap b/src/zcl_excel_drawing.clas.abap index 886c619..cf3c906 100644 --- a/src/zcl_excel_drawing.clas.abap +++ b/src/zcl_excel_drawing.clas.abap @@ -118,6 +118,8 @@ public section. value(IP_CHART) type ref to IF_IXML_DOCUMENT . *"* protected components of class ZCL_EXCEL_DRAWING *"* do not include other source files here!!! +*"* protected components of class ZCL_EXCEL_DRAWING +*"* do not include other source files here!!! protected section. private section. @@ -332,11 +334,6 @@ method LOAD_CHART_ATTRIBUTES. DATA: node2 TYPE REF TO if_ixml_element. DATA: node3 TYPE REF TO if_ixml_element. DATA: node4 TYPE REF TO if_ixml_element. - DATA: iterator TYPE REF TO if_ixml_node_iterator. - - DATA: chartspace TYPE REF TO if_ixml_node_collection. - DATA: coll_length TYPE i. - DATA: chartelem TYPE REF TO if_ixml_element. DATA lo_barchart TYPE REF TO zcl_excel_graph_bars. DATA lo_piechart TYPE REF TO zcl_excel_graph_pie. diff --git a/src/zcl_excel_reader_2007.clas.abap b/src/zcl_excel_reader_2007.clas.abap index 72e44ce..ab69471 100644 --- a/src/zcl_excel_reader_2007.clas.abap +++ b/src/zcl_excel_reader_2007.clas.abap @@ -188,31 +188,31 @@ protected section. methods LOAD_WORKSHEET_COND_FORMAT_AA importing !IO_IXML_RULE type ref to IF_IXML_ELEMENT - !IO_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + !IO_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND. methods LOAD_WORKSHEET_COND_FORMAT_CI importing !IO_IXML_RULE type ref to IF_IXML_ELEMENT - !IO_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + !IO_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND . methods LOAD_WORKSHEET_COND_FORMAT_CS importing !IO_IXML_RULE type ref to IF_IXML_ELEMENT - !IO_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + !IO_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND . methods LOAD_WORKSHEET_COND_FORMAT_EX importing !IO_IXML_RULE type ref to IF_IXML_ELEMENT - !IO_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + !IO_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND . methods LOAD_WORKSHEET_COND_FORMAT_IS importing !IO_IXML_RULE type ref to IF_IXML_ELEMENT - !IO_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + !IO_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND . methods LOAD_WORKSHEET_COND_FORMAT_DB importing !IO_IXML_RULE type ref to IF_IXML_ELEMENT - !IO_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + !IO_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND . methods LOAD_WORKSHEET_COND_FORMAT_T10 importing !IO_IXML_RULE type ref to IF_IXML_ELEMENT - !IO_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + !IO_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND . methods LOAD_WORKSHEET_DRAWING importing !IP_PATH type STRING @@ -2857,8 +2857,8 @@ METHOD load_worksheet_cond_format. lo_ixml_rules TYPE REF TO if_ixml_node_collection, lo_ixml_rule TYPE REF TO if_ixml_element, lo_ixml_iterator2 TYPE REF TO if_ixml_node_iterator, - lo_style_conditional TYPE REF TO zcl_excel_style_conditional, - lo_style_conditional2 TYPE REF TO zcl_excel_style_conditional. + lo_style_cond TYPE REF TO zcl_excel_style_cond, + lo_style_cond2 TYPE REF TO zcl_excel_style_cond. DATA: lv_area TYPE string, @@ -2880,7 +2880,7 @@ METHOD load_worksheet_cond_format. CLEAR: lv_area, lo_ixml_rule, - lo_style_conditional. + lo_style_cond. *--------------------------------------------------------------------* @@ -2889,63 +2889,56 @@ METHOD load_worksheet_cond_format. lo_ixml_rules = io_ixml_worksheet->get_elements_by_tag_name( name = 'cfRule' ). lo_ixml_iterator2 = lo_ixml_rules->create_iterator( ). lo_ixml_rule ?= lo_ixml_iterator2->get_next( ). -* IF lo_ixml_rule IS BOUND. + WHILE lo_ixml_rule IS BOUND. lv_rule = lo_ixml_rule->get_attribute_ns( 'type' ). - CLEAR lo_style_conditional. + CLEAR lo_style_cond. *--------------------------------------------------------------------* * Depending on ruletype get additional information *--------------------------------------------------------------------* CASE lv_rule. - WHEN zcl_excel_style_conditional=>c_rule_cellis. - lo_style_conditional = io_worksheet->add_new_conditional_style( ). - load_worksheet_cond_format_ci( io_ixml_rule = lo_ixml_rule - io_style_conditional = lo_style_conditional ). + WHEN zcl_excel_style_cond=>c_rule_cellis. + lo_style_cond = io_worksheet->add_new_style_cond( ). + load_worksheet_cond_format_ci( io_ixml_rule = lo_ixml_rule + io_style_cond = lo_style_cond ). -* WHEN zcl_excel_style_conditional=>c_rule_containstext. -* - WHEN zcl_excel_style_conditional=>c_rule_databar. - lo_style_conditional = io_worksheet->add_new_conditional_style( ). - load_worksheet_cond_format_db( io_ixml_rule = lo_ixml_rule - io_style_conditional = lo_style_conditional ). + WHEN zcl_excel_style_cond=>c_rule_databar. + lo_style_cond = io_worksheet->add_new_style_cond( ). + load_worksheet_cond_format_db( io_ixml_rule = lo_ixml_rule + io_style_cond = lo_style_cond ). - WHEN zcl_excel_style_conditional=>c_rule_expression. - lo_style_conditional = io_worksheet->add_new_conditional_style( ). - load_worksheet_cond_format_ex( io_ixml_rule = lo_ixml_rule - io_style_conditional = lo_style_conditional ). + WHEN zcl_excel_style_cond=>c_rule_expression. + lo_style_cond = io_worksheet->add_new_style_cond( ). + load_worksheet_cond_format_ex( io_ixml_rule = lo_ixml_rule + io_style_cond = lo_style_cond ). - WHEN zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional = io_worksheet->add_new_conditional_style( ). - load_worksheet_cond_format_is( io_ixml_rule = lo_ixml_rule - io_style_conditional = lo_style_conditional ). + WHEN zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond = io_worksheet->add_new_style_cond( ). + load_worksheet_cond_format_is( io_ixml_rule = lo_ixml_rule + io_style_cond = lo_style_cond ). - WHEN zcl_excel_style_conditional=>c_rule_colorscale. - lo_style_conditional = io_worksheet->add_new_conditional_style( ). - load_worksheet_cond_format_cs( io_ixml_rule = lo_ixml_rule - io_style_conditional = lo_style_conditional ). + WHEN zcl_excel_style_cond=>c_rule_colorscale. + lo_style_cond = io_worksheet->add_new_style_cond( ). + load_worksheet_cond_format_cs( io_ixml_rule = lo_ixml_rule + io_style_cond = lo_style_cond ). - WHEN zcl_excel_style_conditional=>c_rule_top10. - lo_style_conditional = io_worksheet->add_new_conditional_style( ). - load_worksheet_cond_format_t10( io_ixml_rule = lo_ixml_rule - io_style_conditional = lo_style_conditional ). - - WHEN zcl_excel_style_conditional=>c_rule_above_average. - lo_style_conditional = io_worksheet->add_new_conditional_style( ). - load_worksheet_cond_format_aa( io_ixml_rule = lo_ixml_rule - io_style_conditional = lo_style_conditional ). - -* WHEN zcl_excel_style_conditional=>c_rule_none. -* + WHEN zcl_excel_style_cond=>c_rule_top10. + lo_style_cond = io_worksheet->add_new_style_cond( ). + load_worksheet_cond_format_t10( io_ixml_rule = lo_ixml_rule + io_style_cond = lo_style_cond ). + WHEN zcl_excel_style_cond=>c_rule_above_average. + lo_style_cond = io_worksheet->add_new_style_cond( ). + load_worksheet_cond_format_aa( io_ixml_rule = lo_ixml_rule + io_style_cond = lo_style_cond ). WHEN OTHERS. ENDCASE. -* ENDIF. - IF lo_style_conditional IS BOUND. - lo_style_conditional->rule = lv_rule. - lo_style_conditional->priority = lo_ixml_rule->get_attribute_ns( 'priority' ). + IF lo_style_cond IS BOUND. + lo_style_cond->rule = lv_rule. + lo_style_cond->priority = lo_ixml_rule->get_attribute_ns( 'priority' ). *--------------------------------------------------------------------* * Set area to which conditional formatting belongs *--------------------------------------------------------------------* @@ -2953,36 +2946,16 @@ METHOD load_worksheet_cond_format. SPLIT lv_area AT space INTO TABLE lt_areas. DELETE lt_areas WHERE table_line IS INITIAL. LOOP AT lt_areas INTO lv_area. -* IF sy-tabix = 1. " Add futher style for next area -* lo_style_conditional2 = lo_style_conditional. -* ELSE. -* lo_style_conditional2 = io_worksheet->add_new_conditional_style( ). -* lo_style_conditional2->mode_cellis = lo_style_conditional->mode_cellis . -* lo_style_conditional2->mode_colorscale = lo_style_conditional->mode_colorscale . -* lo_style_conditional2->mode_databar = lo_style_conditional->mode_databar . -* lo_style_conditional2->mode_expression = lo_style_conditional->mode_expression . -* lo_style_conditional2->mode_iconset = lo_style_conditional->mode_iconset . -* lo_style_conditional2->mode_top10 = lo_style_conditional->mode_top10 . -* lo_style_conditional2->mode_above_average = lo_style_conditional->mode_above_average. -* lo_style_conditional2->priority = lo_style_conditional->priority . -* lo_style_conditional2->rule = lo_style_conditional->rule . -* ENDIF. - zcl_excel_common=>convert_range2column_a_row( EXPORTING - i_range = lv_area - IMPORTING - e_column_start = lv_area_start_col - e_column_end = lv_area_end_col - e_row_start = lv_area_start_row - e_row_end = lv_area_end_row ). -* lo_style_conditional2->set_range( ip_start_column = lv_area_start_col -* ip_stop_column = lv_area_end_col -* ip_start_row = lv_area_start_row -* ip_stop_row = lv_area_end_row ). - lo_style_conditional->add_range( ip_start_column = lv_area_start_col - ip_stop_column = lv_area_end_col - ip_start_row = lv_area_start_row - ip_stop_row = lv_area_end_row ). + zcl_excel_common=>convert_range2column_a_row( EXPORTING i_range = lv_area + IMPORTING e_column_start = lv_area_start_col + e_column_end = lv_area_end_col + e_row_start = lv_area_start_row + e_row_end = lv_area_end_row ). + lo_style_cond->add_range( ip_start_column = lv_area_start_col + ip_stop_column = lv_area_end_col + ip_start_row = lv_area_start_row + ip_stop_row = lv_area_end_row ). ENDLOOP. ENDIF. @@ -3008,9 +2981,9 @@ METHOD load_worksheet_cond_format_aa. *--------------------------------------------------------------------* val = io_ixml_rule->get_attribute_ns( 'aboveAverage' ). IF val = '0'. " 0 = below average - io_style_conditional->mode_above_average-above_average = space. + io_style_cond->mode_above_average-above_average = space. ELSE. - io_style_conditional->mode_above_average-above_average = 'X'. " Not present or <> 0 --> we use above average + io_style_cond->mode_above_average-above_average = 'X'. " Not present or <> 0 --> we use above average ENDIF. *--------------------------------------------------------------------* @@ -3019,9 +2992,9 @@ METHOD load_worksheet_cond_format_aa. CLEAR val. val = io_ixml_rule->get_attribute_ns( 'equalAverage' ). IF val = '1'. " 0 = below average - io_style_conditional->mode_above_average-equal_average = 'X'. + io_style_cond->mode_above_average-equal_average = 'X'. ELSE. - io_style_conditional->mode_above_average-equal_average = ' '. " Not present or <> 1 --> we use not equal average + io_style_cond->mode_above_average-equal_average = ' '. " Not present or <> 1 --> we use not equal average ENDIF. *--------------------------------------------------------------------* @@ -3033,7 +3006,7 @@ METHOD load_worksheet_cond_format_aa. WHEN 1 OR 2 OR 3. " These seem to be supported by excel - don't try anything more - io_style_conditional->mode_above_average-standard_deviation = val. + io_style_cond->mode_above_average-standard_deviation = val. ENDCASE. *--------------------------------------------------------------------* @@ -3042,7 +3015,7 @@ METHOD load_worksheet_cond_format_aa. lv_dxf_style_index = io_ixml_rule->get_attribute_ns( 'dxfId' ). READ TABLE me->mt_dxf_styles ASSIGNING WITH KEY dxf = lv_dxf_style_index. IF sy-subrc = 0. - io_style_conditional->mode_above_average-cell_style = -guid. + io_style_cond->mode_above_average-cell_style = -guid. ENDIF. ENDMETHOD. @@ -3057,11 +3030,11 @@ METHOD load_worksheet_cond_format_ci. FIELD-SYMBOLS: LIKE LINE OF me->mt_dxf_styles. - io_style_conditional->mode_cellis-operator = io_ixml_rule->get_attribute_ns( 'operator' ). + io_style_cond->mode_cellis-operator = io_ixml_rule->get_attribute_ns( 'operator' ). lv_dxf_style_index = io_ixml_rule->get_attribute_ns( 'dxfId' ). READ TABLE me->mt_dxf_styles ASSIGNING WITH KEY dxf = lv_dxf_style_index. IF sy-subrc = 0. - io_style_conditional->mode_cellis-cell_style = -guid. + io_style_cond->mode_cellis-cell_style = -guid. ENDIF. lo_ixml_nodes ?= io_ixml_rule->get_elements_by_tag_name( 'formula' ). @@ -3071,10 +3044,10 @@ METHOD load_worksheet_cond_format_ci. CASE sy-index. WHEN 1. - io_style_conditional->mode_cellis-formula = lo_ixml->get_value( ). + io_style_cond->mode_cellis-formula = lo_ixml->get_value( ). WHEN 2. - io_style_conditional->mode_cellis-formula2 = lo_ixml->get_value( ). + io_style_cond->mode_cellis-formula2 = lo_ixml->get_value( ). WHEN OTHERS. EXIT. @@ -3100,16 +3073,16 @@ METHOD load_worksheet_cond_format_cs. CASE sy-index. WHEN 1. - io_style_conditional->mode_colorscale-cfvo1_type = lo_ixml->get_attribute_ns( 'type' ). - io_style_conditional->mode_colorscale-cfvo1_value = lo_ixml->get_attribute_ns( 'val' ). + io_style_cond->mode_colorscale-cfvo1_type = lo_ixml->get_attribute_ns( 'type' ). + io_style_cond->mode_colorscale-cfvo1_value = lo_ixml->get_attribute_ns( 'val' ). WHEN 2. - io_style_conditional->mode_colorscale-cfvo2_type = lo_ixml->get_attribute_ns( 'type' ). - io_style_conditional->mode_colorscale-cfvo2_value = lo_ixml->get_attribute_ns( 'val' ). + io_style_cond->mode_colorscale-cfvo2_type = lo_ixml->get_attribute_ns( 'type' ). + io_style_cond->mode_colorscale-cfvo2_value = lo_ixml->get_attribute_ns( 'val' ). WHEN 3. - io_style_conditional->mode_colorscale-cfvo3_type = lo_ixml->get_attribute_ns( 'type' ). - io_style_conditional->mode_colorscale-cfvo2_value = lo_ixml->get_attribute_ns( 'val' ). + io_style_cond->mode_colorscale-cfvo3_type = lo_ixml->get_attribute_ns( 'type' ). + io_style_cond->mode_colorscale-cfvo2_value = lo_ixml->get_attribute_ns( 'val' ). WHEN OTHERS. EXIT. @@ -3125,13 +3098,13 @@ METHOD load_worksheet_cond_format_cs. CASE sy-index. WHEN 1. - io_style_conditional->mode_colorscale-colorrgb1 = lo_ixml->get_attribute_ns( 'rgb' ). + io_style_cond->mode_colorscale-colorrgb1 = lo_ixml->get_attribute_ns( 'rgb' ). WHEN 2. - io_style_conditional->mode_colorscale-colorrgb2 = lo_ixml->get_attribute_ns( 'rgb' ). + io_style_cond->mode_colorscale-colorrgb2 = lo_ixml->get_attribute_ns( 'rgb' ). WHEN 3. - io_style_conditional->mode_colorscale-colorrgb3 = lo_ixml->get_attribute_ns( 'rgb' ). + io_style_cond->mode_colorscale-colorrgb3 = lo_ixml->get_attribute_ns( 'rgb' ). WHEN OTHERS. EXIT. @@ -3150,7 +3123,7 @@ METHOD load_worksheet_cond_format_db. lo_ixml ?= io_ixml_rule->find_from_name( 'color' ). IF lo_ixml IS BOUND. - io_style_conditional->mode_databar-colorrgb = lo_ixml->get_attribute_ns( 'rgb' ). + io_style_cond->mode_databar-colorrgb = lo_ixml->get_attribute_ns( 'rgb' ). ENDIF. lo_ixml_nodes ?= io_ixml_rule->get_elements_by_tag_name( 'cfvo' ). @@ -3160,12 +3133,12 @@ METHOD load_worksheet_cond_format_db. CASE sy-index. WHEN 1. - io_style_conditional->mode_databar-cfvo1_type = lo_ixml->get_attribute_ns( 'type' ). - io_style_conditional->mode_databar-cfvo1_value = lo_ixml->get_attribute_ns( 'val' ). + io_style_cond->mode_databar-cfvo1_type = lo_ixml->get_attribute_ns( 'type' ). + io_style_cond->mode_databar-cfvo1_value = lo_ixml->get_attribute_ns( 'val' ). WHEN 2. - io_style_conditional->mode_databar-cfvo2_type = lo_ixml->get_attribute_ns( 'type' ). - io_style_conditional->mode_databar-cfvo2_value = lo_ixml->get_attribute_ns( 'val' ). + io_style_cond->mode_databar-cfvo2_type = lo_ixml->get_attribute_ns( 'type' ). + io_style_cond->mode_databar-cfvo2_value = lo_ixml->get_attribute_ns( 'val' ). WHEN OTHERS. EXIT. @@ -3190,7 +3163,7 @@ METHOD load_worksheet_cond_format_ex. lv_dxf_style_index = io_ixml_rule->get_attribute_ns( 'dxfId' ). READ TABLE me->mt_dxf_styles ASSIGNING WITH KEY dxf = lv_dxf_style_index. IF sy-subrc = 0. - io_style_conditional->mode_expression-cell_style = -guid. + io_style_cond->mode_expression-cell_style = -guid. ENDIF. lo_ixml_nodes ?= io_ixml_rule->get_elements_by_tag_name( 'formula' ). @@ -3200,7 +3173,7 @@ METHOD load_worksheet_cond_format_ex. CASE sy-index. WHEN 1. - io_style_conditional->mode_expression-formula = lo_ixml->get_value( ). + io_style_cond->mode_expression-formula = lo_ixml->get_value( ). WHEN OTHERS. @@ -3221,8 +3194,8 @@ METHOD load_worksheet_cond_format_is. lo_ixml_rule_iconset TYPE REF TO if_ixml_element. lo_ixml_rule_iconset ?= io_ixml_rule->get_first_child( ). - io_style_conditional->mode_iconset-iconset = lo_ixml_rule_iconset->get_attribute_ns( 'iconSet' ). - io_style_conditional->mode_iconset-showvalue = lo_ixml_rule_iconset->get_attribute_ns( 'showValue' ). + io_style_cond->mode_iconset-iconset = lo_ixml_rule_iconset->get_attribute_ns( 'iconSet' ). + io_style_cond->mode_iconset-showvalue = lo_ixml_rule_iconset->get_attribute_ns( 'showValue' ). lo_ixml_nodes ?= lo_ixml_rule_iconset->get_elements_by_tag_name( 'cfvo' ). lo_ixml_iterator = lo_ixml_nodes->create_iterator( ). lo_ixml ?= lo_ixml_iterator->get_next( ). @@ -3230,24 +3203,24 @@ METHOD load_worksheet_cond_format_is. CASE sy-index. WHEN 1. - io_style_conditional->mode_iconset-cfvo1_type = lo_ixml->get_attribute_ns( 'type' ). - io_style_conditional->mode_iconset-cfvo1_value = lo_ixml->get_attribute_ns( 'val' ). + io_style_cond->mode_iconset-cfvo1_type = lo_ixml->get_attribute_ns( 'type' ). + io_style_cond->mode_iconset-cfvo1_value = lo_ixml->get_attribute_ns( 'val' ). WHEN 2. - io_style_conditional->mode_iconset-cfvo2_type = lo_ixml->get_attribute_ns( 'type' ). - io_style_conditional->mode_iconset-cfvo2_value = lo_ixml->get_attribute_ns( 'val' ). + io_style_cond->mode_iconset-cfvo2_type = lo_ixml->get_attribute_ns( 'type' ). + io_style_cond->mode_iconset-cfvo2_value = lo_ixml->get_attribute_ns( 'val' ). WHEN 3. - io_style_conditional->mode_iconset-cfvo3_type = lo_ixml->get_attribute_ns( 'type' ). - io_style_conditional->mode_iconset-cfvo3_value = lo_ixml->get_attribute_ns( 'val' ). + io_style_cond->mode_iconset-cfvo3_type = lo_ixml->get_attribute_ns( 'type' ). + io_style_cond->mode_iconset-cfvo3_value = lo_ixml->get_attribute_ns( 'val' ). WHEN 4. - io_style_conditional->mode_iconset-cfvo4_type = lo_ixml->get_attribute_ns( 'type' ). - io_style_conditional->mode_iconset-cfvo4_value = lo_ixml->get_attribute_ns( 'val' ). + io_style_cond->mode_iconset-cfvo4_type = lo_ixml->get_attribute_ns( 'type' ). + io_style_cond->mode_iconset-cfvo4_value = lo_ixml->get_attribute_ns( 'val' ). WHEN 5. - io_style_conditional->mode_iconset-cfvo5_type = lo_ixml->get_attribute_ns( 'type' ). - io_style_conditional->mode_iconset-cfvo5_value = lo_ixml->get_attribute_ns( 'val' ). + io_style_cond->mode_iconset-cfvo5_type = lo_ixml->get_attribute_ns( 'type' ). + io_style_cond->mode_iconset-cfvo5_value = lo_ixml->get_attribute_ns( 'val' ). WHEN OTHERS. EXIT. @@ -3264,28 +3237,28 @@ METHOD load_worksheet_cond_format_t10. FIELD-SYMBOLS: LIKE LINE OF me->mt_dxf_styles. - io_style_conditional->mode_top10-topxx_count = io_ixml_rule->get_attribute_ns( 'rank' ). " Top10, Top20, Top 50... + io_style_cond->mode_top10-topxx_count = io_ixml_rule->get_attribute_ns( 'rank' ). " Top10, Top20, Top 50... - io_style_conditional->mode_top10-percent = io_ixml_rule->get_attribute_ns( 'percent' ). " Top10 percent instead of Top10 values - if io_style_conditional->mode_top10-percent = '1'. - io_style_conditional->mode_top10-percent = 'X'. - else. - io_style_conditional->mode_top10-percent = ' '. - endif. + io_style_cond->mode_top10-percent = io_ixml_rule->get_attribute_ns( 'percent' ). " Top10 percent instead of Top10 values + IF io_style_cond->mode_top10-percent = '1'. + io_style_cond->mode_top10-percent = 'X'. + ELSE. + io_style_cond->mode_top10-percent = ' '. + ENDIF. - io_style_conditional->mode_top10-bottom = io_ixml_rule->get_attribute_ns( 'bottom' ). " Bottom10 instead of Top10 - if io_style_conditional->mode_top10-bottom = '1'. - io_style_conditional->mode_top10-bottom = 'X'. - else. - io_style_conditional->mode_top10-bottom = ' '. - endif. + io_style_cond->mode_top10-bottom = io_ixml_rule->get_attribute_ns( 'bottom' ). " Bottom10 instead of Top10 + IF io_style_cond->mode_top10-bottom = '1'. + io_style_cond->mode_top10-bottom = 'X'. + ELSE. + io_style_cond->mode_top10-bottom = ' '. + ENDIF. *--------------------------------------------------------------------* * Cell formatting for top10 *--------------------------------------------------------------------* lv_dxf_style_index = io_ixml_rule->get_attribute_ns( 'dxfId' ). READ TABLE me->mt_dxf_styles ASSIGNING WITH KEY dxf = lv_dxf_style_index. IF sy-subrc = 0. - io_style_conditional->mode_top10-cell_style = -guid. + io_style_cond->mode_top10-cell_style = -guid. ENDIF. ENDMETHOD. @@ -3485,7 +3458,7 @@ METHOD load_worksheet_pagebreaks. lo_ixml_iterator TYPE REF TO if_ixml_node_iterator, lo_ixml_rowbreak TYPE REF TO if_ixml_element, lo_ixml_colbreak TYPE REF TO if_ixml_element, - lo_style_conditional TYPE REF TO zcl_excel_style_conditional, + lo_style_cond TYPE REF TO zcl_excel_style_cond, lv_count TYPE i. diff --git a/src/zcl_excel_reader_huge_file.clas.testclasses.abap b/src/zcl_excel_reader_huge_file.clas.testclasses.abap index dd51680..40aa290 100644 --- a/src/zcl_excel_reader_huge_file.clas.testclasses.abap +++ b/src/zcl_excel_reader_huge_file.clas.testclasses.abap @@ -116,9 +116,7 @@ class lcl_test implementation. * There is no need to store an empty cell in the ABAP worksheet structure - data: lo_reader type ref to if_sxml_reader, - lo_ex type ref to lcx_not_found, - lv_text type string. + data: lo_reader type ref to if_sxml_reader. append `` to out->shared_strings. append `t` to out->shared_strings. lo_reader = get_reader( diff --git a/src/zcl_excel_reader_xlsm.clas.abap b/src/zcl_excel_reader_xlsm.clas.abap index 776c345..816e5ee 100644 --- a/src/zcl_excel_reader_xlsm.clas.abap +++ b/src/zcl_excel_reader_xlsm.clas.abap @@ -58,8 +58,6 @@ method LOAD_WORKBOOK. fileversion TYPE t_fileversion, workbookpr TYPE t_workbookpr. - FIELD-SYMBOLS: TYPE t_relationship. - CALL FUNCTION 'TRINT_SPLIT_FILE_AND_PATH' EXPORTING full_name = iv_workbook_full_filename @@ -119,8 +117,7 @@ METHOD load_worksheet. super->load_worksheet( EXPORTING ip_path = ip_path io_worksheet = io_worksheet ). - DATA: path TYPE string, - node TYPE REF TO if_ixml_element, + DATA: node TYPE REF TO if_ixml_element, worksheet TYPE REF TO if_ixml_document, sheetpr TYPE t_sheetpr. diff --git a/src/zcl_excel_style.clas.abap b/src/zcl_excel_style.clas.abap index d3c2dcf..4381926 100644 --- a/src/zcl_excel_style.clas.abap +++ b/src/zcl_excel_style.clas.abap @@ -45,18 +45,11 @@ METHOD constructor. CREATE OBJECT number_format. CREATE OBJECT protection. -* Start of insertion # issue 139 - Dateretention of cellstyles IF ip_guid IS NOT INITIAL. me->guid = ip_guid. ELSE. -* End of insertion # issue 139 - Dateretention of cellstyles -* CALL FUNCTION 'GUID_CREATE' " del issue #379 - function is outdated in newer releases -* IMPORTING -* ev_guid_16 = me->guid. - me->guid = zcl_excel_obsolete_func_wrap=>guid_create( ). " ins issue #379 - replacement for outdated function call -* Start of insertion # issue 139 - Dateretention of cellstyles + me->guid = zcl_excel_obsolete_func_wrap=>guid_create( ). ENDIF. -* End of insertion # issue 139 - Dateretention of cellstyles ENDMETHOD. diff --git a/src/zcl_excel_style_cond.clas.abap b/src/zcl_excel_style_cond.clas.abap new file mode 100644 index 0000000..12562da --- /dev/null +++ b/src/zcl_excel_style_cond.clas.abap @@ -0,0 +1,261 @@ +class ZCL_EXCEL_STYLE_COND definition + public + final + create public . + +public section. + class ZCL_EXCEL_STYLE_CONDITIONAL definition load . + +*"* public components of class ZCL_EXCEL_STYLE_COND +*"* do not include other source files here!!! + constants C_CFVO_TYPE_FORMULA type ZEXCEL_CONDITIONAL_TYPE value 'formula'. "#EC NOTEXT + constants C_CFVO_TYPE_MAX type ZEXCEL_CONDITIONAL_TYPE value 'max'. "#EC NOTEXT + constants C_CFVO_TYPE_MIN type ZEXCEL_CONDITIONAL_TYPE value 'min'. "#EC NOTEXT + constants C_CFVO_TYPE_NUMBER type ZEXCEL_CONDITIONAL_TYPE value 'num'. "#EC NOTEXT + constants C_CFVO_TYPE_PERCENT type ZEXCEL_CONDITIONAL_TYPE value 'percent'. "#EC NOTEXT + constants C_CFVO_TYPE_PERCENTILE type ZEXCEL_CONDITIONAL_TYPE value 'percentile'. "#EC NOTEXT + constants C_ICONSET_3ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '3Arrows'. "#EC NOTEXT + constants C_ICONSET_3ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '3ArrowsGray'. "#EC NOTEXT + constants C_ICONSET_3FLAGS type ZEXCEL_CONDITION_RULE_ICONSET value '3Flags'. "#EC NOTEXT + constants C_ICONSET_3SIGNS type ZEXCEL_CONDITION_RULE_ICONSET value '3Signs'. "#EC NOTEXT + constants C_ICONSET_3SYMBOLS type ZEXCEL_CONDITION_RULE_ICONSET value '3Symbols'. "#EC NOTEXT + constants C_ICONSET_3SYMBOLS2 type ZEXCEL_CONDITION_RULE_ICONSET value '3Symbols2'. "#EC NOTEXT + constants C_ICONSET_3TRAFFICLIGHTS type ZEXCEL_CONDITION_RULE_ICONSET value ''. "#EC NOTEXT + constants C_ICONSET_3TRAFFICLIGHTS2 type ZEXCEL_CONDITION_RULE_ICONSET value '3TrafficLights2'. "#EC NOTEXT + constants C_ICONSET_4ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '4Arrows'. "#EC NOTEXT + constants C_ICONSET_4ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '4ArrowsGray'. "#EC NOTEXT + constants C_ICONSET_4RATING type ZEXCEL_CONDITION_RULE_ICONSET value '4Rating'. "#EC NOTEXT + constants C_ICONSET_4REDTOBLACK type ZEXCEL_CONDITION_RULE_ICONSET value '4RedToBlack'. "#EC NOTEXT + constants C_ICONSET_4TRAFFICLIGHTS type ZEXCEL_CONDITION_RULE_ICONSET value '4TrafficLights'. "#EC NOTEXT + constants C_ICONSET_5ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '5Arrows'. "#EC NOTEXT + constants C_ICONSET_5ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '5ArrowsGray'. "#EC NOTEXT + constants C_ICONSET_5QUARTERS type ZEXCEL_CONDITION_RULE_ICONSET value '5Quarters'. "#EC NOTEXT + constants C_ICONSET_5RATING type ZEXCEL_CONDITION_RULE_ICONSET value '5Rating'. "#EC NOTEXT + constants C_OPERATOR_BEGINSWITH type ZEXCEL_CONDITION_OPERATOR value 'beginsWith'. "#EC NOTEXT + constants C_OPERATOR_BETWEEN type ZEXCEL_CONDITION_OPERATOR value 'between'. "#EC NOTEXT + constants C_OPERATOR_CONTAINSTEXT type ZEXCEL_CONDITION_OPERATOR value 'containsText'. "#EC NOTEXT + constants C_OPERATOR_ENDSWITH type ZEXCEL_CONDITION_OPERATOR value 'endsWith'. "#EC NOTEXT + constants C_OPERATOR_EQUAL type ZEXCEL_CONDITION_OPERATOR value 'equal'. "#EC NOTEXT + constants C_OPERATOR_GREATERTHAN type ZEXCEL_CONDITION_OPERATOR value 'greaterThan'. "#EC NOTEXT + constants C_OPERATOR_GREATERTHANOREQUAL type ZEXCEL_CONDITION_OPERATOR value 'greaterThanOrEqual'. "#EC NOTEXT + constants C_OPERATOR_LESSTHAN type ZEXCEL_CONDITION_OPERATOR value 'lessThan'. "#EC NOTEXT + constants C_OPERATOR_LESSTHANOREQUAL type ZEXCEL_CONDITION_OPERATOR value 'lessThanOrEqual'. "#EC NOTEXT + constants C_OPERATOR_NONE type ZEXCEL_CONDITION_OPERATOR value ''. "#EC NOTEXT + constants C_OPERATOR_NOTCONTAINS type ZEXCEL_CONDITION_OPERATOR value 'notContains'. "#EC NOTEXT + constants C_OPERATOR_NOTEQUAL type ZEXCEL_CONDITION_OPERATOR value 'notEqual'. "#EC NOTEXT + constants C_RULE_CELLIS type ZEXCEL_CONDITION_RULE value 'cellIs'. "#EC NOTEXT + constants C_RULE_CONTAINSTEXT type ZEXCEL_CONDITION_RULE value 'containsText'. "#EC NOTEXT + constants C_RULE_DATABAR type ZEXCEL_CONDITION_RULE value 'dataBar'. "#EC NOTEXT + constants C_RULE_EXPRESSION type ZEXCEL_CONDITION_RULE value 'expression'. "#EC NOTEXT + constants C_RULE_ICONSET type ZEXCEL_CONDITION_RULE value 'iconSet'. "#EC NOTEXT + constants C_RULE_COLORSCALE type ZEXCEL_CONDITION_RULE value 'colorScale'. "#EC NOTEXT + constants C_RULE_NONE type ZEXCEL_CONDITION_RULE value 'none'. "#EC NOTEXT + constants C_RULE_TOP10 type ZEXCEL_CONDITION_RULE value 'top10'. "#EC NOTEXT + constants C_RULE_ABOVE_AVERAGE type ZEXCEL_CONDITION_RULE value 'aboveAverage'. "#EC NOTEXT + constants C_SHOWVALUE_FALSE type ZEXCEL_CONDITIONAL_SHOW_VALUE value 0. "#EC NOTEXT + constants C_SHOWVALUE_TRUE type ZEXCEL_CONDITIONAL_SHOW_VALUE value 1. "#EC NOTEXT + data MODE_CELLIS type ZEXCEL_CONDITIONAL_CELLIS . + data MODE_COLORSCALE type ZEXCEL_CONDITIONAL_COLORSCALE . + data MODE_DATABAR type ZEXCEL_CONDITIONAL_DATABAR . + data MODE_EXPRESSION type ZEXCEL_CONDITIONAL_EXPRESSION . + data MODE_ICONSET type ZEXCEL_CONDITIONAL_ICONSET . + data MODE_TOP10 type ZEXCEL_CONDITIONAL_TOP10 . + data MODE_ABOVE_AVERAGE type ZEXCEL_CONDITIONAL_ABOVE_AVG . + data PRIORITY type ZEXCEL_STYLE_PRIORITY value 1. "#EC NOTEXT . . . . . . . . . . . . . . . . . . . . " . + data RULE type ZEXCEL_CONDITION_RULE . + + methods CONSTRUCTOR + importing + !IP_GUID type ZEXCEL_CELL_STYLE optional . + methods GET_DIMENSION_RANGE + returning + value(EP_DIMENSION_RANGE) type STRING . + methods SET_RANGE + importing + !IP_START_ROW type ZEXCEL_CELL_ROW + !IP_START_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + !IP_STOP_ROW type ZEXCEL_CELL_ROW + !IP_STOP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA . + methods ADD_RANGE + importing + !IP_START_ROW type ZEXCEL_CELL_ROW + !IP_START_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + !IP_STOP_ROW type ZEXCEL_CELL_ROW + !IP_STOP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA . + class-methods FACTORY_COND_STYLE_ICONSET + importing + !IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET + !IV_ICON_TYPE type ZEXCEL_CONDITION_RULE_ICONSET default C_ICONSET_3TRAFFICLIGHTS2 + !IV_CFVO1_TYPE type ZEXCEL_CONDITIONAL_TYPE default C_CFVO_TYPE_PERCENT + !IV_CFVO1_VALUE type ZEXCEL_CONDITIONAL_VALUE optional + !IV_CFVO2_TYPE type ZEXCEL_CONDITIONAL_TYPE default C_CFVO_TYPE_PERCENT + !IV_CFVO2_VALUE type ZEXCEL_CONDITIONAL_VALUE optional + !IV_CFVO3_TYPE type ZEXCEL_CONDITIONAL_TYPE default C_CFVO_TYPE_PERCENT + !IV_CFVO3_VALUE type ZEXCEL_CONDITIONAL_VALUE optional + !IV_CFVO4_TYPE type ZEXCEL_CONDITIONAL_TYPE default C_CFVO_TYPE_PERCENT + !IV_CFVO4_VALUE type ZEXCEL_CONDITIONAL_VALUE optional + !IV_CFVO5_TYPE type ZEXCEL_CONDITIONAL_TYPE default C_CFVO_TYPE_PERCENT + !IV_CFVO5_VALUE type ZEXCEL_CONDITIONAL_VALUE optional + !IV_SHOWVALUE type ZEXCEL_CONDITIONAL_SHOW_VALUE default ZCL_EXCEL_STYLE_COND=>C_SHOWVALUE_TRUE + returning + value(EO_STYLE_COND) type ref to ZCL_EXCEL_STYLE_COND . + methods GET_GUID + returning + value(EP_GUID) type ZEXCEL_CELL_STYLE . +*"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. +private section. + + data MV_RULE_RANGE type STRING . + data GUID type ZEXCEL_CELL_STYLE . +ENDCLASS. + + + +CLASS ZCL_EXCEL_STYLE_COND IMPLEMENTATION. + + +METHOD ADD_RANGE. + DATA: lv_column TYPE zexcel_cell_column, + lv_row_alpha TYPE string, + lv_col_alpha TYPE string, + lv_coords1 TYPE string, + lv_coords2 TYPE string. + + + lv_column = zcl_excel_common=>convert_column2int( ip_start_column ). +* me->mv_cell_data-cell_row = 1. +* me->mv_cell_data-cell_column = lv_column. +* + lv_col_alpha = ip_start_column. + lv_row_alpha = ip_start_row. + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE lv_col_alpha lv_row_alpha INTO lv_coords1. + + IF ip_stop_column IS NOT INITIAL. + lv_column = zcl_excel_common=>convert_column2int( ip_stop_column ). + ELSE. + lv_column = zcl_excel_common=>convert_column2int( ip_start_column ). + ENDIF. + + IF ip_stop_row IS NOT INITIAL. " If we don't get explicitly a stop column use start column + lv_row_alpha = ip_stop_row. + ELSE. + lv_row_alpha = ip_start_row. + ENDIF. + IF ip_stop_column IS NOT INITIAL. " If we don't get explicitly a stop column use start column + lv_col_alpha = ip_stop_column. + ELSE. + lv_col_alpha = ip_start_column. + ENDIF. + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE lv_col_alpha lv_row_alpha INTO lv_coords2. + IF lv_coords2 IS NOT INITIAL AND lv_coords2 <> lv_coords1. + CONCATENATE me->mv_rule_range ` ` lv_coords1 ':' lv_coords2 INTO me->mv_rule_range. + ELSE. + CONCATENATE me->mv_rule_range ` ` lv_coords1 INTO me->mv_rule_range. + ENDIF. + SHIFT me->mv_rule_range LEFT DELETING LEADING space. + +ENDMETHOD. + + +METHOD constructor. + + DATA: ls_iconset TYPE zexcel_conditional_iconset. + ls_iconset-iconset = zcl_excel_style_cond=>c_iconset_3trafficlights. + ls_iconset-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_percent. + ls_iconset-cfvo1_value = '0'. + ls_iconset-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_percent. + ls_iconset-cfvo2_value = '20'. + ls_iconset-cfvo3_type = zcl_excel_style_cond=>c_cfvo_type_percent. + ls_iconset-cfvo3_value = '40'. + ls_iconset-cfvo4_type = zcl_excel_style_cond=>c_cfvo_type_percent. + ls_iconset-cfvo4_value = '60'. + ls_iconset-cfvo5_type = zcl_excel_style_cond=>c_cfvo_type_percent. + ls_iconset-cfvo5_value = '80'. + + + me->rule = zcl_excel_style_cond=>c_rule_none. +* me->iconset->operator = zcl_excel_style_conditional=>c_operator_none. + me->mode_iconset = ls_iconset. + me->priority = 1. + +* inizialize dimension range + me->mv_rule_range = 'A1'. + + IF ip_guid IS NOT INITIAL. + me->guid = ip_guid. + ELSE. + me->guid = zcl_excel_obsolete_func_wrap=>guid_create( ). + ENDIF. + +ENDMETHOD. + + +METHOD FACTORY_COND_STYLE_ICONSET. + +*--------------------------------------------------------------------* +* Work in progress +* Missing: LE or LT may be specified --> extend structure ZEXCEL_CONDITIONAL_ICONSET to hold this information as well +*--------------------------------------------------------------------* + +* DATA: lv_needed_values TYPE i. +* CASE icon_type. +* +* WHEN 'C_ICONSET_3ARROWS' +* OR 'C_ICONSET_3ARROWSGRAY' +* OR 'C_ICONSET_3FLAGS' +* OR 'C_ICONSET_3SIGNS' +* OR 'C_ICONSET_3SYMBOLS' +* OR 'C_ICONSET_3SYMBOLS2' +* OR 'C_ICONSET_3TRAFFICLIGHTS' +* OR 'C_ICONSET_3TRAFFICLIGHTS2'. +* lv_needed_values = 3. +* +* WHEN 'C_ICONSET_4ARROWS' +* OR 'C_ICONSET_4ARROWSGRAY' +* OR 'C_ICONSET_4RATING' +* OR 'C_ICONSET_4REDTOBLACK' +* OR 'C_ICONSET_4TRAFFICLIGHTS'. +* lv_needed_values = 4. +* +* WHEN 'C_ICONSET_5ARROWS' +* OR 'C_ICONSET_5ARROWSGRAY' +* OR 'C_ICONSET_5QUARTERS' +* OR 'C_ICONSET_5RATING'. +* lv_needed_values = 5. +* +* WHEN OTHERS. +* RETURN. +* ENDCASE. + +ENDMETHOD. + + +METHOD GET_DIMENSION_RANGE. + + ep_dimension_range = me->mv_rule_range. + +ENDMETHOD. + + +METHOD GET_GUID. + ep_guid = me->guid. +ENDMETHOD. + + +METHOD SET_RANGE. + + CLEAR: me->mv_rule_range. + + me->add_range( ip_start_row = ip_start_row + ip_start_column = ip_start_column + ip_stop_row = ip_stop_row + ip_stop_column = ip_stop_column ). + +ENDMETHOD. +ENDCLASS. diff --git a/src/zcl_excel_style_cond.clas.xml b/src/zcl_excel_style_cond.clas.xml new file mode 100644 index 0000000..eadb4b3 --- /dev/null +++ b/src/zcl_excel_style_cond.clas.xml @@ -0,0 +1,400 @@ + + + + + + ZCL_EXCEL_STYLE_COND + 1 + E + Font Style + 2 + 1 + X + X + X + X + + + + + ZCL_EXCEL_STYLE_COND + ADD_RANGE + E + Add range used in conditional formatting + + + ZCL_EXCEL_STYLE_COND + CONSTRUCTOR + E + CONSTRUCTOR + + + ZCL_EXCEL_STYLE_COND + C_CFVO_TYPE_FORMULA + E + Condition type + + + ZCL_EXCEL_STYLE_COND + C_CFVO_TYPE_MAX + E + Condition type + + + ZCL_EXCEL_STYLE_COND + C_CFVO_TYPE_MIN + E + Condition type + + + ZCL_EXCEL_STYLE_COND + C_CFVO_TYPE_NUMBER + E + Condition type + + + ZCL_EXCEL_STYLE_COND + C_CFVO_TYPE_PERCENT + E + Condition type + + + ZCL_EXCEL_STYLE_COND + C_CFVO_TYPE_PERCENTILE + E + Condition type + + + ZCL_EXCEL_STYLE_COND + C_ICONSET_3ARROWS + E + Condition rule iconset + + + ZCL_EXCEL_STYLE_COND + C_ICONSET_3ARROWSGRAY + E + Condition rule iconset + + + ZCL_EXCEL_STYLE_COND + C_ICONSET_3FLAGS + E + Condition rule iconset + + + ZCL_EXCEL_STYLE_COND + C_ICONSET_3SIGNS + E + Condition rule iconset + + + ZCL_EXCEL_STYLE_COND + C_ICONSET_3SYMBOLS + E + Condition rule iconset + + + ZCL_EXCEL_STYLE_COND + C_ICONSET_3SYMBOLS2 + E + Condition rule iconset + + + ZCL_EXCEL_STYLE_COND + C_ICONSET_3TRAFFICLIGHTS + E + Condition rule iconset + + + ZCL_EXCEL_STYLE_COND + C_ICONSET_3TRAFFICLIGHTS2 + E + Condition rule iconset + + + ZCL_EXCEL_STYLE_COND + C_ICONSET_4ARROWS + E + Condition rule iconset + + + ZCL_EXCEL_STYLE_COND + C_ICONSET_4ARROWSGRAY + E + Condition rule iconset + + + ZCL_EXCEL_STYLE_COND + C_ICONSET_4RATING + E + Condition rule iconset + + + ZCL_EXCEL_STYLE_COND + C_ICONSET_4REDTOBLACK + E + Condition rule iconset + + + ZCL_EXCEL_STYLE_COND + C_ICONSET_4TRAFFICLIGHTS + E + Condition rule iconset + + + ZCL_EXCEL_STYLE_COND + C_ICONSET_5ARROWS + E + Condition rule iconset + + + ZCL_EXCEL_STYLE_COND + C_ICONSET_5ARROWSGRAY + E + Condition rule iconset + + + ZCL_EXCEL_STYLE_COND + C_ICONSET_5QUARTERS + E + Condition rule iconset + + + ZCL_EXCEL_STYLE_COND + C_ICONSET_5RATING + E + Condition rule iconset + + + ZCL_EXCEL_STYLE_COND + C_OPERATOR_BEGINSWITH + E + Condition operator + + + ZCL_EXCEL_STYLE_COND + C_OPERATOR_BETWEEN + E + Condition operator + + + ZCL_EXCEL_STYLE_COND + C_OPERATOR_CONTAINSTEXT + E + Condition operator + + + ZCL_EXCEL_STYLE_COND + C_OPERATOR_ENDSWITH + E + Condition operator + + + ZCL_EXCEL_STYLE_COND + C_OPERATOR_EQUAL + E + Condition operator + + + ZCL_EXCEL_STYLE_COND + C_OPERATOR_GREATERTHAN + E + Condition operator + + + ZCL_EXCEL_STYLE_COND + C_OPERATOR_GREATERTHANOREQUAL + E + Condition operator + + + ZCL_EXCEL_STYLE_COND + C_OPERATOR_LESSTHAN + E + Condition operator + + + ZCL_EXCEL_STYLE_COND + C_OPERATOR_LESSTHANOREQUAL + E + Condition operator + + + ZCL_EXCEL_STYLE_COND + C_OPERATOR_NONE + E + Condition operator + + + ZCL_EXCEL_STYLE_COND + C_OPERATOR_NOTCONTAINS + E + Condition operator + + + ZCL_EXCEL_STYLE_COND + C_OPERATOR_NOTEQUAL + E + Condition operator + + + ZCL_EXCEL_STYLE_COND + C_RULE_ABOVE_AVERAGE + E + Rule above avearge + + + ZCL_EXCEL_STYLE_COND + C_RULE_CELLIS + E + Condition rule + + + ZCL_EXCEL_STYLE_COND + C_RULE_COLORSCALE + E + Condition rule + + + ZCL_EXCEL_STYLE_COND + C_RULE_CONTAINSTEXT + E + Condition rule + + + ZCL_EXCEL_STYLE_COND + C_RULE_DATABAR + E + Condition rule + + + ZCL_EXCEL_STYLE_COND + C_RULE_EXPRESSION + E + Condition rule + + + ZCL_EXCEL_STYLE_COND + C_RULE_ICONSET + E + Condition rule + + + ZCL_EXCEL_STYLE_COND + C_RULE_NONE + E + Condition rule + + + ZCL_EXCEL_STYLE_COND + C_RULE_TOP10 + E + Rule top-10 + + + ZCL_EXCEL_STYLE_COND + C_SHOWVALUE_FALSE + E + Condition type + + + ZCL_EXCEL_STYLE_COND + C_SHOWVALUE_TRUE + E + Condition type + + + ZCL_EXCEL_STYLE_COND + FACTORY_COND_STYLE_ICONSET + E + Add conditional style of type iconset + + + ZCL_EXCEL_STYLE_COND + GET_DIMENSION_RANGE + E + Get used range dimension + + + ZCL_EXCEL_STYLE_COND + GET_GUID + E + Get guid + + + ZCL_EXCEL_STYLE_COND + GUID + E + Style identifier + + + ZCL_EXCEL_STYLE_COND + MODE_ABOVE_AVERAGE + E + Top10 settings ( topxx_count determines top20,top50... ) + + + ZCL_EXCEL_STYLE_COND + MODE_CELLIS + E + Iconset settings + + + ZCL_EXCEL_STYLE_COND + MODE_COLORSCALE + E + Colorscale settings + + + ZCL_EXCEL_STYLE_COND + MODE_DATABAR + E + Databar settings + + + ZCL_EXCEL_STYLE_COND + MODE_EXPRESSION + E + Expression settings + + + ZCL_EXCEL_STYLE_COND + MODE_ICONSET + E + Iconset settings + + + ZCL_EXCEL_STYLE_COND + MODE_TOP10 + E + Top10 settings ( topxx_count determines top20,top50... ) + + + ZCL_EXCEL_STYLE_COND + MV_RULE_RANGE + E + Rule range + + + ZCL_EXCEL_STYLE_COND + PRIORITY + E + Style Priority + + + ZCL_EXCEL_STYLE_COND + RULE + E + Condition rule + + + ZCL_EXCEL_STYLE_COND + SET_RANGE + E + Set range used in conditional formatting + + + + + diff --git a/src/zcl_excel_styles.clas.abap b/src/zcl_excel_styles.clas.abap index 57423cb..9f0e434 100644 --- a/src/zcl_excel_styles.clas.abap +++ b/src/zcl_excel_styles.clas.abap @@ -36,9 +36,9 @@ public section. value(EP_STYLE_CODE) type I . *"* protected components of class ZABAP_EXCEL_WORKSHEETS *"* do not include other source files here!!! -protected section. -*"* private components of class ZCL_EXCEL_STYLES +*"* protected components of class ZABAP_EXCEL_WORKSHEETS *"* do not include other source files here!!! +protected section. private section. data STYLES type ref to CL_OBJECT_COLLECTION . @@ -49,9 +49,11 @@ ENDCLASS. CLASS ZCL_EXCEL_STYLES IMPLEMENTATION. -METHOD add. +method ADD. + + styles->add( ip_style ). -ENDMETHOD. + endmethod. method CLEAR. @@ -68,9 +70,11 @@ method CONSTRUCTOR. endmethod. -METHOD get. +method GET. + + eo_style ?= styles->if_object_collection~get( ip_index ). -ENDMETHOD. + endmethod. method GET_ITERATOR. @@ -87,10 +91,12 @@ method IS_EMPTY. endmethod. -METHOD register_new_style. +method REGISTER_NEW_STYLE. + + me->add( io_style ). ep_style_code = me->size( ) - 1. "style count starts from 0 -ENDMETHOD. + endmethod. method REMOVE. diff --git a/src/zcl_excel_styles_cond.clas.abap b/src/zcl_excel_styles_cond.clas.abap new file mode 100644 index 0000000..65d1c5d --- /dev/null +++ b/src/zcl_excel_styles_cond.clas.abap @@ -0,0 +1,89 @@ +class ZCL_EXCEL_STYLES_COND definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLES_COND +*"* do not include other source files here!!! +public section. + + methods ADD + importing + !IP_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type ZEXCEL_ACTIVE_WORKSHEET + returning + value(EO_STYLE_COND) type ref to ZCL_EXCEL_STYLE_COND . + 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 + !IP_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND . + methods SIZE + returning + value(EP_SIZE) type I . +*"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. +*"* private components of class ZCL_EXCEL_STYLES_COND +*"* do not include other source files here!!! +private section. + + data STYLES_COND type ref to CL_OBJECT_COLLECTION . +ENDCLASS. + + + +CLASS ZCL_EXCEL_STYLES_COND IMPLEMENTATION. + + +METHOD ADD. + styles_cond->add( ip_style_cond ). +ENDMETHOD. + + +METHOD CLEAR. + styles_cond->clear( ). +ENDMETHOD. + + +METHOD constructor. + + CREATE OBJECT styles_cond. + +ENDMETHOD. + + +METHOD get. + DATA lv_index TYPE i. + lv_index = ip_index. + eo_style_cond ?= styles_cond->if_object_collection~get( lv_index ). +ENDMETHOD. + + +METHOD get_iterator. + eo_iterator ?= styles_cond->if_object_collection~get_iterator( ). +ENDMETHOD. + + +METHOD is_empty. + is_empty = styles_cond->if_object_collection~is_empty( ). +ENDMETHOD. + + +METHOD remove. + styles_cond->remove( ip_style_cond ). +ENDMETHOD. + + +METHOD size. + ep_size = styles_cond->if_object_collection~size( ). +ENDMETHOD. +ENDCLASS. diff --git a/src/zcl_excel_styles_cond.clas.xml b/src/zcl_excel_styles_cond.clas.xml new file mode 100644 index 0000000..edaa9df --- /dev/null +++ b/src/zcl_excel_styles_cond.clas.xml @@ -0,0 +1,20 @@ + + + + + + ZCL_EXCEL_STYLES_COND + 1 + E + Styles conditional collection + 2 + 1 + X + X + X + X + + + + + diff --git a/src/zcl_excel_table.clas.abap b/src/zcl_excel_table.clas.abap index 67fc64f..1354caa 100644 --- a/src/zcl_excel_table.clas.abap +++ b/src/zcl_excel_table.clas.abap @@ -112,9 +112,9 @@ public section. ZCX_EXCEL . *"* protected components of class ZCL_EXCEL_TABLE *"* do not include other source files here!!! -protected section. -*"* private components of class ZCL_EXCEL_TABLE +*"* protected components of class ZCL_EXCEL_TABLE *"* do not include other source files here!!! +protected section. private section. data ID type I . @@ -211,9 +211,7 @@ method GET_REFERENCE. method GET_RIGHT_COLUMN_INTEGER. - DATA: lv_column TYPE zexcel_cell_column, - lv_table_lines TYPE i, - ls_field_catalog TYPE zexcel_s_fieldcatalog. + DATA: ls_field_catalog TYPE zexcel_s_fieldcatalog. IF settings-bottom_right_column IS NOT INITIAL. ev_column = zcl_excel_common=>convert_column2int( settings-bottom_right_column ). diff --git a/src/zcl_excel_theme_color_scheme.clas.abap b/src/zcl_excel_theme_color_scheme.clas.abap index c8be8fe..ef56165 100644 --- a/src/zcl_excel_theme_color_scheme.clas.abap +++ b/src/zcl_excel_theme_color_scheme.clas.abap @@ -298,7 +298,6 @@ method build_xml. lo_syscolor->set_attribute( name = c_val value = folhlink-syscolor-val ). lo_syscolor->set_attribute( name = c_lastclr value = folhlink-syscolor-lastclr ). endif. - clear: lo_color, lo_srgb, lo_syscolor. endif. diff --git a/src/zcl_excel_theme_eclrschemelst.clas.abap b/src/zcl_excel_theme_eclrschemelst.clas.abap index b30af3c..5cadcc0 100644 --- a/src/zcl_excel_theme_eclrschemelst.clas.abap +++ b/src/zcl_excel_theme_eclrschemelst.clas.abap @@ -23,7 +23,6 @@ CLASS ZCL_EXCEL_THEME_ECLRSCHEMELST IMPLEMENTATION. method build_xml. - data: lo_theme_element type ref to if_ixml_element. data: lo_theme type ref to if_ixml_element. data: lo_theme_objdef type ref to if_ixml_element. check io_document is bound. diff --git a/src/zcl_excel_theme_elements.clas.abap b/src/zcl_excel_theme_elements.clas.abap index 994a075..df7a7a9 100644 --- a/src/zcl_excel_theme_elements.clas.abap +++ b/src/zcl_excel_theme_elements.clas.abap @@ -36,7 +36,7 @@ method build_xml. data: lo_theme_element type ref to if_ixml_element. data: lo_theme type ref to if_ixml_element. check io_document is bound. - lo_theme ?= io_document->get_root_element( ).. + lo_theme ?= io_document->get_root_element( ). if lo_theme is bound. lo_theme_element ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix name = c_theme_elements diff --git a/src/zcl_excel_worksheet.clas.abap b/src/zcl_excel_worksheet.clas.abap index 4b283e9..0db0a3a 100644 --- a/src/zcl_excel_worksheet.clas.abap +++ b/src/zcl_excel_worksheet.clas.abap @@ -25,36 +25,36 @@ 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 returning value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN . - methods ADD_NEW_CONDITIONAL_STYLE + methods ADD_NEW_STYLE_COND returning - value(EO_CONDITIONAL_STYLE) type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + value(EO_STYLE_COND) type ref to ZCL_EXCEL_STYLE_COND . methods ADD_NEW_DATA_VALIDATION returning value(EO_DATA_VALIDATION) type ref to ZCL_EXCEL_DATA_VALIDATION . methods ADD_NEW_RANGE returning value(EO_RANGE) type ref to ZCL_EXCEL_RANGE . + methods ADD_NEW_ROW + importing + !IP_ROW type SIMPLE + returning + value(EO_ROW) type ref to ZCL_EXCEL_ROW . methods BIND_ALV importing !IO_ALV type ref to OBJECT @@ -262,13 +262,10 @@ 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 . - methods GET_COND_STYLES_ITERATOR + methods GET_STYLE_COND_ITERATOR returning value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . methods GET_DATA_VALIDATIONS_ITERATOR @@ -348,9 +345,17 @@ public section. methods GET_ROWS returning value(EO_ROWS) type ref to ZCL_EXCEL_ROWS . + methods GET_ROWS_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . methods GET_ROW_OUTLINES returning value(RT_ROW_OUTLINES) type MTY_TS_OUTLINES_ROW . + methods GET_STYLE_COND + importing + !IP_GUID type ZEXCEL_CELL_STYLE + returning + value(EO_STYLE_COND) type ref to ZCL_EXCEL_STYLE_COND . methods GET_TABCOLOR returning value(EV_TABCOLOR) type ZEXCEL_S_TABCOLOR . @@ -487,9 +492,9 @@ 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: * 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, row_to TYPE i, @@ -506,7 +511,7 @@ private section. 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 STYLES_COND type ref to ZCL_EXCEL_STYLES_COND . data DATA_VALIDATIONS type ref to ZCL_EXCEL_DATA_VALIDATIONS . data DEFAULT_EXCEL_DATE_FORMAT type ZEXCEL_NUMBER_FORMAT . data DEFAULT_EXCEL_TIME_FORMAT type ZEXCEL_NUMBER_FORMAT . @@ -527,7 +532,7 @@ private section. data RANGES type ref to ZCL_EXCEL_RANGES . 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 @@ -582,12 +587,6 @@ METHOD add_new_column. ENDMETHOD. -METHOD add_new_conditional_style. - CREATE OBJECT eo_conditional_style. - conditional_styles->add( eo_conditional_style ). -ENDMETHOD. - - method ADD_NEW_DATA_VALIDATION. CREATE OBJECT eo_data_validation. @@ -610,6 +609,12 @@ METHOD add_new_row. ENDMETHOD. +METHOD add_new_style_cond. + CREATE OBJECT eo_style_cond. + styles_cond->add( eo_style_cond ). +ENDMETHOD. + + method BIND_ALV. data: lo_converter type ref to zcl_excel_converter. @@ -2703,7 +2708,7 @@ method BIND_ALV_OLE2. endmethod. -method BIND_TABLE. +METHOD bind_table. *--------------------------------------------------------------------* * issue #230 - Pimp my Code * - Stefan Schmöcker, (wi p) 2012-12-01 @@ -2743,13 +2748,14 @@ method BIND_TABLE. lv_maxcol TYPE i, lv_maxrow TYPE i, lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_style_cond TYPE REF TO zcl_excel_style_cond, lo_curtable TYPE REF TO zcl_excel_table. FIELD-SYMBOLS: TYPE zexcel_s_fieldcatalog, TYPE zexcel_s_fieldcatalog, - TYPE ANY, - TYPE ANY. + TYPE any, + TYPE any. ls_settings = is_table_settings. @@ -2838,43 +2844,43 @@ method BIND_TABLE. " Check if a column with the same name exists, if exists add a counter " If no medium description is provided we try to use small or long * lv_value = -scrtext_m. - field-symbols: type any, - type any, - type any. + FIELD-SYMBOLS: TYPE any, + TYPE any, + TYPE any. - case iv_default_descr. - when 'M'. - assign -scrtext_m to . - assign -scrtext_s to . - assign -scrtext_l to . - when 'S'. - assign -scrtext_s to . - assign -scrtext_m to . - assign -scrtext_l to . - when 'L'. - assign -scrtext_l to . - assign -scrtext_m to . - assign -scrtext_s to . - when others. - assign -scrtext_m to . - assign -scrtext_s to . - assign -scrtext_l to . - endcase. + CASE iv_default_descr. + WHEN 'M'. + ASSIGN -scrtext_m TO . + ASSIGN -scrtext_s TO . + ASSIGN -scrtext_l TO . + WHEN 'S'. + ASSIGN -scrtext_s TO . + ASSIGN -scrtext_m TO . + ASSIGN -scrtext_l TO . + WHEN 'L'. + ASSIGN -scrtext_l TO . + ASSIGN -scrtext_m TO . + ASSIGN -scrtext_s TO . + WHEN OTHERS. + ASSIGN -scrtext_m TO . + ASSIGN -scrtext_s TO . + ASSIGN -scrtext_l TO . + ENDCASE. - if is not initial. - lv_value = . - -scrtext_l = lv_value. - elseif is not initial. - lv_value = . - -scrtext_l = lv_value. - elseif is not initial. - lv_value = . - -scrtext_l = lv_value. - else. - lv_value = 'Column'. " default value as Excel does - -scrtext_l = lv_value. - endif. + IF IS NOT INITIAL. + lv_value = . + -scrtext_l = lv_value. + ELSEIF IS NOT INITIAL. + lv_value = . + -scrtext_l = lv_value. + ELSEIF IS NOT INITIAL. + lv_value = . + -scrtext_l = lv_value. + ELSE. + lv_value = 'Column'. " default value as Excel does + -scrtext_l = lv_value. + ENDIF. WHILE 1 = 1. lv_value_lowercase = lv_value. TRANSLATE lv_value_lowercase TO LOWER CASE. @@ -2908,7 +2914,7 @@ method BIND_TABLE. " issue #290 Add formula support in table IF -formula EQ abap_true. IF -style IS NOT INITIAL. - IF -abap_type IS NOT INITIAL. + IF -abap_type IS NOT INITIAL. me->set_cell( ip_column = lv_column_alpha ip_row = lv_row_int ip_formula = @@ -2993,13 +2999,14 @@ method BIND_TABLE. *--------------------------------------------------------------------* " conditional formatting *--------------------------------------------------------------------* - IF -cond_style IS NOT INITIAL. + IF -style_cond IS NOT INITIAL. lv_first_row = ls_settings-top_left_row + 1. " +1 to exclude header lv_last_row = ls_settings-top_left_row + lv_rows. - -cond_style->set_range( ip_start_column = lv_column_alpha - ip_start_row = lv_first_row - ip_stop_column = lv_column_alpha - ip_stop_row = lv_last_row ). + lo_style_cond = me->get_style_cond( -style_cond ). + lo_style_cond->set_range( ip_start_column = lv_column_alpha + ip_start_row = lv_first_row + ip_stop_column = lv_column_alpha + ip_stop_row = lv_last_row ). ENDIF. ENDLOOP. @@ -3019,7 +3026,7 @@ method BIND_TABLE. ENDIF. " << Issue #291 - endmethod. +ENDMETHOD. METHOD calculate_cell_width. @@ -3662,7 +3669,7 @@ METHOD constructor. me->set_title( ip_title = lv_title ). CREATE OBJECT sheet_setup. - CREATE OBJECT conditional_styles. + CREATE OBJECT styles_cond. CREATE OBJECT data_validations. CREATE OBJECT tables. CREATE OBJECT columns. @@ -3869,19 +3876,13 @@ METHOD get_columns. ENDMETHOD. -METHOD get_columns_iterator. +METHOD GET_COLUMNS_ITERATOR. eo_iterator = me->columns->get_iterator( ). ENDMETHOD. -method GET_COND_STYLES_ITERATOR. - - eo_iterator = me->conditional_styles->get_iterator( ). - endmethod. - - method GET_DATA_VALIDATIONS_ITERATOR. eo_iterator = me->data_validations->get_iterator( ). @@ -4146,6 +4147,29 @@ METHOD get_row_outlines. ENDMETHOD. +METHOD get_style_cond. + + DATA: lo_style_iterator TYPE REF TO cl_object_collection_iterator, + lo_style_cond TYPE REF TO zcl_excel_style_cond. + + lo_style_iterator = me->get_style_cond_iterator( ). + WHILE lo_style_iterator->has_next( ) = abap_true. + lo_style_cond ?= lo_style_iterator->get_next( ). + IF lo_style_cond->get_guid( ) = ip_guid. + eo_style_cond = lo_style_cond. + EXIT. + ENDIF. + ENDWHILE. + +ENDMETHOD. + + +METHOD get_style_cond_iterator. + + eo_iterator = styles_cond->get_iterator( ). +ENDMETHOD. + + method GET_TABCOLOR. ev_tabcolor = me->tabcolor. endmethod. diff --git a/src/zcl_excel_worksheet.clas.xml b/src/zcl_excel_worksheet.clas.xml index 3ecc84a..41069c3 100644 --- a/src/zcl_excel_worksheet.clas.xml +++ b/src/zcl_excel_worksheet.clas.xml @@ -94,18 +94,6 @@ E Create a new column - - ZCL_EXCEL_WORKSHEET - ADD_NEW_CONDITIONAL_STYLE - E - Creates a new conditional formatting - - - ZCL_EXCEL_WORKSHEET - ADD_NEW_CONDITIONAL_STYLE - I - Creates a new conditional formatting - ZCL_EXCEL_WORKSHEET ADD_NEW_DATA_VALIDATION @@ -136,6 +124,12 @@ E Create a new row + + ZCL_EXCEL_WORKSHEET + ADD_NEW_STYLE_COND + E + Creates a new conditional formatting + ZCL_EXCEL_WORKSHEET BIND_ALV @@ -232,18 +226,6 @@ E Worksheet ColumnDimension - - ZCL_EXCEL_WORKSHEET - CONDITIONAL_STYLES - E - Styles conditional collection - - - ZCL_EXCEL_WORKSHEET - CONDITIONAL_STYLES - I - Styles conditional collection - ZCL_EXCEL_WORKSHEET CONSTRUCTOR @@ -448,23 +430,11 @@ E Get columns iterator - - ZCL_EXCEL_WORKSHEET - GET_COND_STYLES_ITERATOR - E - Get conditional styles iterator - - - ZCL_EXCEL_WORKSHEET - GET_COND_STYLES_ITERATOR - I - Get conditional styles iterator - ZCL_EXCEL_WORKSHEET GET_DATA_VALIDATIONS_ITERATOR E - Get conditional styles iterator + Get data validation iterator ZCL_EXCEL_WORKSHEET @@ -658,6 +628,18 @@ E Get all outlines for rows + + ZCL_EXCEL_WORKSHEET + GET_STYLE_COND + E + Get style for a specific guid + + + ZCL_EXCEL_WORKSHEET + GET_STYLE_COND_ITERATOR + E + Get conditional styles iterator + ZCL_EXCEL_WORKSHEET GET_TABCOLOR @@ -1126,6 +1108,12 @@ I Sheet style table type + + ZCL_EXCEL_WORKSHEET + STYLES_COND + E + Styles conditional collection + ZCL_EXCEL_WORKSHEET TABCOLOR diff --git a/src/zcl_excel_writer_2007.clas.abap b/src/zcl_excel_writer_2007.clas.abap index 9ac09e2..cfb38ba 100644 --- a/src/zcl_excel_writer_2007.clas.abap +++ b/src/zcl_excel_writer_2007.clas.abap @@ -3089,7 +3089,7 @@ METHOD create_xl_sheet. lo_ostream TYPE REF TO if_ixml_ostream, lo_renderer TYPE REF TO if_ixml_renderer, lo_iterator TYPE REF TO cl_object_collection_iterator, - lo_style_conditional TYPE REF TO zcl_excel_style_conditional, + lo_style_cond TYPE REF TO zcl_excel_style_cond, lo_data_validation TYPE REF TO zcl_excel_data_validation, lo_table TYPE REF TO zcl_excel_table, lo_column_default TYPE REF TO zcl_excel_column, @@ -3745,35 +3745,35 @@ METHOD create_xl_sheet. ENDIF. " Conditional formatting node - lo_iterator = io_worksheet->get_cond_styles_iterator( ). + lo_iterator = io_worksheet->get_style_cond_iterator( ). WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. - lo_style_conditional ?= lo_iterator->if_object_collection_iterator~get_next( ). - IF lo_style_conditional->rule IS INITIAL. + lo_style_cond ?= lo_iterator->if_object_collection_iterator~get_next( ). + IF lo_style_cond->rule IS INITIAL. CONTINUE. ENDIF. lo_element = lo_document->create_simple_element( name = lc_xml_node_condformatting parent = lo_document ). - lv_value = lo_style_conditional->get_dimension_range( ) . + lv_value = lo_style_cond->get_dimension_range( ) . lo_element->set_attribute_ns( name = lc_xml_attr_sqref value = lv_value ). " cfRule node lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_cfrule parent = lo_document ). - lv_value = lo_style_conditional->rule. + lv_value = lo_style_cond->rule. lo_element_2->set_attribute_ns( name = lc_xml_attr_type value = lv_value ). - lv_value = lo_style_conditional->priority. + lv_value = lo_style_cond->priority. SHIFT lv_value RIGHT DELETING TRAILING space. SHIFT lv_value LEFT DELETING LEADING space. lo_element_2->set_attribute_ns( name = lc_xml_attr_priority value = lv_value ). - CASE lo_style_conditional->rule. + CASE lo_style_cond->rule. " Start >> Databar by Albert Lladanosa - WHEN zcl_excel_style_conditional=>c_rule_databar. + WHEN zcl_excel_style_cond=>c_rule_databar. - ls_databar = lo_style_conditional->mode_databar. + ls_databar = lo_style_cond->mode_databar. CLEAR lt_cfvo. lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_databar @@ -3811,9 +3811,9 @@ METHOD create_xl_sheet. lo_element_2->append_child( new_child = lo_element_3 ). " databar node " End << Databar by Albert Lladanosa - WHEN zcl_excel_style_conditional=>c_rule_colorscale. + WHEN zcl_excel_style_cond=>c_rule_colorscale. - ls_colorscale = lo_style_conditional->mode_colorscale. + ls_colorscale = lo_style_cond->mode_colorscale. CLEAR: lt_cfvo, lt_colors. lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_colorscale @@ -3869,15 +3869,15 @@ METHOD create_xl_sheet. lo_element_2->append_child( new_child = lo_element_3 ). " databar node - WHEN zcl_excel_style_conditional=>c_rule_iconset. + WHEN zcl_excel_style_cond=>c_rule_iconset. - ls_iconset = lo_style_conditional->mode_iconset. + ls_iconset = lo_style_cond->mode_iconset. CLEAR lt_cfvo. " iconset node lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_iconset parent = lo_document ). - IF ls_iconset-iconset NE zcl_excel_style_conditional=>c_iconset_3trafficlights. + IF ls_iconset-iconset NE zcl_excel_style_cond=>c_iconset_3trafficlights. lv_value = ls_iconset-iconset. lo_element_3->set_attribute_ns( name = lc_xml_attr_iconset value = lv_value ). @@ -3889,15 +3889,15 @@ METHOD create_xl_sheet. value = lv_value ). CASE ls_iconset-iconset. - WHEN zcl_excel_style_conditional=>c_iconset_3trafficlights2 OR - zcl_excel_style_conditional=>c_iconset_3arrows OR - zcl_excel_style_conditional=>c_iconset_3arrowsgray OR - zcl_excel_style_conditional=>c_iconset_3flags OR - zcl_excel_style_conditional=>c_iconset_3signs OR - zcl_excel_style_conditional=>c_iconset_3symbols OR - zcl_excel_style_conditional=>c_iconset_3symbols2 OR - zcl_excel_style_conditional=>c_iconset_3trafficlights OR - zcl_excel_style_conditional=>c_iconset_3trafficlights2. + WHEN zcl_excel_style_cond=>c_iconset_3trafficlights2 OR + zcl_excel_style_cond=>c_iconset_3arrows OR + zcl_excel_style_cond=>c_iconset_3arrowsgray OR + zcl_excel_style_cond=>c_iconset_3flags OR + zcl_excel_style_cond=>c_iconset_3signs OR + zcl_excel_style_cond=>c_iconset_3symbols OR + zcl_excel_style_cond=>c_iconset_3symbols2 OR + zcl_excel_style_cond=>c_iconset_3trafficlights OR + zcl_excel_style_cond=>c_iconset_3trafficlights2. MOVE ls_iconset-cfvo1_value TO ls_cfvo-value. MOVE ls_iconset-cfvo1_type TO ls_cfvo-type. APPEND ls_cfvo TO lt_cfvo. @@ -3907,11 +3907,11 @@ METHOD create_xl_sheet. MOVE ls_iconset-cfvo3_value TO ls_cfvo-value. MOVE ls_iconset-cfvo3_type TO ls_cfvo-type. APPEND ls_cfvo TO lt_cfvo. - WHEN zcl_excel_style_conditional=>c_iconset_4arrows OR - zcl_excel_style_conditional=>c_iconset_4arrowsgray OR - zcl_excel_style_conditional=>c_iconset_4rating OR - zcl_excel_style_conditional=>c_iconset_4redtoblack OR - zcl_excel_style_conditional=>c_iconset_4trafficlights. + WHEN zcl_excel_style_cond=>c_iconset_4arrows OR + zcl_excel_style_cond=>c_iconset_4arrowsgray OR + zcl_excel_style_cond=>c_iconset_4rating OR + zcl_excel_style_cond=>c_iconset_4redtoblack OR + zcl_excel_style_cond=>c_iconset_4trafficlights. MOVE ls_iconset-cfvo1_value TO ls_cfvo-value. MOVE ls_iconset-cfvo1_type TO ls_cfvo-type. APPEND ls_cfvo TO lt_cfvo. @@ -3924,10 +3924,10 @@ METHOD create_xl_sheet. MOVE ls_iconset-cfvo4_value TO ls_cfvo-value. MOVE ls_iconset-cfvo4_type TO ls_cfvo-type. APPEND ls_cfvo TO lt_cfvo. - WHEN zcl_excel_style_conditional=>c_iconset_5arrows OR - zcl_excel_style_conditional=>c_iconset_5arrowsgray OR - zcl_excel_style_conditional=>c_iconset_5quarters OR - zcl_excel_style_conditional=>c_iconset_5rating. + WHEN zcl_excel_style_cond=>c_iconset_5arrows OR + zcl_excel_style_cond=>c_iconset_5arrowsgray OR + zcl_excel_style_cond=>c_iconset_5quarters OR + zcl_excel_style_cond=>c_iconset_5rating. MOVE ls_iconset-cfvo1_value TO ls_cfvo-value. MOVE ls_iconset-cfvo1_type TO ls_cfvo-type. APPEND ls_cfvo TO lt_cfvo. @@ -3963,8 +3963,8 @@ METHOD create_xl_sheet. lo_element_2->append_child( new_child = lo_element_3 ). " iconset node - WHEN zcl_excel_style_conditional=>c_rule_cellis. - ls_cellis = lo_style_conditional->mode_cellis. + WHEN zcl_excel_style_cond=>c_rule_cellis. + ls_cellis = lo_style_cond->mode_cellis. READ TABLE me->styles_cond_mapping INTO ls_style_cond_mapping WITH KEY guid = ls_cellis-cell_style. lv_value = ls_style_cond_mapping-dxf. CONDENSE lv_value. @@ -3987,8 +3987,8 @@ METHOD create_xl_sheet. lo_element_2->append_child( new_child = lo_element_3 ). " 2nd formula node ENDIF. - WHEN zcl_excel_style_conditional=>c_rule_expression. - ls_expression = lo_style_conditional->mode_expression. + WHEN zcl_excel_style_cond=>c_rule_expression. + ls_expression = lo_style_cond->mode_expression. READ TABLE me->styles_cond_mapping INTO ls_style_cond_mapping WITH KEY guid = ls_expression-cell_style. lv_value = ls_style_cond_mapping-dxf. CONDENSE lv_value. @@ -4002,8 +4002,8 @@ METHOD create_xl_sheet. lo_element_2->append_child( new_child = lo_element_3 ). " formula node * begin of ins issue #366 - missing conditional rules: top10 - WHEN zcl_excel_style_conditional=>c_rule_top10. - ls_conditional_top10 = lo_style_conditional->mode_top10. + WHEN zcl_excel_style_cond=>c_rule_top10. + ls_conditional_top10 = lo_style_cond->mode_top10. READ TABLE me->styles_cond_mapping INTO ls_style_cond_mapping WITH KEY guid = ls_conditional_top10-cell_style. lv_value = ls_style_cond_mapping-dxf. CONDENSE lv_value. @@ -4022,8 +4022,8 @@ METHOD create_xl_sheet. value ='1' ). ENDIF. - WHEN zcl_excel_style_conditional=>c_rule_above_average. - ls_conditional_above_avg = lo_style_conditional->mode_above_average. + WHEN zcl_excel_style_cond=>c_rule_above_average. + ls_conditional_above_avg = lo_style_cond->mode_above_average. READ TABLE me->styles_cond_mapping INTO ls_style_cond_mapping WITH KEY guid = ls_conditional_above_avg-cell_style. lv_value = ls_style_cond_mapping-dxf. CONDENSE lv_value. @@ -5269,7 +5269,7 @@ METHOD create_xl_styles. lo_iterator TYPE REF TO cl_object_collection_iterator, lo_iterator2 TYPE REF TO cl_object_collection_iterator, lo_worksheet TYPE REF TO zcl_excel_worksheet, - lo_style_conditional TYPE REF TO zcl_excel_style_conditional, + lo_style_cond TYPE REF TO zcl_excel_style_cond, lo_style TYPE REF TO zcl_excel_style. @@ -6037,14 +6037,14 @@ METHOD create_xl_styles. WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). " Conditional formatting styles into exch sheet - lo_iterator2 = lo_worksheet->get_cond_styles_iterator( ). + lo_iterator2 = lo_worksheet->get_style_cond_iterator( ). WHILE lo_iterator2->if_object_collection_iterator~has_next( ) EQ abap_true. - lo_style_conditional ?= lo_iterator2->if_object_collection_iterator~get_next( ). - CASE lo_style_conditional->rule. + lo_style_cond ?= lo_iterator2->if_object_collection_iterator~get_next( ). + CASE lo_style_cond->rule. * begin of change issue #366 - missing conditional rules: top10, move dfx-styles to own method - WHEN zcl_excel_style_conditional=>c_rule_cellis. + WHEN zcl_excel_style_cond=>c_rule_cellis. me->create_dxf_style( EXPORTING - iv_cell_style = lo_style_conditional->mode_cellis-cell_style + iv_cell_style = lo_style_cond->mode_cellis-cell_style io_dxf_element = lo_element io_ixml_document = lo_document it_cellxfs = lt_cellxfs @@ -6053,9 +6053,9 @@ METHOD create_xl_styles. CHANGING cv_dfx_count = lv_dfx_count ). - WHEN zcl_excel_style_conditional=>c_rule_expression. + WHEN zcl_excel_style_cond=>c_rule_expression. me->create_dxf_style( EXPORTING - iv_cell_style = lo_style_conditional->mode_expression-cell_style + iv_cell_style = lo_style_cond->mode_expression-cell_style io_dxf_element = lo_element io_ixml_document = lo_document it_cellxfs = lt_cellxfs @@ -6066,9 +6066,9 @@ METHOD create_xl_styles. - WHEN zcl_excel_style_conditional=>c_rule_top10. + WHEN zcl_excel_style_cond=>c_rule_top10. me->create_dxf_style( EXPORTING - iv_cell_style = lo_style_conditional->mode_top10-cell_style + iv_cell_style = lo_style_cond->mode_top10-cell_style io_dxf_element = lo_element io_ixml_document = lo_document it_cellxfs = lt_cellxfs @@ -6077,9 +6077,9 @@ METHOD create_xl_styles. CHANGING cv_dfx_count = lv_dfx_count ). - WHEN zcl_excel_style_conditional=>c_rule_above_average. + WHEN zcl_excel_style_cond=>c_rule_above_average. me->create_dxf_style( EXPORTING - iv_cell_style = lo_style_conditional->mode_above_average-cell_style + iv_cell_style = lo_style_cond->mode_above_average-cell_style io_dxf_element = lo_element io_ixml_document = lo_document it_cellxfs = lt_cellxfs diff --git a/src/zcl_excel_writer_huge_file.clas.abap b/src/zcl_excel_writer_huge_file.clas.abap index 4edb948..e8d8b2c 100644 --- a/src/zcl_excel_writer_huge_file.clas.abap +++ b/src/zcl_excel_writer_huge_file.clas.abap @@ -315,7 +315,6 @@ METHOD create_xl_sheet. FIELD-SYMBOLS: TYPE zexcel_s_cell_data, LIKE LINE OF lt_range_merge, - TYPE zexcel_s_worksheet_rowdimensio, TYPE lty_column, TYPE lty_row, TYPE lty_hyperlink, diff --git a/src/zdemo_excel.prog.abap b/src/zdemo_excel.prog.abap index dd9c248..e327a33 100644 --- a/src/zdemo_excel.prog.abap +++ b/src/zdemo_excel.prog.abap @@ -81,4 +81,4 @@ START-OF-SELECTION. " Reader/Writer Demo must always run at the end " to make sure all documents where created " - SUBMIT zdemo_excel15 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT Read Excel and write it back + SUBMIT zdemo_excel15 WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT Read Excel and write it back diff --git a/src/zdemo_excel10.prog.abap b/src/zdemo_excel10.prog.abap index a648afe..b09199b 100644 --- a/src/zdemo_excel10.prog.abap +++ b/src/zdemo_excel10.prog.abap @@ -10,7 +10,7 @@ REPORT zdemo_excel10. DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, - lo_style_conditional2 TYPE REF TO zcl_excel_style_conditional, + lo_style_cond TYPE REF TO zcl_excel_style_cond, lo_column TYPE REF TO zcl_excel_column. DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog, @@ -32,24 +32,24 @@ START-OF-SELECTION. lo_worksheet = lo_excel->get_active_worksheet( ). lo_worksheet->set_title( 'Internal table' ). - ls_iconset-iconset = zcl_excel_style_conditional=>c_iconset_5arrows. - ls_iconset-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-iconset = zcl_excel_style_cond=>c_iconset_5arrows. + ls_iconset-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset-cfvo1_value = '0'. - ls_iconset-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset-cfvo2_value = '20'. - ls_iconset-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo3_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset-cfvo3_value = '40'. - ls_iconset-cfvo4_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo4_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset-cfvo4_value = '60'. - ls_iconset-cfvo5_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo5_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset-cfvo5_value = '80'. - ls_iconset-showvalue = zcl_excel_style_conditional=>c_showvalue_true. + ls_iconset-showvalue = zcl_excel_style_cond=>c_showvalue_true. - "Conditional style - lo_style_conditional2 = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional2->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional2->mode_iconset = ls_iconset. - lo_style_conditional2->priority = 1. + "cond style + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->mode_iconset = ls_iconset. + lo_style_cond->priority = 1. DATA lt_test TYPE TABLE OF sflight. SELECT * FROM sflight INTO TABLE lt_test. "#EC CI_NOWHERE @@ -75,7 +75,7 @@ START-OF-SELECTION. -position = 1. -dynpfld = abap_true. -totals_function = zcl_excel_table=>totals_function_sum. - -cond_style = lo_style_conditional2. + -style_cond = lo_style_cond->get_guid( ). WHEN OTHERS. -dynpfld = abap_false. ENDCASE. diff --git a/src/zdemo_excel27.prog.abap b/src/zdemo_excel27.prog.abap index 20bce0f..84f452e 100644 --- a/src/zdemo_excel27.prog.abap +++ b/src/zdemo_excel27.prog.abap @@ -14,7 +14,7 @@ DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_range TYPE REF TO zcl_excel_range, lo_data_validation TYPE REF TO zcl_excel_data_validation, - lo_style_conditional TYPE REF TO zcl_excel_style_conditional, + lo_style_cond TYPE REF TO zcl_excel_style_cond, lo_style_1 TYPE REF TO zcl_excel_style, lo_style_2 TYPE REF TO zcl_excel_style, lv_style_1_guid TYPE zexcel_cell_style, @@ -36,7 +36,7 @@ START-OF-SELECTION. lo_style_1 = lo_excel->add_new_style( ). lo_style_1->fill->filltype = zcl_excel_style_fill=>c_fill_solid. - lo_style_1->fill->bgcolor-rgb = zcl_excel_style_color=>c_green. + lo_style_1->fill->bgcolor-rgb = zcl_excel_style_color=>c_green. lv_style_1_guid = lo_style_1->get_guid( ). lo_style_2 = lo_excel->add_new_style( ). @@ -73,31 +73,29 @@ START-OF-SELECTION. lo_data_validation->cell_column = 'C'. lo_worksheet->set_cell( ip_row = 2 ip_column = 'C' ip_value = 'Select a value' ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_cellis. - ls_cellis-formula = '"Anchovy"'. - ls_cellis-operator = zcl_excel_style_conditional=>c_operator_equal. - ls_cellis-cell_style = lv_style_1_guid. - lo_style_conditional->mode_cellis = ls_cellis. - lo_style_conditional->priority = 1. - lo_style_conditional->set_range( ip_start_column = 'C' - ip_start_row = 2 - ip_stop_column = 'C' - ip_stop_row = 2 ). - - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_cellis. - ls_cellis-formula = '"Carp"'. - ls_cellis-operator = zcl_excel_style_conditional=>c_operator_equal. - ls_cellis-cell_style = lv_style_2_guid. - lo_style_conditional->mode_cellis = ls_cellis. - lo_style_conditional->priority = 2. - lo_style_conditional->set_range( ip_start_column = 'C' - ip_start_row = 2 - ip_stop_column = 'C' - ip_stop_row = 2 ). - + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_cellis. + ls_cellis-formula = '"Anchovy"'. + ls_cellis-operator = zcl_excel_style_cond=>c_operator_equal. + ls_cellis-cell_style = lv_style_1_guid. + lo_style_cond->mode_cellis = ls_cellis. + lo_style_cond->priority = 1. + lo_style_cond->set_range( ip_start_column = 'C' + ip_start_row = 2 + ip_stop_column = 'C' + ip_stop_row = 2 ). + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_cellis. + ls_cellis-formula = '"Carp"'. + ls_cellis-operator = zcl_excel_style_cond=>c_operator_equal. + ls_cellis-cell_style = lv_style_2_guid. + lo_style_cond->mode_cellis = ls_cellis. + lo_style_cond->priority = 2. + lo_style_cond->set_range( ip_start_column = 'C' + ip_start_row = 2 + ip_stop_column = 'C' + ip_stop_row = 2 ). *** Create output lcl_output=>output( lo_excel ). diff --git a/src/zdemo_excel5.prog.abap b/src/zdemo_excel5.prog.abap index d2ac970..6c15697 100644 --- a/src/zdemo_excel5.prog.abap +++ b/src/zdemo_excel5.prog.abap @@ -10,7 +10,7 @@ REPORT zdemo_excel5. DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, - lo_style_conditional TYPE REF TO zcl_excel_style_conditional. + lo_style_cond TYPE REF TO zcl_excel_style_cond. DATA: ls_iconset TYPE zexcel_conditional_iconset. @@ -27,22 +27,22 @@ START-OF-SELECTION. " Get active sheet lo_worksheet = lo_excel->get_active_worksheet( ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. - ls_iconset-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights2. - ls_iconset-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-iconset = zcl_excel_style_cond=>c_iconset_3trafficlights2. + ls_iconset-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset-cfvo1_value = '0'. - ls_iconset-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset-cfvo2_value = '33'. - ls_iconset-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo3_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset-cfvo3_value = '66'. - ls_iconset-showvalue = zcl_excel_style_conditional=>c_showvalue_true. + ls_iconset-showvalue = zcl_excel_style_cond=>c_showvalue_true. - lo_style_conditional->mode_iconset = ls_iconset. - lo_style_conditional->set_range( ip_start_column = 'C' + lo_style_cond->mode_iconset = ls_iconset. + lo_style_cond->set_range( ip_start_column = 'C' ip_start_row = 4 ip_stop_column = 'C' ip_stop_row = 8 ). @@ -55,16 +55,16 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 500 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. - ls_iconset-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights2. - ls_iconset-showvalue = zcl_excel_style_conditional=>c_showvalue_false. - lo_style_conditional->mode_iconset = ls_iconset. - lo_style_conditional->set_range( ip_start_column = 'E' - ip_start_row = 4 - ip_stop_column = 'E' - ip_stop_row = 8 ). + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. + ls_iconset-iconset = zcl_excel_style_cond=>c_iconset_3trafficlights2. + ls_iconset-showvalue = zcl_excel_style_cond=>c_showvalue_false. + lo_style_cond->mode_iconset = ls_iconset. + lo_style_cond->set_range( ip_start_column = 'E' + ip_start_row = 4 + ip_stop_column = 'E' + ip_stop_row = 8 ). lo_worksheet->set_cell( ip_row = 4 ip_column = 'E' ip_value = 100 ). diff --git a/src/zdemo_excel7.prog.abap b/src/zdemo_excel7.prog.abap index bcff7ae..121f9e7 100644 --- a/src/zdemo_excel7.prog.abap +++ b/src/zdemo_excel7.prog.abap @@ -10,7 +10,7 @@ REPORT zdemo_excel7. DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, - lo_style_conditional TYPE REF TO zcl_excel_style_conditional. + lo_style_cond TYPE REF TO zcl_excel_style_cond. DATA: ls_iconset3 TYPE zexcel_conditional_iconset, ls_iconset4 TYPE zexcel_conditional_iconset, @@ -27,54 +27,54 @@ START-OF-SELECTION. CREATE OBJECT lo_excel. - ls_iconset3-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset3-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset3-cfvo1_value = '0'. - ls_iconset3-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset3-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset3-cfvo2_value = '33'. - ls_iconset3-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset3-cfvo3_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset3-cfvo3_value = '66'. - ls_iconset3-showvalue = zcl_excel_style_conditional=>c_showvalue_true. + ls_iconset3-showvalue = zcl_excel_style_cond=>c_showvalue_true. - ls_iconset4-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset4-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset4-cfvo1_value = '0'. - ls_iconset4-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset4-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset4-cfvo2_value = '25'. - ls_iconset4-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset4-cfvo3_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset4-cfvo3_value = '50'. - ls_iconset4-cfvo4_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset4-cfvo4_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset4-cfvo4_value = '75'. - ls_iconset4-showvalue = zcl_excel_style_conditional=>c_showvalue_true. + ls_iconset4-showvalue = zcl_excel_style_cond=>c_showvalue_true. - ls_iconset5-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset5-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset5-cfvo1_value = '0'. - ls_iconset5-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset5-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset5-cfvo2_value = '20'. - ls_iconset5-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset5-cfvo3_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset5-cfvo3_value = '40'. - ls_iconset5-cfvo4_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset5-cfvo4_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset5-cfvo4_value = '60'. - ls_iconset5-cfvo5_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset5-cfvo5_type = zcl_excel_style_cond=>c_cfvo_type_percent. ls_iconset5-cfvo5_value = '80'. - ls_iconset5-showvalue = zcl_excel_style_conditional=>c_showvalue_true. + ls_iconset5-showvalue = zcl_excel_style_cond=>c_showvalue_true. - ls_databar-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_min. + ls_databar-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_min. ls_databar-cfvo1_value = '0'. - ls_databar-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_max. + ls_databar-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_max. ls_databar-cfvo2_value = '0'. ls_databar-colorrgb = 'FF638EC6'. - ls_colorscale2-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_min. + ls_colorscale2-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_min. ls_colorscale2-cfvo1_value = '0'. - ls_colorscale2-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percentile. + ls_colorscale2-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_percentile. ls_colorscale2-cfvo2_value = '50'. ls_colorscale2-colorrgb1 = 'FFF8696B'. ls_colorscale2-colorrgb2 = 'FF63BE7B'. - ls_colorscale3-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_min. + ls_colorscale3-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_min. ls_colorscale3-cfvo1_value = '0'. - ls_colorscale3-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percentile. + ls_colorscale3-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_percentile. ls_colorscale3-cfvo2_value = '50'. - ls_colorscale3-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_max. + ls_colorscale3-cfvo3_type = zcl_excel_style_cond=>c_cfvo_type_max. ls_colorscale3-cfvo3_value = '0'. ls_colorscale3-colorrgb1 = 'FFF8696B'. ls_colorscale3-colorrgb2 = 'FFFFEB84'. @@ -85,14 +85,14 @@ START-OF-SELECTION. * ICONSET - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. - ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3arrows. + ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3arrows. - lo_style_conditional->mode_iconset = ls_iconset3. - lo_style_conditional->set_range( ip_start_column = 'B' + lo_style_cond->mode_iconset = ls_iconset3. + lo_style_cond->set_range( ip_start_column = 'B' ip_start_row = 5 ip_stop_column = 'B' ip_stop_row = 9 ). @@ -104,12 +104,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 8 ip_column = 'B' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'B' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. - ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3arrowsgray. - lo_style_conditional->mode_iconset = ls_iconset3. - lo_style_conditional->set_range( ip_start_column = 'C' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. + ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3arrowsgray. + lo_style_cond->mode_iconset = ls_iconset3. + lo_style_cond->set_range( ip_start_column = 'C' ip_start_row = 5 ip_stop_column = 'C' ip_stop_row = 9 ). @@ -120,12 +120,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 30 ). lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'C' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. - ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3flags. - lo_style_conditional->mode_iconset = ls_iconset3. - lo_style_conditional->set_range( ip_start_column = 'D' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. + ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3flags. + lo_style_cond->mode_iconset = ls_iconset3. + lo_style_cond->set_range( ip_start_column = 'D' ip_start_row = 5 ip_stop_column = 'D' ip_stop_row = 9 ). @@ -137,12 +137,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 8 ip_column = 'D' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'D' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. - ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights. - lo_style_conditional->mode_iconset = ls_iconset3. - lo_style_conditional->set_range( ip_start_column = 'E' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. + ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3trafficlights. + lo_style_cond->mode_iconset = ls_iconset3. + lo_style_cond->set_range( ip_start_column = 'E' ip_start_row = 5 ip_stop_column = 'E' ip_stop_row = 9 ). @@ -154,12 +154,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 8 ip_column = 'E' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'E' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. - ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights2. - lo_style_conditional->mode_iconset = ls_iconset3. - lo_style_conditional->set_range( ip_start_column = 'F' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. + ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3trafficlights2. + lo_style_cond->mode_iconset = ls_iconset3. + lo_style_cond->set_range( ip_start_column = 'F' ip_start_row = 5 ip_stop_column = 'F' ip_stop_row = 9 ). @@ -171,12 +171,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 8 ip_column = 'F' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'F' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. - ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3signs. - lo_style_conditional->mode_iconset = ls_iconset3. - lo_style_conditional->set_range( ip_start_column = 'G' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. + ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3signs. + lo_style_cond->mode_iconset = ls_iconset3. + lo_style_cond->set_range( ip_start_column = 'G' ip_start_row = 5 ip_stop_column = 'G' ip_stop_row = 9 ). @@ -188,12 +188,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 8 ip_column = 'G' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'G' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. - ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3symbols. - lo_style_conditional->mode_iconset = ls_iconset3. - lo_style_conditional->set_range( ip_start_column = 'H' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. + ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3symbols. + lo_style_cond->mode_iconset = ls_iconset3. + lo_style_cond->set_range( ip_start_column = 'H' ip_start_row = 5 ip_stop_column = 'H' ip_stop_row = 9 ). @@ -205,12 +205,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 8 ip_column = 'H' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'H' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. - ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3symbols2. - lo_style_conditional->mode_iconset = ls_iconset3. - lo_style_conditional->set_range( ip_start_column = 'I' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. + ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3symbols2. + lo_style_cond->mode_iconset = ls_iconset3. + lo_style_cond->set_range( ip_start_column = 'I' ip_start_row = 5 ip_stop_column = 'I' ip_stop_row = 9 ). @@ -222,12 +222,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 8 ip_column = 'I' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'I' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. - ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4arrows. - lo_style_conditional->mode_iconset = ls_iconset4. - lo_style_conditional->set_range( ip_start_column = 'B' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. + ls_iconset4-iconset = zcl_excel_style_cond=>c_iconset_4arrows. + lo_style_cond->mode_iconset = ls_iconset4. + lo_style_cond->set_range( ip_start_column = 'B' ip_start_row = 12 ip_stop_column = 'B' ip_stop_row = 16 ). @@ -239,12 +239,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 15 ip_column = 'B' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 16 ip_column = 'B' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. - ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4arrowsgray. - lo_style_conditional->mode_iconset = ls_iconset4. - lo_style_conditional->set_range( ip_start_column = 'C' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. + ls_iconset4-iconset = zcl_excel_style_cond=>c_iconset_4arrowsgray. + lo_style_cond->mode_iconset = ls_iconset4. + lo_style_cond->set_range( ip_start_column = 'C' ip_start_row = 12 ip_stop_column = 'C' ip_stop_row = 16 ). @@ -256,12 +256,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 15 ip_column = 'C' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 16 ip_column = 'C' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. - ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4redtoblack. - lo_style_conditional->mode_iconset = ls_iconset4. - lo_style_conditional->set_range( ip_start_column = 'D' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. + ls_iconset4-iconset = zcl_excel_style_cond=>c_iconset_4redtoblack. + lo_style_cond->mode_iconset = ls_iconset4. + lo_style_cond->set_range( ip_start_column = 'D' ip_start_row = 12 ip_stop_column = 'D' ip_stop_row = 16 ). @@ -273,12 +273,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 15 ip_column = 'D' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 16 ip_column = 'D' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. - ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4rating. - lo_style_conditional->mode_iconset = ls_iconset4. - lo_style_conditional->set_range( ip_start_column = 'E' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. + ls_iconset4-iconset = zcl_excel_style_cond=>c_iconset_4rating. + lo_style_cond->mode_iconset = ls_iconset4. + lo_style_cond->set_range( ip_start_column = 'E' ip_start_row = 12 ip_stop_column = 'E' ip_stop_row = 16 ). @@ -290,12 +290,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 15 ip_column = 'E' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 16 ip_column = 'E' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. - ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4trafficlights. - lo_style_conditional->mode_iconset = ls_iconset4. - lo_style_conditional->set_range( ip_start_column = 'F' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. + ls_iconset4-iconset = zcl_excel_style_cond=>c_iconset_4trafficlights. + lo_style_cond->mode_iconset = ls_iconset4. + lo_style_cond->set_range( ip_start_column = 'F' ip_start_row = 12 ip_stop_column = 'F' ip_stop_row = 16 ). @@ -307,12 +307,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 15 ip_column = 'F' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 16 ip_column = 'F' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. - ls_iconset5-iconset = zcl_excel_style_conditional=>c_iconset_5arrows. - lo_style_conditional->mode_iconset = ls_iconset5. - lo_style_conditional->set_range( ip_start_column = 'B' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. + ls_iconset5-iconset = zcl_excel_style_cond=>c_iconset_5arrows. + lo_style_cond->mode_iconset = ls_iconset5. + lo_style_cond->set_range( ip_start_column = 'B' ip_start_row = 19 ip_stop_column = 'B' ip_stop_row = 23 ). @@ -324,12 +324,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 22 ip_column = 'B' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 23 ip_column = 'B' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. - ls_iconset5-iconset = zcl_excel_style_conditional=>c_iconset_5arrowsgray. - lo_style_conditional->mode_iconset = ls_iconset5. - lo_style_conditional->set_range( ip_start_column = 'C' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. + ls_iconset5-iconset = zcl_excel_style_cond=>c_iconset_5arrowsgray. + lo_style_cond->mode_iconset = ls_iconset5. + lo_style_cond->set_range( ip_start_column = 'C' ip_start_row = 19 ip_stop_column = 'C' ip_stop_row = 23 ). @@ -341,12 +341,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 22 ip_column = 'C' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 23 ip_column = 'C' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. - ls_iconset5-iconset = zcl_excel_style_conditional=>c_iconset_5rating. - lo_style_conditional->mode_iconset = ls_iconset5. - lo_style_conditional->set_range( ip_start_column = 'D' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. + ls_iconset5-iconset = zcl_excel_style_cond=>c_iconset_5rating. + lo_style_cond->mode_iconset = ls_iconset5. + lo_style_cond->set_range( ip_start_column = 'D' ip_start_row = 19 ip_stop_column = 'D' ip_stop_row = 23 ). @@ -358,12 +358,12 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 22 ip_column = 'D' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 23 ip_column = 'D' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. - lo_style_conditional->priority = 1. - ls_iconset5-iconset = zcl_excel_style_conditional=>c_iconset_5quarters. - lo_style_conditional->mode_iconset = ls_iconset5. - lo_style_conditional->set_range( ip_start_column = 'E' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset. + lo_style_cond->priority = 1. + ls_iconset5-iconset = zcl_excel_style_cond=>c_iconset_5quarters. + lo_style_cond->mode_iconset = ls_iconset5. + lo_style_cond->set_range( ip_start_column = 'E' ip_start_row = 19 ip_stop_column = 'E' ip_stop_row = 23 ). @@ -377,11 +377,11 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 29 ip_column = 'B' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 30 ip_column = 'B' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_databar. - lo_style_conditional->priority = 1. - lo_style_conditional->mode_databar = ls_databar. - lo_style_conditional->set_range( ip_start_column = 'B' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_databar. + lo_style_cond->priority = 1. + lo_style_cond->mode_databar = ls_databar. + lo_style_cond->set_range( ip_start_column = 'B' ip_start_row = 26 ip_stop_column = 'B' ip_stop_row = 30 ). @@ -395,11 +395,11 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 29 ip_column = 'C' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 30 ip_column = 'C' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_colorscale. - lo_style_conditional->priority = 1. - lo_style_conditional->mode_colorscale = ls_colorscale2. - lo_style_conditional->set_range( ip_start_column = 'C' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_colorscale. + lo_style_cond->priority = 1. + lo_style_cond->mode_colorscale = ls_colorscale2. + lo_style_cond->set_range( ip_start_column = 'C' ip_start_row = 26 ip_stop_column = 'C' ip_stop_row = 30 ). @@ -412,11 +412,11 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_row = 29 ip_column = 'D' ip_value = 40 ). lo_worksheet->set_cell( ip_row = 30 ip_column = 'D' ip_value = 50 ). - lo_style_conditional = lo_worksheet->add_new_conditional_style( ). - lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_colorscale. - lo_style_conditional->priority = 1. - lo_style_conditional->mode_colorscale = ls_colorscale3. - lo_style_conditional->set_range( ip_start_column = 'D' + lo_style_cond = lo_worksheet->add_new_style_cond( ). + lo_style_cond->rule = zcl_excel_style_cond=>c_rule_colorscale. + lo_style_cond->priority = 1. + lo_style_cond->mode_colorscale = ls_colorscale3. + lo_style_cond->set_range( ip_start_column = 'D' ip_start_row = 26 ip_stop_column = 'D' ip_stop_row = 30 ). diff --git a/src/zdemo_teched6.prog.abap b/src/zdemo_teched6.prog.abap index f9f7a61..c72846e 100644 --- a/src/zdemo_teched6.prog.abap +++ b/src/zdemo_teched6.prog.abap @@ -20,7 +20,7 @@ DATA: lo_style_title TYPE REF TO zcl_excel_style, lo_drawing TYPE REF TO zcl_excel_drawing, lo_range TYPE REF TO zcl_excel_range, lo_data_validation TYPE REF TO zcl_excel_data_validation, - lo_column TYPE REF TO zcl_excel_column, + lo_column TYPE REF TO zcl_excel_column, lv_style_title_guid TYPE zexcel_cell_style, ls_key TYPE wwwdatatab. diff --git a/src/zdemo_teched7.prog.abap b/src/zdemo_teched7.prog.abap index 5a7249c..92e3447 100644 --- a/src/zdemo_teched7.prog.abap +++ b/src/zdemo_teched7.prog.abap @@ -20,7 +20,7 @@ DATA: lo_style_title TYPE REF TO zcl_excel_style, lo_drawing TYPE REF TO zcl_excel_drawing, lo_range TYPE REF TO zcl_excel_range, lo_data_validation TYPE REF TO zcl_excel_data_validation, - lo_column TYPE REF TO zcl_excel_column, + lo_column TYPE REF TO zcl_excel_column, lv_style_title_guid TYPE zexcel_cell_style, ls_key TYPE wwwdatatab. diff --git a/src/zexcel_s_fieldcatalog.tabl.xml b/src/zexcel_s_fieldcatalog.tabl.xml index 1b5b998..8ad2498 100644 --- a/src/zexcel_s_fieldcatalog.tabl.xml +++ b/src/zexcel_s_fieldcatalog.tabl.xml @@ -94,14 +94,11 @@ ZEXCEL_S_FIELDCATALOG - COND_STYLE + STYLE_COND 0011 - ZCL_EXCEL_STYLE_CONDITIONAL + ZEXCEL_CELL_STYLE 0 - REF - REF RC - R - C + E ZEXCEL_S_FIELDCATALOG From cf7d5da6ca1443593d17dab7e774e7cd1febd7c7 Mon Sep 17 00:00:00 2001 From: Ivan Femia Date: Mon, 22 May 2017 21:02:18 +0200 Subject: [PATCH 6/6] Fix #484 Remove obsolete objects --- src/zcl_excel_style_conditional.clas.abap | 243 -------- src/zcl_excel_style_conditional.clas.xml | 676 --------------------- src/zcl_excel_styles_conditional.clas.abap | 89 --- src/zcl_excel_styles_conditional.clas.xml | 118 ---- 4 files changed, 1126 deletions(-) delete mode 100644 src/zcl_excel_style_conditional.clas.abap delete mode 100644 src/zcl_excel_style_conditional.clas.xml delete mode 100644 src/zcl_excel_styles_conditional.clas.abap delete mode 100644 src/zcl_excel_styles_conditional.clas.xml diff --git a/src/zcl_excel_style_conditional.clas.abap b/src/zcl_excel_style_conditional.clas.abap deleted file mode 100644 index ab1b6d2..0000000 --- a/src/zcl_excel_style_conditional.clas.abap +++ /dev/null @@ -1,243 +0,0 @@ -class ZCL_EXCEL_STYLE_CONDITIONAL definition - public - final - create public . - -public section. - -*"* public components of class ZCL_EXCEL_STYLE_CONDITIONAL -*"* do not include other source files here!!! - constants C_CFVO_TYPE_FORMULA type ZEXCEL_CONDITIONAL_TYPE value 'formula'. "#EC NOTEXT - constants C_CFVO_TYPE_MAX type ZEXCEL_CONDITIONAL_TYPE value 'max'. "#EC NOTEXT - constants C_CFVO_TYPE_MIN type ZEXCEL_CONDITIONAL_TYPE value 'min'. "#EC NOTEXT - constants C_CFVO_TYPE_NUMBER type ZEXCEL_CONDITIONAL_TYPE value 'num'. "#EC NOTEXT - constants C_CFVO_TYPE_PERCENT type ZEXCEL_CONDITIONAL_TYPE value 'percent'. "#EC NOTEXT - constants C_CFVO_TYPE_PERCENTILE type ZEXCEL_CONDITIONAL_TYPE value 'percentile'. "#EC NOTEXT - constants C_ICONSET_3ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '3Arrows'. "#EC NOTEXT - constants C_ICONSET_3ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '3ArrowsGray'. "#EC NOTEXT - constants C_ICONSET_3FLAGS type ZEXCEL_CONDITION_RULE_ICONSET value '3Flags'. "#EC NOTEXT - constants C_ICONSET_3SIGNS type ZEXCEL_CONDITION_RULE_ICONSET value '3Signs'. "#EC NOTEXT - constants C_ICONSET_3SYMBOLS type ZEXCEL_CONDITION_RULE_ICONSET value '3Symbols'. "#EC NOTEXT - constants C_ICONSET_3SYMBOLS2 type ZEXCEL_CONDITION_RULE_ICONSET value '3Symbols2'. "#EC NOTEXT - constants C_ICONSET_3TRAFFICLIGHTS type ZEXCEL_CONDITION_RULE_ICONSET value ''. "#EC NOTEXT - constants C_ICONSET_3TRAFFICLIGHTS2 type ZEXCEL_CONDITION_RULE_ICONSET value '3TrafficLights2'. "#EC NOTEXT - constants C_ICONSET_4ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '4Arrows'. "#EC NOTEXT - constants C_ICONSET_4ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '4ArrowsGray'. "#EC NOTEXT - constants C_ICONSET_4RATING type ZEXCEL_CONDITION_RULE_ICONSET value '4Rating'. "#EC NOTEXT - constants C_ICONSET_4REDTOBLACK type ZEXCEL_CONDITION_RULE_ICONSET value '4RedToBlack'. "#EC NOTEXT - constants C_ICONSET_4TRAFFICLIGHTS type ZEXCEL_CONDITION_RULE_ICONSET value '4TrafficLights'. "#EC NOTEXT - constants C_ICONSET_5ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '5Arrows'. "#EC NOTEXT - constants C_ICONSET_5ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '5ArrowsGray'. "#EC NOTEXT - constants C_ICONSET_5QUARTERS type ZEXCEL_CONDITION_RULE_ICONSET value '5Quarters'. "#EC NOTEXT - constants C_ICONSET_5RATING type ZEXCEL_CONDITION_RULE_ICONSET value '5Rating'. "#EC NOTEXT - constants C_OPERATOR_BEGINSWITH type ZEXCEL_CONDITION_OPERATOR value 'beginsWith'. "#EC NOTEXT - constants C_OPERATOR_BETWEEN type ZEXCEL_CONDITION_OPERATOR value 'between'. "#EC NOTEXT - constants C_OPERATOR_CONTAINSTEXT type ZEXCEL_CONDITION_OPERATOR value 'containsText'. "#EC NOTEXT - constants C_OPERATOR_ENDSWITH type ZEXCEL_CONDITION_OPERATOR value 'endsWith'. "#EC NOTEXT - constants C_OPERATOR_EQUAL type ZEXCEL_CONDITION_OPERATOR value 'equal'. "#EC NOTEXT - constants C_OPERATOR_GREATERTHAN type ZEXCEL_CONDITION_OPERATOR value 'greaterThan'. "#EC NOTEXT - constants C_OPERATOR_GREATERTHANOREQUAL type ZEXCEL_CONDITION_OPERATOR value 'greaterThanOrEqual'. "#EC NOTEXT - constants C_OPERATOR_LESSTHAN type ZEXCEL_CONDITION_OPERATOR value 'lessThan'. "#EC NOTEXT - constants C_OPERATOR_LESSTHANOREQUAL type ZEXCEL_CONDITION_OPERATOR value 'lessThanOrEqual'. "#EC NOTEXT - constants C_OPERATOR_NONE type ZEXCEL_CONDITION_OPERATOR value ''. "#EC NOTEXT - constants C_OPERATOR_NOTCONTAINS type ZEXCEL_CONDITION_OPERATOR value 'notContains'. "#EC NOTEXT - constants C_OPERATOR_NOTEQUAL type ZEXCEL_CONDITION_OPERATOR value 'notEqual'. "#EC NOTEXT - constants C_RULE_CELLIS type ZEXCEL_CONDITION_RULE value 'cellIs'. "#EC NOTEXT - constants C_RULE_CONTAINSTEXT type ZEXCEL_CONDITION_RULE value 'containsText'. "#EC NOTEXT - constants C_RULE_DATABAR type ZEXCEL_CONDITION_RULE value 'dataBar'. "#EC NOTEXT - constants C_RULE_EXPRESSION type ZEXCEL_CONDITION_RULE value 'expression'. "#EC NOTEXT - constants C_RULE_ICONSET type ZEXCEL_CONDITION_RULE value 'iconSet'. "#EC NOTEXT - constants C_RULE_COLORSCALE type ZEXCEL_CONDITION_RULE value 'colorScale'. "#EC NOTEXT - constants C_RULE_NONE type ZEXCEL_CONDITION_RULE value 'none'. "#EC NOTEXT - constants C_RULE_TOP10 type ZEXCEL_CONDITION_RULE value 'top10'. "#EC NOTEXT - constants C_RULE_ABOVE_AVERAGE type ZEXCEL_CONDITION_RULE value 'aboveAverage'. "#EC NOTEXT - constants C_SHOWVALUE_FALSE type ZEXCEL_CONDITIONAL_SHOW_VALUE value 0. "#EC NOTEXT - constants C_SHOWVALUE_TRUE type ZEXCEL_CONDITIONAL_SHOW_VALUE value 1. "#EC NOTEXT - data MODE_CELLIS type ZEXCEL_CONDITIONAL_CELLIS . - data MODE_COLORSCALE type ZEXCEL_CONDITIONAL_COLORSCALE . - data MODE_DATABAR type ZEXCEL_CONDITIONAL_DATABAR . - data MODE_EXPRESSION type ZEXCEL_CONDITIONAL_EXPRESSION . - data MODE_ICONSET type ZEXCEL_CONDITIONAL_ICONSET . - data MODE_TOP10 type ZEXCEL_CONDITIONAL_TOP10 . - data MODE_ABOVE_AVERAGE type ZEXCEL_CONDITIONAL_ABOVE_AVG . - data PRIORITY type ZEXCEL_STYLE_PRIORITY value 1. "#EC NOTEXT . . . . . . . . . . . . . . . . " . - data RULE type ZEXCEL_CONDITION_RULE . - - methods CONSTRUCTOR . - methods GET_DIMENSION_RANGE - returning - value(EP_DIMENSION_RANGE) type STRING . - methods SET_RANGE - importing - !IP_START_ROW type ZEXCEL_CELL_ROW - !IP_START_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA - !IP_STOP_ROW type ZEXCEL_CELL_ROW - !IP_STOP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA . - methods ADD_RANGE - importing - !IP_START_ROW type ZEXCEL_CELL_ROW - !IP_START_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA - !IP_STOP_ROW type ZEXCEL_CELL_ROW - !IP_STOP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA . - class ZCL_EXCEL_STYLE_CONDITIONAL definition load . - class-methods FACTORY_COND_STYLE_ICONSET - importing - !IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET - !IV_ICON_TYPE type ZEXCEL_CONDITION_RULE_ICONSET default C_ICONSET_3TRAFFICLIGHTS2 - !IV_CFVO1_TYPE type ZEXCEL_CONDITIONAL_TYPE default C_CFVO_TYPE_PERCENT - !IV_CFVO1_VALUE type ZEXCEL_CONDITIONAL_VALUE optional - !IV_CFVO2_TYPE type ZEXCEL_CONDITIONAL_TYPE default C_CFVO_TYPE_PERCENT - !IV_CFVO2_VALUE type ZEXCEL_CONDITIONAL_VALUE optional - !IV_CFVO3_TYPE type ZEXCEL_CONDITIONAL_TYPE default C_CFVO_TYPE_PERCENT - !IV_CFVO3_VALUE type ZEXCEL_CONDITIONAL_VALUE optional - !IV_CFVO4_TYPE type ZEXCEL_CONDITIONAL_TYPE default C_CFVO_TYPE_PERCENT - !IV_CFVO4_VALUE type ZEXCEL_CONDITIONAL_VALUE optional - !IV_CFVO5_TYPE type ZEXCEL_CONDITIONAL_TYPE default C_CFVO_TYPE_PERCENT - !IV_CFVO5_VALUE type ZEXCEL_CONDITIONAL_VALUE optional - !IV_SHOWVALUE type ZEXCEL_CONDITIONAL_SHOW_VALUE default ZCL_EXCEL_STYLE_CONDITIONAL=>C_SHOWVALUE_TRUE - returning - value(RV_STYLE_CONDITIONAL) type ref to ZCL_EXCEL_STYLE_CONDITIONAL . -*"* protected components of class ZABAP_EXCEL_STYLE_FONT -*"* do not include other source files here!!! -protected section. -private section. - - data MV_RULE_RANGE type STRING . -ENDCLASS. - - - -CLASS ZCL_EXCEL_STYLE_CONDITIONAL IMPLEMENTATION. - - -METHOD add_range. - DATA: lv_column TYPE zexcel_cell_column, - lv_row_alpha TYPE string, - lv_col_alpha TYPE string, - lv_coords1 TYPE string, - lv_coords2 TYPE string. - - - lv_column = zcl_excel_common=>convert_column2int( ip_start_column ). -* me->mv_cell_data-cell_row = 1. -* me->mv_cell_data-cell_column = lv_column. -* - lv_col_alpha = ip_start_column. - lv_row_alpha = ip_start_row. - SHIFT lv_row_alpha RIGHT DELETING TRAILING space. - SHIFT lv_row_alpha LEFT DELETING LEADING space. - CONCATENATE lv_col_alpha lv_row_alpha INTO lv_coords1. - - IF ip_stop_column IS NOT INITIAL. - lv_column = zcl_excel_common=>convert_column2int( ip_stop_column ). - ELSE. - lv_column = zcl_excel_common=>convert_column2int( ip_start_column ). - ENDIF. - - IF ip_stop_row IS NOT INITIAL. " If we don't get explicitly a stop column use start column - lv_row_alpha = ip_stop_row. - ELSE. - lv_row_alpha = ip_start_row. - ENDIF. - IF ip_stop_column IS NOT INITIAL. " If we don't get explicitly a stop column use start column - lv_col_alpha = ip_stop_column. - ELSE. - lv_col_alpha = ip_start_column. - ENDIF. - SHIFT lv_row_alpha RIGHT DELETING TRAILING space. - SHIFT lv_row_alpha LEFT DELETING LEADING space. - CONCATENATE lv_col_alpha lv_row_alpha INTO lv_coords2. - IF lv_coords2 IS NOT INITIAL AND lv_coords2 <> lv_coords1. - CONCATENATE me->mv_rule_range ` ` lv_coords1 ':' lv_coords2 INTO me->mv_rule_range. - ELSE. - CONCATENATE me->mv_rule_range ` ` lv_coords1 INTO me->mv_rule_range. - ENDIF. - SHIFT me->mv_rule_range LEFT DELETING LEADING space. - -ENDMETHOD. - - -METHOD constructor. - - DATA: ls_iconset TYPE zexcel_conditional_iconset. - ls_iconset-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights. - ls_iconset-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent. - ls_iconset-cfvo1_value = '0'. - ls_iconset-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent. - ls_iconset-cfvo2_value = '20'. - ls_iconset-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent. - ls_iconset-cfvo3_value = '40'. - ls_iconset-cfvo4_type = zcl_excel_style_conditional=>c_cfvo_type_percent. - ls_iconset-cfvo4_value = '60'. - ls_iconset-cfvo5_type = zcl_excel_style_conditional=>c_cfvo_type_percent. - ls_iconset-cfvo5_value = '80'. - - - me->rule = zcl_excel_style_conditional=>c_rule_none. -* me->iconset->operator = zcl_excel_style_conditional=>c_operator_none. - me->mode_iconset = ls_iconset. - me->priority = 1. - -* inizialize dimension range - me->MV_RULE_RANGE = 'A1'. -ENDMETHOD. - - -METHOD factory_cond_style_iconset. - -*--------------------------------------------------------------------* -* Work in progress -* Missing: LE or LT may be specified --> extend structure ZEXCEL_CONDITIONAL_ICONSET to hold this information as well -*--------------------------------------------------------------------* - -* DATA: lv_needed_values TYPE i. -* CASE icon_type. -* -* WHEN 'C_ICONSET_3ARROWS' -* OR 'C_ICONSET_3ARROWSGRAY' -* OR 'C_ICONSET_3FLAGS' -* OR 'C_ICONSET_3SIGNS' -* OR 'C_ICONSET_3SYMBOLS' -* OR 'C_ICONSET_3SYMBOLS2' -* OR 'C_ICONSET_3TRAFFICLIGHTS' -* OR 'C_ICONSET_3TRAFFICLIGHTS2'. -* lv_needed_values = 3. -* -* WHEN 'C_ICONSET_4ARROWS' -* OR 'C_ICONSET_4ARROWSGRAY' -* OR 'C_ICONSET_4RATING' -* OR 'C_ICONSET_4REDTOBLACK' -* OR 'C_ICONSET_4TRAFFICLIGHTS'. -* lv_needed_values = 4. -* -* WHEN 'C_ICONSET_5ARROWS' -* OR 'C_ICONSET_5ARROWSGRAY' -* OR 'C_ICONSET_5QUARTERS' -* OR 'C_ICONSET_5RATING'. -* lv_needed_values = 5. -* -* WHEN OTHERS. -* RETURN. -* ENDCASE. - -ENDMETHOD. - - -METHOD get_dimension_range. - - ep_dimension_range = me->mv_rule_range. - -ENDMETHOD. - - -METHOD set_range. - - CLEAR: me->mv_rule_range. - - me->add_range( ip_start_row = ip_start_row - ip_start_column = ip_start_column - ip_stop_row = ip_stop_row - ip_stop_column = ip_stop_column ). - -ENDMETHOD. -ENDCLASS. diff --git a/src/zcl_excel_style_conditional.clas.xml b/src/zcl_excel_style_conditional.clas.xml deleted file mode 100644 index ab4c666..0000000 --- a/src/zcl_excel_style_conditional.clas.xml +++ /dev/null @@ -1,676 +0,0 @@ - - - - - - ZCL_EXCEL_STYLE_CONDITIONAL - 1 - E - Font Style - 2 - 1 - X - X - X - X - - - - - ZCL_EXCEL_STYLE_CONDITIONAL - ADD_RANGE - E - Add range used in conditional formatting - - - ZCL_EXCEL_STYLE_CONDITIONAL - CONSTRUCTOR - E - CONSTRUCTOR - - - ZCL_EXCEL_STYLE_CONDITIONAL - CONSTRUCTOR - I - CONSTRUCTOR - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_CFVO_TYPE_FORMULA - E - Condition type - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_CFVO_TYPE_FORMULA - I - Condition type - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_CFVO_TYPE_MAX - E - Condition type - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_CFVO_TYPE_MIN - E - Condition type - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_CFVO_TYPE_NUMBER - E - Condition type - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_CFVO_TYPE_NUMBER - I - Condition type - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_CFVO_TYPE_PERCENT - E - Condition type - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_CFVO_TYPE_PERCENT - I - Condition type - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_CFVO_TYPE_PERCENTILE - E - Condition type - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_CFVO_TYPE_PERCENTILE - I - Condition type - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_3ARROWS - E - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_3ARROWS - I - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_3ARROWSGRAY - E - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_3ARROWSGRAY - I - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_3FLAGS - E - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_3FLAGS - I - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_3SIGNS - E - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_3SIGNS - I - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_3SYMBOLS - E - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_3SYMBOLS - I - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_3SYMBOLS2 - E - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_3SYMBOLS2 - I - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_3TRAFFICLIGHTS - E - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_3TRAFFICLIGHTS - I - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_3TRAFFICLIGHTS2 - E - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_3TRAFFICLIGHTS2 - I - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_4ARROWS - E - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_4ARROWS - I - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_4ARROWSGRAY - E - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_4ARROWSGRAY - I - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_4RATING - E - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_4RATING - I - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_4REDTOBLACK - E - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_4REDTOBLACK - I - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_4TRAFFICLIGHTS - E - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_4TRAFFICLIGHTS - I - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_5ARROWS - E - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_5ARROWS - I - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_5ARROWSGRAY - E - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_5ARROWSGRAY - I - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_5QUARTERS - E - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_5QUARTERS - I - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_5RATING - E - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_ICONSET_5RATING - I - Condition rule iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_BEGINSWITH - E - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_BEGINSWITH - I - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_BETWEEN - E - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_BETWEEN - I - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_CONTAINSTEXT - E - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_CONTAINSTEXT - I - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_ENDSWITH - E - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_ENDSWITH - I - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_EQUAL - E - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_EQUAL - I - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_GREATERTHAN - E - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_GREATERTHAN - I - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_GREATERTHANOREQUAL - E - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_GREATERTHANOREQUAL - I - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_LESSTHAN - E - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_LESSTHAN - I - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_LESSTHANOREQUAL - E - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_LESSTHANOREQUAL - I - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_NONE - E - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_NONE - I - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_NOTCONTAINS - E - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_NOTCONTAINS - I - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_NOTEQUAL - E - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_OPERATOR_NOTEQUAL - I - Condition operator - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_RULE_ABOVE_AVERAGE - E - Rule above avearge - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_RULE_CELLIS - E - Condition rule - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_RULE_CELLIS - I - Condition rule - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_RULE_COLORSCALE - E - Condition rule - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_RULE_CONTAINSTEXT - E - Condition rule - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_RULE_CONTAINSTEXT - I - Condition rule - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_RULE_DATABAR - E - Condition rule - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_RULE_EXPRESSION - E - Condition rule - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_RULE_EXPRESSION - I - Condition rule - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_RULE_ICONSET - E - Condition rule - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_RULE_ICONSET - I - Condition rule - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_RULE_NONE - E - Condition rule - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_RULE_NONE - I - Condition rule - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_RULE_TOP10 - E - Rule top-10 - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_SHOWVALUE_FALSE - E - Condition type - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_SHOWVALUE_FALSE - I - Condition type - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_SHOWVALUE_TRUE - E - Condition type - - - ZCL_EXCEL_STYLE_CONDITIONAL - C_SHOWVALUE_TRUE - I - Condition type - - - ZCL_EXCEL_STYLE_CONDITIONAL - FACTORY_COND_STYLE_ICONSET - E - Add conditional style of type iconset - - - ZCL_EXCEL_STYLE_CONDITIONAL - GET_DIMENSION_RANGE - E - Get used range dimension - - - ZCL_EXCEL_STYLE_CONDITIONAL - GET_DIMENSION_RANGE - I - Get used range dimension - - - ZCL_EXCEL_STYLE_CONDITIONAL - MODE_ABOVE_AVERAGE - E - Top10 settings ( topxx_count determines top20,top50... ) - - - ZCL_EXCEL_STYLE_CONDITIONAL - MODE_CELLIS - E - Iconset settings - - - ZCL_EXCEL_STYLE_CONDITIONAL - MODE_CELLIS - I - Iconset settings - - - ZCL_EXCEL_STYLE_CONDITIONAL - MODE_COLORSCALE - E - Colorscale settings - - - ZCL_EXCEL_STYLE_CONDITIONAL - MODE_DATABAR - E - Databar settings - - - ZCL_EXCEL_STYLE_CONDITIONAL - MODE_EXPRESSION - E - Expression settings - - - ZCL_EXCEL_STYLE_CONDITIONAL - MODE_EXPRESSION - I - Expression settings - - - ZCL_EXCEL_STYLE_CONDITIONAL - MODE_ICONSET - E - Iconset settings - - - ZCL_EXCEL_STYLE_CONDITIONAL - MODE_ICONSET - I - Iconset settings - - - ZCL_EXCEL_STYLE_CONDITIONAL - MODE_TOP10 - E - Top10 settings ( topxx_count determines top20,top50... ) - - - ZCL_EXCEL_STYLE_CONDITIONAL - MV_RULE_RANGE - E - Rule range - - - ZCL_EXCEL_STYLE_CONDITIONAL - PRIORITY - E - Style Priority - - - ZCL_EXCEL_STYLE_CONDITIONAL - PRIORITY - I - Style Priority - - - ZCL_EXCEL_STYLE_CONDITIONAL - RULE - E - Condition rule - - - ZCL_EXCEL_STYLE_CONDITIONAL - RULE - I - Condition rule - - - ZCL_EXCEL_STYLE_CONDITIONAL - SET_RANGE - E - Set range used in conditional formatting - - - ZCL_EXCEL_STYLE_CONDITIONAL - SET_RANGE - I - Set range used in conditional formatting - - - - - diff --git a/src/zcl_excel_styles_conditional.clas.abap b/src/zcl_excel_styles_conditional.clas.abap deleted file mode 100644 index 288dc9e..0000000 --- a/src/zcl_excel_styles_conditional.clas.abap +++ /dev/null @@ -1,89 +0,0 @@ -class ZCL_EXCEL_STYLES_CONDITIONAL definition - public - final - create public . - -*"* public components of class ZCL_EXCEL_STYLES_CONDITIONAL -*"* do not include other source files here!!! -public section. - - methods ADD - importing - !IP_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL . - methods CLEAR . - methods CONSTRUCTOR . - methods GET - importing - !IP_INDEX type ZEXCEL_ACTIVE_WORKSHEET - returning - value(EO_STYLE_CONDITIONAL) type ref to ZCL_EXCEL_STYLE_CONDITIONAL . - 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 - !IP_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL . - methods SIZE - returning - value(EP_SIZE) type I . -*"* protected components of class ZABAP_EXCEL_WORKSHEETS -*"* do not include other source files here!!! -protected section. -*"* private components of class ZCL_EXCEL_STYLES_CONDITIONAL -*"* do not include other source files here!!! -private section. - - data STYLES_CONDITIONAL type ref to CL_OBJECT_COLLECTION . -ENDCLASS. - - - -CLASS ZCL_EXCEL_STYLES_CONDITIONAL IMPLEMENTATION. - - -method ADD. - styles_conditional->add( ip_style_conditional ). - endmethod. - - -method CLEAR. - styles_conditional->clear( ). - endmethod. - - -method CONSTRUCTOR. - - CREATE OBJECT styles_conditional. - - endmethod. - - -method GET. - DATA lv_index TYPE i. - lv_index = ip_index. - eo_style_conditional ?= styles_conditional->if_object_collection~get( lv_index ). - endmethod. - - -method GET_ITERATOR. - eo_iterator ?= styles_conditional->if_object_collection~get_iterator( ). - endmethod. - - -method IS_EMPTY. - is_empty = styles_conditional->if_object_collection~is_empty( ). - endmethod. - - -method REMOVE. - styles_conditional->remove( ip_style_conditional ). - endmethod. - - -method SIZE. - ep_size = styles_conditional->if_object_collection~size( ). - endmethod. -ENDCLASS. diff --git a/src/zcl_excel_styles_conditional.clas.xml b/src/zcl_excel_styles_conditional.clas.xml deleted file mode 100644 index e0ee419..0000000 --- a/src/zcl_excel_styles_conditional.clas.xml +++ /dev/null @@ -1,118 +0,0 @@ - - - - - - ZCL_EXCEL_STYLES_CONDITIONAL - 1 - E - Styles conditional collection - 2 - 1 - X - X - X - X - - - - - ZCL_EXCEL_STYLES_CONDITIONAL - ADD - E - Adds an Element to the Collection - - - ZCL_EXCEL_STYLES_CONDITIONAL - ADD - I - Adds an Element to the Collection - - - ZCL_EXCEL_STYLES_CONDITIONAL - CLEAR - E - Initializes the Collection - - - ZCL_EXCEL_STYLES_CONDITIONAL - CLEAR - I - Initializes the Collection - - - ZCL_EXCEL_STYLES_CONDITIONAL - CONSTRUCTOR - E - CONSTRUCTOR - - - ZCL_EXCEL_STYLES_CONDITIONAL - CONSTRUCTOR - I - CONSTRUCTOR - - - ZCL_EXCEL_STYLES_CONDITIONAL - GET - E - Gets Element - - - ZCL_EXCEL_STYLES_CONDITIONAL - GET - I - Gets Element - - - ZCL_EXCEL_STYLES_CONDITIONAL - GET_ITERATOR - E - Returns an iterator - - - ZCL_EXCEL_STYLES_CONDITIONAL - GET_ITERATOR - I - Returns an iterator - - - ZCL_EXCEL_STYLES_CONDITIONAL - IS_EMPTY - E - Checks whether elements are contained - - - ZCL_EXCEL_STYLES_CONDITIONAL - IS_EMPTY - I - Checks whether elements are contained - - - ZCL_EXCEL_STYLES_CONDITIONAL - REMOVE - E - Deletes an Element from the Collection - - - ZCL_EXCEL_STYLES_CONDITIONAL - REMOVE - I - Deletes an Element from the Collection - - - ZCL_EXCEL_STYLES_CONDITIONAL - SIZE - E - Specifies number of contained elements - - - ZCL_EXCEL_STYLES_CONDITIONAL - SIZE - I - Specifies number of contained elements - - - - -