git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@222 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049
This commit is contained in:
Ivan Femia 2011-09-25 11:18:07 +00:00
parent 3f39940cb4
commit 358ecc4dc9
2 changed files with 24 additions and 19 deletions

View File

@ -155,32 +155,37 @@ endmethod.</source>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_COLUMN2INT" VERSION="1" LANGU="E" DESCRIPT="Convert column indicator to Integer" EXPOSURE="2" STATE="1" EDITORDER="3 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110528" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_COLUMN2INT" SCONAME="IP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110528" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN_ALPHA"/>
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_COLUMN2INT" SCONAME="EP_COLUMN" VERSION="1" LANGU="E" DESCRIPT="Cell Column" CMPTYPE="1" MTDTYPE="0" EDITORDER="2 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110528" PARDECLTYP="3" PARPASSTYP="0" TYPTYPE="1" TYPE="ZEXCEL_CELL_COLUMN"/>
<source>method CONVERT_COLUMN2INT.
<source>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. &quot;To avoid the first 26 column that have only a char in first position
ep_column = cl_abap_conv_out_ce=&gt;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=&gt;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=&gt;uccpi( lv_char ).
lv_factor = 26 ** ( 3 - sy-index ).
ep_column = ep_column + ( lv_uccpi MOD zcl_excel_common=&gt;c_excel_col_module ) * lv_factor.
ENDDO.
lv_uccpi = ( lv_uccpi MOD ( zcl_excel_common=&gt;c_excel_col_module ) ) * 26.
ep_column = ep_column + lv_uccpi.
ELSE.
lv_char = ip_column(1).
ep_column = cl_abap_conv_out_ce=&gt;uccpi( lv_char ).
ep_column = ep_column - zcl_excel_common=&gt;c_excel_col_module.
ENDIF.
endmethod.</source>
ENDMETHOD.</source>
</method>
<method CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_COLUMNROW2COLUMN_A_ROW" VERSION="1" LANGU="E" DESCRIPT="Convert ColumnRow i.e. AB34 to AB and 34" EXPOSURE="2" STATE="1" EDITORDER="4 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110528" MTDTYPE="0" MTDDECLTYP="1" R3RELEASE="702" BCMTDCAT="00" BCMTDSYN="0">
<parameter CLSNAME="ZCL_EXCEL_COMMON" CMPNAME="CONVERT_COLUMNROW2COLUMN_A_ROW" SCONAME="I_COLUMNROW" VERSION="1" LANGU="E" CMPTYPE="1" MTDTYPE="0" EDITORDER="1 " DISPID="0 " AUTHOR="FEMIA" CREATEDON="20110528" CHANGEDBY="FEMIA" CHANGEDON="20110528" PARDECLTYP="0" PARPASSTYP="1" TYPTYPE="1" TYPE="STRING"/>

View File

@ -1,4 +1,4 @@
<?xml version="1.0" encoding="utf-16"?>
<DTEL ROLLNAME="ZEXCEL_CELL_COLUMN_ALPHA" DDLANGUAGE="E" DOMNAME="CHAR2" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="06" SCRLEN2="11" SCRLEN3="11" DDTEXT="Cell Column" REPTEXT="Cell Column" SCRTEXT_S="Column" SCRTEXT_M="Cell Column" SCRTEXT_L="Cell Column" AUTHCLASS="00" AS4USER="FEMIA" AS4DATE="20100713" AS4TIME="205438" DTELMASTER="E" DATATYPE="CHAR" LENG="000002" DECIMALS="000000" OUTPUTLEN="000002" REFKIND="D">
<DTEL ROLLNAME="ZEXCEL_CELL_COLUMN_ALPHA" DDLANGUAGE="E" DOMNAME="CHAR3" ROUTPUTLEN="000000" HEADLEN="11" SCRLEN1="06" SCRLEN2="11" SCRLEN3="11" DDTEXT="Cell Column" REPTEXT="Cell Column" SCRTEXT_S="Column" SCRTEXT_M="Cell Column" SCRTEXT_L="Cell Column" AUTHCLASS="00" AS4USER="FEMIA" AS4DATE="20110925" AS4TIME="124214" DTELMASTER="E" DATATYPE="CHAR" LENG="000003" DECIMALS="000000" OUTPUTLEN="000003" REFKIND="D">
<tpara/>
</DTEL>