diff --git a/src/zangry_birds.prog.abap b/src/zangry_birds.prog.abap index a31d4ea..788d37c 100644 --- a/src/zangry_birds.prog.abap +++ b/src/zangry_birds.prog.abap @@ -22,8 +22,8 @@ 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_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, + lo_column TYPE REF TO zcl_excel_column, + 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. @@ -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 ). @@ -723,15 +723,15 @@ 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 ). - 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.clas.abap b/src/zcl_excel.clas.abap index 38af59c..6a1b3c0 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,8 +136,9 @@ public section. !IP_STYLE type ZEXCEL_CELL_STYLE raising ZCX_EXCEL . -*"* protected components of class ZCL_EXCEL -*"* do not include other source files here!!! + methods SET_THEME + importing + !IO_THEME type ref to ZCL_EXCEL_THEME . protected section. data WORKSHEETS type ref to ZCL_EXCEL_WORKSHEETS . @@ -159,6 +157,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 @@ -433,6 +436,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, @@ -461,9 +481,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 @@ -472,13 +492,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. @@ -595,7 +614,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_autofilters.clas.abap b/src/zcl_excel_autofilters.clas.abap index 59c82e6..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: diff --git a/src/zcl_excel_worksheet_columndime.clas.abap b/src/zcl_excel_column.clas.abap similarity index 76% rename from src/zcl_excel_worksheet_columndime.clas.abap rename to src/zcl_excel_column.clas.abap index 9b1d6c4..35c310b 100644 --- a/src/zcl_excel_worksheet_columndime.clas.abap +++ b/src/zcl_excel_column.clas.abap @@ -1,9 +1,9 @@ -class ZCL_EXCEL_WORKSHEET_COLUMNDIME definition +class ZCL_EXCEL_COLUMN definition public final create public . -*"* public components of class ZCL_EXCEL_WORKSHEET_COLUMNDIME +*"* public components of class ZCL_EXCEL_COLUMN *"* do not include other source files here!!! public section. type-pools ABAP . @@ -38,17 +38,17 @@ public section. importing !IP_AUTO_SIZE type ABAP_BOOL returning - value(R_WORKSHEET_COLUMNDIME) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME . + value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN . methods SET_COLLAPSED importing !IP_COLLAPSED type ABAP_BOOL returning - value(R_WORKSHEET_COLUMNDIME) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME . + value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN . methods SET_COLUMN_INDEX importing !IP_INDEX type ZEXCEL_CELL_COLUMN_ALPHA returning - value(R_WORKSHEET_COLUMNDIME) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME . + value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN . methods SET_OUTLINE_LEVEL importing !IP_OUTLINE_LEVEL type INT4 . @@ -56,19 +56,19 @@ public section. importing !IP_VISIBLE type ABAP_BOOL returning - value(R_WORKSHEET_COLUMNDIME) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME . + value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN . methods SET_WIDTH importing !IP_WIDTH type SIMPLE returning - value(R_WORKSHEET_COLUMNDIME) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME + value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN 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 . + value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN . methods SET_COLUMN_STYLE_BY_GUID importing !IP_STYLE_GUID type ZEXCEL_CELL_STYLE @@ -79,10 +79,10 @@ public section. value(EP_STYLE_GUID) type ZEXCEL_CELL_STYLE raising ZCX_EXCEL . -*"* protected components of class ZCL_EXCEL_WORKSHEET_COLUMNDIME +*"* protected components of class ZCL_EXCEL_COLUMN *"* do not include other source files here!!! protected section. -*"* private components of class ZCL_EXCEL_WORKSHEET_COLUMNDIME +*"* private components of class ZCL_EXCEL_COLUMN *"* do not include other source files here!!! private section. @@ -100,7 +100,7 @@ ENDCLASS. -CLASS ZCL_EXCEL_WORKSHEET_COLUMNDIME IMPLEMENTATION. +CLASS ZCL_EXCEL_COLUMN IMPLEMENTATION. method CONSTRUCTOR. @@ -163,22 +163,22 @@ method GET_XF_INDEX. endmethod. -method SET_AUTO_SIZE. +METHOD set_auto_size. me->auto_size = ip_auto_size. - r_worksheet_columndime = me. - endmethod. + io_column = me. +ENDMETHOD. -method SET_COLLAPSED. - me->Collapsed = ip_Collapsed. - r_worksheet_columndime = me. - endmethod. +METHOD set_collapsed. + me->collapsed = ip_collapsed. + io_column = me. +ENDMETHOD. -method SET_COLUMN_INDEX. +METHOD set_column_index. me->column_index = zcl_excel_common=>convert_column2int( ip_index ). - r_worksheet_columndime = me. - endmethod. + io_column = me. +ENDMETHOD. method SET_COLUMN_STYLE_BY_GUID. @@ -205,26 +205,26 @@ method SET_OUTLINE_LEVEL. endmethod. -method SET_VISIBLE. - me->Visible = ip_Visible. - r_worksheet_columndime = me. - endmethod. +METHOD set_visible. + me->visible = ip_visible. + io_column = me. +ENDMETHOD. -method SET_WIDTH. +METHOD set_width. TRY. me->width = ip_width. - r_worksheet_columndime = me. + io_column = me. CATCH cx_sy_conversion_no_number. RAISE EXCEPTION TYPE zcx_excel EXPORTING error = 'Unable to interpret width as number'. ENDTRY. - endmethod. +ENDMETHOD. -method SET_XF_INDEX. - me->XF_INDEX = ip_XF_INDEX. - r_worksheet_columndime = me. - 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_common.clas.abap b/src/zcl_excel_common.clas.abap index bc47261..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 . . . . . . . . . . . . . . . " . diff --git a/src/zcl_excel_converter.clas.abap b/src/zcl_excel_converter.clas.abap index 3353200..70abbc6 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. @@ -351,66 +334,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, - 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 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, + 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. @@ -1158,7 +1142,8 @@ method LOOP_NORMAL. l_col_alpha 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 TYPE REF TO zcl_excel_row, l_formula TYPE zexcel_cell_formula, l_style TYPE zexcel_cell_style, l_cells TYPE i, @@ -1238,13 +1223,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. @@ -1272,8 +1257,8 @@ 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_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi, + lo_column TYPE REF TO zcl_excel_column, + lo_row TYPE REF TO zcl_excel_row, l_formula TYPE zexcel_cell_formula, l_style TYPE zexcel_cell_style, l_text TYPE string, @@ -1361,13 +1346,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. @@ -1405,21 +1390,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) @@ -1476,10 +1461,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. @@ -1495,11 +1480,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. @@ -1555,8 +1540,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. @@ -1587,13 +1572,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_converter_result_ex.clas.abap b/src/zcl_excel_converter_result_ex.clas.abap index 40d3a13..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!!! diff --git a/src/zcl_excel_converter_result_wd.clas.abap b/src/zcl_excel_converter_result_wd.clas.abap index ec8d480..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 . diff --git a/src/zcl_excel_converter_salv_table.clas.abap b/src/zcl_excel_converter_salv_table.clas.abap index edf2591..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 diff --git a/src/zcl_excel_drawing.clas.abap b/src/zcl_excel_drawing.clas.abap index 839996a..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. diff --git a/src/zcl_excel_reader_2007.clas.abap b/src/zcl_excel_reader_2007.clas.abap index da1134f..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 @@ -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. @@ -2255,7 +2254,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, @@ -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. @@ -2557,27 +2556,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 +2584,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 +2593,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. @@ -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 @@ -2858,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, @@ -2881,7 +2880,7 @@ METHOD load_worksheet_cond_format. CLEAR: lv_area, lo_ixml_rule, - lo_style_conditional. + lo_style_cond. *--------------------------------------------------------------------* @@ -2890,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 *--------------------------------------------------------------------* @@ -2954,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. @@ -3009,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. *--------------------------------------------------------------------* @@ -3020,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. *--------------------------------------------------------------------* @@ -3034,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. *--------------------------------------------------------------------* @@ -3043,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. @@ -3058,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' ). @@ -3072,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. @@ -3101,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. @@ -3126,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. @@ -3151,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' ). @@ -3161,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. @@ -3191,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' ). @@ -3201,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. @@ -3222,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( ). @@ -3231,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. @@ -3265,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. @@ -3486,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_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_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_conditional.clas.abap b/src/zcl_excel_style_cond.clas.abap similarity index 88% rename from src/zcl_excel_style_conditional.clas.abap rename to src/zcl_excel_style_cond.clas.abap index ab1b6d2..12562da 100644 --- a/src/zcl_excel_style_conditional.clas.abap +++ b/src/zcl_excel_style_cond.clas.abap @@ -1,11 +1,12 @@ -class ZCL_EXCEL_STYLE_CONDITIONAL definition +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_CONDITIONAL +*"* 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 @@ -60,10 +61,12 @@ public section. 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 PRIORITY type ZEXCEL_STYLE_PRIORITY value 1. "#EC NOTEXT . . . . . . . . . . . . . . . . . . . . " . data RULE type ZEXCEL_CONDITION_RULE . - methods CONSTRUCTOR . + methods CONSTRUCTOR + importing + !IP_GUID type ZEXCEL_CELL_STYLE optional . methods GET_DIMENSION_RANGE returning value(EP_DIMENSION_RANGE) type STRING . @@ -79,7 +82,6 @@ public section. !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 @@ -94,23 +96,27 @@ public section. !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 + !IV_SHOWVALUE type ZEXCEL_CONDITIONAL_SHOW_VALUE default ZCL_EXCEL_STYLE_COND=>C_SHOWVALUE_TRUE returning - value(RV_STYLE_CONDITIONAL) type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + 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_CONDITIONAL IMPLEMENTATION. +CLASS ZCL_EXCEL_STYLE_COND IMPLEMENTATION. -METHOD add_range. +METHOD ADD_RANGE. DATA: lv_column TYPE zexcel_cell_column, lv_row_alpha TYPE string, lv_col_alpha TYPE string, @@ -160,30 +166,37 @@ 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-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_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'. - me->rule = zcl_excel_style_conditional=>c_rule_none. + 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'. + 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. +METHOD FACTORY_COND_STYLE_ICONSET. *--------------------------------------------------------------------* * Work in progress @@ -223,14 +236,19 @@ METHOD factory_cond_style_iconset. ENDMETHOD. -METHOD get_dimension_range. +METHOD GET_DIMENSION_RANGE. ep_dimension_range = me->mv_rule_range. ENDMETHOD. -METHOD set_range. +METHOD GET_GUID. + ep_guid = me->guid. +ENDMETHOD. + + +METHOD SET_RANGE. CLEAR: me->mv_rule_range. 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_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.clas.abap b/src/zcl_excel_styles.clas.abap index acab4f7..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 . 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_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 - - - - - diff --git a/src/zcl_excel_table.clas.abap b/src/zcl_excel_table.clas.abap index fc7b2b3..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 . diff --git a/src/zcl_excel_worksheet.clas.abap b/src/zcl_excel_worksheet.clas.abap index 62f2d62..03414e4 100644 --- a/src/zcl_excel_worksheet.clas.abap +++ b/src/zcl_excel_worksheet.clas.abap @@ -25,26 +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_CONDITIONAL_STYLE + methods ADD_NEW_COLUMN + importing + !IP_COLUMN type SIMPLE returning - value(EO_CONDITIONAL_STYLE) type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN . + methods ADD_NEW_STYLE_COND + returning + 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 @@ -244,17 +254,18 @@ 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 . - methods GET_COND_STYLES_ITERATOR + 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_STYLE_COND_ITERATOR returning value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . methods GET_DATA_VALIDATIONS_ITERATOR @@ -263,18 +274,18 @@ 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 . 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 @@ -326,17 +337,25 @@ 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_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 . @@ -474,8 +493,8 @@ private section. 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: +* types: +* mty_ts_row_dimension TYPE SORTED TABLE OF zexcel_s_worksheet_rowdimensio WITH UNIQUE KEY row . BEGIN OF mty_merge, row_from TYPE i, row_to TYPE i, @@ -485,35 +504,35 @@ 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 CONDITIONAL_STYLES type ref to ZCL_EXCEL_STYLES_CONDITIONAL . + 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 STYLES_COND type ref to ZCL_EXCEL_STYLES_COND . data DATA_VALIDATIONS type ref to ZCL_EXCEL_DATA_VALIDATIONS . - data DEFAULT_COLUMN_DIMENSION type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME . 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 . 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 . 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 @@ -554,11 +573,18 @@ method ADD_DRAWING. endmethod. -method ADD_NEW_CONDITIONAL_STYLE. +METHOD add_new_column. + DATA: lv_column_alpha TYPE zexcel_cell_column_alpha. - CREATE OBJECT eo_conditional_style. - conditional_styles->add( eo_conditional_style ). - endmethod. + 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_DATA_VALIDATION. @@ -568,11 +594,25 @@ 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 add_new_row. + CREATE OBJECT eo_row + EXPORTING + ip_index = ip_row. + rows->add( eo_row ). +ENDMETHOD. + + +METHOD add_new_style_cond. + CREATE OBJECT eo_style_cond. + styles_cond->add( eo_style_cond ). +ENDMETHOD. method BIND_ALV. @@ -2662,7 +2702,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 @@ -2702,12 +2742,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 ANY, - TYPE ANY. + TYPE zexcel_s_fieldcatalog, + TYPE any, + TYPE any. ls_settings = is_table_settings. @@ -2796,43 +2838,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. @@ -2866,7 +2908,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 = @@ -2951,13 +2993,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. @@ -2977,7 +3020,7 @@ method BIND_TABLE. ENDIF. " << Issue #291 - endmethod. +ENDMETHOD. METHOD calculate_cell_width. @@ -3231,7 +3274,7 @@ METHOD calculate_cell_width. ENDMETHOD. -method CALCULATE_COLUMN_WIDTHS. +METHOD calculate_column_widths. TYPES: BEGIN OF t_auto_size, col_index TYPE int4, @@ -3239,77 +3282,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. @@ -3643,9 +3663,11 @@ 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. + CREATE OBJECT rows. CREATE OBJECT ranges. " issue #163 CREATE OBJECT mo_pagebreaks. CREATE OBJECT drawings @@ -3783,7 +3805,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. @@ -3811,42 +3833,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_COND_STYLES_ITERATOR. +METHOD GET_COLUMNS_ITERATOR. - eo_iterator = me->conditional_styles->get_iterator( ). - endmethod. + eo_iterator = me->columns->get_iterator( ). + +ENDMETHOD. method GET_DATA_VALIDATIONS_ITERATOR. @@ -3860,17 +3883,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. @@ -3933,13 +3956,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. @@ -4073,32 +4096,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. @@ -4110,6 +4136,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. @@ -4574,7 +4623,7 @@ method SET_CELL_FORMULA. endmethod. -method SET_CELL_STYLE. +METHOD set_cell_style. DATA: lv_column TYPE zexcel_cell_column, lv_style_guid TYPE zexcel_cell_style. @@ -4594,14 +4643,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. @@ -4612,7 +4661,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 @@ -4623,7 +4672,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. @@ -4702,11 +4751,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. @@ -4716,7 +4765,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 @@ -4725,9 +4774,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 d2a7734..41069c3 100644 --- a/src/zcl_excel_worksheet.clas.xml +++ b/src/zcl_excel_worksheet.clas.xml @@ -90,15 +90,9 @@ ZCL_EXCEL_WORKSHEET - ADD_NEW_CONDITIONAL_STYLE + ADD_NEW_COLUMN E - Creates a new conditional formatting - - - ZCL_EXCEL_WORKSHEET - ADD_NEW_CONDITIONAL_STYLE - I - Creates a new conditional formatting + Create a new column ZCL_EXCEL_WORKSHEET @@ -124,6 +118,18 @@ I Create a new local range + + ZCL_EXCEL_WORKSHEET + ADD_NEW_ROW + E + Create a new row + + + ZCL_EXCEL_WORKSHEET + ADD_NEW_STYLE_COND + E + Creates a new conditional formatting + ZCL_EXCEL_WORKSHEET BIND_ALV @@ -210,27 +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 - - - ZCL_EXCEL_WORKSHEET - CONDITIONAL_STYLES + COLUMN_DEFAULT E - Styles conditional collection - - - ZCL_EXCEL_WORKSHEET - CONDITIONAL_STYLES - I - Styles conditional collection + Worksheet ColumnDimension ZCL_EXCEL_WORKSHEET @@ -292,18 +286,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 @@ -328,18 +310,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 @@ -444,45 +414,27 @@ 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 - - - ZCL_EXCEL_WORKSHEET - GET_COND_STYLES_ITERATOR + GET_COLUMNS_ITERATOR E - Get conditional styles iterator - - - ZCL_EXCEL_WORKSHEET - GET_COND_STYLES_ITERATOR - I - Get conditional styles iterator + Get columns iterator ZCL_EXCEL_WORKSHEET GET_DATA_VALIDATIONS_ITERATOR E - Get conditional styles iterator + Get data validation iterator ZCL_EXCEL_WORKSHEET @@ -504,15 +456,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 @@ -540,15 +486,9 @@ ZCL_EXCEL_WORKSHEET - GET_DEFAULT_ROW_DIMENSION + GET_DEFAULT_ROW E - Get column dimension 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 @@ -666,27 +606,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 @@ -694,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 @@ -832,12 +778,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 @@ -936,15 +876,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 @@ -1168,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_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 69caff1..286201f 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 @@ -2929,11 +2928,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', @@ -2994,10 +2988,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', @@ -3079,13 +3069,11 @@ 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, - 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, - default_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. + lo_column_default TYPE REF TO zcl_excel_column, + lo_row_default TYPE REF TO zcl_excel_row. DATA: lv_value TYPE string, lt_range_merge TYPE string_table, @@ -3108,8 +3096,10 @@ 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, - row_dimensions TYPE zexcel_t_worksheet_rowdimensio, + lo_column_iterator TYPE REF TO cl_object_collection_iterator, + lo_column TYPE REF TO zcl_excel_column, + 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, @@ -3119,14 +3109,12 @@ 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, 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, @@ -3136,8 +3124,9 @@ METHOD create_xl_sheet. - FIELD-SYMBOLS: LIKE LINE OF lt_range_merge, - TYPE zexcel_s_worksheet_columndime. + FIELD-SYMBOLS: TYPE zexcel_s_cell_data, + LIKE LINE OF lt_range_merge, + LIKE LINE OF lts_row_outlines. *--------------------------------------------------------------------* * issue #220 - If cell in tables-area don't use default from row or column or sheet - Declarations 2 - start @@ -3362,23 +3351,24 @@ 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( ). + lo_row_iterator = io_worksheet->get_rows_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 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. @@ -3390,61 +3380,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 @@ -3452,28 +3429,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 ). @@ -3483,13 +3459,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. @@ -3497,14 +3473,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. @@ -3514,7 +3485,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 @@ -3530,10 +3501,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. @@ -3597,312 +3570,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. @@ -4050,35 +3721,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 @@ -4116,9 +3787,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 @@ -4174,15 +3845,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 ). @@ -4194,15 +3865,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. @@ -4212,11 +3883,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. @@ -4229,10 +3900,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. @@ -4268,8 +3939,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. @@ -4292,8 +3963,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. @@ -4307,8 +3978,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. @@ -4327,8 +3998,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. @@ -4788,8 +4459,6 @@ METHOD create_xl_sheet. ENDIF. - - ********************************************************************** * STEP 5: Create xstring stream lo_streamfactory = lo_ixml->create_stream_factory( ). @@ -4797,9 +4466,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. @@ -5085,6 +4751,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, @@ -5092,9 +4759,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, @@ -5105,12 +4773,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. + 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. @@ -5160,12 +4825,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 . @@ -5214,11 +4882,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. @@ -5236,7 +4904,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. @@ -5262,33 +4930,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. @@ -5330,16 +4998,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 *--------------------------------------------------------------------* @@ -5415,7 +5082,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. @@ -5574,7 +5241,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. @@ -6342,14 +6009,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 @@ -6358,9 +6025,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 @@ -6371,9 +6038,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 @@ -6382,9 +6049,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 e1abf4b..e8d8b2c 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, - default_col_dimension TYPE REF TO zcl_excel_worksheet_columndime, - default_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, + lo_column_default TYPE REF TO zcl_excel_column, + lo_row_default TYPE REF TO zcl_excel_row, lv_value TYPE string, lv_index TYPE i, lv_spans TYPE string, @@ -294,8 +293,10 @@ 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, - row_dimensions TYPE zexcel_t_worksheet_rowdimensio, + lo_column_iterator TYPE REF TO cl_object_collection_iterator, + lo_column TYPE REF TO zcl_excel_column, + 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, @@ -314,8 +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, TYPE lty_hyperlink, @@ -427,19 +426,24 @@ METHOD create_xl_sheet. * * Row and column info * - column_dimensions[] = io_worksheet->get_column_dimensions( ). - row_dimensions[] = io_worksheet->get_row_dimensions( ). - - IF NOT column_dimensions IS INITIAL. + lo_column_iterator = io_worksheet->get_columns_iterator( ). + 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( ). - 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,67 +453,57 @@ 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_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. + ENDWHILE. - LOOP AT row_dimensions ASSIGNING . - IF -row_dimension->get_outline_level( ) > outline_level_row. - l_worksheet-outlinelevelrow = -row_dimension->get_outline_level( ). - 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 +528,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. @@ -582,32 +576,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 c188a3b..25b92e9 100644 --- a/src/zdemo_calendar.prog.abap +++ b/src/zdemo_calendar.prog.abap @@ -48,9 +48,9 @@ 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_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi, - hyperlink TYPE REF TO zcl_excel_hyperlink, + lo_column TYPE REF TO zcl_excel_column, + 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, @@ -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'. @@ -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 fedf291..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, - lr_col_dim TYPE REF TO zcl_excel_worksheet_columndime, - 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, @@ -325,16 +325,16 @@ 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. 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_col_dim TYPE REF TO zcl_excel_worksheet_columndime, - 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. @@ -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. @@ -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 @@ -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_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_excel1.prog.abap b/src/zdemo_excel1.prog.abap index 7f393a7..ff94444 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. @@ -28,11 +28,11 @@ 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 ). - 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..b09199b 100644 --- a/src/zdemo_excel10.prog.abap +++ b/src/zdemo_excel10.prog.abap @@ -10,8 +10,8 @@ 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_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, ls_table_settings TYPE zexcel_s_table_settings, @@ -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. @@ -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..c05ae30 100644 --- a/src/zdemo_excel11.prog.abap +++ b/src/zdemo_excel11.prog.abap @@ -191,8 +191,8 @@ 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, - row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. + lo_column TYPE REF TO zcl_excel_column, + 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, @@ -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..1574ccf 100644 --- a/src/zdemo_excel12.prog.abap +++ b/src/zdemo_excel12.prog.abap @@ -10,8 +10,8 @@ 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, - row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. + lo_column TYPE REF TO zcl_excel_column, + lo_row TYPE REF TO zcl_excel_row. DATA: lv_file TYPE xstring, lv_bytecount TYPE i, @@ -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 ). + 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_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_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_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..4fe0f32 100644 --- a/src/zdemo_excel34.prog.abap +++ b/src/zdemo_excel34.prog.abap @@ -19,8 +19,8 @@ DATA: current_row TYPE i, colorflag TYPE i, color TYPE zexcel_style_color_argb, - column_dimension TYPE REF TO zcl_excel_worksheet_columndime, - row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, + lo_column TYPE REF TO zcl_excel_column, + lo_row TYPE REF TO zcl_excel_row, writing1 TYPE string, writing2 TYPE string. @@ -65,12 +65,12 @@ 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 ). - 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 @@ -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_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 9752085..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_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..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_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( ). 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 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 - 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_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_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 - - - - - - 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 - - - - - -