diff --git a/src/zcl_excel_common.clas.abap b/src/zcl_excel_common.clas.abap index d3ef1c3..5236b98 100644 --- a/src/zcl_excel_common.clas.abap +++ b/src/zcl_excel_common.clas.abap @@ -38,6 +38,14 @@ CLASS zcl_excel_common DEFINITION VALUE(ep_column) TYPE zexcel_cell_column RAISING zcx_excel . + CLASS-METHODS convert_column_a_row2columnrow + IMPORTING + !i_column TYPE simple + !i_row TYPE zexcel_cell_row + RETURNING + VALUE(e_columnrow) TYPE string + RAISING + zcx_excel. CLASS-METHODS convert_columnrow2column_a_row IMPORTING !i_columnrow TYPE clike @@ -489,6 +497,19 @@ CLASS zcl_excel_common IMPLEMENTATION. ENDMETHOD. + METHOD convert_column_a_row2columnrow. + DATA: lv_row_alpha TYPE string, + lv_column_alpha TYPE zexcel_cell_column_alpha. + + lv_row_alpha = i_row. + lv_column_alpha = zcl_excel_common=>convert_column2alpha( i_column ). + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE lv_column_alpha lv_row_alpha INTO e_columnrow. + + ENDMETHOD. + + METHOD convert_columnrow2column_a_row. *--------------------------------------------------------------------* "issue #256 - replacing char processing with regex diff --git a/src/zcl_excel_common.clas.testclasses.abap b/src/zcl_excel_common.clas.testclasses.abap index 7d229d1..e4b0987 100644 --- a/src/zcl_excel_common.clas.testclasses.abap +++ b/src/zcl_excel_common.clas.testclasses.abap @@ -37,6 +37,7 @@ CLASS lcl_excel_common_test DEFINITION FOR TESTING METHODS convert_column2int_maxcol FOR TESTING. METHODS convert_column2int_oob_empty FOR TESTING. METHODS convert_column2int_oob_invalid FOR TESTING. + METHODS convert_column_a_row2columnrow FOR TESTING RAISING cx_static_check. METHODS convert_columnrow2column_a_row FOR TESTING RAISING cx_static_check. METHODS date_to_excel_string1 FOR TESTING RAISING cx_static_check. METHODS date_to_excel_string2 FOR TESTING RAISING cx_static_check. @@ -338,6 +339,22 @@ CLASS lcl_excel_common_test IMPLEMENTATION. ENDMETHOD. "convert_column2int_oob_invalid. + METHOD convert_column_a_row2columnrow. + + DATA: cell_coords TYPE string. + + cell_coords = zcl_excel_common=>convert_column_a_row2columnrow( i_column = 'B' i_row = 6 ). + + cl_abap_unit_assert=>assert_equals( act = cell_coords exp = 'B6' ). + + + cell_coords = zcl_excel_common=>convert_column_a_row2columnrow( i_column = 2 i_row = 6 ). + + cl_abap_unit_assert=>assert_equals( act = cell_coords exp = 'B6' ). + + ENDMETHOD. + + METHOD convert_columnrow2column_a_row. DATA: column TYPE zexcel_cell_column_alpha, diff --git a/src/zcl_excel_worksheet.clas.abap b/src/zcl_excel_worksheet.clas.abap index 4c13310..a94d403 100644 --- a/src/zcl_excel_worksheet.clas.abap +++ b/src/zcl_excel_worksheet.clas.abap @@ -3470,8 +3470,6 @@ CLASS zcl_excel_worksheet IMPLEMENTATION. DATA: lv_column TYPE zexcel_cell_column, ls_sheet_content TYPE zexcel_s_cell_data, lv_row TYPE zexcel_cell_row, - lv_row_alpha TYPE string, - lv_col_alpha TYPE zexcel_cell_column_alpha, lv_value TYPE zexcel_cell_value, lv_data_type TYPE zexcel_cell_data_type, lv_value_type TYPE abap_typekind, @@ -3668,10 +3666,7 @@ CLASS zcl_excel_worksheet IMPLEMENTATION. ls_sheet_content-column_formula_id = ip_column_formula_id. ls_sheet_content-cell_style = lv_style_guid. ls_sheet_content-data_type = lv_data_type. - lv_row_alpha = lv_row. - CONDENSE lv_row_alpha NO-GAPS. "ins #152 - replaced 2 shifts - should be faster - lv_col_alpha = zcl_excel_common=>convert_column2alpha( lv_column ). " issue #155 - less restrictive typing for ip_column - CONCATENATE lv_col_alpha lv_row_alpha INTO ls_sheet_content-cell_coords. " issue #155 - less restrictive typing for ip_column + ls_sheet_content-cell_coords = zcl_excel_common=>convert_column_a_row2columnrow( i_column = lv_column i_row = lv_row ). INSERT ls_sheet_content INTO TABLE sheet_content ASSIGNING . "ins #152 - Now always holds the data ENDIF. @@ -3760,6 +3755,7 @@ CLASS zcl_excel_worksheet IMPLEMENTATION. CHECK ip_formula IS NOT INITIAL. " only create new entry in sheet_content when a formula is passed ls_sheet_content-cell_row = lv_row. ls_sheet_content-cell_column = lv_column. + ls_sheet_content-cell_coords = zcl_excel_common=>convert_column_a_row2columnrow( i_column = lv_column i_row = lv_row ). INSERT ls_sheet_content INTO TABLE me->sheet_content ASSIGNING . ENDIF. @@ -4204,17 +4200,9 @@ CLASS zcl_excel_worksheet IMPLEMENTATION. ENDIF. ENDLOOP. - lv_row_alpha = upper_cell-cell_row. - lv_column_alpha = zcl_excel_common=>convert_column2alpha( upper_cell-cell_column ). - SHIFT lv_row_alpha RIGHT DELETING TRAILING space. - SHIFT lv_row_alpha LEFT DELETING LEADING space. - CONCATENATE lv_column_alpha lv_row_alpha INTO upper_cell-cell_coords. + upper_cell-cell_coords = zcl_excel_common=>convert_column_a_row2columnrow( i_column = upper_cell-cell_column i_row = upper_cell-cell_row ). - lv_row_alpha = lower_cell-cell_row. - lv_column_alpha = zcl_excel_common=>convert_column2alpha( lower_cell-cell_column ). - SHIFT lv_row_alpha RIGHT DELETING TRAILING space. - SHIFT lv_row_alpha LEFT DELETING LEADING space. - CONCATENATE lv_column_alpha lv_row_alpha INTO lower_cell-cell_coords. + lower_cell-cell_coords = zcl_excel_common=>convert_column_a_row2columnrow( i_column = lower_cell-cell_column i_row = lower_cell-cell_row ). ENDMETHOD. "UPDATE_DIMENSION_RANGE