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
|
VALUE(ep_column) TYPE zexcel_cell_column
|
||||||
RAISING
|
RAISING
|
||||||
zcx_excel .
|
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
|
CLASS-METHODS convert_columnrow2column_a_row
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!i_columnrow TYPE clike
|
!i_columnrow TYPE clike
|
||||||
|
@ -489,6 +497,19 @@ CLASS zcl_excel_common IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
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.
|
METHOD convert_columnrow2column_a_row.
|
||||||
*--------------------------------------------------------------------*
|
*--------------------------------------------------------------------*
|
||||||
"issue #256 - replacing char processing with regex
|
"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_maxcol FOR TESTING.
|
||||||
METHODS convert_column2int_oob_empty FOR TESTING.
|
METHODS convert_column2int_oob_empty FOR TESTING.
|
||||||
METHODS convert_column2int_oob_invalid 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 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_string1 FOR TESTING RAISING cx_static_check.
|
||||||
METHODS date_to_excel_string2 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.
|
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.
|
METHOD convert_columnrow2column_a_row.
|
||||||
|
|
||||||
DATA: column TYPE zexcel_cell_column_alpha,
|
DATA: column TYPE zexcel_cell_column_alpha,
|
||||||
|
|
|
@ -3470,8 +3470,6 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
|
||||||
DATA: lv_column TYPE zexcel_cell_column,
|
DATA: lv_column TYPE zexcel_cell_column,
|
||||||
ls_sheet_content TYPE zexcel_s_cell_data,
|
ls_sheet_content TYPE zexcel_s_cell_data,
|
||||||
lv_row TYPE zexcel_cell_row,
|
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_value TYPE zexcel_cell_value,
|
||||||
lv_data_type TYPE zexcel_cell_data_type,
|
lv_data_type TYPE zexcel_cell_data_type,
|
||||||
lv_value_type TYPE abap_typekind,
|
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-column_formula_id = ip_column_formula_id.
|
||||||
ls_sheet_content-cell_style = lv_style_guid.
|
ls_sheet_content-cell_style = lv_style_guid.
|
||||||
ls_sheet_content-data_type = lv_data_type.
|
ls_sheet_content-data_type = lv_data_type.
|
||||||
lv_row_alpha = lv_row.
|
ls_sheet_content-cell_coords = zcl_excel_common=>convert_column_a_row2columnrow( i_column = lv_column i_row = 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
|
|
||||||
INSERT ls_sheet_content INTO TABLE sheet_content ASSIGNING <fs_sheet_content>. "ins #152 - Now <fs_sheet_content> always holds the data
|
INSERT ls_sheet_content INTO TABLE sheet_content ASSIGNING <fs_sheet_content>. "ins #152 - Now <fs_sheet_content> always holds the data
|
||||||
|
|
||||||
ENDIF.
|
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
|
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_row = lv_row.
|
||||||
ls_sheet_content-cell_column = lv_column.
|
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>.
|
INSERT ls_sheet_content INTO TABLE me->sheet_content ASSIGNING <sheet_content>.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
@ -4204,17 +4200,9 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ENDLOOP.
|
ENDLOOP.
|
||||||
|
|
||||||
lv_row_alpha = upper_cell-cell_row.
|
upper_cell-cell_coords = zcl_excel_common=>convert_column_a_row2columnrow( i_column = upper_cell-cell_column i_row = 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.
|
|
||||||
|
|
||||||
lv_row_alpha = lower_cell-cell_row.
|
lower_cell-cell_coords = zcl_excel_common=>convert_column_a_row2columnrow( i_column = lower_cell-cell_column i_row = 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.
|
|
||||||
|
|
||||||
ENDMETHOD. "UPDATE_DIMENSION_RANGE
|
ENDMETHOD. "UPDATE_DIMENSION_RANGE
|
||||||
|
|
||||||
|
|
Loading…
Reference in New Issue
Block a user