mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 11:06:15 +08:00
SET_CELL_FORMULA sets formula in wrong cell (#961)
Co-authored-by: sandraros <sandra.rossi@gmail.com> Co-authored-by: Abo <andrea@borgia.bo.it>
This commit is contained in:
parent
f2dd72e76e
commit
211cf550e6
|
@ -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
|
||||
|
|
|
@ -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,
|
||||
|
|
|
@ -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 <fs_sheet_content>. "ins #152 - Now <fs_sheet_content> 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 <sheet_content>.
|
||||
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
|
||||
|
||||
|
|
Loading…
Reference in New Issue
Block a user