From 047183e8480775137cc4354edb6ad4828ff55bd0 Mon Sep 17 00:00:00 2001 From: Alessandro Iannacci Date: Thu, 21 Mar 2013 17:53:12 +0000 Subject: [PATCH] Solution to issue #256 git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@409 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049 --- ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk | 214 ++------------------------------ 1 file changed, 10 insertions(+), 204 deletions(-) diff --git a/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk b/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk index f1ff649..a2ebe38 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk @@ -1,192 +1,5 @@ - class ZCL_EXCEL_COMMON definition - public - final - create public . - -*"* public components of class ZCL_EXCEL_COMMON -*"* do not include other source files here!!! -public section. - - constants C_EXCEL_BASELINE_DATE type D value '19000101'. "#EC NOTEXT - class-data C_EXCEL_NUMFMT_OFFSET type INT1 value 164. "#EC NOTEXT . - constants C_EXCEL_SHEET_MAX_COL type INT4 value 16384. "#EC NOTEXT - constants C_EXCEL_SHEET_MIN_COL type INT4 value 1. "#EC NOTEXT - class-data C_SPRAS_EN type SPRAS value 'E'. "#EC NOTEXT . - class-data O_CONV type ref to CL_ABAP_CONV_OUT_CE . - constants C_EXCEL_1900_LEAP_YEAR type D value '19000228'. "#EC NOTEXT - constants C_XLSX_FILE_FILTER type STRING value 'Excel Workbook (*.xlsx)|*.xlsx|'. "#EC NOTEXT - - class-methods DESCRIBE_STRUCTURE - importing - !IO_STRUCT type ref to CL_ABAP_STRUCTDESCR - returning - value(RT_DFIES) type DDFIELDS . - class-methods DESCRIBE_TABLE . - class-methods CONVERT_COLUMN2ALPHA - importing - !IP_COLUMN type SIMPLE - returning - value(EP_COLUMN) type ZEXCEL_CELL_COLUMN_ALPHA - raising - ZCX_EXCEL . - class-methods CONVERT_COLUMN2INT - importing - !IP_COLUMN type SIMPLE - returning - value(EP_COLUMN) type ZEXCEL_CELL_COLUMN - raising - ZCX_EXCEL . - class-methods CONVERT_COLUMNROW2COLUMN_A_ROW - importing - !I_COLUMNROW type STRING - exporting - !E_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA - !E_ROW type ZEXCEL_CELL_ROW . - class-methods CONVERT_RANGE2COLUMN_A_ROW - importing - !I_RANGE type CLIKE - exporting - !E_COLUMN_START type ZEXCEL_CELL_COLUMN_ALPHA - !E_COLUMN_END type ZEXCEL_CELL_COLUMN_ALPHA - !E_ROW_START type ZEXCEL_CELL_ROW - !E_ROW_END type ZEXCEL_CELL_ROW - !E_SHEET type CLIKE - raising - ZCX_EXCEL . - class-methods DATE_TO_EXCEL_STRING - importing - !IP_VALUE type D - returning - value(EP_VALUE) type ZEXCEL_CELL_VALUE . - class-methods ENCRYPT_PASSWORD - importing - !I_PWD type ZEXCEL_AES_PASSWORD - returning - value(R_ENCRYPTED_PWD) type ZEXCEL_AES_PASSWORD . - class-methods ESCAPE_STRING - importing - !IP_VALUE type CLIKE - returning - value(EP_ESCAPED_VALUE) type STRING . - class-methods UNESCAPE_STRING - importing - !IV_ESCAPED type CLIKE - returning - value(EV_UNESCAPED_STRING) type STRING - raising - ZCX_EXCEL . - class-methods EXCEL_STRING_TO_DATE - importing - !IP_VALUE type ZEXCEL_CELL_VALUE - returning - value(EP_VALUE) type D - raising - ZCX_EXCEL . - class-methods EXCEL_STRING_TO_TIME - importing - !IP_VALUE type ZEXCEL_CELL_VALUE - returning - value(EP_VALUE) type T - raising - ZCX_EXCEL . - class-methods GET_FIELDCATALOG - importing - !IP_TABLE type STANDARD TABLE - returning - value(EP_FIELDCATALOG) type ZEXCEL_T_FIELDCATALOG . - class-methods NUMBER_TO_EXCEL_STRING - importing - value(IP_VALUE) type NUMERIC - returning - value(EP_VALUE) type ZEXCEL_CELL_VALUE . - class-methods RECURSIVE_CLASS_TO_STRUCT - importing - !I_SOURCE type ANY - changing - !E_TARGET type DATA - !E_TARGETX type DATA . - class-methods RECURSIVE_STRUCT_TO_CLASS - importing - !I_SOURCE type DATA - !I_SOURCEX type DATA - changing - !E_TARGET type ANY . - class-methods TIME_TO_EXCEL_STRING - importing - !IP_VALUE type T - returning - value(EP_VALUE) type ZEXCEL_CELL_VALUE . - type-pools ABAP . - class-methods ASSERT_EQUALS - importing - !EXP type ANY - !ACT type ANY - !MSG type CSEQUENCE optional - !LEVEL type AUNIT_LEVEL default IF_AUNIT_CONSTANTS=>CRITICAL - !TOL type F optional - !QUIT type AUNIT_FLOWCTRL default IF_AUNIT_CONSTANTS=>METHOD - !IGNORE_HASH_SEQUENCE type ABAP_BOOL default ABAP_FALSE - returning - value(ASSERTION_FAILED) type ABAP_BOOL . - class-methods FAIL - importing - !MSG type CSEQUENCE optional - !LEVEL type AUNIT_LEVEL default IF_AUNIT_CONSTANTS=>CRITICAL - !QUIT type AUNIT_FLOWCTRL default IF_AUNIT_CONSTANTS=>METHOD - !DETAIL type CSEQUENCE optional . - class-methods ASSERT_DIFFERS - importing - !EXP type SIMPLE - !ACT type SIMPLE - !MSG type CSEQUENCE optional - !LEVEL type AUNIT_LEVEL default IF_AUNIT_CONSTANTS=>CRITICAL - !TOL type F optional - !QUIT type AUNIT_FLOWCTRL default IF_AUNIT_CONSTANTS=>METHOD - returning - value(ASSERTION_FAILED) type ABAP_BOOL . - class-methods SPLIT_FILE - importing - !IP_FILE type TEXT255 - exporting - !EP_FILE type TEXT255 - !EP_EXTENSION type CHAR10 - !EP_DOTEXTENSION type CHAR10 . - *"* protected components of class ZCL_EXCEL_COMMON -*"* do not include other source files here!!! -protected section. - *"* private components of class ZCL_EXCEL_COMMON -*"* do not include other source files here!!! -private section. - - class-data C_EXCEL_COL_MODULE type INT2 value 64. "#EC NOTEXT . - - class-methods STRUCTURE_CASE - importing - !IS_COMPONENT type ABAP_COMPONENTDESCR - changing - !XT_COMPONENTS type ABAP_COMPONENT_TAB . - class-methods STRUCTURE_RECURSIVE - importing - !IS_COMPONENT type ABAP_COMPONENTDESCR - returning - value(RT_COMPONENTS) type ABAP_COMPONENT_TAB . - class-methods CHAR2HEX - importing - !I_CHAR type CHAR1 - returning - value(R_HEX) type ZEXCEL_PWD_HASH . - class-methods SHL01 - importing - !I_PWD_HASH type ZEXCEL_PWD_HASH - returning - value(R_PWD_HASH) type ZEXCEL_PWD_HASH . - class-methods SHR14 - importing - !I_PWD_HASH type ZEXCEL_PWD_HASH - returning - value(R_PWD_HASH) type ZEXCEL_PWD_HASH . *"* local class implementation for public class *"* use this source file for the implementation part of *"* local helper classes @@ -1232,23 +1045,16 @@ ENDMETHOD. - method CONVERT_COLUMNROW2COLUMN_A_ROW. - DATA: width TYPE i, - col_width TYPE i, - row_str TYPE string, - col_str TYPE string. - width = strlen( i_columnrow ). - col_width = width. - col_str = i_columnrow. - WHILE col_str CA '0123456789'. - col_width = col_width - 1. - col_str = i_columnrow(col_width). - ENDWHILE. - e_column = col_str. - width = width - col_width. - row_str = i_columnrow+col_width(width). - e_row = row_str. -endmethod. + METHOD convert_columnrow2column_a_row. + "issue #256 - replacing char processing with regex + + DATA: pane_cell_row_a TYPE string. + + FIND REGEX '^(\D+)(\d+)$' IN i_columnrow SUBMATCHES e_column + pane_cell_row_a. + e_row = pane_cell_row_a. + +ENDMETHOD.