From 358ecc4dc98e4286f8ff2589bef209e6b520bbfd Mon Sep 17 00:00:00 2001 From: Ivan Femia Date: Sun, 25 Sep 2011 11:18:07 +0000 Subject: [PATCH] Fix issue #110 git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@222 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049 --- ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk | 41 ++++++++++++++----------- ZA2X/DTEL/ZEXCEL_CELL_COLUMN_ALPHA.slnk | 2 +- 2 files changed, 24 insertions(+), 19 deletions(-) diff --git a/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk b/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk index b0423cb..e056566 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk @@ -155,32 +155,37 @@ endmethod. - method CONVERT_COLUMN2INT. + METHOD convert_column2int. DATA: lv_uccpi TYPE i, + lv_factor TYPE i, + lv_offset TYPE i, lv_char TYPE c, - lv_column(2) TYPE c. + lv_column TYPE ZEXCEL_CELL_COLUMN_ALPHA. -* Calculate most significant letter - lv_char = ip_column+1(1). - IF lv_char IS NOT INITIAL. "To avoid the first 26 column that have only a char in first position - ep_column = cl_abap_conv_out_ce=>uccpi( lv_char ). +* Upper case + lv_column = ip_column. + TRANSLATE lv_column TO UPPER CASE. + CONDENSE lv_column NO-GAPS. - ep_column = ep_column MOD ( zcl_excel_common=>c_excel_col_module ). +* Get string lenght and align to right + lv_offset = 3 - STRLEN( lv_column ). - lv_char = ip_column(1). + SHIFT lv_column RIGHT BY lv_offset PLACES. + +* Claculate column position + DO 3 TIMES. + lv_offset = sy-index - 1. + lv_char = lv_column+lv_offset(1). + if lv_char IS INITIAL. + CONTINUE. + ENDIF. lv_uccpi = cl_abap_conv_out_ce=>uccpi( lv_char ). + lv_factor = 26 ** ( 3 - sy-index ). + ep_column = ep_column + ( lv_uccpi MOD zcl_excel_common=>c_excel_col_module ) * lv_factor. + ENDDO. - lv_uccpi = ( lv_uccpi MOD ( zcl_excel_common=>c_excel_col_module ) ) * 26. - - ep_column = ep_column + lv_uccpi. - ELSE. - lv_char = ip_column(1). - ep_column = cl_abap_conv_out_ce=>uccpi( lv_char ). - ep_column = ep_column - zcl_excel_common=>c_excel_col_module. - ENDIF. - -endmethod. +ENDMETHOD. diff --git a/ZA2X/DTEL/ZEXCEL_CELL_COLUMN_ALPHA.slnk b/ZA2X/DTEL/ZEXCEL_CELL_COLUMN_ALPHA.slnk index abb4860..b0633c5 100644 --- a/ZA2X/DTEL/ZEXCEL_CELL_COLUMN_ALPHA.slnk +++ b/ZA2X/DTEL/ZEXCEL_CELL_COLUMN_ALPHA.slnk @@ -1,4 +1,4 @@ - +