Merge pull request #492 from ivanfemia/Column-Row-Dimension-Fix

Column row dimension fix
This commit is contained in:
Ivan 2017-07-07 13:10:21 -05:00 committed by GitHub
commit f2390f6375
64 changed files with 2227 additions and 2922 deletions

View File

@ -22,8 +22,8 @@ DATA: lo_excel TYPE REF TO zcl_excel,
lo_style_color7 TYPE REF TO zcl_excel_style,
lo_style_credit TYPE REF TO zcl_excel_style,
lo_style_link TYPE REF TO zcl_excel_style,
lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi,
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
DATA: lv_style_color0_guid TYPE zexcel_cell_style,
@ -700,8 +700,8 @@ START-OF-SELECTION.
LOOP AT lt_mapper INTO ls_mapper.
lv_col_str = zcl_excel_common=>convert_column2alpha( lv_col ).
IF ls_mapper IS INITIAL.
lo_row_dimension = lo_worksheet->get_row_dimension( ip_row = lv_row ).
lo_row_dimension->set_row_height( ip_row_height = 8 ).
lo_row = lo_worksheet->get_row( ip_row = lv_row ).
lo_row->set_row_height( ip_row_height = 8 ).
lv_col = 1.
lv_row = lv_row + 1.
CONTINUE.
@ -712,8 +712,8 @@ START-OF-SELECTION.
ip_style = ls_mapper ).
lv_col = lv_col + 1.
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = lv_col_str ).
lo_column_dimension->set_width( ip_width = 2 ).
lo_column = lo_worksheet->get_column( ip_column = lv_col_str ).
lo_column->set_width( ip_width = 2 ).
ENDLOOP.
lo_worksheet->set_show_gridlines( i_show_gridlines = abap_false ).
@ -723,15 +723,15 @@ START-OF-SELECTION.
ip_value = 'Created with abap2xlsx'
ip_style = lv_style_credit_guid ).
lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'http://www.abap2xlsx.org' ).
lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'http://www.plinky.it/abap/abap2xlsx.php' ).
lo_worksheet->set_cell( ip_column = 'AP'
ip_row = 24
ip_value = 'http://www.abap2xlsx.org'
ip_value = 'http://www.plinky.it/abap/abap2xlsx.php'
ip_style = lv_style_link_guid
ip_hyperlink = lo_hyperlink ).
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'AP' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'AP' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_worksheet->set_merge( ip_row = 15 ip_column_start = 'AP' ip_row_to = 22 ip_column_end = 'AR' ).
lo_worksheet->set_merge( ip_row = 24 ip_column_start = 'AP' ip_row_to = 26 ip_column_end = 'AR' ).

View File

@ -14,12 +14,6 @@ public section.
data SECURITY type ref to ZCL_EXCEL_SECURITY .
data USE_TEMPLATE type XFELD .
methods SET_THEME
importing
!IO_THEME type ref to ZCL_EXCEL_THEME .
methods GET_THEME
exporting
!EO_THEME type ref to ZCL_EXCEL_THEME .
methods ADD_NEW_AUTOFILTER
importing
!IO_SHEET type ref to ZCL_EXCEL_WORKSHEET
@ -55,12 +49,12 @@ public section.
!IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET
raising
ZCX_EXCEL .
methods DELETE_WORKSHEET_BY_NAME
importing
!IV_TITLE type CLIKE .
methods DELETE_WORKSHEET_BY_INDEX
importing
!IV_INDEX type NUMERIC .
methods DELETE_WORKSHEET_BY_NAME
importing
!IV_TITLE type CLIKE .
methods GET_ACTIVE_SHEET_INDEX
returning
value(R_ACTIVE_WORKSHEET) type ZEXCEL_ACTIVE_WORKSHEET .
@ -107,6 +101,9 @@ public section.
value(EP_STYLEMAPPING) type ZEXCEL_S_STYLEMAPPING
raising
ZCX_EXCEL .
methods GET_THEME
exporting
!EO_THEME type ref to ZCL_EXCEL_THEME .
methods GET_WORKSHEETS_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
@ -116,16 +113,16 @@ public section.
methods GET_WORKSHEETS_SIZE
returning
value(EP_SIZE) type I .
methods GET_WORKSHEET_BY_NAME
importing
!IP_SHEET_NAME type ZEXCEL_SHEET_TITLE
returning
value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET .
methods GET_WORKSHEET_BY_INDEX
importing
!IV_INDEX type NUMERIC
returning
value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET .
methods GET_WORKSHEET_BY_NAME
importing
!IP_SHEET_NAME type ZEXCEL_SHEET_TITLE
returning
value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET .
methods SET_ACTIVE_SHEET_INDEX
importing
!I_ACTIVE_WORKSHEET type ZEXCEL_ACTIVE_WORKSHEET
@ -139,8 +136,9 @@ public section.
!IP_STYLE type ZEXCEL_CELL_STYLE
raising
ZCX_EXCEL .
*"* protected components of class ZCL_EXCEL
*"* do not include other source files here!!!
methods SET_THEME
importing
!IO_THEME type ref to ZCL_EXCEL_THEME .
protected section.
data WORKSHEETS type ref to ZCL_EXCEL_WORKSHEETS .
@ -159,6 +157,11 @@ private section.
data T_STYLEMAPPING2 type ZEXCEL_T_STYLEMAPPING2 .
data THEME type ref to ZCL_EXCEL_THEME .
methods GET_STYLE_FROM_GUID
importing
!IP_GUID type ZEXCEL_CELL_STYLE
returning
value(EO_STYLE) type ref to ZCL_EXCEL_STYLE .
methods STYLEMAPPING_DYNAMIC_STYLE
importing
!IP_STYLE type ref to ZCL_EXCEL_STYLE
@ -433,6 +436,23 @@ method GET_STYLES_ITERATOR.
endmethod.
METHOD get_style_from_guid.
DATA: lo_style TYPE REF TO zcl_excel_style,
lo_iterator TYPE REF TO cl_object_collection_iterator.
lo_iterator = styles->get_iterator( ).
WHILE lo_iterator->has_next( ) = abap_true.
lo_style ?= lo_iterator->get_next( ).
IF lo_style->get_guid( ) = ip_guid.
eo_style = lo_style.
RETURN.
ENDIF.
ENDWHILE.
ENDMETHOD.
method GET_STYLE_INDEX_IN_STYLES.
DATA: index TYPE syindex.
DATA: lo_iterator TYPE REF TO cl_object_collection_iterator,
@ -461,9 +481,9 @@ method GET_STYLE_INDEX_IN_STYLES.
endmethod.
method GET_STYLE_TO_GUID.
METHOD get_style_to_guid.
DATA: lo_style TYPE REF TO zcl_excel_style.
" # issue 139
READ TABLE me->t_stylemapping2 INTO ep_stylemapping WITH TABLE KEY guid = ip_guid.
IF sy-subrc <> 0.
RAISE EXCEPTION TYPE zcx_excel
@ -472,13 +492,12 @@ method GET_STYLE_TO_GUID.
ENDIF.
IF ep_stylemapping-dynamic_style_guid IS NOT INITIAL.
zcl_excel_common=>recursive_class_to_struct( EXPORTING i_source = ep_stylemapping-cl_style
lo_style = me->get_style_from_guid( ip_guid ).
zcl_excel_common=>recursive_class_to_struct( EXPORTING i_source = lo_style
CHANGING e_target = ep_stylemapping-complete_style
e_targetx = ep_stylemapping-complete_stylex ).
ENDIF.
endmethod.
ENDMETHOD.
method GET_THEME.
@ -595,7 +614,6 @@ method STYLEMAPPING_DYNAMIC_STYLE.
eo_style2-dynamic_style_guid = ip_style->get_guid( ).
eo_style2-guid = eo_style2-dynamic_style_guid.
eo_style2-added_to_iterator = abap_true.
eo_style2-cl_style = ip_style.
* don't care about attributes here, since this data may change
* dynamically

View File

@ -286,6 +286,12 @@
<LANGU>I</LANGU>
<DESCRIPT>Get styles iterator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL</CLSNAME>
<CMPNAME>GET_STYLE_FROM_GUID</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Return a style object from a GUID</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL</CLSNAME>
<CMPNAME>GET_STYLE_INDEX_IN_STYLES</CMPNAME>

View File

@ -35,9 +35,9 @@ public section.
value(R_SIZE) type I .
*"* protected components of class ZABAP_EXCEL_WORKSHEETS
*"* do not include other source files here!!!
protected section.
*"* private components of class ZCL_EXCEL_AUTOFILTERS
*"* protected components of class ZABAP_EXCEL_WORKSHEETS
*"* do not include other source files here!!!
protected section.
private section.
types:

View File

@ -1,9 +1,9 @@
class ZCL_EXCEL_WORKSHEET_COLUMNDIME definition
class ZCL_EXCEL_COLUMN definition
public
final
create public .
*"* public components of class ZCL_EXCEL_WORKSHEET_COLUMNDIME
*"* public components of class ZCL_EXCEL_COLUMN
*"* do not include other source files here!!!
public section.
type-pools ABAP .
@ -38,17 +38,17 @@ public section.
importing
!IP_AUTO_SIZE type ABAP_BOOL
returning
value(R_WORKSHEET_COLUMNDIME) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME .
value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods SET_COLLAPSED
importing
!IP_COLLAPSED type ABAP_BOOL
returning
value(R_WORKSHEET_COLUMNDIME) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME .
value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods SET_COLUMN_INDEX
importing
!IP_INDEX type ZEXCEL_CELL_COLUMN_ALPHA
returning
value(R_WORKSHEET_COLUMNDIME) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME .
value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods SET_OUTLINE_LEVEL
importing
!IP_OUTLINE_LEVEL type INT4 .
@ -56,19 +56,19 @@ public section.
importing
!IP_VISIBLE type ABAP_BOOL
returning
value(R_WORKSHEET_COLUMNDIME) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME .
value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods SET_WIDTH
importing
!IP_WIDTH type SIMPLE
returning
value(R_WORKSHEET_COLUMNDIME) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME
value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN
raising
ZCX_EXCEL .
methods SET_XF_INDEX
importing
!IP_XF_INDEX type INT4
returning
value(R_WORKSHEET_COLUMNDIME) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME .
value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods SET_COLUMN_STYLE_BY_GUID
importing
!IP_STYLE_GUID type ZEXCEL_CELL_STYLE
@ -79,10 +79,10 @@ public section.
value(EP_STYLE_GUID) type ZEXCEL_CELL_STYLE
raising
ZCX_EXCEL .
*"* protected components of class ZCL_EXCEL_WORKSHEET_COLUMNDIME
*"* protected components of class ZCL_EXCEL_COLUMN
*"* do not include other source files here!!!
protected section.
*"* private components of class ZCL_EXCEL_WORKSHEET_COLUMNDIME
*"* private components of class ZCL_EXCEL_COLUMN
*"* do not include other source files here!!!
private section.
@ -100,7 +100,7 @@ ENDCLASS.
CLASS ZCL_EXCEL_WORKSHEET_COLUMNDIME IMPLEMENTATION.
CLASS ZCL_EXCEL_COLUMN IMPLEMENTATION.
method CONSTRUCTOR.
@ -163,22 +163,22 @@ method GET_XF_INDEX.
endmethod.
method SET_AUTO_SIZE.
METHOD set_auto_size.
me->auto_size = ip_auto_size.
r_worksheet_columndime = me.
endmethod.
io_column = me.
ENDMETHOD.
method SET_COLLAPSED.
me->Collapsed = ip_Collapsed.
r_worksheet_columndime = me.
endmethod.
METHOD set_collapsed.
me->collapsed = ip_collapsed.
io_column = me.
ENDMETHOD.
method SET_COLUMN_INDEX.
METHOD set_column_index.
me->column_index = zcl_excel_common=>convert_column2int( ip_index ).
r_worksheet_columndime = me.
endmethod.
io_column = me.
ENDMETHOD.
method SET_COLUMN_STYLE_BY_GUID.
@ -205,26 +205,26 @@ method SET_OUTLINE_LEVEL.
endmethod.
method SET_VISIBLE.
me->Visible = ip_Visible.
r_worksheet_columndime = me.
endmethod.
METHOD set_visible.
me->visible = ip_visible.
io_column = me.
ENDMETHOD.
method SET_WIDTH.
METHOD set_width.
TRY.
me->width = ip_width.
r_worksheet_columndime = me.
io_column = me.
CATCH cx_sy_conversion_no_number.
RAISE EXCEPTION TYPE zcx_excel
EXPORTING
error = 'Unable to interpret width as number'.
ENDTRY.
endmethod.
ENDMETHOD.
method SET_XF_INDEX.
me->XF_INDEX = ip_XF_INDEX.
r_worksheet_columndime = me.
endmethod.
METHOD set_xf_index.
me->xf_index = ip_xf_index.
io_column = me.
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,94 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>Worksheet Column</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
<TPOOL/>
<DESCRIPTIONS>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
<CMPNAME>AUTO_SIZE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Auto size?</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
<CMPNAME>COLLAPSED</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Collapsed?</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
<CMPNAME>COLUMN_INDEX</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Column index</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
<CMPNAME>EXCEL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Excel creator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
<CMPNAME>GET_COLUMN_STYLE_GUID</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get guid of column style</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
<CMPNAME>OUTLINE_LEVEL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Outline level</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
<CMPNAME>SET_COLUMN_STYLE_BY_GUID</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Set column style by style guid</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
<CMPNAME>STYLE_GUID</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Style identifier</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
<CMPNAME>VISIBLE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Visible?</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
<CMPNAME>WIDTH</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Column width</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
<CMPNAME>WORKSHEET</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Worksheet</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
<CMPNAME>XF_INDEX</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Index to cellXf</DESCRIPT>
</SEOCOMPOTX>
</DESCRIPTIONS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -0,0 +1,87 @@
class ZCL_EXCEL_COLUMNS definition
public
final
create public .
*"* public components of class ZCL_EXCEL_COLUMNS
*"* do not include other source files here!!!
public section.
methods ADD
importing
!IO_COLUMN type ref to ZCL_EXCEL_COLUMN .
methods CLEAR .
methods CONSTRUCTOR .
methods GET
importing
!IP_INDEX type I
returning
value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods GET_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods IS_EMPTY
returning
value(IS_EMPTY) type FLAG .
methods REMOVE
importing
!IO_COLUMN type ref to ZCL_EXCEL_COLUMN .
methods SIZE
returning
value(EP_SIZE) type I .
*"* protected components of class ZABAP_EXCEL_WORKSHEETS
*"* do not include other source files here!!!
protected section.
*"* private components of class ZABAP_EXCEL_RANGES
*"* do not include other source files here!!!
private section.
data COLUMNS type ref to CL_OBJECT_COLLECTION .
ENDCLASS.
CLASS ZCL_EXCEL_COLUMNS IMPLEMENTATION.
METHOD add.
columns->add( io_column ).
ENDMETHOD.
METHOD clear.
columns->clear( ).
ENDMETHOD.
METHOD constructor.
CREATE OBJECT columns.
ENDMETHOD.
METHOD get.
eo_column ?= columns->if_object_collection~get( ip_index ).
ENDMETHOD.
METHOD get_iterator.
eo_iterator ?= columns->if_object_collection~get_iterator( ).
ENDMETHOD.
METHOD is_empty.
is_empty = columns->if_object_collection~is_empty( ).
ENDMETHOD.
METHOD remove.
columns->remove( io_column ).
ENDMETHOD.
METHOD size.
ep_size = columns->if_object_collection~size( ).
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>Ranges collection</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
<TPOOL/>
<DESCRIPTIONS>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
<CMPNAME>ADD</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Adds an Element to the Collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
<CMPNAME>CLEAR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Initializes the Collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
<CMPNAME>CONSTRUCTOR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>CONSTRUCTOR</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
<CMPNAME>GET</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Gets Element</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
<CMPNAME>GET_ITERATOR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Returns an iterator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
<CMPNAME>IS_EMPTY</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Checks whether elements are contained</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
<CMPNAME>REMOVE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Deletes an Element from the Collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
<CMPNAME>SIZE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Specifies number of contained elements</DESCRIPT>
</SEOCOMPOTX>
</DESCRIPTIONS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -198,9 +198,9 @@ public section.
ZCX_EXCEL .
*"* protected components of class ZCL_EXCEL_COMMON
*"* do not include other source files here!!!
protected section.
*"* private components of class ZCL_EXCEL_COMMON
*"* protected components of class ZCL_EXCEL_COMMON
*"* do not include other source files here!!!
protected section.
private section.
class-data C_EXCEL_COL_MODULE type INT2 value 64. "#EC NOTEXT . . . . . . . . . . . . . . . " .

View File

@ -246,42 +246,29 @@ ENDCLASS.
CLASS ZCL_EXCEL_CONVERTER IMPLEMENTATION.
method ASK_OPTION.
METHOD ask_option.
DATA: ls_sval TYPE sval,
lt_sval TYPE STANDARD TABLE OF sval,
l_returncode TYPE string,
lt_fields TYPE ddfields,
ls_fields TYPE dfies.
FIELD-SYMBOLS: <fs> TYPE ANY.
FIELD-SYMBOLS: <fs> TYPE any.
rs_option = ws_option.
CALL FUNCTION 'DDIF_FIELDINFO_GET'
EXPORTING
tabname = 'ZEXCEL_S_CONVERTER_OPTION'
* FIELDNAME = ' '
* LANGU = sy-langu
* LFIELDNAME = ' '
* ALL_TYPES = ' '
* GROUP_NAMES = ' '
* UCLEN =
* IMPORTING
* X030L_WA =
* DDOBJTYPE =
* DFIES_WA =
* LINES_DESCR =
TABLES
dfies_tab = lt_fields
* FIXED_VALUES =
EXCEPTIONS
not_found = 1
internal_error = 2
OTHERS = 3
.
OTHERS = 3.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
LOOP AT lt_fields INTO ls_fields.
@ -304,21 +291,17 @@ method ASK_OPTION.
CALL FUNCTION 'POPUP_GET_VALUES'
EXPORTING
* NO_VALUE_CHECK = space
popup_title = 'Excel creation options'(008)
* START_COLUMN = '5'
* START_ROW = '5'
IMPORTING
returncode = l_returncode
TABLES
fields = lt_sval
EXCEPTIONS
error_in_fields = 1
OTHERS = 2
.
OTHERS = 2.
IF sy-subrc <> 0.
* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO
* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ELSE.
IF l_returncode = 'A'.
RAISE EXCEPTION TYPE zcx_excel.
@ -333,7 +316,7 @@ method ASK_OPTION.
rs_option = ws_option.
ENDIF.
ENDIF.
endmethod.
ENDMETHOD.
method BIND_CELLS.
@ -351,66 +334,67 @@ method BIND_CELLS.
endmethod.
method BIND_TABLE.
data: lt_field_catalog type zexcel_t_fieldcatalog,
ls_field_catalog type zexcel_s_fieldcatalog,
ls_fcat type zexcel_s_converter_fcat,
lo_col_dim type ref to zcl_excel_worksheet_columndime,
l_col_int type zexcel_cell_column,
l_col_alpha type zexcel_cell_column_alpha,
ls_settings type zexcel_s_table_settings,
l_line type i.
METHOD bind_table.
DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_field_catalog TYPE zexcel_s_fieldcatalog,
ls_fcat TYPE zexcel_s_converter_fcat,
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row,
lv_col_int TYPE zexcel_cell_column,
lv_col_alpha TYPE zexcel_cell_column_alpha,
ls_settings TYPE zexcel_s_table_settings,
lv_line TYPE i.
field-symbols: <fs_tab> type any table.
FIELD-SYMBOLS: <fs_tab> TYPE ANY TABLE.
assign wo_data->* to <fs_tab> .
ASSIGN wo_data->* TO <fs_tab> .
ls_settings-table_style = i_style_table.
ls_settings-top_left_column = zcl_excel_common=>convert_column2alpha( ip_column = w_col_int ).
ls_settings-top_left_row = w_row_int.
ls_settings-show_row_stripes = ws_layout-is_stripped.
describe table wt_fieldcatalog lines l_line.
l_line = l_line + 1 + w_col_int.
ls_settings-bottom_right_column = zcl_excel_common=>convert_column2alpha( ip_column = l_line ).
DESCRIBE TABLE wt_fieldcatalog LINES lv_line.
lv_line = lv_line + 1 + w_col_int.
ls_settings-bottom_right_column = zcl_excel_common=>convert_column2alpha( ip_column = lv_line ).
describe table <fs_tab> lines l_line.
ls_settings-bottom_right_row = l_line + 1 + w_row_int.
sort wt_fieldcatalog by position.
loop at wt_fieldcatalog into ls_fcat.
move-corresponding ls_fcat to ls_field_catalog.
DESCRIBE TABLE <fs_tab> LINES lv_line.
ls_settings-bottom_right_row = lv_line + 1 + w_row_int.
SORT wt_fieldcatalog BY position.
LOOP AT wt_fieldcatalog INTO ls_fcat.
MOVE-CORRESPONDING ls_fcat TO ls_field_catalog.
ls_field_catalog-dynpfld = abap_true.
insert ls_field_catalog into table lt_field_catalog.
endloop.
INSERT ls_field_catalog INTO TABLE lt_field_catalog.
ENDLOOP.
wo_worksheet->bind_table(
exporting
EXPORTING
ip_table = <fs_tab>
it_field_catalog = lt_field_catalog
is_table_settings = ls_settings
importing
IMPORTING
es_table_settings = ls_settings
).
loop at wt_fieldcatalog into ls_fcat.
l_col_int = w_col_int + ls_fcat-position - 1.
l_col_alpha = zcl_excel_common=>convert_column2alpha( l_col_int ).
LOOP AT wt_fieldcatalog INTO ls_fcat.
lv_col_int = w_col_int + ls_fcat-position - 1.
lv_col_alpha = zcl_excel_common=>convert_column2alpha( lv_col_int ).
* Freeze panes
if ls_fcat-fix_column = abap_true.
add 1 to r_freeze_col.
endif.
IF ls_fcat-fix_column = abap_true.
ADD 1 TO r_freeze_col.
ENDIF.
* Now let's check for optimized
if ls_fcat-is_optimized = abap_true.
lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
lo_col_dim->set_auto_size( ip_auto_size = abap_true ) .
endif.
IF ls_fcat-is_optimized = abap_true.
lo_column = wo_worksheet->get_column( ip_column = lv_col_alpha ).
lo_column->set_auto_size( ip_auto_size = abap_true ) .
ENDIF.
* Now let's check for visible
if ls_fcat-is_hidden = abap_true.
lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
lo_col_dim->set_visible( ip_visible = abap_false ) .
endif.
endloop.
IF ls_fcat-is_hidden = abap_true.
lo_column = wo_worksheet->get_column( ip_column = lv_col_alpha ).
lo_column->set_visible( ip_visible = abap_false ) .
ENDIF.
ENDLOOP.
endmethod.
ENDMETHOD.
method CLASS_CONSTRUCTOR.
@ -1158,7 +1142,8 @@ method LOOP_NORMAL.
l_col_alpha TYPE zexcel_cell_column_alpha,
l_cell_value TYPE zexcel_cell_value,
l_s_color TYPE abap_bool,
lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime,
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row,
l_formula TYPE zexcel_cell_formula,
l_style TYPE zexcel_cell_style,
l_cells TYPE i,
@ -1238,13 +1223,13 @@ method LOOP_NORMAL.
ENDLOOP.
* Now let's check for optimized
IF <fs_sfcat>-is_optimized = abap_true .
lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
lo_col_dim->set_auto_size( ip_auto_size = abap_true ) .
lo_column = wo_worksheet->get_column( ip_column = l_col_alpha ).
lo_column->set_auto_size( ip_auto_size = abap_true ) .
ENDIF.
* Now let's check for visible
IF <fs_sfcat>-is_hidden = abap_true.
lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
lo_col_dim->set_visible( ip_visible = abap_false ) .
lo_column = wo_worksheet->get_column( ip_column = l_col_alpha ).
lo_column->set_visible( ip_visible = abap_false ) .
ENDIF.
* Now let's check for total versus subtotal.
IF <fs_sfcat>-totals_function IS NOT INITIAL.
@ -1272,8 +1257,8 @@ method LOOP_SUBTOTAL.
l_col_alpha_start TYPE zexcel_cell_column_alpha,
l_cell_value TYPE zexcel_cell_value,
l_s_color TYPE abap_bool,
lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime,
lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi,
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row,
l_formula TYPE zexcel_cell_formula,
l_style TYPE zexcel_cell_style,
l_text TYPE string,
@ -1361,13 +1346,13 @@ method LOOP_SUBTOTAL.
ip_value = l_cell_value
ip_abap_type = cl_abap_typedescr=>typekind_string
ip_style = <fs_sfcat>-style_subtotal ).
lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ).
lo_row_dim->set_outline_level( ip_outline_level = <fs_sfcat>-sort_level ) .
lo_row = wo_worksheet->get_row( ip_row = l_row_int ).
lo_row->set_outline_level( ip_outline_level = <fs_sfcat>-sort_level ) .
IF <fs_sfcat>-is_collapsed = abap_true.
IF <fs_sfcat>-sort_level > l_hidden.
lo_row_dim->set_visible( ip_visible = abap_false ) .
lo_row->set_visible( ip_visible = abap_false ) .
ENDIF.
lo_row_dim->set_collapsed( ip_collapsed = <fs_sfcat>-is_collapsed ) .
lo_row->set_collapsed( ip_collapsed = <fs_sfcat>-is_collapsed ) .
ENDIF.
* Now let's change the key
ADD 1 TO l_row_int.
@ -1405,21 +1390,21 @@ method LOOP_SUBTOTAL.
ip_style = <fs_sfcat>-style_subtotal ).
l_sort_level = <fs_sfcat>-sort_level.
lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ).
lo_row_dim->set_outline_level( ip_outline_level = l_sort_level ) .
lo_row = wo_worksheet->get_row( ip_row = l_row_int ).
lo_row->set_outline_level( ip_outline_level = l_sort_level ) .
IF <fs_sfcat>-is_collapsed = abap_true.
IF <fs_sfcat>-sort_level > l_hidden.
lo_row_dim->set_visible( ip_visible = abap_false ) .
lo_row->set_visible( ip_visible = abap_false ) .
ENDIF.
lo_row_dim->set_collapsed( ip_collapsed = <fs_sfcat>-is_collapsed ) .
lo_row->set_collapsed( ip_collapsed = <fs_sfcat>-is_collapsed ) .
ENDIF.
ADD 1 TO l_row_int.
ENDIF.
ENDLOOP.
* Let's write the Grand total
l_sort_level = 0.
lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ).
lo_row_dim->set_outline_level( ip_outline_level = l_sort_level ) .
lo_row = wo_worksheet->get_row( ip_row = l_row_int ).
lo_row->set_outline_level( ip_outline_level = l_sort_level ) .
* lo_row_dim->set_collapsed( ip_collapsed = <fs_sfcat>-is_collapsed ) . Not on grand total
l_text = create_text_subtotal( i_value = 'Grand'(002)
@ -1476,10 +1461,10 @@ method LOOP_SUBTOTAL.
ip_formula = l_formula
ip_style = <fs_sfcat>-style_subtotal ).
IF <fs_sfcat>-is_collapsed = abap_true.
lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ).
lo_row_dim->set_collapsed( ip_collapsed = <fs_sfcat>-is_collapsed ).
lo_row = wo_worksheet->get_row( ip_row = l_row_int ).
lo_row->set_collapsed( ip_collapsed = <fs_sfcat>-is_collapsed ).
IF <fs_sfcat>-sort_level > l_hidden.
lo_row_dim->set_visible( ip_visible = abap_false ) .
lo_row->set_visible( ip_visible = abap_false ) .
ENDIF.
ENDIF.
ADD 1 TO l_row_int.
@ -1495,11 +1480,11 @@ method LOOP_SUBTOTAL.
ENDIF.
ENDDO.
* Let's set the row dimension values
lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ).
lo_row_dim->set_outline_level( ip_outline_level = ws_layout-max_subtotal_level ) .
lo_row = wo_worksheet->get_row( ip_row = l_row_int ).
lo_row->set_outline_level( ip_outline_level = ws_layout-max_subtotal_level ) .
IF <fs_sfcat>-is_collapsed = abap_true.
lo_row_dim->set_visible( ip_visible = abap_false ) .
lo_row_dim->set_collapsed( ip_collapsed = <fs_sfcat>-is_collapsed ) .
lo_row->set_visible( ip_visible = abap_false ) .
lo_row->set_collapsed( ip_collapsed = <fs_sfcat>-is_collapsed ) .
ENDIF.
* Now let's write the cell values
IF ws_layout-is_stripped = abap_true AND l_s_color = abap_true.
@ -1555,8 +1540,8 @@ method LOOP_SUBTOTAL.
ip_formula = l_formula
ip_style = <fs_sfcat>-style_subtotal ).
IF <fs_sfcat>-is_collapsed = abap_true.
lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ).
lo_row_dim->set_collapsed( ip_collapsed = <fs_sfcat>-is_collapsed ).
lo_row = wo_worksheet->get_row( ip_row = l_row_int ).
lo_row->set_collapsed( ip_collapsed = <fs_sfcat>-is_collapsed ).
ENDIF.
ADD 1 TO l_row_int.
ELSE.
@ -1587,13 +1572,13 @@ method LOOP_SUBTOTAL.
ENDIF.
* Now let's check for optimized
IF <fs_sfcat>-is_optimized = abap_true.
lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
lo_col_dim->set_auto_size( ip_auto_size = abap_true ) .
lo_column = wo_worksheet->get_column( ip_column = l_col_alpha ).
lo_column->set_auto_size( ip_auto_size = abap_true ) .
ENDIF.
* Now let's check for visible
IF <fs_sfcat>-is_hidden = abap_true.
lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
lo_col_dim->set_visible( ip_visible = abap_false ) .
lo_column = wo_worksheet->get_column( ip_column = l_col_alpha ).
lo_column->set_visible( ip_visible = abap_false ) .
ENDIF.
ENDLOOP.

View File

@ -14,6 +14,8 @@ public section.
redefinition .
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_EX
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_EX
*"* do not include other source files here!!!
protected section.
*"* private components of class ZCL_EXCEL_CONVERTER_EX_RESULT
*"* do not include other source files here!!!

View File

@ -14,9 +14,9 @@ public section.
redefinition .
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_WD
*"* do not include other source files here!!!
protected section.
*"* private components of class ZCL_EXCEL_CONVERTER_RESULT_WD
*"* protected components of class ZCL_EXCEL_CONVERTER_RESULT_WD
*"* do not include other source files here!!!
protected section.
private section.
data WO_CONFIG type ref to CL_SALV_WD_CONFIG_TABLE .

View File

@ -14,9 +14,9 @@ public section.
redefinition .
*"* protected components of class ZCL_EXCEL_CONVERTER_SALV_TABLE
*"* do not include other source files here!!!
protected section.
*"* private components of class ZCL_EXCEL_CONVERTER_SALV_TABLE
*"* protected components of class ZCL_EXCEL_CONVERTER_SALV_TABLE
*"* do not include other source files here!!!
protected section.
private section.
methods LOAD_DATA

View File

@ -118,6 +118,8 @@ public section.
value(IP_CHART) type ref to IF_IXML_DOCUMENT .
*"* protected components of class ZCL_EXCEL_DRAWING
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_DRAWING
*"* do not include other source files here!!!
protected section.
private section.

View File

@ -188,31 +188,31 @@ protected section.
methods LOAD_WORKSHEET_COND_FORMAT_AA
importing
!IO_IXML_RULE type ref to IF_IXML_ELEMENT
!IO_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL .
!IO_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND.
methods LOAD_WORKSHEET_COND_FORMAT_CI
importing
!IO_IXML_RULE type ref to IF_IXML_ELEMENT
!IO_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL .
!IO_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND .
methods LOAD_WORKSHEET_COND_FORMAT_CS
importing
!IO_IXML_RULE type ref to IF_IXML_ELEMENT
!IO_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL .
!IO_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND .
methods LOAD_WORKSHEET_COND_FORMAT_EX
importing
!IO_IXML_RULE type ref to IF_IXML_ELEMENT
!IO_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL .
!IO_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND .
methods LOAD_WORKSHEET_COND_FORMAT_IS
importing
!IO_IXML_RULE type ref to IF_IXML_ELEMENT
!IO_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL .
!IO_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND .
methods LOAD_WORKSHEET_COND_FORMAT_DB
importing
!IO_IXML_RULE type ref to IF_IXML_ELEMENT
!IO_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL .
!IO_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND .
methods LOAD_WORKSHEET_COND_FORMAT_T10
importing
!IO_IXML_RULE type ref to IF_IXML_ELEMENT
!IO_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL .
!IO_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND .
methods LOAD_WORKSHEET_DRAWING
importing
!IP_PATH type STRING
@ -304,9 +304,7 @@ METHOD fill_row_outlines.
END OF lts_row_data,
ltt_row_data TYPE SORTED TABLE OF lts_row_data WITH UNIQUE KEY row.
DATA: lt_row_dimensions TYPE zexcel_t_worksheet_rowdimensio,
lt_row_data TYPE ltt_row_data,
DATA: lt_row_data TYPE ltt_row_data,
ls_row_data LIKE LINE OF lt_row_data,
lt_collapse_rows TYPE HASHED TABLE OF i WITH UNIQUE KEY table_line,
@ -316,30 +314,29 @@ METHOD fill_row_outlines.
lv_next_consecutive_row TYPE i,
lt_outline_rows TYPE zcl_excel_worksheet=>mty_ts_outlines_row,
ls_outline_row LIKE LINE OF lt_outline_rows,
lo_row TYPE REF TO zcl_excel_row,
lo_row_iterator TYPE REF TO cl_object_collection_iterator,
lv_row_offset TYPE i,
lv_row_collapse_flag TYPE i.
FIELD-SYMBOLS: <ls_row_dimension> LIKE LINE OF lt_row_dimensions,
<ls_row_data> LIKE LINE OF lt_row_data.
FIELD-SYMBOLS: <ls_row_data> LIKE LINE OF lt_row_data.
* First collect information about outlines ( outline leven and collapsed state )
lt_row_dimensions = io_worksheet->get_row_dimensions( ).
LOOP AT lt_row_dimensions ASSIGNING <ls_row_dimension>.
ls_row_data-row = <ls_row_dimension>-row.
ls_row_data-outline_level = <ls_row_dimension>-row_dimension->get_outline_level( ).
lo_row_iterator = io_worksheet->get_rows_iterator( ).
WHILE lo_row_iterator->has_next( ) = abap_true.
lo_row ?= lo_row_iterator->get_next( ).
ls_row_data-row = lo_row->get_row_index( ).
ls_row_data-outline_level = lo_row->get_outline_level( ).
IF ls_row_data-outline_level IS NOT INITIAL.
INSERT ls_row_data INTO TABLE lt_row_data.
ENDIF.
lv_collapsed = <ls_row_dimension>-row_dimension->get_collapsed( ).
lv_collapsed = lo_row->get_collapsed( ).
IF lv_collapsed = abap_true.
INSERT <ls_row_dimension>-row INTO TABLE lt_collapse_rows.
INSERT lo_row->get_row_index( ) INTO TABLE lt_collapse_rows.
ENDIF.
ENDLOOP.
ENDWHILE.
* Now parse this information - we need consecutive rows - any gap will create a new outline
DO 7 TIMES. " max number of outlines allowed
@ -387,12 +384,14 @@ METHOD fill_row_outlines.
ENDLOOP.
* Finally purge outline information ( collapsed state, outline leve) from row_dimensions, since we want to keep these in the outline-table
LOOP AT lt_row_dimensions ASSIGNING <ls_row_dimension>.
lo_row_iterator = io_worksheet->get_rows_iterator( ).
WHILE lo_row_iterator->has_next( ) = abap_true.
lo_row ?= lo_row_iterator->get_next( ).
<ls_row_dimension>-row_dimension->set_outline_level( 0 ).
<ls_row_dimension>-row_dimension->set_collapsed( abap_false ).
lo_row->set_outline_level( 0 ).
lo_row->set_collapsed( abap_false ).
ENDLOOP.
ENDWHILE.
ENDMETHOD.
@ -2255,7 +2254,7 @@ METHOD load_worksheet.
lo_ixml_column_elem TYPE REF TO if_ixml_element,
ls_column TYPE lty_column,
lv_column_alpha TYPE zexcel_cell_column_alpha,
lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lo_column TYPE REF TO zcl_excel_column,
lv_outline_level TYPE int4,
lo_ixml_tabcolor TYPE REF TO if_ixml_element,
@ -2268,7 +2267,7 @@ METHOD load_worksheet.
* lv_min_col TYPE i, "for use with SPANS element " not in use currently
lv_max_col_s TYPE char10, "for use with SPANS element
lv_min_col_s TYPE char10, "for use with SPANS element
lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi,
lo_row TYPE REF TO zcl_excel_row,
*--- End of current code aligning -------------------------------------------------------------------
lv_path TYPE string,
@ -2392,19 +2391,19 @@ METHOD load_worksheet.
OR ls_row-hidden = lc_xml_attr_true
OR ls_row-hidden = lc_xml_attr_true_int
OR ls_row-outlinelevel > '0'.
lo_row_dimension = io_worksheet->get_row_dimension( lv_cell_row ).
lo_row = io_worksheet->get_row( lv_cell_row ).
IF ls_row-customheight = '1'.
lo_row_dimension->set_row_height( ls_row-ht ).
lo_row->set_row_height( ls_row-ht ).
ENDIF.
IF ls_row-collapsed = lc_xml_attr_true
OR ls_row-collapsed = lc_xml_attr_true_int.
lo_row_dimension->set_collapsed( abap_true ).
lo_row->set_collapsed( abap_true ).
ENDIF.
IF ls_row-hidden = lc_xml_attr_true
OR ls_row-hidden = lc_xml_attr_true_int.
lo_row_dimension->set_visible( abap_false ).
lo_row->set_visible( abap_false ).
ENDIF.
IF ls_row-outlinelevel > ''.
@ -2412,7 +2411,7 @@ METHOD load_worksheet.
CONDENSE ls_row-outlinelevel.
lv_outline_level = ls_row-outlinelevel.
IF lv_outline_level > 0.
lo_row_dimension->set_outline_level( lv_outline_level ).
lo_row->set_outline_level( lv_outline_level ).
ENDIF.
ENDIF.
ENDIF.
@ -2557,27 +2556,27 @@ METHOD load_worksheet.
WHILE lv_index <= ls_column-max AND lv_index <= lv_max_col.
lv_column_alpha = zcl_excel_common=>convert_column2alpha( lv_index ).
lo_column_dimension = io_worksheet->get_column_dimension( lv_column_alpha ).
lo_column = io_worksheet->get_column( lv_column_alpha ).
IF ls_column-customwidth = lc_xml_attr_true
OR ls_column-customwidth = lc_xml_attr_true_int
OR ls_column-width IS NOT INITIAL. "+#234
lo_column_dimension->set_width( ls_column-width ).
lo_column->set_width( ls_column-width ).
ENDIF.
IF ls_column-bestfit = lc_xml_attr_true
OR ls_column-bestfit = lc_xml_attr_true_int.
lo_column_dimension->set_auto_size( abap_true ).
lo_column->set_auto_size( abap_true ).
ENDIF.
IF ls_column-collapsed = lc_xml_attr_true
OR ls_column-collapsed = lc_xml_attr_true_int.
lo_column_dimension->set_collapsed( abap_true ).
lo_column->set_collapsed( abap_true ).
ENDIF.
IF ls_column-hidden = lc_xml_attr_true
OR ls_column-hidden = lc_xml_attr_true_int.
lo_column_dimension->set_visible( abap_false ).
lo_column->set_visible( abap_false ).
ENDIF.
IF ls_column-outlinelevel > ''.
@ -2585,7 +2584,7 @@ METHOD load_worksheet.
CONDENSE ls_column-outlinelevel.
lv_outline_level = ls_column-outlinelevel.
IF lv_outline_level > 0.
lo_column_dimension->set_outline_level( lv_outline_level ).
lo_column->set_outline_level( lv_outline_level ).
ENDIF.
ENDIF.
@ -2594,7 +2593,7 @@ METHOD load_worksheet.
READ TABLE styles INTO lo_excel_style INDEX sy-index.
DATA: dummy_zexcel_cell_style TYPE zexcel_cell_style.
dummy_zexcel_cell_style = lo_excel_style->get_guid( ).
lo_column_dimension->set_column_style_by_guid( dummy_zexcel_cell_style ).
lo_column->set_column_style_by_guid( dummy_zexcel_cell_style ).
ENDIF.
ADD 1 TO lv_index.
@ -2662,8 +2661,8 @@ METHOD load_worksheet.
fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_sheetformatpr_elem CHANGING cp_structure = ls_sheetformatpr ).
IF ls_sheetformatpr-customheight = '1'.
lv_height = ls_sheetformatpr-defaultrowheight.
lo_row_dimension = io_worksheet->get_default_row_dimension( ).
lo_row_dimension->set_row_height( lv_height ).
lo_row = io_worksheet->get_default_row( ).
lo_row->set_row_height( lv_height ).
ENDIF.
" TODO... column
@ -2858,8 +2857,8 @@ METHOD load_worksheet_cond_format.
lo_ixml_rules TYPE REF TO if_ixml_node_collection,
lo_ixml_rule TYPE REF TO if_ixml_element,
lo_ixml_iterator2 TYPE REF TO if_ixml_node_iterator,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional,
lo_style_conditional2 TYPE REF TO zcl_excel_style_conditional.
lo_style_cond TYPE REF TO zcl_excel_style_cond,
lo_style_cond2 TYPE REF TO zcl_excel_style_cond.
DATA: lv_area TYPE string,
@ -2881,7 +2880,7 @@ METHOD load_worksheet_cond_format.
CLEAR: lv_area,
lo_ixml_rule,
lo_style_conditional.
lo_style_cond.
*--------------------------------------------------------------------*
@ -2890,63 +2889,56 @@ METHOD load_worksheet_cond_format.
lo_ixml_rules = io_ixml_worksheet->get_elements_by_tag_name( name = 'cfRule' ).
lo_ixml_iterator2 = lo_ixml_rules->create_iterator( ).
lo_ixml_rule ?= lo_ixml_iterator2->get_next( ).
* IF lo_ixml_rule IS BOUND.
WHILE lo_ixml_rule IS BOUND.
lv_rule = lo_ixml_rule->get_attribute_ns( 'type' ).
CLEAR lo_style_conditional.
CLEAR lo_style_cond.
*--------------------------------------------------------------------*
* Depending on ruletype get additional information
*--------------------------------------------------------------------*
CASE lv_rule.
WHEN zcl_excel_style_conditional=>c_rule_cellis.
lo_style_conditional = io_worksheet->add_new_conditional_style( ).
WHEN zcl_excel_style_cond=>c_rule_cellis.
lo_style_cond = io_worksheet->add_new_style_cond( ).
load_worksheet_cond_format_ci( io_ixml_rule = lo_ixml_rule
io_style_conditional = lo_style_conditional ).
io_style_cond = lo_style_cond ).
* WHEN zcl_excel_style_conditional=>c_rule_containstext.
*
WHEN zcl_excel_style_conditional=>c_rule_databar.
lo_style_conditional = io_worksheet->add_new_conditional_style( ).
WHEN zcl_excel_style_cond=>c_rule_databar.
lo_style_cond = io_worksheet->add_new_style_cond( ).
load_worksheet_cond_format_db( io_ixml_rule = lo_ixml_rule
io_style_conditional = lo_style_conditional ).
io_style_cond = lo_style_cond ).
WHEN zcl_excel_style_conditional=>c_rule_expression.
lo_style_conditional = io_worksheet->add_new_conditional_style( ).
WHEN zcl_excel_style_cond=>c_rule_expression.
lo_style_cond = io_worksheet->add_new_style_cond( ).
load_worksheet_cond_format_ex( io_ixml_rule = lo_ixml_rule
io_style_conditional = lo_style_conditional ).
io_style_cond = lo_style_cond ).
WHEN zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional = io_worksheet->add_new_conditional_style( ).
WHEN zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond = io_worksheet->add_new_style_cond( ).
load_worksheet_cond_format_is( io_ixml_rule = lo_ixml_rule
io_style_conditional = lo_style_conditional ).
io_style_cond = lo_style_cond ).
WHEN zcl_excel_style_conditional=>c_rule_colorscale.
lo_style_conditional = io_worksheet->add_new_conditional_style( ).
WHEN zcl_excel_style_cond=>c_rule_colorscale.
lo_style_cond = io_worksheet->add_new_style_cond( ).
load_worksheet_cond_format_cs( io_ixml_rule = lo_ixml_rule
io_style_conditional = lo_style_conditional ).
io_style_cond = lo_style_cond ).
WHEN zcl_excel_style_conditional=>c_rule_top10.
lo_style_conditional = io_worksheet->add_new_conditional_style( ).
WHEN zcl_excel_style_cond=>c_rule_top10.
lo_style_cond = io_worksheet->add_new_style_cond( ).
load_worksheet_cond_format_t10( io_ixml_rule = lo_ixml_rule
io_style_conditional = lo_style_conditional ).
io_style_cond = lo_style_cond ).
WHEN zcl_excel_style_conditional=>c_rule_above_average.
lo_style_conditional = io_worksheet->add_new_conditional_style( ).
WHEN zcl_excel_style_cond=>c_rule_above_average.
lo_style_cond = io_worksheet->add_new_style_cond( ).
load_worksheet_cond_format_aa( io_ixml_rule = lo_ixml_rule
io_style_conditional = lo_style_conditional ).
* WHEN zcl_excel_style_conditional=>c_rule_none.
*
io_style_cond = lo_style_cond ).
WHEN OTHERS.
ENDCASE.
* ENDIF.
IF lo_style_conditional IS BOUND.
lo_style_conditional->rule = lv_rule.
lo_style_conditional->priority = lo_ixml_rule->get_attribute_ns( 'priority' ).
IF lo_style_cond IS BOUND.
lo_style_cond->rule = lv_rule.
lo_style_cond->priority = lo_ixml_rule->get_attribute_ns( 'priority' ).
*--------------------------------------------------------------------*
* Set area to which conditional formatting belongs
*--------------------------------------------------------------------*
@ -2954,33 +2946,13 @@ METHOD load_worksheet_cond_format.
SPLIT lv_area AT space INTO TABLE lt_areas.
DELETE lt_areas WHERE table_line IS INITIAL.
LOOP AT lt_areas INTO lv_area.
* IF sy-tabix = 1. " Add futher style for next area
* lo_style_conditional2 = lo_style_conditional.
* ELSE.
* lo_style_conditional2 = io_worksheet->add_new_conditional_style( ).
* lo_style_conditional2->mode_cellis = lo_style_conditional->mode_cellis .
* lo_style_conditional2->mode_colorscale = lo_style_conditional->mode_colorscale .
* lo_style_conditional2->mode_databar = lo_style_conditional->mode_databar .
* lo_style_conditional2->mode_expression = lo_style_conditional->mode_expression .
* lo_style_conditional2->mode_iconset = lo_style_conditional->mode_iconset .
* lo_style_conditional2->mode_top10 = lo_style_conditional->mode_top10 .
* lo_style_conditional2->mode_above_average = lo_style_conditional->mode_above_average.
* lo_style_conditional2->priority = lo_style_conditional->priority .
* lo_style_conditional2->rule = lo_style_conditional->rule .
* ENDIF.
zcl_excel_common=>convert_range2column_a_row( EXPORTING
i_range = lv_area
IMPORTING
e_column_start = lv_area_start_col
zcl_excel_common=>convert_range2column_a_row( EXPORTING i_range = lv_area
IMPORTING e_column_start = lv_area_start_col
e_column_end = lv_area_end_col
e_row_start = lv_area_start_row
e_row_end = lv_area_end_row ).
* lo_style_conditional2->set_range( ip_start_column = lv_area_start_col
* ip_stop_column = lv_area_end_col
* ip_start_row = lv_area_start_row
* ip_stop_row = lv_area_end_row ).
lo_style_conditional->add_range( ip_start_column = lv_area_start_col
lo_style_cond->add_range( ip_start_column = lv_area_start_col
ip_stop_column = lv_area_end_col
ip_start_row = lv_area_start_row
ip_stop_row = lv_area_end_row ).
@ -3009,9 +2981,9 @@ METHOD load_worksheet_cond_format_aa.
*--------------------------------------------------------------------*
val = io_ixml_rule->get_attribute_ns( 'aboveAverage' ).
IF val = '0'. " 0 = below average
io_style_conditional->mode_above_average-above_average = space.
io_style_cond->mode_above_average-above_average = space.
ELSE.
io_style_conditional->mode_above_average-above_average = 'X'. " Not present or <> 0 --> we use above average
io_style_cond->mode_above_average-above_average = 'X'. " Not present or <> 0 --> we use above average
ENDIF.
*--------------------------------------------------------------------*
@ -3020,9 +2992,9 @@ METHOD load_worksheet_cond_format_aa.
CLEAR val.
val = io_ixml_rule->get_attribute_ns( 'equalAverage' ).
IF val = '1'. " 0 = below average
io_style_conditional->mode_above_average-equal_average = 'X'.
io_style_cond->mode_above_average-equal_average = 'X'.
ELSE.
io_style_conditional->mode_above_average-equal_average = ' '. " Not present or <> 1 --> we use not equal average
io_style_cond->mode_above_average-equal_average = ' '. " Not present or <> 1 --> we use not equal average
ENDIF.
*--------------------------------------------------------------------*
@ -3034,7 +3006,7 @@ METHOD load_worksheet_cond_format_aa.
WHEN 1
OR 2
OR 3. " These seem to be supported by excel - don't try anything more
io_style_conditional->mode_above_average-standard_deviation = val.
io_style_cond->mode_above_average-standard_deviation = val.
ENDCASE.
*--------------------------------------------------------------------*
@ -3043,7 +3015,7 @@ METHOD load_worksheet_cond_format_aa.
lv_dxf_style_index = io_ixml_rule->get_attribute_ns( 'dxfId' ).
READ TABLE me->mt_dxf_styles ASSIGNING <ls_dxf_style> WITH KEY dxf = lv_dxf_style_index.
IF sy-subrc = 0.
io_style_conditional->mode_above_average-cell_style = <ls_dxf_style>-guid.
io_style_cond->mode_above_average-cell_style = <ls_dxf_style>-guid.
ENDIF.
ENDMETHOD.
@ -3058,11 +3030,11 @@ METHOD load_worksheet_cond_format_ci.
FIELD-SYMBOLS: <ls_dxf_style> LIKE LINE OF me->mt_dxf_styles.
io_style_conditional->mode_cellis-operator = io_ixml_rule->get_attribute_ns( 'operator' ).
io_style_cond->mode_cellis-operator = io_ixml_rule->get_attribute_ns( 'operator' ).
lv_dxf_style_index = io_ixml_rule->get_attribute_ns( 'dxfId' ).
READ TABLE me->mt_dxf_styles ASSIGNING <ls_dxf_style> WITH KEY dxf = lv_dxf_style_index.
IF sy-subrc = 0.
io_style_conditional->mode_cellis-cell_style = <ls_dxf_style>-guid.
io_style_cond->mode_cellis-cell_style = <ls_dxf_style>-guid.
ENDIF.
lo_ixml_nodes ?= io_ixml_rule->get_elements_by_tag_name( 'formula' ).
@ -3072,10 +3044,10 @@ METHOD load_worksheet_cond_format_ci.
CASE sy-index.
WHEN 1.
io_style_conditional->mode_cellis-formula = lo_ixml->get_value( ).
io_style_cond->mode_cellis-formula = lo_ixml->get_value( ).
WHEN 2.
io_style_conditional->mode_cellis-formula2 = lo_ixml->get_value( ).
io_style_cond->mode_cellis-formula2 = lo_ixml->get_value( ).
WHEN OTHERS.
EXIT.
@ -3101,16 +3073,16 @@ METHOD load_worksheet_cond_format_cs.
CASE sy-index.
WHEN 1.
io_style_conditional->mode_colorscale-cfvo1_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_conditional->mode_colorscale-cfvo1_value = lo_ixml->get_attribute_ns( 'val' ).
io_style_cond->mode_colorscale-cfvo1_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_cond->mode_colorscale-cfvo1_value = lo_ixml->get_attribute_ns( 'val' ).
WHEN 2.
io_style_conditional->mode_colorscale-cfvo2_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_conditional->mode_colorscale-cfvo2_value = lo_ixml->get_attribute_ns( 'val' ).
io_style_cond->mode_colorscale-cfvo2_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_cond->mode_colorscale-cfvo2_value = lo_ixml->get_attribute_ns( 'val' ).
WHEN 3.
io_style_conditional->mode_colorscale-cfvo3_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_conditional->mode_colorscale-cfvo2_value = lo_ixml->get_attribute_ns( 'val' ).
io_style_cond->mode_colorscale-cfvo3_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_cond->mode_colorscale-cfvo2_value = lo_ixml->get_attribute_ns( 'val' ).
WHEN OTHERS.
EXIT.
@ -3126,13 +3098,13 @@ METHOD load_worksheet_cond_format_cs.
CASE sy-index.
WHEN 1.
io_style_conditional->mode_colorscale-colorrgb1 = lo_ixml->get_attribute_ns( 'rgb' ).
io_style_cond->mode_colorscale-colorrgb1 = lo_ixml->get_attribute_ns( 'rgb' ).
WHEN 2.
io_style_conditional->mode_colorscale-colorrgb2 = lo_ixml->get_attribute_ns( 'rgb' ).
io_style_cond->mode_colorscale-colorrgb2 = lo_ixml->get_attribute_ns( 'rgb' ).
WHEN 3.
io_style_conditional->mode_colorscale-colorrgb3 = lo_ixml->get_attribute_ns( 'rgb' ).
io_style_cond->mode_colorscale-colorrgb3 = lo_ixml->get_attribute_ns( 'rgb' ).
WHEN OTHERS.
EXIT.
@ -3151,7 +3123,7 @@ METHOD load_worksheet_cond_format_db.
lo_ixml ?= io_ixml_rule->find_from_name( 'color' ).
IF lo_ixml IS BOUND.
io_style_conditional->mode_databar-colorrgb = lo_ixml->get_attribute_ns( 'rgb' ).
io_style_cond->mode_databar-colorrgb = lo_ixml->get_attribute_ns( 'rgb' ).
ENDIF.
lo_ixml_nodes ?= io_ixml_rule->get_elements_by_tag_name( 'cfvo' ).
@ -3161,12 +3133,12 @@ METHOD load_worksheet_cond_format_db.
CASE sy-index.
WHEN 1.
io_style_conditional->mode_databar-cfvo1_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_conditional->mode_databar-cfvo1_value = lo_ixml->get_attribute_ns( 'val' ).
io_style_cond->mode_databar-cfvo1_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_cond->mode_databar-cfvo1_value = lo_ixml->get_attribute_ns( 'val' ).
WHEN 2.
io_style_conditional->mode_databar-cfvo2_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_conditional->mode_databar-cfvo2_value = lo_ixml->get_attribute_ns( 'val' ).
io_style_cond->mode_databar-cfvo2_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_cond->mode_databar-cfvo2_value = lo_ixml->get_attribute_ns( 'val' ).
WHEN OTHERS.
EXIT.
@ -3191,7 +3163,7 @@ METHOD load_worksheet_cond_format_ex.
lv_dxf_style_index = io_ixml_rule->get_attribute_ns( 'dxfId' ).
READ TABLE me->mt_dxf_styles ASSIGNING <ls_dxf_style> WITH KEY dxf = lv_dxf_style_index.
IF sy-subrc = 0.
io_style_conditional->mode_expression-cell_style = <ls_dxf_style>-guid.
io_style_cond->mode_expression-cell_style = <ls_dxf_style>-guid.
ENDIF.
lo_ixml_nodes ?= io_ixml_rule->get_elements_by_tag_name( 'formula' ).
@ -3201,7 +3173,7 @@ METHOD load_worksheet_cond_format_ex.
CASE sy-index.
WHEN 1.
io_style_conditional->mode_expression-formula = lo_ixml->get_value( ).
io_style_cond->mode_expression-formula = lo_ixml->get_value( ).
WHEN OTHERS.
@ -3222,8 +3194,8 @@ METHOD load_worksheet_cond_format_is.
lo_ixml_rule_iconset TYPE REF TO if_ixml_element.
lo_ixml_rule_iconset ?= io_ixml_rule->get_first_child( ).
io_style_conditional->mode_iconset-iconset = lo_ixml_rule_iconset->get_attribute_ns( 'iconSet' ).
io_style_conditional->mode_iconset-showvalue = lo_ixml_rule_iconset->get_attribute_ns( 'showValue' ).
io_style_cond->mode_iconset-iconset = lo_ixml_rule_iconset->get_attribute_ns( 'iconSet' ).
io_style_cond->mode_iconset-showvalue = lo_ixml_rule_iconset->get_attribute_ns( 'showValue' ).
lo_ixml_nodes ?= lo_ixml_rule_iconset->get_elements_by_tag_name( 'cfvo' ).
lo_ixml_iterator = lo_ixml_nodes->create_iterator( ).
lo_ixml ?= lo_ixml_iterator->get_next( ).
@ -3231,24 +3203,24 @@ METHOD load_worksheet_cond_format_is.
CASE sy-index.
WHEN 1.
io_style_conditional->mode_iconset-cfvo1_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_conditional->mode_iconset-cfvo1_value = lo_ixml->get_attribute_ns( 'val' ).
io_style_cond->mode_iconset-cfvo1_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_cond->mode_iconset-cfvo1_value = lo_ixml->get_attribute_ns( 'val' ).
WHEN 2.
io_style_conditional->mode_iconset-cfvo2_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_conditional->mode_iconset-cfvo2_value = lo_ixml->get_attribute_ns( 'val' ).
io_style_cond->mode_iconset-cfvo2_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_cond->mode_iconset-cfvo2_value = lo_ixml->get_attribute_ns( 'val' ).
WHEN 3.
io_style_conditional->mode_iconset-cfvo3_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_conditional->mode_iconset-cfvo3_value = lo_ixml->get_attribute_ns( 'val' ).
io_style_cond->mode_iconset-cfvo3_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_cond->mode_iconset-cfvo3_value = lo_ixml->get_attribute_ns( 'val' ).
WHEN 4.
io_style_conditional->mode_iconset-cfvo4_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_conditional->mode_iconset-cfvo4_value = lo_ixml->get_attribute_ns( 'val' ).
io_style_cond->mode_iconset-cfvo4_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_cond->mode_iconset-cfvo4_value = lo_ixml->get_attribute_ns( 'val' ).
WHEN 5.
io_style_conditional->mode_iconset-cfvo5_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_conditional->mode_iconset-cfvo5_value = lo_ixml->get_attribute_ns( 'val' ).
io_style_cond->mode_iconset-cfvo5_type = lo_ixml->get_attribute_ns( 'type' ).
io_style_cond->mode_iconset-cfvo5_value = lo_ixml->get_attribute_ns( 'val' ).
WHEN OTHERS.
EXIT.
@ -3265,28 +3237,28 @@ METHOD load_worksheet_cond_format_t10.
FIELD-SYMBOLS: <ls_dxf_style> LIKE LINE OF me->mt_dxf_styles.
io_style_conditional->mode_top10-topxx_count = io_ixml_rule->get_attribute_ns( 'rank' ). " Top10, Top20, Top 50...
io_style_cond->mode_top10-topxx_count = io_ixml_rule->get_attribute_ns( 'rank' ). " Top10, Top20, Top 50...
io_style_conditional->mode_top10-percent = io_ixml_rule->get_attribute_ns( 'percent' ). " Top10 percent instead of Top10 values
if io_style_conditional->mode_top10-percent = '1'.
io_style_conditional->mode_top10-percent = 'X'.
else.
io_style_conditional->mode_top10-percent = ' '.
endif.
io_style_cond->mode_top10-percent = io_ixml_rule->get_attribute_ns( 'percent' ). " Top10 percent instead of Top10 values
IF io_style_cond->mode_top10-percent = '1'.
io_style_cond->mode_top10-percent = 'X'.
ELSE.
io_style_cond->mode_top10-percent = ' '.
ENDIF.
io_style_conditional->mode_top10-bottom = io_ixml_rule->get_attribute_ns( 'bottom' ). " Bottom10 instead of Top10
if io_style_conditional->mode_top10-bottom = '1'.
io_style_conditional->mode_top10-bottom = 'X'.
else.
io_style_conditional->mode_top10-bottom = ' '.
endif.
io_style_cond->mode_top10-bottom = io_ixml_rule->get_attribute_ns( 'bottom' ). " Bottom10 instead of Top10
IF io_style_cond->mode_top10-bottom = '1'.
io_style_cond->mode_top10-bottom = 'X'.
ELSE.
io_style_cond->mode_top10-bottom = ' '.
ENDIF.
*--------------------------------------------------------------------*
* Cell formatting for top10
*--------------------------------------------------------------------*
lv_dxf_style_index = io_ixml_rule->get_attribute_ns( 'dxfId' ).
READ TABLE me->mt_dxf_styles ASSIGNING <ls_dxf_style> WITH KEY dxf = lv_dxf_style_index.
IF sy-subrc = 0.
io_style_conditional->mode_top10-cell_style = <ls_dxf_style>-guid.
io_style_cond->mode_top10-cell_style = <ls_dxf_style>-guid.
ENDIF.
ENDMETHOD.
@ -3486,7 +3458,7 @@ METHOD load_worksheet_pagebreaks.
lo_ixml_iterator TYPE REF TO if_ixml_node_iterator,
lo_ixml_rowbreak TYPE REF TO if_ixml_element,
lo_ixml_colbreak TYPE REF TO if_ixml_element,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional,
lo_style_cond TYPE REF TO zcl_excel_style_cond,
lv_count TYPE i.

View File

@ -1,9 +1,9 @@
class ZCL_EXCEL_WORKSHEET_ROWDIMENSI definition
class ZCL_EXCEL_ROW definition
public
final
create public .
*"* public components of class ZCL_EXCEL_WORKSHEET_ROWDIMENSI
*"* public components of class ZCL_EXCEL_ROW
*"* do not include other source files here!!!
public section.
type-pools ABAP .
@ -57,10 +57,10 @@ public section.
methods SET_XF_INDEX
importing
!IP_XF_INDEX type INT4 .
*"* protected components of class ZCL_EXCEL_WORKSHEET_ROWDIMENSI
*"* protected components of class ZCL_EXCEL_ROW
*"* do not include other source files here!!!
protected section.
*"* private components of class ZCL_EXCEL_WORKSHEET_ROWDIMENSI
*"* private components of class ZCL_EXCEL_ROW
*"* do not include other source files here!!!
private section.
@ -74,7 +74,7 @@ ENDCLASS.
CLASS ZCL_EXCEL_WORKSHEET_ROWDIMENSI IMPLEMENTATION.
CLASS ZCL_EXCEL_ROW IMPLEMENTATION.
method CONSTRUCTOR.
@ -90,7 +90,7 @@ method CONSTRUCTOR.
endmethod.
METHOD get_collapsed.
METHOD GET_COLLAPSED.
DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row,
lv_previous_row TYPE i,
@ -121,7 +121,7 @@ METHOD get_collapsed.
ENDMETHOD.
METHOD get_outline_level.
METHOD GET_OUTLINE_LEVEL.
DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row.
FIELD-SYMBOLS: <ls_row_outline> LIKE LINE OF lt_row_outlines.
@ -155,7 +155,7 @@ method GET_ROW_INDEX.
endmethod.
METHOD get_visible.
METHOD GET_VISIBLE.
DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row.
FIELD-SYMBOLS: <ls_row_outline> LIKE LINE OF lt_row_outlines.

View File

@ -3,7 +3,7 @@
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>Worksheet RowDimension</DESCRIPT>
@ -17,107 +17,71 @@
<TPOOL/>
<DESCRIPTIONS>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>COLLAPSED</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Boolean Variable (X=True, -=False, Space=Unknown)</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CMPNAME>COLLAPSED</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Boolean Variable (X=True, -=False, Space=Unknown)</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>GET_COLLAPSED</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>new - please pass worksheet to make use of new outline info</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>GET_OUTLINE_LEVEL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>new - please pass worksheet to make use of new outline info</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>GET_VISIBLE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>new - please pass worksheet to make use of new outline info</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>OUTLINE_LEVEL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Natural number</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CMPNAME>OUTLINE_LEVEL</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Natural number</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>ROW_HEIGHT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Field of type FLTP</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CMPNAME>ROW_HEIGHT</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Field of type FLTP</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>ROW_INDEX</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Natural number</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CMPNAME>ROW_INDEX</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Natural number</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>SET_COLLAPSED</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>obsolete - please use worksheet-&gt;set_outline instead</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>SET_OUTLINE_LEVEL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>obsolete - please use worksheet-&gt;set_outline instead</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>VISIBLE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Boolean Variable (X=True, -=False, Space=Unknown)</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CMPNAME>VISIBLE</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Boolean Variable (X=True, -=False, Space=Unknown)</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>XF_INDEX</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Natural number</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CMPNAME>XF_INDEX</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Natural number</DESCRIPT>
</SEOCOMPOTX>
</DESCRIPTIONS>
</asx:values>
</asx:abap>

View File

@ -0,0 +1,92 @@
*----------------------------------------------------------------------*
* CLASS ZCL_EXCEL_ROWS DEFINITION
*----------------------------------------------------------------------*
*
*----------------------------------------------------------------------*
class ZCL_EXCEL_ROWS definition
public
final
create public .
*"* public components of class ZCL_EXCEL_ROWS
*"* do not include other source files here!!!
*"* protected components of class ZABAP_EXCEL_WORKSHEETS
*"* do not include other source files here!!!
public section.
methods ADD
importing
!IO_ROW type ref to ZCL_EXCEL_ROW .
methods CLEAR .
methods CONSTRUCTOR .
methods GET
importing
!IP_INDEX type I
returning
value(EO_ROW) type ref to ZCL_EXCEL_ROW .
methods GET_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods IS_EMPTY
returning
value(IS_EMPTY) type FLAG .
methods REMOVE
importing
!IO_ROW type ref to ZCL_EXCEL_ROW .
methods SIZE
returning
value(EP_SIZE) type I .
PROTECTED SECTION.
*"* private components of class ZABAP_EXCEL_RANGES
*"* do not include other source files here!!!
PRIVATE SECTION.
DATA rows TYPE REF TO cl_object_collection .
ENDCLASS.
CLASS ZCL_EXCEL_ROWS IMPLEMENTATION.
METHOD add.
rows->add( io_row ).
ENDMETHOD. "ADD
METHOD clear.
rows->clear( ).
ENDMETHOD. "CLEAR
METHOD constructor.
CREATE OBJECT rows.
ENDMETHOD. "CONSTRUCTOR
METHOD get.
eo_row ?= rows->if_object_collection~get( ip_index ).
ENDMETHOD. "GET
METHOD get_iterator.
eo_iterator ?= rows->if_object_collection~get_iterator( ).
ENDMETHOD. "GET_ITERATOR
METHOD is_empty.
is_empty = rows->if_object_collection~is_empty( ).
ENDMETHOD. "IS_EMPTY
METHOD remove.
rows->remove( io_row ).
ENDMETHOD. "REMOVE
METHOD size.
ep_size = rows->if_object_collection~size( ).
ENDMETHOD. "SIZE
ENDCLASS.

View File

@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_ROWS</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>Ranges collection</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
<TPOOL/>
<DESCRIPTIONS>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_ROWS</CLSNAME>
<CMPNAME>ADD</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Adds an Element to the Collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_ROWS</CLSNAME>
<CMPNAME>CLEAR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Initializes the Collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_ROWS</CLSNAME>
<CMPNAME>CONSTRUCTOR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>CONSTRUCTOR</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_ROWS</CLSNAME>
<CMPNAME>GET</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Gets Element</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_ROWS</CLSNAME>
<CMPNAME>GET_ITERATOR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Returns an iterator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_ROWS</CLSNAME>
<CMPNAME>IS_EMPTY</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Checks whether elements are contained</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_ROWS</CLSNAME>
<CMPNAME>REMOVE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Deletes an Element from the Collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_ROWS</CLSNAME>
<CMPNAME>SIZE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Specifies number of contained elements</DESCRIPT>
</SEOCOMPOTX>
</DESCRIPTIONS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -45,18 +45,11 @@ METHOD constructor.
CREATE OBJECT number_format.
CREATE OBJECT protection.
* Start of insertion # issue 139 - Dateretention of cellstyles
IF ip_guid IS NOT INITIAL.
me->guid = ip_guid.
ELSE.
* End of insertion # issue 139 - Dateretention of cellstyles
* CALL FUNCTION 'GUID_CREATE' " del issue #379 - function is outdated in newer releases
* IMPORTING
* ev_guid_16 = me->guid.
me->guid = zcl_excel_obsolete_func_wrap=>guid_create( ). " ins issue #379 - replacement for outdated function call
* Start of insertion # issue 139 - Dateretention of cellstyles
me->guid = zcl_excel_obsolete_func_wrap=>guid_create( ).
ENDIF.
* End of insertion # issue 139 - Dateretention of cellstyles
ENDMETHOD.

View File

@ -1,11 +1,12 @@
class ZCL_EXCEL_STYLE_CONDITIONAL definition
class ZCL_EXCEL_STYLE_COND definition
public
final
create public .
public section.
class ZCL_EXCEL_STYLE_CONDITIONAL definition load .
*"* public components of class ZCL_EXCEL_STYLE_CONDITIONAL
*"* public components of class ZCL_EXCEL_STYLE_COND
*"* do not include other source files here!!!
constants C_CFVO_TYPE_FORMULA type ZEXCEL_CONDITIONAL_TYPE value 'formula'. "#EC NOTEXT
constants C_CFVO_TYPE_MAX type ZEXCEL_CONDITIONAL_TYPE value 'max'. "#EC NOTEXT
@ -60,10 +61,12 @@ public section.
data MODE_ICONSET type ZEXCEL_CONDITIONAL_ICONSET .
data MODE_TOP10 type ZEXCEL_CONDITIONAL_TOP10 .
data MODE_ABOVE_AVERAGE type ZEXCEL_CONDITIONAL_ABOVE_AVG .
data PRIORITY type ZEXCEL_STYLE_PRIORITY value 1. "#EC NOTEXT . . . . . . . . . . . . . . . . " .
data PRIORITY type ZEXCEL_STYLE_PRIORITY value 1. "#EC NOTEXT . . . . . . . . . . . . . . . . . . . . " .
data RULE type ZEXCEL_CONDITION_RULE .
methods CONSTRUCTOR .
methods CONSTRUCTOR
importing
!IP_GUID type ZEXCEL_CELL_STYLE optional .
methods GET_DIMENSION_RANGE
returning
value(EP_DIMENSION_RANGE) type STRING .
@ -79,7 +82,6 @@ public section.
!IP_START_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA
!IP_STOP_ROW type ZEXCEL_CELL_ROW
!IP_STOP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA .
class ZCL_EXCEL_STYLE_CONDITIONAL definition load .
class-methods FACTORY_COND_STYLE_ICONSET
importing
!IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET
@ -94,23 +96,27 @@ public section.
!IV_CFVO4_VALUE type ZEXCEL_CONDITIONAL_VALUE optional
!IV_CFVO5_TYPE type ZEXCEL_CONDITIONAL_TYPE default C_CFVO_TYPE_PERCENT
!IV_CFVO5_VALUE type ZEXCEL_CONDITIONAL_VALUE optional
!IV_SHOWVALUE type ZEXCEL_CONDITIONAL_SHOW_VALUE default ZCL_EXCEL_STYLE_CONDITIONAL=>C_SHOWVALUE_TRUE
!IV_SHOWVALUE type ZEXCEL_CONDITIONAL_SHOW_VALUE default ZCL_EXCEL_STYLE_COND=>C_SHOWVALUE_TRUE
returning
value(RV_STYLE_CONDITIONAL) type ref to ZCL_EXCEL_STYLE_CONDITIONAL .
value(EO_STYLE_COND) type ref to ZCL_EXCEL_STYLE_COND .
methods GET_GUID
returning
value(EP_GUID) type ZEXCEL_CELL_STYLE .
*"* protected components of class ZABAP_EXCEL_STYLE_FONT
*"* do not include other source files here!!!
protected section.
private section.
data MV_RULE_RANGE type STRING .
data GUID type ZEXCEL_CELL_STYLE .
ENDCLASS.
CLASS ZCL_EXCEL_STYLE_CONDITIONAL IMPLEMENTATION.
CLASS ZCL_EXCEL_STYLE_COND IMPLEMENTATION.
METHOD add_range.
METHOD ADD_RANGE.
DATA: lv_column TYPE zexcel_cell_column,
lv_row_alpha TYPE string,
lv_col_alpha TYPE string,
@ -160,30 +166,37 @@ ENDMETHOD.
METHOD constructor.
DATA: ls_iconset TYPE zexcel_conditional_iconset.
ls_iconset-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights.
ls_iconset-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset-iconset = zcl_excel_style_cond=>c_iconset_3trafficlights.
ls_iconset-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset-cfvo1_value = '0'.
ls_iconset-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset-cfvo2_value = '20'.
ls_iconset-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset-cfvo3_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset-cfvo3_value = '40'.
ls_iconset-cfvo4_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset-cfvo4_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset-cfvo4_value = '60'.
ls_iconset-cfvo5_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset-cfvo5_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset-cfvo5_value = '80'.
me->rule = zcl_excel_style_conditional=>c_rule_none.
me->rule = zcl_excel_style_cond=>c_rule_none.
* me->iconset->operator = zcl_excel_style_conditional=>c_operator_none.
me->mode_iconset = ls_iconset.
me->priority = 1.
* inizialize dimension range
me->MV_RULE_RANGE = 'A1'.
me->mv_rule_range = 'A1'.
IF ip_guid IS NOT INITIAL.
me->guid = ip_guid.
ELSE.
me->guid = zcl_excel_obsolete_func_wrap=>guid_create( ).
ENDIF.
ENDMETHOD.
METHOD factory_cond_style_iconset.
METHOD FACTORY_COND_STYLE_ICONSET.
*--------------------------------------------------------------------*
* Work in progress
@ -223,14 +236,19 @@ METHOD factory_cond_style_iconset.
ENDMETHOD.
METHOD get_dimension_range.
METHOD GET_DIMENSION_RANGE.
ep_dimension_range = me->mv_rule_range.
ENDMETHOD.
METHOD set_range.
METHOD GET_GUID.
ep_guid = me->guid.
ENDMETHOD.
METHOD SET_RANGE.
CLEAR: me->mv_rule_range.

View File

@ -0,0 +1,400 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>Font Style</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
<TPOOL/>
<DESCRIPTIONS>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>ADD_RANGE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Add range used in conditional formatting</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>CONSTRUCTOR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>CONSTRUCTOR</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_CFVO_TYPE_FORMULA</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_CFVO_TYPE_MAX</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_CFVO_TYPE_MIN</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_CFVO_TYPE_NUMBER</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_CFVO_TYPE_PERCENT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_CFVO_TYPE_PERCENTILE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_ICONSET_3ARROWS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_ICONSET_3ARROWSGRAY</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_ICONSET_3FLAGS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_ICONSET_3SIGNS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_ICONSET_3SYMBOLS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_ICONSET_3SYMBOLS2</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_ICONSET_3TRAFFICLIGHTS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_ICONSET_3TRAFFICLIGHTS2</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_ICONSET_4ARROWS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_ICONSET_4ARROWSGRAY</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_ICONSET_4RATING</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_ICONSET_4REDTOBLACK</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_ICONSET_4TRAFFICLIGHTS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_ICONSET_5ARROWS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_ICONSET_5ARROWSGRAY</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_ICONSET_5QUARTERS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_ICONSET_5RATING</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_OPERATOR_BEGINSWITH</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_OPERATOR_BETWEEN</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_OPERATOR_CONTAINSTEXT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_OPERATOR_ENDSWITH</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_OPERATOR_EQUAL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_OPERATOR_GREATERTHAN</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_OPERATOR_GREATERTHANOREQUAL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_OPERATOR_LESSTHAN</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_OPERATOR_LESSTHANOREQUAL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_OPERATOR_NONE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_OPERATOR_NOTCONTAINS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_OPERATOR_NOTEQUAL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_RULE_ABOVE_AVERAGE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Rule above avearge</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_RULE_CELLIS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_RULE_COLORSCALE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_RULE_CONTAINSTEXT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_RULE_DATABAR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_RULE_EXPRESSION</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_RULE_ICONSET</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_RULE_NONE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_RULE_TOP10</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Rule top-10</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_SHOWVALUE_FALSE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>C_SHOWVALUE_TRUE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>FACTORY_COND_STYLE_ICONSET</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Add conditional style of type iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>GET_DIMENSION_RANGE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get used range dimension</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>GET_GUID</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get guid</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>GUID</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Style identifier</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>MODE_ABOVE_AVERAGE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Top10 settings ( topxx_count determines top20,top50... )</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>MODE_CELLIS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Iconset settings</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>MODE_COLORSCALE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Colorscale settings</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>MODE_DATABAR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Databar settings</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>MODE_EXPRESSION</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Expression settings</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>MODE_ICONSET</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Iconset settings</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>MODE_TOP10</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Top10 settings ( topxx_count determines top20,top50... )</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>MV_RULE_RANGE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Rule range</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>PRIORITY</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Style Priority</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>RULE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_COND</CLSNAME>
<CMPNAME>SET_RANGE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Set range used in conditional formatting</DESCRIPT>
</SEOCOMPOTX>
</DESCRIPTIONS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,676 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>Font Style</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
<TPOOL/>
<DESCRIPTIONS>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>ADD_RANGE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Add range used in conditional formatting</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>CONSTRUCTOR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>CONSTRUCTOR</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>CONSTRUCTOR</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>CONSTRUCTOR</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_CFVO_TYPE_FORMULA</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_CFVO_TYPE_FORMULA</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_CFVO_TYPE_MAX</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_CFVO_TYPE_MIN</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_CFVO_TYPE_NUMBER</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_CFVO_TYPE_NUMBER</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_CFVO_TYPE_PERCENT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_CFVO_TYPE_PERCENT</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_CFVO_TYPE_PERCENTILE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_CFVO_TYPE_PERCENTILE</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_3ARROWS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_3ARROWS</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_3ARROWSGRAY</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_3ARROWSGRAY</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_3FLAGS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_3FLAGS</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_3SIGNS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_3SIGNS</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_3SYMBOLS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_3SYMBOLS</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_3SYMBOLS2</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_3SYMBOLS2</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_3TRAFFICLIGHTS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_3TRAFFICLIGHTS</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_3TRAFFICLIGHTS2</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_3TRAFFICLIGHTS2</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_4ARROWS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_4ARROWS</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_4ARROWSGRAY</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_4ARROWSGRAY</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_4RATING</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_4RATING</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_4REDTOBLACK</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_4REDTOBLACK</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_4TRAFFICLIGHTS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_4TRAFFICLIGHTS</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_5ARROWS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_5ARROWS</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_5ARROWSGRAY</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_5ARROWSGRAY</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_5QUARTERS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_5QUARTERS</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_5RATING</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_ICONSET_5RATING</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_BEGINSWITH</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_BEGINSWITH</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_BETWEEN</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_BETWEEN</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_CONTAINSTEXT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_CONTAINSTEXT</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_ENDSWITH</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_ENDSWITH</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_EQUAL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_EQUAL</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_GREATERTHAN</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_GREATERTHAN</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_GREATERTHANOREQUAL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_GREATERTHANOREQUAL</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_LESSTHAN</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_LESSTHAN</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_LESSTHANOREQUAL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_LESSTHANOREQUAL</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_NONE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_NONE</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_NOTCONTAINS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_NOTCONTAINS</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_NOTEQUAL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_OPERATOR_NOTEQUAL</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition operator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_RULE_ABOVE_AVERAGE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Rule above avearge</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_RULE_CELLIS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_RULE_CELLIS</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_RULE_COLORSCALE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_RULE_CONTAINSTEXT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_RULE_CONTAINSTEXT</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_RULE_DATABAR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_RULE_EXPRESSION</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_RULE_EXPRESSION</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_RULE_ICONSET</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_RULE_ICONSET</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_RULE_NONE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_RULE_NONE</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_RULE_TOP10</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Rule top-10</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_SHOWVALUE_FALSE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_SHOWVALUE_FALSE</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_SHOWVALUE_TRUE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>C_SHOWVALUE_TRUE</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>FACTORY_COND_STYLE_ICONSET</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Add conditional style of type iconset</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>GET_DIMENSION_RANGE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get used range dimension</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>GET_DIMENSION_RANGE</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Get used range dimension</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>MODE_ABOVE_AVERAGE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Top10 settings ( topxx_count determines top20,top50... )</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>MODE_CELLIS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Iconset settings</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>MODE_CELLIS</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Iconset settings</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>MODE_COLORSCALE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Colorscale settings</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>MODE_DATABAR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Databar settings</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>MODE_EXPRESSION</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Expression settings</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>MODE_EXPRESSION</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Expression settings</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>MODE_ICONSET</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Iconset settings</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>MODE_ICONSET</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Iconset settings</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>MODE_TOP10</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Top10 settings ( topxx_count determines top20,top50... )</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>MV_RULE_RANGE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Rule range</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>PRIORITY</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Style Priority</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>PRIORITY</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Style Priority</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>RULE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>RULE</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Condition rule</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>SET_RANGE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Set range used in conditional formatting</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLE_CONDITIONAL</CLSNAME>
<CMPNAME>SET_RANGE</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Set range used in conditional formatting</DESCRIPT>
</SEOCOMPOTX>
</DESCRIPTIONS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -36,9 +36,9 @@ public section.
value(EP_STYLE_CODE) type I .
*"* protected components of class ZABAP_EXCEL_WORKSHEETS
*"* do not include other source files here!!!
protected section.
*"* private components of class ZCL_EXCEL_STYLES
*"* protected components of class ZABAP_EXCEL_WORKSHEETS
*"* do not include other source files here!!!
protected section.
private section.
data STYLES type ref to CL_OBJECT_COLLECTION .

View File

@ -0,0 +1,89 @@
class ZCL_EXCEL_STYLES_COND definition
public
final
create public .
*"* public components of class ZCL_EXCEL_STYLES_COND
*"* do not include other source files here!!!
public section.
methods ADD
importing
!IP_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND .
methods CLEAR .
methods CONSTRUCTOR .
methods GET
importing
!IP_INDEX type ZEXCEL_ACTIVE_WORKSHEET
returning
value(EO_STYLE_COND) type ref to ZCL_EXCEL_STYLE_COND .
methods GET_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods IS_EMPTY
returning
value(IS_EMPTY) type FLAG .
methods REMOVE
importing
!IP_STYLE_COND type ref to ZCL_EXCEL_STYLE_COND .
methods SIZE
returning
value(EP_SIZE) type I .
*"* protected components of class ZABAP_EXCEL_WORKSHEETS
*"* do not include other source files here!!!
protected section.
*"* private components of class ZCL_EXCEL_STYLES_COND
*"* do not include other source files here!!!
private section.
data STYLES_COND type ref to CL_OBJECT_COLLECTION .
ENDCLASS.
CLASS ZCL_EXCEL_STYLES_COND IMPLEMENTATION.
METHOD ADD.
styles_cond->add( ip_style_cond ).
ENDMETHOD.
METHOD CLEAR.
styles_cond->clear( ).
ENDMETHOD.
METHOD constructor.
CREATE OBJECT styles_cond.
ENDMETHOD.
METHOD get.
DATA lv_index TYPE i.
lv_index = ip_index.
eo_style_cond ?= styles_cond->if_object_collection~get( lv_index ).
ENDMETHOD.
METHOD get_iterator.
eo_iterator ?= styles_cond->if_object_collection~get_iterator( ).
ENDMETHOD.
METHOD is_empty.
is_empty = styles_cond->if_object_collection~is_empty( ).
ENDMETHOD.
METHOD remove.
styles_cond->remove( ip_style_cond ).
ENDMETHOD.
METHOD size.
ep_size = styles_cond->if_object_collection~size( ).
ENDMETHOD.
ENDCLASS.

View File

@ -0,0 +1,20 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_STYLES_COND</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>Styles conditional collection</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
<TPOOL/>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,89 +0,0 @@
class ZCL_EXCEL_STYLES_CONDITIONAL definition
public
final
create public .
*"* public components of class ZCL_EXCEL_STYLES_CONDITIONAL
*"* do not include other source files here!!!
public section.
methods ADD
importing
!IP_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL .
methods CLEAR .
methods CONSTRUCTOR .
methods GET
importing
!IP_INDEX type ZEXCEL_ACTIVE_WORKSHEET
returning
value(EO_STYLE_CONDITIONAL) type ref to ZCL_EXCEL_STYLE_CONDITIONAL .
methods GET_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods IS_EMPTY
returning
value(IS_EMPTY) type FLAG .
methods REMOVE
importing
!IP_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL .
methods SIZE
returning
value(EP_SIZE) type I .
*"* protected components of class ZABAP_EXCEL_WORKSHEETS
*"* do not include other source files here!!!
protected section.
*"* private components of class ZCL_EXCEL_STYLES_CONDITIONAL
*"* do not include other source files here!!!
private section.
data STYLES_CONDITIONAL type ref to CL_OBJECT_COLLECTION .
ENDCLASS.
CLASS ZCL_EXCEL_STYLES_CONDITIONAL IMPLEMENTATION.
method ADD.
styles_conditional->add( ip_style_conditional ).
endmethod.
method CLEAR.
styles_conditional->clear( ).
endmethod.
method CONSTRUCTOR.
CREATE OBJECT styles_conditional.
endmethod.
method GET.
DATA lv_index TYPE i.
lv_index = ip_index.
eo_style_conditional ?= styles_conditional->if_object_collection~get( lv_index ).
endmethod.
method GET_ITERATOR.
eo_iterator ?= styles_conditional->if_object_collection~get_iterator( ).
endmethod.
method IS_EMPTY.
is_empty = styles_conditional->if_object_collection~is_empty( ).
endmethod.
method REMOVE.
styles_conditional->remove( ip_style_conditional ).
endmethod.
method SIZE.
ep_size = styles_conditional->if_object_collection~size( ).
endmethod.
ENDCLASS.

View File

@ -1,118 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_STYLES_CONDITIONAL</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>Styles conditional collection</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
<TPOOL/>
<DESCRIPTIONS>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLES_CONDITIONAL</CLSNAME>
<CMPNAME>ADD</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Adds an Element to the Collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLES_CONDITIONAL</CLSNAME>
<CMPNAME>ADD</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Adds an Element to the Collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLES_CONDITIONAL</CLSNAME>
<CMPNAME>CLEAR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Initializes the Collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLES_CONDITIONAL</CLSNAME>
<CMPNAME>CLEAR</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Initializes the Collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLES_CONDITIONAL</CLSNAME>
<CMPNAME>CONSTRUCTOR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>CONSTRUCTOR</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLES_CONDITIONAL</CLSNAME>
<CMPNAME>CONSTRUCTOR</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>CONSTRUCTOR</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLES_CONDITIONAL</CLSNAME>
<CMPNAME>GET</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Gets Element</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLES_CONDITIONAL</CLSNAME>
<CMPNAME>GET</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Gets Element</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLES_CONDITIONAL</CLSNAME>
<CMPNAME>GET_ITERATOR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Returns an iterator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLES_CONDITIONAL</CLSNAME>
<CMPNAME>GET_ITERATOR</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Returns an iterator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLES_CONDITIONAL</CLSNAME>
<CMPNAME>IS_EMPTY</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Checks whether elements are contained</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLES_CONDITIONAL</CLSNAME>
<CMPNAME>IS_EMPTY</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Checks whether elements are contained</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLES_CONDITIONAL</CLSNAME>
<CMPNAME>REMOVE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Deletes an Element from the Collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLES_CONDITIONAL</CLSNAME>
<CMPNAME>REMOVE</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Deletes an Element from the Collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLES_CONDITIONAL</CLSNAME>
<CMPNAME>SIZE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Specifies number of contained elements</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_STYLES_CONDITIONAL</CLSNAME>
<CMPNAME>SIZE</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Specifies number of contained elements</DESCRIPT>
</SEOCOMPOTX>
</DESCRIPTIONS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -112,9 +112,9 @@ public section.
ZCX_EXCEL .
*"* protected components of class ZCL_EXCEL_TABLE
*"* do not include other source files here!!!
protected section.
*"* private components of class ZCL_EXCEL_TABLE
*"* protected components of class ZCL_EXCEL_TABLE
*"* do not include other source files here!!!
protected section.
private section.
data ID type I .

View File

@ -25,26 +25,36 @@ public section.
constants C_BREAK_NONE type ZEXCEL_BREAK value 0. "#EC NOTEXT
constants C_BREAK_ROW type ZEXCEL_BREAK value 1. "#EC NOTEXT
data EXCEL type ref to ZCL_EXCEL read-only .
data PRINT_GRIDLINES type ZEXCEL_PRINT_GRIDLINES read-only value ABAP_FALSE. "#EC NOTEXT . . . . . . . . . . . . . . . . " .
data PRINT_GRIDLINES type ZEXCEL_PRINT_GRIDLINES read-only value ABAP_FALSE. "#EC NOTEXT . " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
data SHEET_CONTENT type ZEXCEL_T_CELL_DATA .
data SHEET_SETUP type ref to ZCL_EXCEL_SHEET_SETUP .
data SHOW_GRIDLINES type ZEXCEL_SHOW_GRIDLINES read-only value ABAP_TRUE. "#EC NOTEXT . . . . . . . . . . . . . . . . " .
data SHOW_ROWCOLHEADERS type ZEXCEL_SHOW_GRIDLINES read-only value ABAP_TRUE. "#EC NOTEXT . . . . . . . . . . . . . . . . " .
data SHOW_GRIDLINES type ZEXCEL_SHOW_GRIDLINES read-only value ABAP_TRUE. "#EC NOTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
data SHOW_ROWCOLHEADERS type ZEXCEL_SHOW_GRIDLINES read-only value ABAP_TRUE. "#EC NOTEXT . " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
data STYLES type ZEXCEL_T_SHEET_STYLE .
data TABCOLOR type ZEXCEL_S_TABCOLOR read-only .
methods ADD_DRAWING
importing
!IP_DRAWING type ref to ZCL_EXCEL_DRAWING .
methods ADD_NEW_CONDITIONAL_STYLE
methods ADD_NEW_COLUMN
importing
!IP_COLUMN type SIMPLE
returning
value(EO_CONDITIONAL_STYLE) type ref to ZCL_EXCEL_STYLE_CONDITIONAL .
value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods ADD_NEW_STYLE_COND
returning
value(EO_STYLE_COND) type ref to ZCL_EXCEL_STYLE_COND .
methods ADD_NEW_DATA_VALIDATION
returning
value(EO_DATA_VALIDATION) type ref to ZCL_EXCEL_DATA_VALIDATION .
methods ADD_NEW_RANGE
returning
value(EO_RANGE) type ref to ZCL_EXCEL_RANGE .
methods ADD_NEW_ROW
importing
!IP_ROW type SIMPLE
returning
value(EO_ROW) type ref to ZCL_EXCEL_ROW .
methods BIND_ALV
importing
!IO_ALV type ref to OBJECT
@ -244,17 +254,18 @@ public section.
!EP_FORMULA type ZEXCEL_CELL_FORMULA
raising
ZCX_EXCEL .
methods GET_COLUMN_DIMENSION
methods GET_COLUMN
importing
!IP_COLUMN type SIMPLE
returning
value(R_COLUMN_DIMENSION) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME
raising
ZCX_EXCEL .
methods GET_COLUMN_DIMENSIONS
value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods GET_COLUMNS
returning
value(R_COLUMN_DIMENSION) type ZEXCEL_T_WORKSHEET_COLUMNDIME .
methods GET_COND_STYLES_ITERATOR
value(EO_COLUMNS) type ref to ZCL_EXCEL_COLUMNS .
methods GET_COLUMNS_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods GET_STYLE_COND_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods GET_DATA_VALIDATIONS_ITERATOR
@ -263,18 +274,18 @@ public section.
methods GET_DATA_VALIDATIONS_SIZE
returning
value(EP_SIZE) type I .
methods GET_DEFAULT_COLUMN_DIMENSION
methods GET_DEFAULT_COLUMN
returning
value(R_COLUMN_DIMENSION) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME .
value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods GET_DEFAULT_EXCEL_DATE_FORMAT
returning
value(EP_DEFAULT_EXCEL_DATE_FORMAT) type ZEXCEL_NUMBER_FORMAT .
methods GET_DEFAULT_EXCEL_TIME_FORMAT
returning
value(EP_DEFAULT_EXCEL_TIME_FORMAT) type ZEXCEL_NUMBER_FORMAT .
methods GET_DEFAULT_ROW_DIMENSION
methods GET_DEFAULT_ROW
returning
value(R_ROW_DIMENSION) type ref to ZCL_EXCEL_WORKSHEET_ROWDIMENSI .
value(EO_ROW) type ref to ZCL_EXCEL_ROW .
methods GET_DIMENSION_RANGE
returning
value(EP_DIMENSION_RANGE) type STRING
@ -326,17 +337,25 @@ public section.
methods GET_RANGES_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods GET_ROW_DIMENSION
methods GET_ROW
importing
!IP_ROW type INT4
returning
value(R_ROW_DIMENSION) type ref to ZCL_EXCEL_WORKSHEET_ROWDIMENSI .
methods GET_ROW_DIMENSIONS
value(EO_ROW) type ref to ZCL_EXCEL_ROW .
methods GET_ROWS
returning
value(R_ROW_DIMENSION) type ZEXCEL_T_WORKSHEET_ROWDIMENSIO .
value(EO_ROWS) type ref to ZCL_EXCEL_ROWS .
methods GET_ROWS_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods GET_ROW_OUTLINES
returning
value(RT_ROW_OUTLINES) type MTY_TS_OUTLINES_ROW .
methods GET_STYLE_COND
importing
!IP_GUID type ZEXCEL_CELL_STYLE
returning
value(EO_STYLE_COND) type ref to ZCL_EXCEL_STYLE_COND .
methods GET_TABCOLOR
returning
value(EV_TABCOLOR) type ZEXCEL_S_TABCOLOR .
@ -474,8 +493,8 @@ private section.
TYPE HASHED TABLE OF mty_s_font_cache
WITH UNIQUE KEY font_name font_height flag_bold flag_italic .
types:
mty_ts_row_dimension TYPE SORTED TABLE OF zexcel_s_worksheet_rowdimensio WITH UNIQUE KEY row .
types:
* types:
* mty_ts_row_dimension TYPE SORTED TABLE OF zexcel_s_worksheet_rowdimensio WITH UNIQUE KEY row .
BEGIN OF mty_merge,
row_from TYPE i,
row_to TYPE i,
@ -485,35 +504,35 @@ private section.
types:
mty_ts_merge TYPE SORTED TABLE OF mty_merge WITH UNIQUE KEY table_line .
class-data MTH_FONT_CACHE type MTY_TH_FONT_CACHE .
*"* private components of class ZCL_EXCEL_WORKSHEET
*"* do not include other source files here!!!
data ACTIVE_CELL type ZEXCEL_S_CELL_DATA .
data CHARTS type ref to ZCL_EXCEL_DRAWINGS .
data COLUMN_DIMENSIONS type ZEXCEL_T_WORKSHEET_COLUMNDIME .
data CONDITIONAL_STYLES type ref to ZCL_EXCEL_STYLES_CONDITIONAL .
data COLUMNS type ref to ZCL_EXCEL_COLUMNS .
data ROW_DEFAULT type ref to ZCL_EXCEL_ROW .
data COLUMN_DEFAULT type ref to ZCL_EXCEL_COLUMN .
data STYLES_COND type ref to ZCL_EXCEL_STYLES_COND .
data DATA_VALIDATIONS type ref to ZCL_EXCEL_DATA_VALIDATIONS .
data DEFAULT_COLUMN_DIMENSION type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME .
data DEFAULT_EXCEL_DATE_FORMAT type ZEXCEL_NUMBER_FORMAT .
data DEFAULT_EXCEL_TIME_FORMAT type ZEXCEL_NUMBER_FORMAT .
data DEFAULT_ROW_DIMENSION type ref to ZCL_EXCEL_WORKSHEET_ROWDIMENSI .
data DRAWINGS type ref to ZCL_EXCEL_DRAWINGS .
data FREEZE_PANE_CELL_COLUMN type ZEXCEL_CELL_COLUMN .
data FREEZE_PANE_CELL_ROW type ZEXCEL_CELL_ROW .
data GUID type UUID .
data HYPERLINKS type ref to CL_OBJECT_COLLECTION .
data LOWER_CELL type ZEXCEL_S_CELL_DATA .
data MO_PAGEBREAKS type ref to ZCL_EXCEL_WORKSHEET_PAGEBREAKS .
class-data MTH_FONT_CACHE type MTY_TH_FONT_CACHE .
data MT_MERGED_CELLS type MTY_TS_MERGE .
data MT_ROW_OUTLINES type MTY_TS_OUTLINES_ROW .
data MO_PAGEBREAKS type ref to ZCL_EXCEL_WORKSHEET_PAGEBREAKS .
data PRINT_TITLE_COL_FROM type ZEXCEL_CELL_COLUMN_ALPHA .
data PRINT_TITLE_COL_TO type ZEXCEL_CELL_COLUMN_ALPHA .
data PRINT_TITLE_ROW_FROM type ZEXCEL_CELL_ROW .
data PRINT_TITLE_ROW_TO type ZEXCEL_CELL_ROW .
data RANGES type ref to ZCL_EXCEL_RANGES .
data ROW_DIMENSIONS type MTY_TS_ROW_DIMENSION .
data ROWS type ref to ZCL_EXCEL_ROWS .
data TABLES type ref to CL_OBJECT_COLLECTION .
data TITLE type ZEXCEL_SHEET_TITLE value 'Worksheet'. "#EC NOTEXT . . . . . . . . . . . . " .
data TITLE type ZEXCEL_SHEET_TITLE value 'Worksheet'. "#EC NOTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . " .
data UPPER_CELL type ZEXCEL_S_CELL_DATA .
methods CALCULATE_CELL_WIDTH
@ -554,11 +573,18 @@ method ADD_DRAWING.
endmethod.
method ADD_NEW_CONDITIONAL_STYLE.
METHOD add_new_column.
DATA: lv_column_alpha TYPE zexcel_cell_column_alpha.
CREATE OBJECT eo_conditional_style.
conditional_styles->add( eo_conditional_style ).
endmethod.
lv_column_alpha = zcl_excel_common=>convert_column2alpha( ip_column ).
CREATE OBJECT eo_column
EXPORTING
ip_index = lv_column_alpha
ip_excel = me->excel
ip_worksheet = me.
columns->add( eo_column ).
ENDMETHOD.
method ADD_NEW_DATA_VALIDATION.
@ -568,11 +594,25 @@ method ADD_NEW_DATA_VALIDATION.
endmethod.
method ADD_NEW_RANGE.
METHOD add_new_range.
* Create default blank range
CREATE OBJECT eo_range.
ranges->add( eo_range ).
endmethod.
ENDMETHOD.
METHOD add_new_row.
CREATE OBJECT eo_row
EXPORTING
ip_index = ip_row.
rows->add( eo_row ).
ENDMETHOD.
METHOD add_new_style_cond.
CREATE OBJECT eo_style_cond.
styles_cond->add( eo_style_cond ).
ENDMETHOD.
method BIND_ALV.
@ -2662,7 +2702,7 @@ method BIND_ALV_OLE2.
endmethod.
method BIND_TABLE.
METHOD bind_table.
*--------------------------------------------------------------------*
* issue #230 - Pimp my Code
* - Stefan Schmöcker, (wi p) 2012-12-01
@ -2702,12 +2742,14 @@ method BIND_TABLE.
lv_maxcol TYPE i,
lv_maxrow TYPE i,
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_style_cond TYPE REF TO zcl_excel_style_cond,
lo_curtable TYPE REF TO zcl_excel_table.
FIELD-SYMBOLS:
<ls_field_catalog> TYPE zexcel_s_fieldcatalog,
<fs_table_line> TYPE ANY,
<fs_fldval> TYPE ANY.
<ls_field_catalog_custom> TYPE zexcel_s_fieldcatalog,
<fs_table_line> TYPE any,
<fs_fldval> TYPE any.
ls_settings = is_table_settings.
@ -2796,43 +2838,43 @@ method BIND_TABLE.
" Check if a column with the same name exists, if exists add a counter
" If no medium description is provided we try to use small or long
* lv_value = <ls_field_catalog>-scrtext_m.
field-symbols: <scrtxt1> type any,
<scrtxt2> type any,
<scrtxt3> type any.
FIELD-SYMBOLS: <scrtxt1> TYPE any,
<scrtxt2> TYPE any,
<scrtxt3> TYPE any.
case iv_default_descr.
when 'M'.
assign <ls_field_catalog>-scrtext_m to <scrtxt1>.
assign <ls_field_catalog>-scrtext_s to <scrtxt2>.
assign <ls_field_catalog>-scrtext_l to <scrtxt3>.
when 'S'.
assign <ls_field_catalog>-scrtext_s to <scrtxt1>.
assign <ls_field_catalog>-scrtext_m to <scrtxt2>.
assign <ls_field_catalog>-scrtext_l to <scrtxt3>.
when 'L'.
assign <ls_field_catalog>-scrtext_l to <scrtxt1>.
assign <ls_field_catalog>-scrtext_m to <scrtxt2>.
assign <ls_field_catalog>-scrtext_s to <scrtxt3>.
when others.
assign <ls_field_catalog>-scrtext_m to <scrtxt1>.
assign <ls_field_catalog>-scrtext_s to <scrtxt2>.
assign <ls_field_catalog>-scrtext_l to <scrtxt3>.
endcase.
CASE iv_default_descr.
WHEN 'M'.
ASSIGN <ls_field_catalog>-scrtext_m TO <scrtxt1>.
ASSIGN <ls_field_catalog>-scrtext_s TO <scrtxt2>.
ASSIGN <ls_field_catalog>-scrtext_l TO <scrtxt3>.
WHEN 'S'.
ASSIGN <ls_field_catalog>-scrtext_s TO <scrtxt1>.
ASSIGN <ls_field_catalog>-scrtext_m TO <scrtxt2>.
ASSIGN <ls_field_catalog>-scrtext_l TO <scrtxt3>.
WHEN 'L'.
ASSIGN <ls_field_catalog>-scrtext_l TO <scrtxt1>.
ASSIGN <ls_field_catalog>-scrtext_m TO <scrtxt2>.
ASSIGN <ls_field_catalog>-scrtext_s TO <scrtxt3>.
WHEN OTHERS.
ASSIGN <ls_field_catalog>-scrtext_m TO <scrtxt1>.
ASSIGN <ls_field_catalog>-scrtext_s TO <scrtxt2>.
ASSIGN <ls_field_catalog>-scrtext_l TO <scrtxt3>.
ENDCASE.
if <scrtxt1> is not initial.
IF <scrtxt1> IS NOT INITIAL.
lv_value = <scrtxt1>.
<ls_field_catalog>-scrtext_l = lv_value.
elseif <scrtxt2> is not initial.
ELSEIF <scrtxt2> IS NOT INITIAL.
lv_value = <scrtxt2>.
<ls_field_catalog>-scrtext_l = lv_value.
elseif <scrtxt3> is not initial.
ELSEIF <scrtxt3> IS NOT INITIAL.
lv_value = <scrtxt3>.
<ls_field_catalog>-scrtext_l = lv_value.
else.
ELSE.
lv_value = 'Column'. " default value as Excel does
<ls_field_catalog>-scrtext_l = lv_value.
endif.
ENDIF.
WHILE 1 = 1.
lv_value_lowercase = lv_value.
TRANSLATE lv_value_lowercase TO LOWER CASE.
@ -2951,10 +2993,11 @@ method BIND_TABLE.
*--------------------------------------------------------------------*
" conditional formatting
*--------------------------------------------------------------------*
IF <ls_field_catalog>-cond_style IS NOT INITIAL.
IF <ls_field_catalog>-style_cond IS NOT INITIAL.
lv_first_row = ls_settings-top_left_row + 1. " +1 to exclude header
lv_last_row = ls_settings-top_left_row + lv_rows.
<ls_field_catalog>-cond_style->set_range( ip_start_column = lv_column_alpha
lo_style_cond = me->get_style_cond( <ls_field_catalog>-style_cond ).
lo_style_cond->set_range( ip_start_column = lv_column_alpha
ip_start_row = lv_first_row
ip_stop_column = lv_column_alpha
ip_stop_row = lv_last_row ).
@ -2977,7 +3020,7 @@ method BIND_TABLE.
ENDIF.
" << Issue #291
endmethod.
ENDMETHOD.
METHOD calculate_cell_width.
@ -3231,7 +3274,7 @@ METHOD calculate_cell_width.
ENDMETHOD.
method CALCULATE_COLUMN_WIDTHS.
METHOD calculate_column_widths.
TYPES:
BEGIN OF t_auto_size,
col_index TYPE int4,
@ -3239,77 +3282,54 @@ method CALCULATE_COLUMN_WIDTHS.
END OF t_auto_size.
TYPES: tt_auto_size TYPE TABLE OF t_auto_size.
DATA: column_dimensions TYPE zexcel_t_worksheet_columndime.
DATA: column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
DATA: lo_column_iterator TYPE REF TO cl_object_collection_iterator,
lo_column TYPE REF TO zcl_excel_column.
DATA: auto_size TYPE flag.
DATA: auto_sizes TYPE tt_auto_size.
* DATA: col_alpha TYPE zexcel_cell_column_alpha." issue #155 - less restrictive typing for ip_column
DATA: cell_value TYPE zexcel_cell_value.
DATA: cell_style TYPE REF TO zcl_excel_style.
DATA: count TYPE int4.
DATA: highest_row TYPE int4.
DATA: width TYPE float.
FIELD-SYMBOLS: <column_dimension> LIKE LINE OF column_dimensions.
FIELD-SYMBOLS: <auto_size> LIKE LINE OF auto_sizes.
column_dimensions[] = me->get_column_dimensions( ).
LOOP AT column_dimensions ASSIGNING <column_dimension>.
auto_size = <column_dimension>-column_dimension->get_auto_size( ).
lo_column_iterator = me->get_columns_iterator( ).
WHILE lo_column_iterator->has_next( ) = abap_true.
lo_column ?= lo_column_iterator->get_next( ).
auto_size = lo_column->get_auto_size( ).
IF auto_size = abap_true.
APPEND INITIAL LINE TO auto_sizes ASSIGNING <auto_size>.
<auto_size>-col_index = <column_dimension>-column_dimension->get_column_index( ).
<auto_size>-col_index = lo_column->get_column_index( ).
<auto_size>-width = -1.
ENDIF.
ENDLOOP.
ENDWHILE.
" There is only something to do if there are some auto-size columns
IF NOT auto_sizes IS INITIAL.
highest_row = me->get_highest_row( ).
LOOP AT auto_sizes ASSIGNING <auto_size>.
* col_alpha = zcl_excel_common=>convert_column2alpha( <auto_size>-col_index )." issue #155 - less restrictive typing for ip_column
count = 1.
WHILE count <= highest_row.
* Do not check merged cells
IF is_cell_merged(
ip_column = <auto_size>-col_index
ip_row = count ) = abap_false.
* Start of change # issue 139 - Dateretention of cellstyles
* IF cell_style IS BOUND.
* CREATE OBJECT cell_style.
* ENDIF.
* me->get_cell(
* EXPORTING
* ip_column = col_alpha " Cell Column
* ip_row = count " Cell Row
* IMPORTING
* ep_value = cell_value " Cell Value
* ep_style = cell_style " Request Cell Style as well
* ).
* " For an easy start we just take the number of characters as the width
* width = strlen( cell_value ).
* " Addition to solve issue #120, contribution by Stefan Schmöcker
* " Calculate width using Font Size and Font Type
* IF cell_style IS BOUND
* AND cell_style->font IS BOUND.
* width = cell_style->font->calculate_text_width( cell_value ).
* ENDIF.
* width = calculate_cell_width( ip_column = col_alpha " issue #155 - less restrictive typing for ip_column
width = calculate_cell_width( ip_column = <auto_size>-col_index " issue #155 - less restrictive typing for ip_column
ip_row = count ).
* End of change # issue 139 - Dateretention of cellstyles
IF width > <auto_size>-width.
<auto_size>-width = width.
ENDIF.
ENDIF.
count = count + 1.
ENDWHILE.
* column_dimension = me->get_column_dimension( col_alpha ). " issue #155 - less restrictive typing for ip_column
column_dimension = me->get_column_dimension( <auto_size>-col_index ). " issue #155 - less restrictive typing for ip_column
column_dimension->set_width( <auto_size>-width ).
lo_column = me->get_column( <auto_size>-col_index ). " issue #155 - less restrictive typing for ip_column
lo_column->set_width( <auto_size>-width ).
ENDLOOP.
ENDIF.
endmethod.
ENDMETHOD.
METHOD change_cell_style.
@ -3643,9 +3663,11 @@ METHOD constructor.
me->set_title( ip_title = lv_title ).
CREATE OBJECT sheet_setup.
CREATE OBJECT conditional_styles.
CREATE OBJECT styles_cond.
CREATE OBJECT data_validations.
CREATE OBJECT tables.
CREATE OBJECT columns.
CREATE OBJECT rows.
CREATE OBJECT ranges. " issue #163
CREATE OBJECT mo_pagebreaks.
CREATE OBJECT drawings
@ -3783,7 +3805,7 @@ method GET_ACTIVE_CELL.
endmethod.
method GET_CELL.
METHOD get_cell.
DATA: lv_column TYPE zexcel_cell_column,
ls_sheet_content TYPE zexcel_s_cell_data.
@ -3811,42 +3833,43 @@ method GET_CELL.
ENDIF.
ENDWHILE.
ENDIF.
endmethod.
ENDMETHOD.
method GET_COLUMN_DIMENSION.
FIELD-SYMBOLS: <fs_column_dimension> LIKE LINE OF column_dimensions.
DATA: lv_column_alpha TYPE zexcel_cell_column_alpha. " issue #155 - less restrictive typing for ip_column
METHOD get_column.
lv_column_alpha = zcl_excel_common=>convert_column2alpha( ip_column )." issue #155 - less restrictive typing for ip_column
READ TABLE me->column_dimensions ASSIGNING <fs_column_dimension>
WITH KEY column = lv_column_alpha. " issue #155 - less restrictive typing for ip_column
DATA: lo_column_iterator TYPE REF TO cl_object_collection_iterator,
lo_column TYPE REF TO zcl_excel_column,
lv_column TYPE zexcel_cell_column.
IF NOT <fs_column_dimension> IS ASSIGNED.
CREATE OBJECT r_column_dimension
EXPORTING
ip_index = lv_column_alpha " issue #155 - less restrictive typing for ip_column
ip_excel = me->excel " issue #157 - Allow style for columns
ip_worksheet = me. " issue #157 - Allow style for columns
APPEND INITIAL LINE TO me->column_dimensions ASSIGNING <fs_column_dimension>.
<fs_column_dimension>-column = lv_column_alpha. " issue #155 - less restrictive typing for ip_column
<fs_column_dimension>-column_dimension = r_column_dimension.
ELSE.
r_column_dimension = <fs_column_dimension>-column_dimension.
lv_column = zcl_excel_common=>convert_column2int( ip_column ).
lo_column_iterator = me->get_columns_iterator( ).
WHILE lo_column_iterator->has_next( ) = abap_true.
lo_column ?= lo_column_iterator->get_next( ).
IF lo_column->get_column_index( ) = lv_column.
eo_column = lo_column.
EXIT.
ENDIF.
ENDWHILE.
IF eo_column IS NOT BOUND.
eo_column = me->add_new_column( ip_column ).
ENDIF.
endmethod.
ENDMETHOD.
method GET_COLUMN_DIMENSIONS.
r_column_dimension[] = me->column_dimensions[].
endmethod.
METHOD get_columns.
eo_columns = me->columns.
ENDMETHOD.
method GET_COND_STYLES_ITERATOR.
METHOD GET_COLUMNS_ITERATOR.
eo_iterator = me->conditional_styles->get_iterator( ).
endmethod.
eo_iterator = me->columns->get_iterator( ).
ENDMETHOD.
method GET_DATA_VALIDATIONS_ITERATOR.
@ -3860,17 +3883,17 @@ method GET_DATA_VALIDATIONS_SIZE.
endmethod.
method GET_DEFAULT_COLUMN_DIMENSION.
IF me->default_column_dimension IS NOT BOUND.
CREATE OBJECT me->default_column_dimension
METHOD GET_DEFAULT_COLUMN.
IF me->column_default IS NOT BOUND.
CREATE OBJECT me->column_default
EXPORTING
ip_index = 'A' " ????
ip_worksheet = me
ip_excel = me->excel.
ENDIF.
r_column_dimension = me->default_column_dimension.
endmethod.
eo_column = me->column_default.
ENDMETHOD.
method GET_DEFAULT_EXCEL_DATE_FORMAT.
@ -3933,13 +3956,13 @@ method GET_DEFAULT_EXCEL_TIME_FORMAT.
endmethod.
method GET_DEFAULT_ROW_DIMENSION.
IF me->default_row_dimension IS NOT BOUND.
CREATE OBJECT me->default_row_dimension.
METHOD get_default_row.
IF me->row_default IS NOT BOUND.
CREATE OBJECT me->row_default.
ENDIF.
r_row_dimension = me->default_row_dimension.
endmethod.
eo_row = me->row_default.
ENDMETHOD.
method GET_DIMENSION_RANGE.
@ -4073,32 +4096,35 @@ method GET_RANGES_ITERATOR.
endmethod.
METHOD GET_ROW_DIMENSION.
METHOD get_row.
FIELD-SYMBOLS: <ls_row_dimension> LIKE LINE OF me->row_dimensions.
DATA: lo_row_iterator TYPE REF TO cl_object_collection_iterator,
lo_row TYPE REF TO zcl_excel_row.
DATA: ls_row_dimension LIKE LINE OF me->row_dimensions.
lo_row_iterator = me->get_rows_iterator( ).
WHILE lo_row_iterator->has_next( ) = abap_true.
lo_row ?= lo_row_iterator->get_next( ).
IF lo_row->get_row_index( ) = ip_row.
eo_row = lo_row.
EXIT.
ENDIF.
ENDWHILE.
READ TABLE me->row_dimensions ASSIGNING <ls_row_dimension>
WITH TABLE KEY row = ip_row.
IF NOT <ls_row_dimension> IS ASSIGNED.
CREATE OBJECT r_row_dimension
EXPORTING
ip_index = ip_row.
ls_row_dimension-row = ip_row.
ls_row_dimension-row_dimension = r_row_dimension.
INSERT ls_row_dimension INTO TABLE me->row_dimensions.
ELSE.
r_row_dimension = <ls_row_dimension>-row_dimension.
IF eo_row IS NOT BOUND.
eo_row = me->add_new_row( ip_row ).
ENDIF.
ENDMETHOD.
METHOD get_row_dimensions.
METHOD GET_ROWS.
eo_rows = me->rows.
ENDMETHOD.
r_row_dimension[] = me->row_dimensions[].
METHOD get_rows_iterator.
eo_iterator = me->rows->get_iterator( ).
ENDMETHOD.
@ -4110,6 +4136,29 @@ METHOD get_row_outlines.
ENDMETHOD.
METHOD get_style_cond.
DATA: lo_style_iterator TYPE REF TO cl_object_collection_iterator,
lo_style_cond TYPE REF TO zcl_excel_style_cond.
lo_style_iterator = me->get_style_cond_iterator( ).
WHILE lo_style_iterator->has_next( ) = abap_true.
lo_style_cond ?= lo_style_iterator->get_next( ).
IF lo_style_cond->get_guid( ) = ip_guid.
eo_style_cond = lo_style_cond.
EXIT.
ENDIF.
ENDWHILE.
ENDMETHOD.
METHOD get_style_cond_iterator.
eo_iterator = styles_cond->get_iterator( ).
ENDMETHOD.
method GET_TABCOLOR.
ev_tabcolor = me->tabcolor.
endmethod.
@ -4574,7 +4623,7 @@ method SET_CELL_FORMULA.
endmethod.
method SET_CELL_STYLE.
METHOD set_cell_style.
DATA: lv_column TYPE zexcel_cell_column,
lv_style_guid TYPE zexcel_cell_style.
@ -4594,14 +4643,14 @@ method SET_CELL_STYLE.
set_cell( ip_column = ip_column ip_row = ip_row ip_value = '' ip_style = ip_style ).
ENDIF.
endmethod.
ENDMETHOD.
method SET_COLUMN_WIDTH.
DATA: column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
DATA: lo_column TYPE REF TO zcl_excel_column.
DATA: width TYPE float.
column_dimension = me->get_column_dimension( ip_column ).
lo_column = me->get_column( ip_column ).
* if a fix size is supplied use this
IF ip_width_fix IS SUPPLIED.
@ -4612,7 +4661,7 @@ method SET_COLUMN_WIDTH.
EXPORTING
error = 'Please supply a positive number as column-width'.
ENDIF.
column_dimension->set_width( width ).
lo_column->set_width( width ).
EXIT.
CATCH cx_sy_conversion_no_number.
* Strange stuff passed --> raise error
@ -4623,7 +4672,7 @@ method SET_COLUMN_WIDTH.
ENDIF.
* If we get down to here, we have to use whatever is found in autosize.
column_dimension->set_auto_size( ip_width_autosize ).
lo_column->set_auto_size( ip_width_autosize ).
endmethod.
@ -4702,11 +4751,11 @@ method SET_PRINT_GRIDLINES.
endmethod.
method SET_ROW_HEIGHT.
DATA: row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
METHOD set_row_height.
DATA: lo_row TYPE REF TO zcl_excel_row.
DATA: height TYPE float.
row_dimension = me->get_row_dimension( ip_row ).
lo_row = me->get_row( ip_row ).
* if a fix size is supplied use this
TRY.
@ -4716,7 +4765,7 @@ method SET_ROW_HEIGHT.
EXPORTING
error = 'Please supply a positive number as row-height'.
ENDIF.
row_dimension->set_row_height( height ).
lo_row->set_row_height( height ).
EXIT.
CATCH cx_sy_conversion_no_number.
* Strange stuff passed --> raise error
@ -4725,9 +4774,7 @@ method SET_ROW_HEIGHT.
error = 'Unable to interpret supplied input as number'.
ENDTRY.
endmethod.
ENDMETHOD.
METHOD set_row_outline.

View File

@ -90,15 +90,9 @@
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>ADD_NEW_CONDITIONAL_STYLE</CMPNAME>
<CMPNAME>ADD_NEW_COLUMN</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Creates a new conditional formatting</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>ADD_NEW_CONDITIONAL_STYLE</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Creates a new conditional formatting</DESCRIPT>
<DESCRIPT>Create a new column</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
@ -124,6 +118,18 @@
<LANGU>I</LANGU>
<DESCRIPT>Create a new local range</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>ADD_NEW_ROW</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Create a new row</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>ADD_NEW_STYLE_COND</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Creates a new conditional formatting</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>BIND_ALV</CMPNAME>
@ -210,27 +216,15 @@
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>COLUMN_DIMENSIONS</CMPNAME>
<CMPNAME>COLUMNS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Collection of column dimensions</DESCRIPT>
<DESCRIPT>Ranges collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>COLUMN_DIMENSIONS</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Collection of column dimensions</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>CONDITIONAL_STYLES</CMPNAME>
<CMPNAME>COLUMN_DEFAULT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Styles conditional collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>CONDITIONAL_STYLES</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Styles conditional collection</DESCRIPT>
<DESCRIPT>Worksheet ColumnDimension</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
@ -292,18 +286,6 @@
<LANGU>I</LANGU>
<DESCRIPT>Data validations collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>DEFAULT_COLUMN_DIMENSION</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Worksheet ColumnDimension</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>DEFAULT_COLUMN_DIMENSION</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Worksheet ColumnDimension</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>DEFAULT_EXCEL_DATE_FORMAT</CMPNAME>
@ -328,18 +310,6 @@
<LANGU>I</LANGU>
<DESCRIPT>Date format used in case style is not provide for D fields</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>DEFAULT_ROW_DIMENSION</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Worksheet RowDimension</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>DEFAULT_ROW_DIMENSION</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Worksheet RowDimension</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>DELETE_MERGE</CMPNAME>
@ -444,45 +414,27 @@
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_COLUMN_DIMENSION</CMPNAME>
<CMPNAME>GET_COLUMN</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get column dimension at a specific column</DESCRIPT>
<DESCRIPT>Get column object at a specific column</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_COLUMN_DIMENSION</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Get column dimension at a specific column</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_COLUMN_DIMENSIONS</CMPNAME>
<CMPNAME>GET_COLUMNS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get column dimensions</DESCRIPT>
<DESCRIPT>Get columns</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_COLUMN_DIMENSIONS</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Get column dimensions</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_COND_STYLES_ITERATOR</CMPNAME>
<CMPNAME>GET_COLUMNS_ITERATOR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get conditional styles iterator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_COND_STYLES_ITERATOR</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Get conditional styles iterator</DESCRIPT>
<DESCRIPT>Get columns iterator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_DATA_VALIDATIONS_ITERATOR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get conditional styles iterator</DESCRIPT>
<DESCRIPT>Get data validation iterator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
@ -504,15 +456,9 @@
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_DEFAULT_COLUMN_DIMENSION</CMPNAME>
<CMPNAME>GET_DEFAULT_COLUMN</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get column dimension at a specific column</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_DEFAULT_COLUMN_DIMENSION</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Get column dimension at a specific column</DESCRIPT>
<DESCRIPT>Get column at a specific column</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
@ -540,15 +486,9 @@
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_DEFAULT_ROW_DIMENSION</CMPNAME>
<CMPNAME>GET_DEFAULT_ROW</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get column dimension at a specific column</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_DEFAULT_ROW_DIMENSION</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Get column dimension at a specific column</DESCRIPT>
<DESCRIPT>Get row at a specific row</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
@ -666,27 +606,21 @@
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_ROW_DIMENSION</CMPNAME>
<CMPNAME>GET_ROW</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get row dimension at a specific row</DESCRIPT>
<DESCRIPT>Get row at a specific row</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_ROW_DIMENSION</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Get column dimension at a specific column</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_ROW_DIMENSIONS</CMPNAME>
<CMPNAME>GET_ROWS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get row dimensions</DESCRIPT>
<DESCRIPT>Get rows</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_ROW_DIMENSIONS</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Get column dimensions</DESCRIPT>
<CMPNAME>GET_ROWS_ITERATOR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get rows iterator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
@ -694,6 +628,18 @@
<LANGU>E</LANGU>
<DESCRIPT>Get all outlines for rows</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_STYLE_COND</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get style for a specific guid</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_STYLE_COND_ITERATOR</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get conditional styles iterator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_TABCOLOR</CMPNAME>
@ -832,12 +778,6 @@
<LANGU>E</LANGU>
<DESCRIPT>All row outlines ( sorted table )</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>MTY_TS_ROW_DIMENSION</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Sorted table for row dimensions</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>MT_MERGED_CELLS</CMPNAME>
@ -936,15 +876,15 @@
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>ROW_DIMENSIONS</CMPNAME>
<CMPNAME>ROWS</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Collection of row dimensions</DESCRIPT>
<DESCRIPT>Ranges collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>ROW_DIMENSIONS</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Collection of row dimensions</DESCRIPT>
<CMPNAME>ROW_DEFAULT</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Worksheet ColumnDimension</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
@ -1168,6 +1108,12 @@
<LANGU>I</LANGU>
<DESCRIPT>Sheet style table type</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>STYLES_COND</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Styles conditional collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>TABCOLOR</CMPNAME>

View File

@ -1,166 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<VSEOCLASS>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<VERSION>1</VERSION>
<LANGU>E</LANGU>
<DESCRIPT>Worksheet ColumnDimension</DESCRIPT>
<EXPOSURE>2</EXPOSURE>
<STATE>1</STATE>
<CLSFINAL>X</CLSFINAL>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
<TPOOL/>
<DESCRIPTIONS>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>AUTO_SIZE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Auto size?</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>AUTO_SIZE</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Auto size?</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>COLLAPSED</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Collapsed?</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>COLLAPSED</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Collapsed?</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>COLUMN_INDEX</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Column index</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>COLUMN_INDEX</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Column index</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>EXCEL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Excel creator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>EXCEL</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Excel creator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>GET_COLUMN_STYLE_GUID</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Get guid of column style</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>GET_COLUMN_STYLE_GUID</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Get guid of column style</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>OUTLINE_LEVEL</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Outline level</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>OUTLINE_LEVEL</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Outline level</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>SET_COLUMN_STYLE_BY_GUID</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Set column style by style guid</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>SET_COLUMN_STYLE_BY_GUID</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Set column style by style guid</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>STYLE_GUID</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Style identifier</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>STYLE_GUID</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Style identifier</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>VISIBLE</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Visible?</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>VISIBLE</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Visible?</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>WIDTH</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Column width</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>WIDTH</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Column width</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>WORKSHEET</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Worksheet</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>WORKSHEET</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Worksheet</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>XF_INDEX</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Index to cellXf</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</CLSNAME>
<CMPNAME>XF_INDEX</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Index to cellXf</DESCRIPT>
</SEOCOMPOTX>
</DESCRIPTIONS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -36,7 +36,6 @@ protected section.
importing
!IO_DOCUMENT type ref to IF_IXML_DOCUMENT
!IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET
!IT_COLUMN_DIMENSIONS type ZEXCEL_T_WORKSHEET_COLUMNDIME
returning
value(RV_IXML_SHEET_DATA_ROOT) type ref to IF_IXML_ELEMENT .
methods ADD_FURTHER_DATA_TO_ZIP
@ -2929,11 +2928,6 @@ METHOD create_xl_sheet.
lc_xml_node_sheetformatpr TYPE string VALUE 'sheetFormatPr',
lc_xml_node_cols TYPE string VALUE 'cols',
lc_xml_node_col TYPE string VALUE 'col',
* lc_xml_node_sheetdata TYPE string VALUE 'sheetData',
* lc_xml_node_row TYPE string VALUE 'row',
* lc_xml_node_c TYPE string VALUE 'c',
* lc_xml_node_v TYPE string VALUE 'v',
* lc_xml_node_f TYPE string VALUE 'f',
lc_xml_node_sheetprotection TYPE string VALUE 'sheetProtection',
lc_xml_node_pagemargins TYPE string VALUE 'pageMargins',
lc_xml_node_pagesetup TYPE string VALUE 'pageSetup',
@ -2994,10 +2988,6 @@ METHOD create_xl_sheet.
lc_xml_attr_outlinelevelrow TYPE string VALUE 'x14ac:outlineLevelRow',
lc_xml_attr_outlinelevelcol TYPE string VALUE 'x14ac:outlineLevelCol',
lc_xml_attr_outlinelevel TYPE string VALUE 'outlineLevel',
* lc_xml_attr_r TYPE string VALUE 'r',
* lc_xml_attr_s TYPE string VALUE 's',
* lc_xml_attr_spans TYPE string VALUE 'spans',
* lc_xml_attr_t TYPE string VALUE 't',
lc_xml_attr_password TYPE string VALUE 'password',
lc_xml_attr_sheet TYPE string VALUE 'sheet',
lc_xml_attr_objects TYPE string VALUE 'objects',
@ -3079,13 +3069,11 @@ METHOD create_xl_sheet.
lo_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer,
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional,
lo_style_cond TYPE REF TO zcl_excel_style_cond,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_table TYPE REF TO zcl_excel_table,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi,
lo_row_dim_empty TYPE REF TO zcl_excel_worksheet_rowdimensi,
default_col_dimension TYPE REF TO zcl_excel_worksheet_columndime,
default_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
lo_column_default TYPE REF TO zcl_excel_column,
lo_row_default TYPE REF TO zcl_excel_row.
DATA: lv_value TYPE string,
lt_range_merge TYPE string_table,
@ -3108,8 +3096,10 @@ METHOD create_xl_sheet.
lv_freeze_cell_row TYPE zexcel_cell_row,
lv_freeze_cell_column TYPE zexcel_cell_column,
lv_freeze_cell_column_alpha TYPE zexcel_cell_column_alpha,
column_dimensions TYPE zexcel_t_worksheet_columndime,
row_dimensions TYPE zexcel_t_worksheet_rowdimensio,
lo_column_iterator TYPE REF TO cl_object_collection_iterator,
lo_column TYPE REF TO zcl_excel_column,
lo_row_iterator TYPE REF TO cl_object_collection_iterator,
lo_row TYPE REF TO zcl_excel_row,
ls_style_cond_mapping TYPE zexcel_s_styles_cond_mapping,
lv_relation_id TYPE i VALUE 0,
outline_level_row TYPE i VALUE 0,
@ -3119,14 +3109,12 @@ METHOD create_xl_sheet.
ls_sheet_content LIKE LINE OF io_worksheet->sheet_content,
ls_sheet_content_empty LIKE LINE OF io_worksheet->sheet_content,
lv_last_row TYPE i,
lts_row_dimensions TYPE zexcel_t_worksheet_rowdimensio,
lts_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row,
col_count TYPE int4,
merge_count TYPE int4,
write_current_row TYPE boolean,
lt_values TYPE zexcel_t_autofilter_values,
ls_values TYPE zexcel_s_autofilter_values,
* lv_guid TYPE uuid,
lo_autofilters TYPE REF TO zcl_excel_autofilters,
lo_autofilter TYPE REF TO zcl_excel_autofilter,
l_autofilter_hidden TYPE flag,
@ -3136,8 +3124,9 @@ METHOD create_xl_sheet.
FIELD-SYMBOLS: <fs_range_merge> LIKE LINE OF lt_range_merge,
<column_dimension> TYPE zexcel_s_worksheet_columndime.
FIELD-SYMBOLS: <ls_sheet_content> TYPE zexcel_s_cell_data,
<fs_range_merge> LIKE LINE OF lt_range_merge,
<ls_row_outline> LIKE LINE OF lts_row_outlines.
*--------------------------------------------------------------------*
* issue #220 - If cell in tables-area don't use default from row or column or sheet - Declarations 2 - start
@ -3362,23 +3351,24 @@ METHOD create_xl_sheet.
lo_element_root->append_child( new_child = lo_element ). " sheetViews node
column_dimensions[] = io_worksheet->get_column_dimensions( ).
lo_column_iterator = io_worksheet->get_columns_iterator( ).
lo_row_iterator = io_worksheet->get_rows_iterator( ).
" Calculate col
IF NOT column_dimensions IS INITIAL.
IF NOT lo_column_iterator IS BOUND.
io_worksheet->calculate_column_widths( ).
column_dimensions[] = io_worksheet->get_column_dimensions( ).
lo_column_iterator = io_worksheet->get_columns_iterator( ).
ENDIF.
row_dimensions[] = io_worksheet->get_row_dimensions( ).
" sheetFormatPr node
lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetformatpr
parent = lo_document ).
" defaultRowHeight
default_row_dimension = io_worksheet->get_default_row_dimension( ).
IF default_row_dimension IS BOUND.
IF default_row_dimension->get_row_height( ) >= 0.
lo_row_default = io_worksheet->get_default_row( ).
IF lo_row_default IS BOUND.
IF lo_row_default->get_row_height( ) >= 0.
lo_element->set_attribute_ns( name = lc_xml_attr_customheight
value = lc_xml_attr_true ).
lv_value = default_row_dimension->get_row_height( ).
lv_value = lo_row_default->get_row_height( ).
ELSE.
lv_value = '12.75'.
ENDIF.
@ -3390,61 +3380,48 @@ METHOD create_xl_sheet.
lo_element->set_attribute_ns( name = lc_xml_attr_defaultrowheight
value = lv_value ).
" defaultColWidth
default_col_dimension = io_worksheet->get_default_column_dimension( ).
IF default_col_dimension IS BOUND.
IF default_col_dimension->get_width( ) >= 0.
lv_value = default_col_dimension->get_width( ).
lo_column_default = io_worksheet->get_default_column( ).
IF lo_column_default IS BOUND.
IF lo_column_default->get_width( ) >= 0.
lv_value = lo_column_default->get_width( ).
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element->set_attribute_ns( name = lc_xml_attr_defaultcolwidth
value = lv_value ).
ENDIF.
ENDIF.
" outlineLevelRow
* Excel is recalculating the outlinelevel on startup from the outline levels found in the rows
* If we place anything incorrect here it gets corrected, if don't place anything it gets added
* So no need to calculate the outlinelevel here ( at least for rows - probably for columns as well but I haven't tested yet
* LOOP AT row_dimensions ASSIGNING <row_dimension>.
* IF <row_dimension>-row_dimension->get_outline_level( ) > outline_level_row.
* outline_level_row = <row_dimension>-row_dimension->get_outline_level( ).
* ENDIF.
* ENDLOOP.
* lv_value = outline_level_row.
* SHIFT lv_value RIGHT DELETING TRAILING space.
* SHIFT lv_value LEFT DELETING LEADING space.
* lo_element->set_attribute_ns( name = lc_xml_attr_outlinelevelrow
* value = lv_value ).
" outlineLevelCol
LOOP AT column_dimensions ASSIGNING <column_dimension>.
IF <column_dimension>-column_dimension->get_outline_level( ) > outline_level_col.
outline_level_col = <column_dimension>-column_dimension->get_outline_level( ).
WHILE lo_column_iterator->has_next( ) = abap_true.
lo_column ?= lo_column_iterator->get_next( ).
IF lo_column->get_outline_level( ) > outline_level_col.
outline_level_col = lo_column->get_outline_level( ).
ENDIF.
ENDLOOP.
ENDWHILE.
lv_value = outline_level_col.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element->set_attribute_ns( name = lc_xml_attr_outlinelevelcol
value = lv_value ).
* lv_value = 0.
* SHIFT lv_value RIGHT DELETING TRAILING space.
* SHIFT lv_value LEFT DELETING LEADING space.
* lo_element->set_attribute_ns( name = lc_xml_attr_dydescent
* value = lv_value ).
lo_element_root->append_child( new_child = lo_element ). " sheetFormatPr node
IF io_worksheet->zif_excel_sheet_properties~get_style( ) IS NOT INITIAL OR NOT column_dimensions IS INITIAL.
* Reset column iterator
lo_column_iterator = io_worksheet->get_columns_iterator( ).
IF io_worksheet->zif_excel_sheet_properties~get_style( ) IS NOT INITIAL OR lo_column_iterator->has_next( ) = abap_true.
" cols node
lo_element = lo_document->create_simple_element( name = lc_xml_node_cols
parent = lo_document ).
" This code have to be enhanced in order to manage also column style properties
" Now it is an out/out
IF NOT column_dimensions IS INITIAL.
LOOP AT column_dimensions ASSIGNING <column_dimension>.
IF lo_column_iterator->has_next( ) = abap_true.
WHILE lo_column_iterator->has_next( ) = abap_true.
lo_column ?= lo_column_iterator->get_next( ).
" col node
lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_col
parent = lo_document ).
lv_value = <column_dimension>-column_dimension->get_column_index( ).
lv_value = lo_column->get_column_index( ).
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element_2->set_attribute_ns( name = lc_xml_attr_min
@ -3452,28 +3429,27 @@ METHOD create_xl_sheet.
lo_element_2->set_attribute_ns( name = lc_xml_attr_max
value = lv_value ).
" Width
IF <column_dimension>-column_dimension->get_width( ) < 0.
IF lo_column->get_width( ) < 0.
lo_element_2->set_attribute_ns( name = lc_xml_attr_width
value = lc_xml_attr_defaultwidth ).
ELSE.
lv_value = <column_dimension>-column_dimension->get_width( ).
lv_value = lo_column->get_width( ).
lo_element_2->set_attribute_ns( name = lc_xml_attr_width
value = lv_value ).
ENDIF.
" Column visibility
IF <column_dimension>-column_dimension->get_visible( ) = abap_false.
IF lo_column->get_visible( ) = abap_false.
lo_element_2->set_attribute_ns( name = lc_xml_attr_hidden
value = lc_xml_attr_true ).
ENDIF.
" Auto size?
IF <column_dimension>-column_dimension->get_auto_size( ) = abap_true.
IF lo_column->get_auto_size( ) = abap_true.
lo_element_2->set_attribute_ns( name = lc_xml_attr_bestfit
value = lc_xml_attr_true ).
ENDIF.
" Custom width?
IF default_col_dimension IS BOUND.
IF <column_dimension>-column_dimension->get_width( )
<> default_col_dimension->get_width( ).
IF lo_column_default IS BOUND.
IF lo_column->get_width( ) <> lo_column_default->get_width( ).
lo_element_2->set_attribute_ns( name = lc_xml_attr_customwidth
value = lc_xml_attr_true ).
@ -3483,13 +3459,13 @@ METHOD create_xl_sheet.
value = lc_xml_attr_true ).
ENDIF.
" Collapsed
IF <column_dimension>-column_dimension->get_collapsed( ) = abap_true.
IF lo_column->get_collapsed( ) = abap_true.
lo_element_2->set_attribute_ns( name = lc_xml_attr_collapsed
value = lc_xml_attr_true ).
ENDIF.
" outlineLevel
IF <column_dimension>-column_dimension->get_outline_level( ) > 0.
lv_value = <column_dimension>-column_dimension->get_outline_level( ).
IF lo_column->get_outline_level( ) > 0.
lv_value = lo_column->get_outline_level( ).
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
@ -3497,14 +3473,9 @@ METHOD create_xl_sheet.
value = lv_value ).
ENDIF.
" Style
* lv_value = <column_dimension>-column_dimension->get_xf_index( ). "del issue #157 - set column style
lv_style_guid = <column_dimension>-column_dimension->get_column_style_guid( ). "ins issue #157 - set column style
* lv_value = me->excel->get_style_index_in_styles( lv_style_guid ). "del issue #237
lv_style_guid = lo_column->get_column_style_guid( ). "ins issue #157 - set column style
CLEAR ls_style_mapping.
READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = lv_style_guid.
* lv_style_index = ls_style_mapping-style. "del issue #295
* IF lv_style_index > 0. "ins issue #237 - del issue #295
* lv_value = lv_style_index - 1. "ins issue #237 - del issue #295
IF sy-subrc = 0. "ins issue #295
lv_value = ls_style_mapping-style. "ins issue #295
SHIFT lv_value RIGHT DELETING TRAILING space.
@ -3514,7 +3485,7 @@ METHOD create_xl_sheet.
ENDIF. "ins issue #237
lo_element->append_child( new_child = lo_element_2 ). " col node
ENDLOOP.
ENDWHILE.
* ELSE. "del issue #157 - set sheet style ( add missing columns
* IF io_worksheet->zif_excel_sheet_properties~get_style( ) IS NOT INITIAL. "del issue #157 - set sheet style ( add missing columns
* Begin of insertion issue #157 - set sheet style ( add missing columns
@ -3530,10 +3501,12 @@ METHOD create_xl_sheet.
missing_column LIKE LINE OF t_missing_columns.
* First collect columns that were already handled before. The rest has to be inserted now
LOOP AT column_dimensions ASSIGNING <column_dimension>.
lv_column = zcl_excel_common=>convert_column2int( <column_dimension>-column ).
lo_column_iterator = io_worksheet->get_columns_iterator( ).
WHILE lo_column_iterator->has_next( ) = abap_true.
lo_column ?= lo_column_iterator->get_next( ).
lv_column = zcl_excel_common=>convert_column2int( lo_column->get_column_index( ) ).
INSERT lv_column INTO TABLE lts_sorted_columns.
ENDLOOP.
ENDWHILE.
* Now find all columns that were missing so far
missing_column-first_column = 1.
@ -3597,312 +3570,10 @@ METHOD create_xl_sheet.
* Sheet content - use own method to create this
*--------------------------------------------------------------------*
lo_element = create_xl_sheet_sheet_data( io_worksheet = io_worksheet
io_document = lo_document
it_column_dimensions = column_dimensions ) .
* " sheetData node
* lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetdata
* parent = lo_document ).
* " Get column count
* col_count = io_worksheet->get_highest_column( ).
* " Get autofilter
** lv_guid = io_worksheet->get_guid( ) .
io_document = lo_document ) .
lo_autofilters = excel->get_autofilters_reference( ).
lo_autofilter = lo_autofilters->get( io_worksheet = io_worksheet ) .
* IF lo_autofilter IS BOUND.
* lt_values = lo_autofilter->get_values( ) .
* ls_area = lo_autofilter->get_filter_area( ) .
* l_autofilter_hidden = abap_true. " First defautl is not showing
* ENDIF.
**--------------------------------------------------------------------*
** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 1 - start
**--------------------------------------------------------------------*
** Build table to hold all table-areas attached to this sheet
* lo_iterator = io_worksheet->get_tables_iterator( ).
* WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true.
* lo_table ?= lo_iterator->if_object_collection_iterator~get_next( ).
* ls_table_area-left = zcl_excel_common=>convert_column2int( lo_table->settings-top_left_column ).
* ls_table_area-right = lo_table->get_right_column_integer( ).
* ls_table_area-top = lo_table->settings-top_left_row.
* ls_table_area-bottom = lo_table->get_bottom_row_integer( ).
* INSERT ls_table_area INTO TABLE lt_table_areas.
* ENDWHILE.
**--------------------------------------------------------------------*
** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 1 - end
**--------------------------------------------------------------------*
** We have problems when the first rows or trailing rows are not set but we have rowinformation
** to solve this we add dummycontent into first and last line that will not be set
** Set first line if necessary
* READ TABLE io_worksheet->sheet_content TRANSPORTING NO FIELDS WITH KEY cell_row = 1.
* IF sy-subrc <> 0.
* ls_sheet_content_empty-cell_row = 1.
* ls_sheet_content_empty-cell_column = 1.
* ls_sheet_content_empty-cell_value = lc_dummy_cell_content.
* INSERT ls_sheet_content_empty INTO TABLE io_worksheet->sheet_content.
* ENDIF.
** Set last line if necessary
** Last row with cell content
* lv_last_row = io_worksheet->get_highest_row( ).
** Last line with row-information set directly ( like line height, hidden-status ... )
* lts_row_dimensions = io_worksheet->get_row_dimensions( ).
* SORT lts_row_dimensions BY row DESCENDING.
* READ TABLE lts_row_dimensions INDEX 1 ASSIGNING <row_dimension>.
* IF sy-subrc = 0 AND <row_dimension>-row > lv_last_row.
* lv_last_row = <row_dimension>-row.
* ENDIF.
** Last line with row-information set indirectly by row outline
* lts_row_outlines = io_worksheet->get_row_outlines( ).
* LOOP AT lts_row_outlines ASSIGNING <ls_row_outline>.
* IF <ls_row_outline>-collapsed = 'X'.
* lv_current_row = <ls_row_outline>-row_to + 1. " collapsed-status may be set on following row
* ELSE.
* lv_current_row = <ls_row_outline>-row_to. " collapsed-status may be set on following row
* ENDIF.
* IF lv_current_row > lv_last_row.
* lv_last_row = lv_current_row.
* ENDIF.
* ENDLOOP.
* READ TABLE io_worksheet->sheet_content TRANSPORTING NO FIELDS WITH KEY cell_row = lv_last_row.
* IF sy-subrc <> 0.
* ls_sheet_content_empty-cell_row = lv_last_row.
* ls_sheet_content_empty-cell_column = 1.
* ls_sheet_content_empty-cell_value = lc_dummy_cell_content.
* INSERT ls_sheet_content_empty INTO TABLE io_worksheet->sheet_content.
* ENDIF.
*
* CLEAR ls_sheet_content.
* LOOP AT io_worksheet->sheet_content INTO ls_sheet_content.
* IF lt_values IS INITIAL. " no values attached to autofilter " issue #368 autofilter filtering too much
* CLEAR l_autofilter_hidden.
* ELSE.
* READ TABLE lt_values INTO ls_values WITH KEY column = ls_last_row-cell_column.
* IF sy-subrc = 0 AND ls_values-value = ls_last_row-cell_value.
* CLEAR l_autofilter_hidden.
* ENDIF.
* ENDIF.
* CLEAR ls_style_mapping.
** Create row element
** issues #346,#154, #195 - problems when we have information in row_dimension but no cell content in that row
** Get next line that may have to be added. If we have empty lines this is the next line after previous cell content
** Otherwise it is the line of the current cell content
* lv_current_row = ls_last_row-cell_row + 1.
* IF lv_current_row > ls_sheet_content-cell_row.
* lv_current_row = ls_sheet_content-cell_row.
* ENDIF.
** Fill in empty lines if necessary - assign an emtpy sheet content
* lv_next_row = lv_current_row.
* WHILE lv_next_row <= ls_sheet_content-cell_row.
* lv_current_row = lv_next_row.
* lv_next_row = lv_current_row + 1.
* IF lv_current_row = ls_sheet_content-cell_row. " cell value found in this row
* ASSIGN ls_sheet_content TO <ls_sheet_content>.
* ELSE.
** Check if empty row is really necessary - this is basically the case when we have information in row_dimension
* lo_row_dim_empty = io_worksheet->get_row_dimension( lv_current_row ).
* CHECK lo_row_dim_empty->get_row_height( ) >= 0 OR
* lo_row_dim_empty->get_collapsed( io_worksheet ) = abap_true OR
* lo_row_dim_empty->get_outline_level( io_worksheet ) > 0 OR
* lo_row_dim_empty->get_xf_index( ) <> 0.
* " Dummyentry A1
* ls_sheet_content_empty-cell_row = lv_current_row.
* ls_sheet_content_empty-cell_column = 1.
* ASSIGN ls_sheet_content_empty TO <ls_sheet_content>.
* ENDIF.
*
* IF ls_last_row-cell_row NE <ls_sheet_content>-cell_row.
* IF lo_autofilter IS BOUND.
* IF ls_area-row_start >= ls_last_row-cell_row OR " One less for header
* ls_area-row_end < ls_last_row-cell_row .
* CLEAR l_autofilter_hidden.
* ENDIF.
* ELSE.
* CLEAR l_autofilter_hidden.
* ENDIF.
* IF ls_last_row-cell_row IS NOT INITIAL.
* " Row visibility of previos row.
* IF row_dimension->get_visible( io_worksheet ) = abap_false OR
* l_autofilter_hidden = abap_true.
* lo_element_2->set_attribute_ns( name = 'hidden' value = 'true').
* ENDIF.
* lo_element->append_child( new_child = lo_element_2 ). " row node
* ENDIF.
* " Add new row
* lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_row
* parent = lo_document ).
* " r
* lv_value = <ls_sheet_content>-cell_row.
* SHIFT lv_value RIGHT DELETING TRAILING space.
* SHIFT lv_value LEFT DELETING LEADING space.
*
* lo_element_2->set_attribute_ns( name = lc_xml_attr_r
* value = lv_value ).
* " Spans
* lv_value = col_count.
* CONCATENATE '1:' lv_value INTO lv_value.
* SHIFT lv_value RIGHT DELETING TRAILING space.
* SHIFT lv_value LEFT DELETING LEADING space.
* lo_element_2->set_attribute_ns( name = lc_xml_attr_spans
* value = lv_value ).
* row_dimension = io_worksheet->get_row_dimension( <ls_sheet_content>-cell_row ).
* " Do we need the row dimension attributes?
* IF row_dimension->get_row_height( ) >= 0 OR
* row_dimension->get_collapsed( io_worksheet ) = abap_true OR
* row_dimension->get_outline_level( io_worksheet ) > 0 OR
* row_dimension->get_xf_index( ) <> 0 OR
* l_autofilter_hidden = abap_true.
* " Row dimensions
* IF row_dimension->get_row_height( ) >= 0.
* lo_element_2->set_attribute_ns( name = 'customHeight' value = '1').
* lv_value = row_dimension->get_row_height( ).
* lo_element_2->set_attribute_ns( name = 'ht' value = lv_value ).
* ENDIF.
* " Collapsed
* IF row_dimension->get_collapsed( io_worksheet ) = abap_true.
* lo_element_2->set_attribute_ns( name = 'collapsed' value = 'true').
* ENDIF.
* " Outline level
* IF row_dimension->get_outline_level( io_worksheet ) > 0.
* lv_value = row_dimension->get_outline_level( io_worksheet ).
* SHIFT lv_value RIGHT DELETING TRAILING space.
* SHIFT lv_value LEFT DELETING LEADING space.
* lo_element_2->set_attribute_ns( name = 'outlineLevel' value = lv_value ).
* ENDIF.
* " Style
* IF row_dimension->get_xf_index( ) <> 0.
* lv_value = row_dimension->get_xf_index( ).
* lo_element_2->set_attribute_ns( name = 's' value = lv_value ).
* lo_element_2->set_attribute_ns( name = 'customFormat' value = '1').
* ENDIF.
* ENDIF.
* IF lt_values IS INITIAL. " no values attached to autofilter " issue #368 autofilter filtering too much
* CLEAR l_autofilter_hidden.
* ELSE.
* l_autofilter_hidden = abap_true. " First default is not showing
* ENDIF.
* ELSE.
*
* ENDIF.
* ENDWHILE.
*
* lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_c
* parent = lo_document ).
*
* lo_element_3->set_attribute_ns( name = lc_xml_attr_r
* value = <ls_sheet_content>-cell_coords ).
*
** begin of change issue #157 - allow column cellstyle
** if no cellstyle is set, look into column, then into sheet
* IF <ls_sheet_content>-cell_style IS NOT INITIAL.
* lv_style_guid = <ls_sheet_content>-cell_style.
* ELSE.
**--------------------------------------------------------------------*
** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 2 - start
**--------------------------------------------------------------------*
** Check if cell in any of the table areas
* LOOP AT lt_table_areas TRANSPORTING NO FIELDS WHERE top <= <ls_sheet_content>-cell_row
* AND bottom >= <ls_sheet_content>-cell_row
* AND left <= <ls_sheet_content>-cell_column
* AND right >= <ls_sheet_content>-cell_column.
* EXIT.
* ENDLOOP.
* IF sy-subrc = 0.
* CLEAR lv_style_guid. " No style --> EXCEL will use built-in-styles as declared in the tables-section
* ELSE.
**--------------------------------------------------------------------*
** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 2 - end
**--------------------------------------------------------------------*
* lv_column_p = zcl_excel_common=>convert_column2alpha( <ls_sheet_content>-cell_column ).
* READ TABLE column_dimensions WITH KEY column = lv_column_p ASSIGNING <column_dimension>.
* IF sy-subrc = 0.
* lv_style_guid = <column_dimension>-column_dimension->get_column_style_guid( ).
* IF lv_style_guid IS INITIAL.
* lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ).
* ENDIF.
* ELSE.
* lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ).
* ENDIF.
**--------------------------------------------------------------------*
** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 3 - start
**--------------------------------------------------------------------*
* ENDIF.
**--------------------------------------------------------------------*
** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 3 - end
**--------------------------------------------------------------------*
* ENDIF.
** IF <ls_sheet_content>-cell_style IS NOT INITIAL.
** READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = <ls_sheet_content>-cell_style.
* IF lv_style_guid IS NOT INITIAL.
* READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = lv_style_guid.
** end of change issue #157 - allow column cellstyles
* lv_value = ls_style_mapping-style.
* SHIFT lv_value RIGHT DELETING TRAILING space.
* SHIFT lv_value LEFT DELETING LEADING space.
* lo_element_3->set_attribute_ns( name = lc_xml_attr_s
* value = lv_value ).
* ENDIF.
*
* " For cells with formula ignore the value - Excel will calculate it
* IF <ls_sheet_content>-cell_formula IS NOT INITIAL.
* " fomula node
* lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_f
* parent = lo_document ).
* lv_value = <ls_sheet_content>-cell_formula.
* CONDENSE lv_value.
* lo_element_4->set_value( value = lv_value ).
* lo_element_3->append_child( new_child = lo_element_4 ). " fomula node
* ELSEIF <ls_sheet_content>-cell_value IS NOT INITIAL "cell can have just style or formula
* AND <ls_sheet_content>-cell_value <> lc_dummy_cell_content.
* IF <ls_sheet_content>-data_type IS NOT INITIAL.
* IF <ls_sheet_content>-data_type EQ 's_leading_blanks'.
* lo_element_3->set_attribute_ns( name = lc_xml_attr_t
* value = 's' ).
* ELSE.
* lo_element_3->set_attribute_ns( name = lc_xml_attr_t
* value = <ls_sheet_content>-data_type ).
* ENDIF.
* ENDIF.
*
* " value node
* lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_v
* parent = lo_document ).
*
* IF <ls_sheet_content>-data_type EQ 's' OR <ls_sheet_content>-data_type EQ 's_leading_blanks'.
* lv_value = me->get_shared_string_index( <ls_sheet_content>-cell_value ).
* CONDENSE lv_value.
* lo_element_4->set_value( value = lv_value ).
* ELSE.
* lv_value = <ls_sheet_content>-cell_value.
* CONDENSE lv_value.
* lo_element_4->set_value( value = lv_value ).
* ENDIF.
*
* lo_element_3->append_child( new_child = lo_element_4 ). " value node
* ENDIF.
*
* lo_element_2->append_child( new_child = lo_element_3 ). " column node
* ls_last_row = <ls_sheet_content>.
* ENDLOOP.
* IF sy-subrc = 0.
* READ TABLE lt_values INTO ls_values WITH KEY column = ls_last_row-cell_column.
* IF sy-subrc = 0 AND ls_values-value = ls_last_row-cell_value.
* CLEAR l_autofilter_hidden.
* ENDIF.
* IF lo_autofilter IS BOUND.
* IF ls_area-row_start >= ls_last_row-cell_row OR " One less for header
* ls_area-row_end < ls_last_row-cell_row .
* CLEAR l_autofilter_hidden.
* ENDIF.
* ELSE.
* CLEAR l_autofilter_hidden.
* ENDIF.
* " Row visibility of previos row.
* IF row_dimension->get_visible( ) = abap_false OR
* l_autofilter_hidden = abap_true.
* lo_element_2->set_attribute_ns( name = 'hidden' value = 'true').
* ENDIF.
* lo_element->append_child( new_child = lo_element_2 ). " row node
* ENDIF.
* DELETE io_worksheet->sheet_content WHERE cell_value = lc_dummy_cell_content. " Get rid of dummyentries
lo_element_root->append_child( new_child = lo_element ). " sheetData node
IF lo_autofilter IS BOUND.
@ -4050,35 +3721,35 @@ METHOD create_xl_sheet.
ENDIF.
" Conditional formatting node
lo_iterator = io_worksheet->get_cond_styles_iterator( ).
lo_iterator = io_worksheet->get_style_cond_iterator( ).
WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true.
lo_style_conditional ?= lo_iterator->if_object_collection_iterator~get_next( ).
IF lo_style_conditional->rule IS INITIAL.
lo_style_cond ?= lo_iterator->if_object_collection_iterator~get_next( ).
IF lo_style_cond->rule IS INITIAL.
CONTINUE.
ENDIF.
lo_element = lo_document->create_simple_element( name = lc_xml_node_condformatting
parent = lo_document ).
lv_value = lo_style_conditional->get_dimension_range( ) .
lv_value = lo_style_cond->get_dimension_range( ) .
lo_element->set_attribute_ns( name = lc_xml_attr_sqref
value = lv_value ).
" cfRule node
lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_cfrule
parent = lo_document ).
lv_value = lo_style_conditional->rule.
lv_value = lo_style_cond->rule.
lo_element_2->set_attribute_ns( name = lc_xml_attr_type
value = lv_value ).
lv_value = lo_style_conditional->priority.
lv_value = lo_style_cond->priority.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element_2->set_attribute_ns( name = lc_xml_attr_priority
value = lv_value ).
CASE lo_style_conditional->rule.
CASE lo_style_cond->rule.
" Start >> Databar by Albert Lladanosa
WHEN zcl_excel_style_conditional=>c_rule_databar.
WHEN zcl_excel_style_cond=>c_rule_databar.
ls_databar = lo_style_conditional->mode_databar.
ls_databar = lo_style_cond->mode_databar.
CLEAR lt_cfvo.
lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_databar
@ -4116,9 +3787,9 @@ METHOD create_xl_sheet.
lo_element_2->append_child( new_child = lo_element_3 ). " databar node
" End << Databar by Albert Lladanosa
WHEN zcl_excel_style_conditional=>c_rule_colorscale.
WHEN zcl_excel_style_cond=>c_rule_colorscale.
ls_colorscale = lo_style_conditional->mode_colorscale.
ls_colorscale = lo_style_cond->mode_colorscale.
CLEAR: lt_cfvo, lt_colors.
lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_colorscale
@ -4174,15 +3845,15 @@ METHOD create_xl_sheet.
lo_element_2->append_child( new_child = lo_element_3 ). " databar node
WHEN zcl_excel_style_conditional=>c_rule_iconset.
WHEN zcl_excel_style_cond=>c_rule_iconset.
ls_iconset = lo_style_conditional->mode_iconset.
ls_iconset = lo_style_cond->mode_iconset.
CLEAR lt_cfvo.
" iconset node
lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_iconset
parent = lo_document ).
IF ls_iconset-iconset NE zcl_excel_style_conditional=>c_iconset_3trafficlights.
IF ls_iconset-iconset NE zcl_excel_style_cond=>c_iconset_3trafficlights.
lv_value = ls_iconset-iconset.
lo_element_3->set_attribute_ns( name = lc_xml_attr_iconset
value = lv_value ).
@ -4194,15 +3865,15 @@ METHOD create_xl_sheet.
value = lv_value ).
CASE ls_iconset-iconset.
WHEN zcl_excel_style_conditional=>c_iconset_3trafficlights2 OR
zcl_excel_style_conditional=>c_iconset_3arrows OR
zcl_excel_style_conditional=>c_iconset_3arrowsgray OR
zcl_excel_style_conditional=>c_iconset_3flags OR
zcl_excel_style_conditional=>c_iconset_3signs OR
zcl_excel_style_conditional=>c_iconset_3symbols OR
zcl_excel_style_conditional=>c_iconset_3symbols2 OR
zcl_excel_style_conditional=>c_iconset_3trafficlights OR
zcl_excel_style_conditional=>c_iconset_3trafficlights2.
WHEN zcl_excel_style_cond=>c_iconset_3trafficlights2 OR
zcl_excel_style_cond=>c_iconset_3arrows OR
zcl_excel_style_cond=>c_iconset_3arrowsgray OR
zcl_excel_style_cond=>c_iconset_3flags OR
zcl_excel_style_cond=>c_iconset_3signs OR
zcl_excel_style_cond=>c_iconset_3symbols OR
zcl_excel_style_cond=>c_iconset_3symbols2 OR
zcl_excel_style_cond=>c_iconset_3trafficlights OR
zcl_excel_style_cond=>c_iconset_3trafficlights2.
MOVE ls_iconset-cfvo1_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo1_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
@ -4212,11 +3883,11 @@ METHOD create_xl_sheet.
MOVE ls_iconset-cfvo3_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo3_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
WHEN zcl_excel_style_conditional=>c_iconset_4arrows OR
zcl_excel_style_conditional=>c_iconset_4arrowsgray OR
zcl_excel_style_conditional=>c_iconset_4rating OR
zcl_excel_style_conditional=>c_iconset_4redtoblack OR
zcl_excel_style_conditional=>c_iconset_4trafficlights.
WHEN zcl_excel_style_cond=>c_iconset_4arrows OR
zcl_excel_style_cond=>c_iconset_4arrowsgray OR
zcl_excel_style_cond=>c_iconset_4rating OR
zcl_excel_style_cond=>c_iconset_4redtoblack OR
zcl_excel_style_cond=>c_iconset_4trafficlights.
MOVE ls_iconset-cfvo1_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo1_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
@ -4229,10 +3900,10 @@ METHOD create_xl_sheet.
MOVE ls_iconset-cfvo4_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo4_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
WHEN zcl_excel_style_conditional=>c_iconset_5arrows OR
zcl_excel_style_conditional=>c_iconset_5arrowsgray OR
zcl_excel_style_conditional=>c_iconset_5quarters OR
zcl_excel_style_conditional=>c_iconset_5rating.
WHEN zcl_excel_style_cond=>c_iconset_5arrows OR
zcl_excel_style_cond=>c_iconset_5arrowsgray OR
zcl_excel_style_cond=>c_iconset_5quarters OR
zcl_excel_style_cond=>c_iconset_5rating.
MOVE ls_iconset-cfvo1_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo1_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo.
@ -4268,8 +3939,8 @@ METHOD create_xl_sheet.
lo_element_2->append_child( new_child = lo_element_3 ). " iconset node
WHEN zcl_excel_style_conditional=>c_rule_cellis.
ls_cellis = lo_style_conditional->mode_cellis.
WHEN zcl_excel_style_cond=>c_rule_cellis.
ls_cellis = lo_style_cond->mode_cellis.
READ TABLE me->styles_cond_mapping INTO ls_style_cond_mapping WITH KEY guid = ls_cellis-cell_style.
lv_value = ls_style_cond_mapping-dxf.
CONDENSE lv_value.
@ -4292,8 +3963,8 @@ METHOD create_xl_sheet.
lo_element_2->append_child( new_child = lo_element_3 ). " 2nd formula node
ENDIF.
WHEN zcl_excel_style_conditional=>c_rule_expression.
ls_expression = lo_style_conditional->mode_expression.
WHEN zcl_excel_style_cond=>c_rule_expression.
ls_expression = lo_style_cond->mode_expression.
READ TABLE me->styles_cond_mapping INTO ls_style_cond_mapping WITH KEY guid = ls_expression-cell_style.
lv_value = ls_style_cond_mapping-dxf.
CONDENSE lv_value.
@ -4307,8 +3978,8 @@ METHOD create_xl_sheet.
lo_element_2->append_child( new_child = lo_element_3 ). " formula node
* begin of ins issue #366 - missing conditional rules: top10
WHEN zcl_excel_style_conditional=>c_rule_top10.
ls_conditional_top10 = lo_style_conditional->mode_top10.
WHEN zcl_excel_style_cond=>c_rule_top10.
ls_conditional_top10 = lo_style_cond->mode_top10.
READ TABLE me->styles_cond_mapping INTO ls_style_cond_mapping WITH KEY guid = ls_conditional_top10-cell_style.
lv_value = ls_style_cond_mapping-dxf.
CONDENSE lv_value.
@ -4327,8 +3998,8 @@ METHOD create_xl_sheet.
value ='1' ).
ENDIF.
WHEN zcl_excel_style_conditional=>c_rule_above_average.
ls_conditional_above_avg = lo_style_conditional->mode_above_average.
WHEN zcl_excel_style_cond=>c_rule_above_average.
ls_conditional_above_avg = lo_style_cond->mode_above_average.
READ TABLE me->styles_cond_mapping INTO ls_style_cond_mapping WITH KEY guid = ls_conditional_above_avg-cell_style.
lv_value = ls_style_cond_mapping-dxf.
CONDENSE lv_value.
@ -4788,8 +4459,6 @@ METHOD create_xl_sheet.
ENDIF.
**********************************************************************
* STEP 5: Create xstring stream
lo_streamfactory = lo_ixml->create_stream_factory( ).
@ -4797,9 +4466,6 @@ METHOD create_xl_sheet.
lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer->render( ).
* REPLACE FIRST OCCURRENCE OF me->mv_sheet_data_xstring_dummy IN ep_content WITH me->mv_sheet_data_xstring IN BYTE MODE.
ENDMETHOD.
@ -5085,6 +4751,7 @@ METHOD create_xl_sheet_sheet_data.
lo_table TYPE REF TO zcl_excel_table,
lt_table_areas TYPE SORTED TABLE OF lty_table_area WITH NON-UNIQUE KEY left right top bottom,
ls_table_area LIKE LINE OF lt_table_areas,
lo_column TYPE REF TO zcl_excel_column,
ls_sheet_content LIKE LINE OF io_worksheet->sheet_content,
ls_sheet_content_empty LIKE LINE OF io_worksheet->sheet_content,
@ -5092,9 +4759,10 @@ METHOD create_xl_sheet_sheet_data.
lv_next_row TYPE i,
lv_last_row TYPE i,
lts_row_dimensions TYPE zexcel_t_worksheet_rowdimensio,
lo_row_dim_empty TYPE REF TO zcl_excel_worksheet_rowdimensi,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi,
* lts_row_dimensions TYPE zexcel_t_worksheet_rowdimensio,
lo_row_iterator TYPE REF TO cl_object_collection_iterator,
lo_row TYPE REF TO zcl_excel_row,
lo_row_empty TYPE REF TO zcl_excel_row,
lts_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row,
ls_last_row TYPE zexcel_s_cell_data,
@ -5105,12 +4773,9 @@ METHOD create_xl_sheet_sheet_data.
lo_element_4 TYPE REF TO if_ixml_element,
lv_value TYPE string,
lv_style_guid TYPE zexcel_cell_style,
lv_column_p TYPE zexcel_cell_column_alpha.
lv_style_guid TYPE zexcel_cell_style.
FIELD-SYMBOLS: <ls_sheet_content> TYPE zexcel_s_cell_data,
<column_dimension> TYPE zexcel_s_worksheet_columndime,
<row_dimension> TYPE zexcel_s_worksheet_rowdimensio,
<ls_row_outline> LIKE LINE OF lts_row_outlines.
@ -5160,12 +4825,15 @@ METHOD create_xl_sheet_sheet_data.
*Last row with cell content
lv_last_row = io_worksheet->get_highest_row( ).
*Last line with row-information set directly ( like line height, hidden-status ... )
lts_row_dimensions = io_worksheet->get_row_dimensions( ).
SORT lts_row_dimensions BY row DESCENDING.
READ TABLE lts_row_dimensions INDEX 1 ASSIGNING <row_dimension>.
IF sy-subrc = 0 AND <row_dimension>-row > lv_last_row.
lv_last_row = <row_dimension>-row.
lo_row_iterator = io_worksheet->get_rows_iterator( ).
WHILE lo_row_iterator->has_next( ) = abap_true.
lo_row ?= lo_row_iterator->get_next( ).
IF lo_row->get_row_index( ) > lv_last_row.
lv_last_row = lo_row->get_row_index( ).
ENDIF.
ENDWHILE.
*Last line with row-information set indirectly by row outline
lts_row_outlines = io_worksheet->get_row_outlines( ).
LOOP AT lts_row_outlines ASSIGNING <ls_row_outline>.
@ -5214,11 +4882,11 @@ METHOD create_xl_sheet_sheet_data.
ASSIGN ls_sheet_content TO <ls_sheet_content>.
ELSE.
*Check if empty row is really necessary - this is basically the case when we have information in row_dimension
lo_row_dim_empty = io_worksheet->get_row_dimension( lv_current_row ).
CHECK lo_row_dim_empty->get_row_height( ) >= 0 OR
lo_row_dim_empty->get_collapsed( io_worksheet ) = abap_true OR
lo_row_dim_empty->get_outline_level( io_worksheet ) > 0 OR
lo_row_dim_empty->get_xf_index( ) <> 0.
lo_row_empty = io_worksheet->get_row( lv_current_row ).
CHECK lo_row_empty->get_row_height( ) >= 0 OR
lo_row_empty->get_collapsed( io_worksheet ) = abap_true OR
lo_row_empty->get_outline_level( io_worksheet ) > 0 OR
lo_row_empty->get_xf_index( ) <> 0.
" Dummyentry A1
ls_sheet_content_empty-cell_row = lv_current_row.
ls_sheet_content_empty-cell_column = 1.
@ -5236,7 +4904,7 @@ METHOD create_xl_sheet_sheet_data.
ENDIF.
IF ls_last_row-cell_row IS NOT INITIAL.
" Row visibility of previos row.
IF row_dimension->get_visible( io_worksheet ) = abap_false OR
IF lo_row->get_visible( io_worksheet ) = abap_false OR
l_autofilter_hidden = abap_true.
lo_element_2->set_attribute_ns( name = 'hidden' value = 'true').
ENDIF.
@ -5262,33 +4930,33 @@ METHOD create_xl_sheet_sheet_data.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element_2->set_attribute_ns( name = lc_xml_attr_spans
value = lv_value ).
row_dimension = io_worksheet->get_row_dimension( <ls_sheet_content>-cell_row ).
lo_row = io_worksheet->get_row( <ls_sheet_content>-cell_row ).
" Do we need the row dimension attributes?
IF row_dimension->get_row_height( ) >= 0 OR
row_dimension->get_collapsed( io_worksheet ) = abap_true OR
row_dimension->get_outline_level( io_worksheet ) > 0 OR
row_dimension->get_xf_index( ) <> 0 OR
IF lo_row->get_row_height( ) >= 0 OR
lo_row->get_collapsed( io_worksheet ) = abap_true OR
lo_row->get_outline_level( io_worksheet ) > 0 OR
lo_row->get_xf_index( ) <> 0 OR
l_autofilter_hidden = abap_true.
" Row dimensions
IF row_dimension->get_row_height( ) >= 0.
IF lo_row->get_row_height( ) >= 0.
lo_element_2->set_attribute_ns( name = 'customHeight' value = '1').
lv_value = row_dimension->get_row_height( ).
lv_value = lo_row->get_row_height( ).
lo_element_2->set_attribute_ns( name = 'ht' value = lv_value ).
ENDIF.
" Collapsed
IF row_dimension->get_collapsed( io_worksheet ) = abap_true.
IF lo_row->get_collapsed( io_worksheet ) = abap_true.
lo_element_2->set_attribute_ns( name = 'collapsed' value = 'true').
ENDIF.
" Outline level
IF row_dimension->get_outline_level( io_worksheet ) > 0.
lv_value = row_dimension->get_outline_level( io_worksheet ).
IF lo_row->get_outline_level( io_worksheet ) > 0.
lv_value = lo_row->get_outline_level( io_worksheet ).
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element_2->set_attribute_ns( name = 'outlineLevel' value = lv_value ).
ENDIF.
" Style
IF row_dimension->get_xf_index( ) <> 0.
lv_value = row_dimension->get_xf_index( ).
IF lo_row->get_xf_index( ) <> 0.
lv_value = lo_row->get_xf_index( ).
lo_element_2->set_attribute_ns( name = 's' value = lv_value ).
lo_element_2->set_attribute_ns( name = 'customFormat' value = '1').
ENDIF.
@ -5330,16 +4998,15 @@ METHOD create_xl_sheet_sheet_data.
*--------------------------------------------------------------------*
*issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 2 - end
*--------------------------------------------------------------------*
lv_column_p = zcl_excel_common=>convert_column2alpha( <ls_sheet_content>-cell_column ).
READ TABLE it_column_dimensions WITH KEY column = lv_column_p ASSIGNING <column_dimension>.
IF sy-subrc = 0.
lv_style_guid = <column_dimension>-column_dimension->get_column_style_guid( ).
lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ).
lo_column ?= io_worksheet->get_column( <ls_sheet_content>-cell_column ).
IF lo_column->get_column_index( ) = <ls_sheet_content>-cell_column.
lv_style_guid = lo_column->get_column_style_guid( ).
IF lv_style_guid IS INITIAL.
lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ).
ENDIF.
ELSE.
lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ).
ENDIF.
*--------------------------------------------------------------------*
*issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 3 - start
*--------------------------------------------------------------------*
@ -5415,7 +5082,7 @@ METHOD create_xl_sheet_sheet_data.
CLEAR l_autofilter_hidden.
ENDIF.
" Row visibility of previos row.
IF row_dimension->get_visible( ) = abap_false OR
IF lo_row->get_visible( ) = abap_false OR
l_autofilter_hidden = abap_true.
lo_element_2->set_attribute_ns( name = 'hidden' value = 'true').
ENDIF.
@ -5574,7 +5241,7 @@ METHOD create_xl_styles.
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_iterator2 TYPE REF TO cl_object_collection_iterator,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional,
lo_style_cond TYPE REF TO zcl_excel_style_cond,
lo_style TYPE REF TO zcl_excel_style.
@ -6342,14 +6009,14 @@ METHOD create_xl_styles.
WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true.
lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ).
" Conditional formatting styles into exch sheet
lo_iterator2 = lo_worksheet->get_cond_styles_iterator( ).
lo_iterator2 = lo_worksheet->get_style_cond_iterator( ).
WHILE lo_iterator2->if_object_collection_iterator~has_next( ) EQ abap_true.
lo_style_conditional ?= lo_iterator2->if_object_collection_iterator~get_next( ).
CASE lo_style_conditional->rule.
lo_style_cond ?= lo_iterator2->if_object_collection_iterator~get_next( ).
CASE lo_style_cond->rule.
* begin of change issue #366 - missing conditional rules: top10, move dfx-styles to own method
WHEN zcl_excel_style_conditional=>c_rule_cellis.
WHEN zcl_excel_style_cond=>c_rule_cellis.
me->create_dxf_style( EXPORTING
iv_cell_style = lo_style_conditional->mode_cellis-cell_style
iv_cell_style = lo_style_cond->mode_cellis-cell_style
io_dxf_element = lo_element
io_ixml_document = lo_document
it_cellxfs = lt_cellxfs
@ -6358,9 +6025,9 @@ METHOD create_xl_styles.
CHANGING
cv_dfx_count = lv_dfx_count ).
WHEN zcl_excel_style_conditional=>c_rule_expression.
WHEN zcl_excel_style_cond=>c_rule_expression.
me->create_dxf_style( EXPORTING
iv_cell_style = lo_style_conditional->mode_expression-cell_style
iv_cell_style = lo_style_cond->mode_expression-cell_style
io_dxf_element = lo_element
io_ixml_document = lo_document
it_cellxfs = lt_cellxfs
@ -6371,9 +6038,9 @@ METHOD create_xl_styles.
WHEN zcl_excel_style_conditional=>c_rule_top10.
WHEN zcl_excel_style_cond=>c_rule_top10.
me->create_dxf_style( EXPORTING
iv_cell_style = lo_style_conditional->mode_top10-cell_style
iv_cell_style = lo_style_cond->mode_top10-cell_style
io_dxf_element = lo_element
io_ixml_document = lo_document
it_cellxfs = lt_cellxfs
@ -6382,9 +6049,9 @@ METHOD create_xl_styles.
CHANGING
cv_dfx_count = lv_dfx_count ).
WHEN zcl_excel_style_conditional=>c_rule_above_average.
WHEN zcl_excel_style_cond=>c_rule_above_average.
me->create_dxf_style( EXPORTING
iv_cell_style = lo_style_conditional->mode_above_average-cell_style
iv_cell_style = lo_style_cond->mode_above_average-cell_style
io_dxf_element = lo_element
io_ixml_document = lo_document
it_cellxfs = lt_cellxfs

View File

@ -281,9 +281,8 @@ METHOD create_xl_sheet.
DATA:
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_table TYPE REF TO zcl_excel_table,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi,
default_col_dimension TYPE REF TO zcl_excel_worksheet_columndime,
default_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi,
lo_column_default TYPE REF TO zcl_excel_column,
lo_row_default TYPE REF TO zcl_excel_row,
lv_value TYPE string,
lv_index TYPE i,
lv_spans TYPE string,
@ -294,8 +293,10 @@ METHOD create_xl_sheet.
lv_freeze_cell_row TYPE zexcel_cell_row,
lv_freeze_cell_column TYPE zexcel_cell_column,
lv_freeze_cell_column_alpha TYPE zexcel_cell_column_alpha,
column_dimensions TYPE zexcel_t_worksheet_columndime,
row_dimensions TYPE zexcel_t_worksheet_rowdimensio,
lo_column_iterator TYPE REF TO cl_object_collection_iterator,
lo_column TYPE REF TO zcl_excel_column,
lo_row_iterator TYPE REF TO cl_object_collection_iterator,
lo_row TYPE REF TO zcl_excel_row,
lv_relation_id TYPE i VALUE 0,
outline_level_row TYPE i VALUE 0,
outline_level_col TYPE i VALUE 0,
@ -314,8 +315,6 @@ METHOD create_xl_sheet.
FIELD-SYMBOLS:
<sheet_content> TYPE zexcel_s_cell_data,
<range_merge> LIKE LINE OF lt_range_merge,
<column_dimension> TYPE zexcel_s_worksheet_columndime,
<row_dimension> TYPE zexcel_s_worksheet_rowdimensio,
<col> TYPE lty_column,
<row> TYPE lty_row,
<hyperlink> TYPE lty_hyperlink,
@ -427,19 +426,24 @@ METHOD create_xl_sheet.
*
* Row and column info
*
column_dimensions[] = io_worksheet->get_column_dimensions( ).
row_dimensions[] = io_worksheet->get_row_dimensions( ).
IF NOT column_dimensions IS INITIAL.
lo_column_iterator = io_worksheet->get_columns_iterator( ).
IF NOT lo_column_iterator IS BOUND.
io_worksheet->calculate_column_widths( ).
column_dimensions[] = io_worksheet->get_column_dimensions( ).
lo_column_iterator = io_worksheet->get_columns_iterator( ).
ENDIF.
default_row_dimension = io_worksheet->get_default_row_dimension( ).
IF default_row_dimension IS BOUND.
IF default_row_dimension->get_row_height( ) >= 0.
lo_column_default = io_worksheet->get_default_column( ).
IF lo_column_default IS BOUND.
IF lo_column_default->get_width( ) >= 0.
l_worksheet-defaultcolwidth = lo_column_default->get_width( ).
ENDIF.
ENDIF.
lo_row_default = io_worksheet->get_default_row( ).
IF lo_row_default IS BOUND.
IF lo_row_default->get_row_height( ) >= 0.
l_worksheet-customheight = lc_true.
lv_value = default_row_dimension->get_row_height( ).
lv_value = lo_row_default->get_row_height( ).
ELSE.
lv_value = '12.75'.
ENDIF.
@ -449,67 +453,57 @@ METHOD create_xl_sheet.
CONDENSE lv_value.
l_worksheet-defaultrowheight = lv_value.
default_col_dimension = io_worksheet->get_default_column_dimension( ).
IF default_col_dimension IS BOUND.
IF default_col_dimension->get_width( ) >= 0.
l_worksheet-defaultcolwidth = default_col_dimension->get_width( ).
ENDIF.
lo_row_iterator = io_worksheet->get_rows_iterator( ).
WHILE lo_row_iterator->has_next( ) = abap_true.
lo_row ?= lo_row_iterator->get_next( ).
IF lo_row->get_outline_level( ) > outline_level_row.
l_worksheet-outlinelevelrow = lo_row->get_outline_level( ).
ENDIF.
ENDWHILE.
LOOP AT row_dimensions ASSIGNING <row_dimension>.
IF <row_dimension>-row_dimension->get_outline_level( ) > outline_level_row.
l_worksheet-outlinelevelrow = <row_dimension>-row_dimension->get_outline_level( ).
ENDIF.
ENDLOOP.
LOOP AT column_dimensions ASSIGNING <column_dimension>.
IF <column_dimension>-column_dimension->get_outline_level( ) > outline_level_col.
l_worksheet-outlinelevelcol = <column_dimension>-column_dimension->get_outline_level( ).
ENDIF.
ENDLOOP.
*
* Set column information (width, style, ...)
*
LOOP AT column_dimensions ASSIGNING <column_dimension>.
* IF lo_column_iterator->has_next( ) = abap_true.
WHILE lo_column_iterator->has_next( ) = abap_true.
lo_column ?= lo_column_iterator->get_next( ).
IF lo_column->get_outline_level( ) > outline_level_col.
l_worksheet-outlinelevelcol = lo_column->get_outline_level( ).
ENDIF.
APPEND INITIAL LINE TO l_worksheet-cols ASSIGNING <col>.
<col>-min = <col>-max = <column_dimension>-column_dimension->get_column_index( ).
<col>-width = <column_dimension>-column_dimension->get_width( ).
<col>-min = <col>-max = lo_column->get_column_index( ).
<col>-width = lo_column->get_width( ).
IF <col>-width < 0.
<col>-width = lc_default_col_width.
ENDIF.
IF <column_dimension>-column_dimension->get_visible( ) = abap_false.
IF lo_column->get_visible( ) = abap_false.
<col>-hidden = lc_true.
ENDIF.
IF <column_dimension>-column_dimension->get_auto_size( ) = abap_true.
IF lo_column->get_auto_size( ) = abap_true.
<col>-bestfit = lc_true.
ENDIF.
IF default_col_dimension IS BOUND.
IF <column_dimension>-column_dimension->get_width( )
<> default_col_dimension->get_width( ).
IF lo_column_default IS BOUND.
IF lo_column->get_width( ) <> lo_column_default->get_width( ).
<col>-customwidth = lc_true.
ENDIF.
ELSE.
<col>-customwidth = lc_true.
ENDIF.
IF <column_dimension>-column_dimension->get_collapsed( ) = abap_true.
IF lo_column->get_collapsed( ) = abap_true.
<col>-collapsed = lc_true.
ENDIF.
<col>-outlinelevel = <column_dimension>-column_dimension->get_outline_level( ).
lv_style_guid = <column_dimension>-column_dimension->get_column_style_guid( ).
<col>-outlinelevel = lo_column->get_outline_level( ).
lv_style_guid = lo_column->get_column_style_guid( ).
<col>-style = me->excel->get_style_index_in_styles( lv_style_guid ) - 1.
ENDLOOP.
*
* Missing columns
*
* First collect columns that were already handled before.
* The rest has to be inserted now.
*
LOOP AT column_dimensions ASSIGNING <column_dimension>.
lv_column = zcl_excel_common=>convert_column2int( <column_dimension>-column ).
lv_column = zcl_excel_common=>convert_column2int( lo_column->get_column_index( ) ).
INSERT lv_column INTO TABLE lts_sorted_columns.
ENDLOOP.
ENDWHILE.
* ENDIF.
*
* Now find all columns that were missing so far
@ -534,8 +528,8 @@ METHOD create_xl_sheet.
APPEND INITIAL LINE TO l_worksheet-cols ASSIGNING <col>.
<col>-min = missing_column-first_column.
<col>-max = missing_column-last_column.
IF default_col_dimension IS BOUND AND default_col_dimension->get_width( ) >= 0.
<col>-width = default_col_dimension->get_width( ).
IF lo_column_default IS BOUND AND lo_column_default->get_width( ) >= 0.
<col>-width = lo_column_default->get_width( ).
ELSE.
<col>-width = lc_default_col_width.
ENDIF.
@ -582,32 +576,32 @@ METHOD create_xl_sheet.
*
* Row dimension attributes
*
row_dimension = io_worksheet->get_row_dimension( <sheet_content>-cell_row ).
IF row_dimension->get_visible( ) = abap_false.
lo_row = io_worksheet->get_row( <sheet_content>-cell_row ).
IF lo_row->get_visible( ) = abap_false.
<row>-hidden = lc_true.
ENDIF.
IF row_dimension->get_row_height( ) >= 0.
IF lo_row->get_row_height( ) >= 0.
<row>-customheight = lc_one.
<row>-height = row_dimension->get_row_height( ).
<row>-height = lo_row->get_row_height( ).
ENDIF.
*
* Collapsed
*
IF row_dimension->get_collapsed( ) = abap_true.
IF lo_row->get_collapsed( ) = abap_true.
<row>-collapsed = lc_true.
ENDIF.
*
* Outline level
*
<row>-outlinelevel = row_dimension->get_outline_level( ).
<row>-outlinelevel = lo_row->get_outline_level( ).
*
* Style
*
<row>-style = row_dimension->get_xf_index( ).
<row>-style = lo_row->get_xf_index( ).
IF <row>-style <> 0.
<row>-customformat = lc_one.
ENDIF.

View File

@ -48,9 +48,9 @@ START-OF-SELECTION.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime,
lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi,
hyperlink TYPE REF TO zcl_excel_hyperlink,
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
lo_drawing TYPE REF TO zcl_excel_drawing.
DATA: lo_style_month TYPE REF TO zcl_excel_style,
@ -215,10 +215,10 @@ START-OF-SELECTION.
lo_worksheet->sheet_setup->paper_size = zcl_excel_sheet_setup=>c_papersize_a4.
lo_worksheet->sheet_setup->horizontal_centered = abap_true.
lo_worksheet->sheet_setup->vertical_centered = abap_true.
lo_col_dim = lo_worksheet->get_column_dimension( 'A' ).
lo_col_dim->set_width( '1.0' ).
lo_col_dim = lo_worksheet->get_column_dimension( 'B' ).
lo_col_dim->set_width( '2.0' ).
lo_column = lo_worksheet->get_column( 'A' ).
lo_column->set_width( '1.0' ).
lo_column = lo_worksheet->get_column( 'B' ).
lo_column->set_width( '2.0' ).
IF p_lands = abap_true.
lo_worksheet->sheet_setup->orientation = zcl_excel_sheet_setup=>c_orientation_landscape.
lv_height = c_height_landscape.
@ -228,8 +228,8 @@ START-OF-SELECTION.
lo_worksheet->sheet_setup->margin_right = '0.10'.
lo_worksheet->sheet_setup->margin_bottom = '0.10'.
ELSE.
lo_col_dim = lo_worksheet->get_column_dimension( 'K' ).
lo_col_dim->set_width( '3.0' ).
lo_column = lo_worksheet->get_column( 'K' ).
lo_column->set_width( '3.0' ).
lo_worksheet->sheet_setup->margin_top = '0.80'.
lo_worksheet->sheet_setup->margin_left = '0.55'.
lo_worksheet->sheet_setup->margin_right = '0.05'.
@ -291,13 +291,13 @@ START-OF-SELECTION.
row = lv_from_row - 2.
ENDIF.
IF NOT <img_descr>-url IS INITIAL.
hyperlink = zcl_excel_hyperlink=>create_external_link( <img_descr>-url ).
lo_hyperlink = zcl_excel_hyperlink=>create_external_link( <img_descr>-url ).
lo_worksheet->set_cell(
EXPORTING
ip_column = from_col " Cell Column
ip_row = row " Cell Row
ip_value = value " Cell Value
ip_hyperlink = hyperlink
ip_hyperlink = lo_hyperlink
).
ELSE.
lo_worksheet->set_cell(
@ -307,8 +307,8 @@ START-OF-SELECTION.
ip_value = value " Cell Value
).
ENDIF.
lo_row_dim = lo_worksheet->get_row_dimension( row ).
lo_row_dim->set_row_height( '22.0' ).
lo_row = lo_worksheet->get_row( row ).
lo_row->set_row_height( '22.0' ).
" In Landscape mode the row between the description and the
" dates should be not so high
@ -320,11 +320,11 @@ START-OF-SELECTION.
ip_row = row " Cell Row
ip_value = ' ' " Cell Value
).
lo_row_dim = lo_worksheet->get_row_dimension( row ).
lo_row_dim->set_row_height( '7.0' ).
lo_row = lo_worksheet->get_row( row ).
lo_row->set_row_height( '7.0' ).
row = lv_from_row - 1.
lo_row_dim = lo_worksheet->get_row_dimension( row ).
lo_row_dim->set_row_height( '5.0' ).
lo_row = lo_worksheet->get_row( row ).
lo_row->set_row_height( '5.0' ).
ENDIF.
CONCATENATE p_path lv_file_separator <img_descr>-filename INTO image_path.

View File

@ -216,8 +216,8 @@ CLASS zcl_helper IMPLEMENTATION.
col_max TYPE i,
from_col_int TYPE zexcel_cell_column,
col TYPE zexcel_cell_column_alpha,
lr_col_dim TYPE REF TO zcl_excel_worksheet_columndime,
lr_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi.
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row.
DATA: lv_date TYPE datum,
value TYPE string,
weekday TYPE wotnr,
@ -325,16 +325,16 @@ CLASS zcl_helper IMPLEMENTATION.
ELSE.
width = '11.4'.
ENDIF.
lr_col_dim = c_worksheet->get_column_dimension( col ).
lr_col_dim->set_width( width ).
lo_column = c_worksheet->get_column( col ).
lo_column->set_width( width ).
col_int = col_int + 1.
ENDWHILE.
row = i_from_row + 1.
row_max = i_from_row + 6.
WHILE row <= row_max.
height = 50.
lr_row_dim = c_worksheet->get_row_dimension( row ).
lr_row_dim->set_row_height( height ).
lo_row = c_worksheet->get_row( row ).
lo_row->set_row_height( height ).
row = row + 1.
ENDWHILE.
ENDMETHOD. "add_calendar
@ -342,8 +342,8 @@ CLASS zcl_helper IMPLEMENTATION.
DATA: value TYPE string,
hyperlink TYPE REF TO zcl_excel_hyperlink.
value = 'Created with abap2xlsx. Find more information at http://abap2xlsx.org.'(002).
hyperlink = zcl_excel_hyperlink=>create_external_link( 'http://abap2xlsx.org' ). "#EC NOTEXT
value = 'Created with abap2xlsx. Find more information at http://www.plinky.it/abap/abap2xlsx.php.'(002).
hyperlink = zcl_excel_hyperlink=>create_external_link( 'http://www.plinky.it/abap/abap2xlsx.php' ). "#EC NOTEXT
c_worksheet->set_cell(
EXPORTING
ip_column = i_from_col " Cell Column
@ -364,8 +364,8 @@ CLASS zcl_helper IMPLEMENTATION.
from_col_int TYPE zexcel_cell_column,
col_int TYPE zexcel_cell_column,
col TYPE zexcel_cell_column_alpha.
DATA: lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime,
lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi.
DATA: lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row.
FIELD-SYMBOLS: <day_name> LIKE LINE OF day_names.
@ -410,8 +410,8 @@ CLASS zcl_helper IMPLEMENTATION.
ip_style = i_day_style " Single-Character Indicator
).
" width
lo_col_dim = c_worksheet->get_column_dimension( col ).
lo_col_dim->set_width( '3.6' ).
lo_column = c_worksheet->get_column( col ).
lo_column->set_width( '3.6' ).
lv_date = lv_date + 1.
@ -424,8 +424,8 @@ CLASS zcl_helper IMPLEMENTATION.
ip_row = row " Cell Row
ip_value = ' ' " Cell Value
).
lo_row_dim = c_worksheet->get_row_dimension( row ).
lo_row_dim->set_row_height( '5.0' ).
lo_row = c_worksheet->get_row( row ).
lo_row->set_row_height( '5.0' ).
row = i_from_row + 3.
zcl_helper=>add_a2x_footer(
EXPORTING
@ -441,8 +441,8 @@ CLASS zcl_helper IMPLEMENTATION.
col_int = from_col_int + day + 2.
col = zcl_excel_common=>convert_column2alpha( col_int ).
" width
lo_col_dim = c_worksheet->get_column_dimension( col ).
lo_col_dim->set_width( '3.6' ).
lo_column = c_worksheet->get_column( col ).
lo_column->set_width( '3.6' ).
ENDWHILE.
ENDMETHOD. "ADD_CALENDAR_LANDSCAPE

View File

@ -81,4 +81,4 @@ START-OF-SELECTION.
" Reader/Writer Demo must always run at the end
" to make sure all documents where created
"
SUBMIT zdemo_excel15 WITH rb_down = abap_true WITH rb_show = abap_false WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT Read Excel and write it back
SUBMIT zdemo_excel15 WITH p_path = p_path AND RETURN. "#EC CI_SUBMIT Read Excel and write it back

View File

@ -12,7 +12,7 @@ REPORT zdemo_excel1.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
lo_column TYPE REF TO zcl_excel_column.
CONSTANTS: gc_save_file_name TYPE string VALUE '01_HelloWorld.xlsx'.
INCLUDE zdemo_excel_outputopt_incl.
@ -28,11 +28,11 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = sy-datum ).
lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ).
lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'http://www.abap2xlsx.org' ).
lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'http://www.plinky.it/abap/abap2xlsx.php' ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 4 ip_value = 'Click here to visit abap2xlsx homepage' ip_hyperlink = lo_hyperlink ).
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
column_dimension->set_width( ip_width = 11 ).
lo_column = lo_worksheet->get_column( ip_column = 'B' ).
lo_column->set_width( ip_width = 11 ).

View File

@ -10,8 +10,8 @@ REPORT zdemo_excel10.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_conditional2 TYPE REF TO zcl_excel_style_conditional,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
lo_style_cond TYPE REF TO zcl_excel_style_cond,
lo_column TYPE REF TO zcl_excel_column.
DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_table_settings TYPE zexcel_s_table_settings,
@ -32,24 +32,24 @@ START-OF-SELECTION.
lo_worksheet = lo_excel->get_active_worksheet( ).
lo_worksheet->set_title( 'Internal table' ).
ls_iconset-iconset = zcl_excel_style_conditional=>c_iconset_5arrows.
ls_iconset-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset-iconset = zcl_excel_style_cond=>c_iconset_5arrows.
ls_iconset-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset-cfvo1_value = '0'.
ls_iconset-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset-cfvo2_value = '20'.
ls_iconset-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset-cfvo3_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset-cfvo3_value = '40'.
ls_iconset-cfvo4_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset-cfvo4_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset-cfvo4_value = '60'.
ls_iconset-cfvo5_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset-cfvo5_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset-cfvo5_value = '80'.
ls_iconset-showvalue = zcl_excel_style_conditional=>c_showvalue_true.
ls_iconset-showvalue = zcl_excel_style_cond=>c_showvalue_true.
"Conditional style
lo_style_conditional2 = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional2->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional2->mode_iconset = ls_iconset.
lo_style_conditional2->priority = 1.
"cond style
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->mode_iconset = ls_iconset.
lo_style_cond->priority = 1.
DATA lt_test TYPE TABLE OF sflight.
SELECT * FROM sflight INTO TABLE lt_test. "#EC CI_NOWHERE
@ -75,7 +75,7 @@ START-OF-SELECTION.
<fs_field_catalog>-position = 1.
<fs_field_catalog>-dynpfld = abap_true.
<fs_field_catalog>-totals_function = zcl_excel_table=>totals_function_sum.
<fs_field_catalog>-cond_style = lo_style_conditional2.
<fs_field_catalog>-style_cond = lo_style_cond->get_guid( ).
WHEN OTHERS.
<fs_field_catalog>-dynpfld = abap_false.
ENDCASE.
@ -87,8 +87,8 @@ START-OF-SELECTION.
is_table_settings = ls_table_settings
it_field_catalog = lt_field_catalog ).
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'D' ). "make date field a bit wider
column_dimension->set_width( ip_width = 13 ).
lo_column = lo_worksheet->get_column( ip_column = 'D' ). "make date field a bit wider
lo_column->set_width( ip_width = 13 ).
*** Create output

View File

@ -191,8 +191,8 @@ START-OF-SELECTION.
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_body TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row.
DATA: lv_style_body_even_guid TYPE zexcel_cell_style,
lv_style_body_green TYPE zexcel_cell_style.
@ -358,8 +358,8 @@ START-OF-SELECTION.
ip_style = lv_style_body_even_guid ).
ENDLOOP.
" Hide first row
row_dimension = lo_worksheet->get_row_dimension( 1 ).
row_dimension->set_visible( abap_false ).
lo_row = lo_worksheet->get_row( 1 ).
lo_row->set_visible( abap_false ).
DATA: highest_column TYPE zexcel_cell_column,
count TYPE int4,
@ -369,46 +369,10 @@ START-OF-SELECTION.
count = 1.
WHILE count <= highest_column.
col_alpha = zcl_excel_common=>convert_column2alpha( ip_column = count ).
column_dimension = lo_worksheet->get_column_dimension( ip_column = col_alpha ).
column_dimension->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( ip_column = col_alpha ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
count = count + 1.
ENDWHILE.
* " Set Column width manuall
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ).
* column_dimension->set_width( ip_width = 11 ).
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
* column_dimension->set_width( ip_width = 11 ).
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ).
* column_dimension->set_width( ip_width = 35 ).
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'E' ).
* column_dimension->set_width( ip_width = 18 ).
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'F' ).
* column_dimension->set_width( ip_width = 5 ).
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'G' ).
* column_dimension->set_width( ip_width = 6 ).
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'H' ).
* column_dimension->set_width( ip_width = 12 ).
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'I' ).
* column_dimension->set_width( ip_width = 3 ).
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'J' ).
* column_dimension->set_width( ip_width = 13 ).
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'K' ).
* column_dimension->set_width( ip_width = 13 ).
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'L' ).
* column_dimension->set_width( ip_width = 13 ).
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'M' ).
* column_dimension->set_width( ip_width = 13 ).
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'N' ).
* column_dimension->set_width( ip_width = 12 ).
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'O' ).
* column_dimension->set_width( ip_width = 9 ).
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'P' ).
* column_dimension->set_width( ip_width = 12 ).
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'Q' ).
* column_dimension->set_width( ip_width = 9 ).
* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'R' ).
* column_dimension->set_width( ip_width = 40 ).
*** Create output
lcl_output=>output( lo_excel ).

View File

@ -10,8 +10,8 @@ REPORT zdemo_excel12.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
@ -54,35 +54,27 @@ START-OF-SELECTION.
" Column Settings
" Auto size
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
column_dimension->set_auto_size( ip_auto_size = abap_true ).
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'I' ).
column_dimension->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'B' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'I' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
" Manual Width
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ).
column_dimension->set_width( ip_width = 50 ).
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'D' ).
column_dimension->set_visible( ip_visible = abap_false ).
lo_column = lo_worksheet->get_column( ip_column = 'C' ).
lo_column->set_width( ip_width = 50 ).
lo_column = lo_worksheet->get_column( ip_column = 'D' ).
lo_column->set_visible( ip_visible = abap_false ).
" Implementation in the Writer is not working yet ===== TODO =====
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'F' ).
column_dimension->set_outline_level( ip_outline_level = 0 ).
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'G' ).
column_dimension->set_outline_level( ip_outline_level = 1 ).
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'H' ).
column_dimension->set_outline_level( ip_outline_level = 2 ).
lo_column = lo_worksheet->get_column( ip_column = 'F' ).
lo_column->set_outline_level( ip_outline_level = 0 ).
lo_column = lo_worksheet->get_column( ip_column = 'G' ).
lo_column->set_outline_level( ip_outline_level = 1 ).
lo_column = lo_worksheet->get_column( ip_column = 'H' ).
lo_column->set_outline_level( ip_outline_level = 2 ).
row_dimension = lo_worksheet->get_row_dimension( ip_row = 1 ).
row_dimension->set_visible( ip_visible = abap_false ).
row_dimension = lo_worksheet->get_row_dimension( ip_row = 5 ).
row_dimension->set_row_height( ip_row_height = 20 ).
* obsolete, not intuitive. Use new method shown below
* " Implementation in the Writer is not working yet ===== TODO =====
* row_dimension = lo_worksheet->get_row_dimension( ip_row = 6 ).
* row_dimension->set_outline_level( ip_outline_level = 0 ).
* row_dimension = lo_worksheet->get_row_dimension( ip_row = 7 ).
* row_dimension->set_outline_level( ip_outline_level = 1 ).
* row_dimension = lo_worksheet->get_row_dimension( ip_row = 8 ).
* row_dimension->set_outline_level( ip_outline_level = 2 ).
lo_row = lo_worksheet->get_row( ip_row = 1 ).
lo_row->set_visible( ip_visible = abap_false ).
lo_row = lo_worksheet->get_row( ip_row = 5 ).
lo_row->set_row_height( ip_row_height = 20 ).
* Define an outline rows 10-16, collapsed on startup
lo_worksheet->set_row_outline( iv_row_from = 10

View File

@ -37,7 +37,7 @@ DATA: lo_excel TYPE REF TO zcl_excel,
lv_style_shrink_guid TYPE zexcel_cell_style,
lv_style_indent_guid TYPE zexcel_cell_style.
DATA: lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
DATA: lo_row TYPE REF TO zcl_excel_row.
CONSTANTS: gc_save_file_name TYPE string VALUE '14_Alignment.xlsx'.
INCLUDE zdemo_excel_outputopt_incl.
@ -117,8 +117,8 @@ START-OF-SELECTION.
" Set row size for first 7 rows to 40
DO 7 TIMES.
lo_row_dimension = lo_worksheet->get_row_dimension( sy-index ).
lo_row_dimension->set_row_height( 40 ).
lo_row = lo_worksheet->get_row( sy-index ).
lo_row->set_row_height( 40 ).
ENDDO.
"Horizontal alignment

View File

@ -47,7 +47,7 @@ DATA: lv_file TYPE xstring,
DATA: lv_full_path TYPE string,
lv_workdir TYPE string,
lv_file_separator TYPE c.
DATA: lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi.
DATA: lo_row TYPE REF TO zcl_excel_row.
CONSTANTS: gc_save_file_name TYPE string VALUE '02_Styles.xlsx'.
INCLUDE zdemo_excel_outputopt_incl.
@ -262,47 +262,47 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_column = 'B' ip_row = 10 ip_style = lv_style_gr_cornerlb_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_cornerlb ).
lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 10 ).
lo_row_dim->set_row_height( ip_row_height = 30 ).
lo_row = lo_worksheet->get_row( ip_row = 10 ).
lo_row->set_row_height( ip_row_height = 30 ).
lo_worksheet->set_cell( ip_column = 'C' ip_row = 11 ip_style = lv_style_gr_cornerlt_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_cornerlt ).
lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 11 ).
lo_row_dim->set_row_height( ip_row_height = 30 ).
lo_row = lo_worksheet->get_row( ip_row = 11 ).
lo_row->set_row_height( ip_row_height = 30 ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 12 ip_style = lv_style_gr_cornerrb_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_cornerrb ).
lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 12 ).
lo_row_dim->set_row_height( ip_row_height = 30 ).
lo_row = lo_worksheet->get_row( ip_row = 12 ).
lo_row->set_row_height( ip_row_height = 30 ).
lo_worksheet->set_cell( ip_column = 'C' ip_row = 13 ip_style = lv_style_gr_cornerrt_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_cornerrt ).
lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 13 ).
lo_row_dim->set_row_height( ip_row_height = 30 ).
lo_row = lo_worksheet->get_row( ip_row = 13 ).
lo_row->set_row_height( ip_row_height = 30 ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 14 ip_style = lv_style_gr_horizontal90_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_horizontal90 ).
lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 14 ).
lo_row_dim->set_row_height( ip_row_height = 30 ).
lo_row = lo_worksheet->get_row( ip_row = 14 ).
lo_row->set_row_height( ip_row_height = 30 ).
lo_worksheet->set_cell( ip_column = 'C' ip_row = 15 ip_style = lv_style_gr_horizontal270_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_horizontal270 ).
lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 15 ).
lo_row_dim->set_row_height( ip_row_height = 30 ).
lo_row = lo_worksheet->get_row( ip_row = 15 ).
lo_row->set_row_height( ip_row_height = 30 ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 16 ip_style = lv_style_gr_horizontalb_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_horizontalb ).
lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 16 ).
lo_row_dim->set_row_height( ip_row_height = 30 ).
lo_row = lo_worksheet->get_row( ip_row = 16 ).
lo_row->set_row_height( ip_row_height = 30 ).
lo_worksheet->set_cell( ip_column = 'C' ip_row = 17 ip_style = lv_style_gr_vertical_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_vertical ).
lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 17 ).
lo_row_dim->set_row_height( ip_row_height = 30 ).
lo_row = lo_worksheet->get_row( ip_row = 17 ).
lo_row->set_row_height( ip_row_height = 30 ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 18 ip_style = lv_style_gr_vertical2_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_vertical ).
lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 18 ).
lo_row_dim->set_row_height( ip_row_height = 30 ).
lo_row = lo_worksheet->get_row( ip_row = 18 ).
lo_row->set_row_height( ip_row_height = 30 ).
lo_worksheet->set_cell( ip_column = 'C' ip_row = 19 ip_style = lv_style_gr_fromcenter_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_fromcenter ).
lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 19 ).
lo_row_dim->set_row_height( ip_row_height = 30 ).
lo_row = lo_worksheet->get_row( ip_row = 19 ).
lo_row->set_row_height( ip_row_height = 30 ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 20 ip_style = lv_style_gr_diagonal45_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_diagonal45 ).
lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 20 ).
lo_row_dim->set_row_height( ip_row_height = 30 ).
lo_row = lo_worksheet->get_row( ip_row = 20 ).
lo_row->set_row_height( ip_row_height = 30 ).
lo_worksheet->set_cell( ip_column = 'C' ip_row = 21 ip_style = lv_style_gr_diagonal45b_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_diagonal45b ).
lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 21 ).
lo_row_dim->set_row_height( ip_row_height = 30 ).
lo_row = lo_worksheet->get_row( ip_row = 21 ).
lo_row->set_row_height( ip_row_height = 30 ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 22 ip_style = lv_style_gr_diagonal135_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_diagonal135 ).
lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 22 ).
lo_row_dim->set_row_height( ip_row_height = 30 ).
lo_row = lo_worksheet->get_row( ip_row = 22 ).
lo_row->set_row_height( ip_row_height = 30 ).
lo_worksheet->set_cell( ip_column = 'C' ip_row = 23 ip_style = lv_style_gr_diagonal135b_guid ip_value = zcl_excel_style_fill=>c_fill_gradient_diagonal135b ).
lo_row_dim = lo_worksheet->get_row_dimension( ip_row = 23 ).
lo_row_dim->set_row_height( ip_row_height = 30 ).
lo_row = lo_worksheet->get_row( ip_row = 23 ).
lo_row->set_row_height( ip_row_height = 30 ).

View File

@ -12,7 +12,7 @@ TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lo_column TYPE REF TO zcl_excel_column,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
DATA: lv_file TYPE xstring,
@ -44,8 +44,8 @@ START-OF-SELECTION.
lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet2!A1' ).
lo_worksheet->set_cell( ip_column = 'A' ip_row = 6 ip_value = 'This is a link to the second sheet' ip_hyperlink = lo_hyperlink ).
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ).
column_dimension->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'A' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
" Second sheet

View File

@ -14,7 +14,7 @@ DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional,
lo_style_cond TYPE REF TO zcl_excel_style_cond,
lo_style_1 TYPE REF TO zcl_excel_style,
lo_style_2 TYPE REF TO zcl_excel_style,
lv_style_1_guid TYPE zexcel_cell_style,
@ -73,31 +73,29 @@ START-OF-SELECTION.
lo_data_validation->cell_column = 'C'.
lo_worksheet->set_cell( ip_row = 2 ip_column = 'C' ip_value = 'Select a value' ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_cellis.
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_cellis.
ls_cellis-formula = '"Anchovy"'.
ls_cellis-operator = zcl_excel_style_conditional=>c_operator_equal.
ls_cellis-operator = zcl_excel_style_cond=>c_operator_equal.
ls_cellis-cell_style = lv_style_1_guid.
lo_style_conditional->mode_cellis = ls_cellis.
lo_style_conditional->priority = 1.
lo_style_conditional->set_range( ip_start_column = 'C'
lo_style_cond->mode_cellis = ls_cellis.
lo_style_cond->priority = 1.
lo_style_cond->set_range( ip_start_column = 'C'
ip_start_row = 2
ip_stop_column = 'C'
ip_stop_row = 2 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_cellis.
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_cellis.
ls_cellis-formula = '"Carp"'.
ls_cellis-operator = zcl_excel_style_conditional=>c_operator_equal.
ls_cellis-operator = zcl_excel_style_cond=>c_operator_equal.
ls_cellis-cell_style = lv_style_2_guid.
lo_style_conditional->mode_cellis = ls_cellis.
lo_style_conditional->priority = 2.
lo_style_conditional->set_range( ip_start_column = 'C'
lo_style_cond->mode_cellis = ls_cellis.
lo_style_cond->priority = 2.
lo_style_cond->set_range( ip_start_column = 'C'
ip_start_row = 2
ip_stop_column = 'C'
ip_stop_row = 2 ).
*** Create output
lcl_output=>output( lo_excel ).

View File

@ -12,7 +12,7 @@ DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
lo_column TYPE REF TO zcl_excel_column.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
@ -56,8 +56,8 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = sy-datum ).
lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ).
column_dimension = lo_worksheet->get_column_dimension( 'B' ).
column_dimension->set_width( 11 ).
lo_column = lo_worksheet->get_column( 'B' ).
lo_column->set_width( 11 ).
lo_worksheet = lo_excel->add_new_worksheet( ).
lo_worksheet->set_title( ip_title = 'Sheet2' ).
@ -93,7 +93,7 @@ START-OF-SELECTION.
CHANGING data_tab = lt_file_tab ).
* zcl_excel_writer_csv=>set_active_sheet_index( i_active_worksheet = 2 ).
zcl_excel_writer_csv=>set_active_sheet_index_by_name( I_WORKSHEET_NAME = 'Sheet1' ).
zcl_excel_writer_csv=>set_active_sheet_index_by_name( i_worksheet_name = 'Sheet1' ).
lv_file = lo_excel_writer->write_file( lo_excel ).
REPLACE FIRST OCCURRENCE OF '_Sheet2.csv' IN lv_full_path WITH '_Sheet1.csv'.

View File

@ -12,7 +12,7 @@ TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
lo_column TYPE REF TO zcl_excel_column.
DATA: ls_table_settings TYPE zexcel_s_table_settings.
@ -55,8 +55,8 @@ START-OF-SELECTION.
lo_worksheet->freeze_panes( ip_num_rows = 3 ). "freeze column headers when scrolling
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'E' ). "make date field a bit wider
column_dimension->set_width( ip_width = 11 ).
lo_column = lo_worksheet->get_column( ip_column = 'E' ). "make date field a bit wider
lo_column->set_width( ip_width = 11 ).
" Add another table for data validations
lo_worksheet = lo_excel->add_new_worksheet( ).
lv_title = 'Data Validation'.

View File

@ -11,7 +11,7 @@ REPORT zdemo_excel30.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
lo_column TYPE REF TO zcl_excel_column.
DATA: lv_value TYPE string,
@ -81,16 +81,16 @@ START-OF-SELECTION.
lv_count = lv_count + 1.
ENDWHILE.
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ).
column_dimension->set_auto_size( abap_true ).
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
column_dimension->set_auto_size( abap_true ).
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ).
column_dimension->set_auto_size( abap_true ).
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'D' ).
column_dimension->set_auto_size( abap_true ).
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'E' ).
column_dimension->set_auto_size( abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'A' ).
lo_column->set_auto_size( abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'B' ).
lo_column->set_auto_size( abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'C' ).
lo_column->set_auto_size( abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'D' ).
lo_column->set_auto_size( abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'E' ).
lo_column->set_auto_size( abap_true ).

View File

@ -11,7 +11,7 @@ REPORT zdemo_excel31.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
lo_column TYPE REF TO zcl_excel_column.
DATA: fieldval TYPE text80,
@ -55,12 +55,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_column = 'C' ip_row = row ip_value = fieldval ip_style = style_column_c_guid ).
ENDDO.
column_dimension = lo_worksheet->get_column_dimension( 'A' ).
column_dimension->set_auto_size( ip_auto_size = abap_true ).
column_dimension = lo_worksheet->get_column_dimension( 'B' ).
column_dimension->set_auto_size( ip_auto_size = abap_true ).
column_dimension = lo_worksheet->get_column_dimension( 'C' ).
column_dimension->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( 'A' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( 'B' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( 'C' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
" Add sheet
lo_worksheet = lo_excel->add_new_worksheet( ).
@ -91,12 +91,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_column = 'C' ip_row = row ip_value = fieldval ip_style = style_column_c_guid ).
ENDDO.
column_dimension = lo_worksheet->get_column_dimension( 'A' ).
column_dimension->set_auto_size( ip_auto_size = abap_true ).
column_dimension = lo_worksheet->get_column_dimension( 'B' ).
column_dimension->set_auto_size( ip_auto_size = abap_true ).
column_dimension = lo_worksheet->get_column_dimension( 'C' ).
column_dimension->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( 'A' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( 'B' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( 'C' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
" Add sheet
lo_worksheet = lo_excel->add_new_worksheet( ).
@ -127,12 +127,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_column = 'C' ip_row = row ip_value = fieldval ip_style = style_column_c_guid ).
ENDDO.
column_dimension = lo_worksheet->get_column_dimension( 'A' ).
column_dimension->set_auto_size( ip_auto_size = abap_true ).
column_dimension = lo_worksheet->get_column_dimension( 'B' ).
column_dimension->set_auto_size( ip_auto_size = abap_true ).
column_dimension = lo_worksheet->get_column_dimension( 'C' ).
column_dimension->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( 'A' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( 'B' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( 'C' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
" Add sheet for merged cells
lo_worksheet = lo_excel->add_new_worksheet( ).
@ -148,8 +148,8 @@ START-OF-SELECTION.
ip_column_end = 'C'
ip_row = 1 ).
column_dimension = lo_worksheet->get_column_dimension( 'A' ).
column_dimension->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( 'A' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_excel->set_active_sheet_index( i_active_worksheet = 1 ).

View File

@ -19,8 +19,8 @@ DATA: current_row TYPE i,
colorflag TYPE i,
color TYPE zexcel_style_color_argb,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi,
lo_column TYPE REF TO zcl_excel_column,
lo_row TYPE REF TO zcl_excel_row,
writing1 TYPE string,
writing2 TYPE string.
@ -65,12 +65,12 @@ START-OF-SELECTION.
col_alpha = zcl_excel_common=>convert_column2alpha( col ).
* Set size of column
column_dimension = lo_worksheet->get_column_dimension( col_alpha ).
column_dimension->set_width( width ).
lo_column = lo_worksheet->get_column( col_alpha ).
lo_column->set_width( width ).
* Set size of row
row_dimension = lo_worksheet->get_row_dimension( row ).
row_dimension->set_row_height( height ).
lo_row = lo_worksheet->get_row( row ).
lo_row->set_row_height( height ).
* Set writing on chessboard
lo_worksheet->set_cell( ip_row = row
@ -100,10 +100,10 @@ START-OF-SELECTION.
ip_row = row
ip_alignment_horizontal = zcl_excel_style_alignment=>c_horizontal_center ).
ENDDO.
column_dimension = lo_worksheet->get_column_dimension( 'A' ).
column_dimension->set_auto_size( abap_true ).
column_dimension = lo_worksheet->get_column_dimension( 'J' ).
column_dimension->set_auto_size( abap_true ).
lo_column = lo_worksheet->get_column( 'A' ).
lo_column->set_auto_size( abap_true ).
lo_column = lo_worksheet->get_column( 'J' ).
lo_column->set_auto_size( abap_true ).
* Set win-position
CONSTANTS: c_pawn TYPE string VALUE 'Pawn'.

View File

@ -4,7 +4,7 @@ REPORT zdemo_excel36.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lo_column TYPE REF TO zcl_excel_column,
col TYPE i.
DATA: lo_style_arial20 TYPE REF TO zcl_excel_style,
@ -69,12 +69,12 @@ START-OF-SELECTION.
* 3rd sheet - defaultstyle for columns ( set to Times New Roman 11 )
lo_worksheet = lo_excel->add_new_worksheet( ).
lo_worksheet->set_title( 'Style for 3 columns' ).
column_dimension = lo_worksheet->get_column_dimension( 'B' ).
column_dimension->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ).
column_dimension = lo_worksheet->get_column_dimension( 'C' ).
column_dimension->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ).
column_dimension = lo_worksheet->get_column_dimension( 'F' ).
column_dimension->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ).
lo_column = lo_worksheet->get_column( 'B' ).
lo_column->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ).
lo_column = lo_worksheet->get_column( 'C' ).
lo_column->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ).
lo_column = lo_worksheet->get_column( 'F' ).
lo_column->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ).
lo_worksheet->set_cell( ip_column = 2 ip_row = 4 ip_value = 'The columns B,C and F are set to Times New Roman' ).
lo_worksheet->set_cell( ip_column = 2 ip_row = 10 ip_value = 'All other cells in this sheet are set to font Arial, fontsize 20' ).

View File

@ -3,7 +3,7 @@ REPORT.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lo_column TYPE REF TO zcl_excel_column,
lo_drawing TYPE REF TO zcl_excel_drawing.
TYPES: BEGIN OF gty_icon,
@ -36,10 +36,10 @@ START-OF-SELECTION.
" Get active sheet
lo_worksheet = lo_excel->get_active_worksheet( ).
lo_worksheet->set_title( ip_title = 'Demo Icons' ).
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ).
lo_column_dimension->set_auto_size( 'X' ).
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
lo_column_dimension->set_auto_size( 'X' ).
lo_column = lo_worksheet->get_column( ip_column = 'A' ).
lo_column->set_auto_size( 'X' ).
lo_column = lo_worksheet->get_column( ip_column = 'B' ).
lo_column->set_auto_size( 'X' ).
* Get all icons
SELECT name

View File

@ -10,7 +10,7 @@ REPORT zdemo_excel5.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional.
lo_style_cond TYPE REF TO zcl_excel_style_cond.
DATA: ls_iconset TYPE zexcel_conditional_iconset.
@ -27,22 +27,22 @@ START-OF-SELECTION.
" Get active sheet
lo_worksheet = lo_excel->get_active_worksheet( ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights2.
ls_iconset-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset-iconset = zcl_excel_style_cond=>c_iconset_3trafficlights2.
ls_iconset-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset-cfvo1_value = '0'.
ls_iconset-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset-cfvo2_value = '33'.
ls_iconset-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset-cfvo3_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset-cfvo3_value = '66'.
ls_iconset-showvalue = zcl_excel_style_conditional=>c_showvalue_true.
ls_iconset-showvalue = zcl_excel_style_cond=>c_showvalue_true.
lo_style_conditional->mode_iconset = ls_iconset.
lo_style_conditional->set_range( ip_start_column = 'C'
lo_style_cond->mode_iconset = ls_iconset.
lo_style_cond->set_range( ip_start_column = 'C'
ip_start_row = 4
ip_stop_column = 'C'
ip_stop_row = 8 ).
@ -55,13 +55,13 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 500 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
ls_iconset-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights2.
ls_iconset-showvalue = zcl_excel_style_conditional=>c_showvalue_false.
lo_style_conditional->mode_iconset = ls_iconset.
lo_style_conditional->set_range( ip_start_column = 'E'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset-iconset = zcl_excel_style_cond=>c_iconset_3trafficlights2.
ls_iconset-showvalue = zcl_excel_style_cond=>c_showvalue_false.
lo_style_cond->mode_iconset = ls_iconset.
lo_style_cond->set_range( ip_start_column = 'E'
ip_start_row = 4
ip_stop_column = 'E'
ip_stop_row = 8 ).

View File

@ -10,7 +10,7 @@ REPORT zdemo_excel7.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional.
lo_style_cond TYPE REF TO zcl_excel_style_cond.
DATA: ls_iconset3 TYPE zexcel_conditional_iconset,
ls_iconset4 TYPE zexcel_conditional_iconset,
@ -27,54 +27,54 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel.
ls_iconset3-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset3-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset3-cfvo1_value = '0'.
ls_iconset3-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset3-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset3-cfvo2_value = '33'.
ls_iconset3-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset3-cfvo3_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset3-cfvo3_value = '66'.
ls_iconset3-showvalue = zcl_excel_style_conditional=>c_showvalue_true.
ls_iconset3-showvalue = zcl_excel_style_cond=>c_showvalue_true.
ls_iconset4-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset4-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset4-cfvo1_value = '0'.
ls_iconset4-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset4-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset4-cfvo2_value = '25'.
ls_iconset4-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset4-cfvo3_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset4-cfvo3_value = '50'.
ls_iconset4-cfvo4_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset4-cfvo4_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset4-cfvo4_value = '75'.
ls_iconset4-showvalue = zcl_excel_style_conditional=>c_showvalue_true.
ls_iconset4-showvalue = zcl_excel_style_cond=>c_showvalue_true.
ls_iconset5-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset5-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset5-cfvo1_value = '0'.
ls_iconset5-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset5-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset5-cfvo2_value = '20'.
ls_iconset5-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset5-cfvo3_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset5-cfvo3_value = '40'.
ls_iconset5-cfvo4_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset5-cfvo4_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset5-cfvo4_value = '60'.
ls_iconset5-cfvo5_type = zcl_excel_style_conditional=>c_cfvo_type_percent.
ls_iconset5-cfvo5_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset5-cfvo5_value = '80'.
ls_iconset5-showvalue = zcl_excel_style_conditional=>c_showvalue_true.
ls_iconset5-showvalue = zcl_excel_style_cond=>c_showvalue_true.
ls_databar-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_min.
ls_databar-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_min.
ls_databar-cfvo1_value = '0'.
ls_databar-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_max.
ls_databar-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_max.
ls_databar-cfvo2_value = '0'.
ls_databar-colorrgb = 'FF638EC6'.
ls_colorscale2-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_min.
ls_colorscale2-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_min.
ls_colorscale2-cfvo1_value = '0'.
ls_colorscale2-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percentile.
ls_colorscale2-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_percentile.
ls_colorscale2-cfvo2_value = '50'.
ls_colorscale2-colorrgb1 = 'FFF8696B'.
ls_colorscale2-colorrgb2 = 'FF63BE7B'.
ls_colorscale3-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_min.
ls_colorscale3-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_min.
ls_colorscale3-cfvo1_value = '0'.
ls_colorscale3-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percentile.
ls_colorscale3-cfvo2_type = zcl_excel_style_cond=>c_cfvo_type_percentile.
ls_colorscale3-cfvo2_value = '50'.
ls_colorscale3-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_max.
ls_colorscale3-cfvo3_type = zcl_excel_style_cond=>c_cfvo_type_max.
ls_colorscale3-cfvo3_value = '0'.
ls_colorscale3-colorrgb1 = 'FFF8696B'.
ls_colorscale3-colorrgb2 = 'FFFFEB84'.
@ -85,14 +85,14 @@ START-OF-SELECTION.
* ICONSET
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3arrows.
ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3arrows.
lo_style_conditional->mode_iconset = ls_iconset3.
lo_style_conditional->set_range( ip_start_column = 'B'
lo_style_cond->mode_iconset = ls_iconset3.
lo_style_cond->set_range( ip_start_column = 'B'
ip_start_row = 5
ip_stop_column = 'B'
ip_stop_row = 9 ).
@ -104,12 +104,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'B' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 9 ip_column = 'B' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3arrowsgray.
lo_style_conditional->mode_iconset = ls_iconset3.
lo_style_conditional->set_range( ip_start_column = 'C'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3arrowsgray.
lo_style_cond->mode_iconset = ls_iconset3.
lo_style_cond->set_range( ip_start_column = 'C'
ip_start_row = 5
ip_stop_column = 'C'
ip_stop_row = 9 ).
@ -120,12 +120,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 30 ).
lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 9 ip_column = 'C' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3flags.
lo_style_conditional->mode_iconset = ls_iconset3.
lo_style_conditional->set_range( ip_start_column = 'D'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3flags.
lo_style_cond->mode_iconset = ls_iconset3.
lo_style_cond->set_range( ip_start_column = 'D'
ip_start_row = 5
ip_stop_column = 'D'
ip_stop_row = 9 ).
@ -137,12 +137,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'D' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 9 ip_column = 'D' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights.
lo_style_conditional->mode_iconset = ls_iconset3.
lo_style_conditional->set_range( ip_start_column = 'E'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3trafficlights.
lo_style_cond->mode_iconset = ls_iconset3.
lo_style_cond->set_range( ip_start_column = 'E'
ip_start_row = 5
ip_stop_column = 'E'
ip_stop_row = 9 ).
@ -154,12 +154,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'E' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 9 ip_column = 'E' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights2.
lo_style_conditional->mode_iconset = ls_iconset3.
lo_style_conditional->set_range( ip_start_column = 'F'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3trafficlights2.
lo_style_cond->mode_iconset = ls_iconset3.
lo_style_cond->set_range( ip_start_column = 'F'
ip_start_row = 5
ip_stop_column = 'F'
ip_stop_row = 9 ).
@ -171,12 +171,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'F' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 9 ip_column = 'F' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3signs.
lo_style_conditional->mode_iconset = ls_iconset3.
lo_style_conditional->set_range( ip_start_column = 'G'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3signs.
lo_style_cond->mode_iconset = ls_iconset3.
lo_style_cond->set_range( ip_start_column = 'G'
ip_start_row = 5
ip_stop_column = 'G'
ip_stop_row = 9 ).
@ -188,12 +188,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'G' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 9 ip_column = 'G' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3symbols.
lo_style_conditional->mode_iconset = ls_iconset3.
lo_style_conditional->set_range( ip_start_column = 'H'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3symbols.
lo_style_cond->mode_iconset = ls_iconset3.
lo_style_cond->set_range( ip_start_column = 'H'
ip_start_row = 5
ip_stop_column = 'H'
ip_stop_row = 9 ).
@ -205,12 +205,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'H' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 9 ip_column = 'H' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3symbols2.
lo_style_conditional->mode_iconset = ls_iconset3.
lo_style_conditional->set_range( ip_start_column = 'I'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3symbols2.
lo_style_cond->mode_iconset = ls_iconset3.
lo_style_cond->set_range( ip_start_column = 'I'
ip_start_row = 5
ip_stop_column = 'I'
ip_stop_row = 9 ).
@ -222,12 +222,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'I' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 9 ip_column = 'I' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4arrows.
lo_style_conditional->mode_iconset = ls_iconset4.
lo_style_conditional->set_range( ip_start_column = 'B'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset4-iconset = zcl_excel_style_cond=>c_iconset_4arrows.
lo_style_cond->mode_iconset = ls_iconset4.
lo_style_cond->set_range( ip_start_column = 'B'
ip_start_row = 12
ip_stop_column = 'B'
ip_stop_row = 16 ).
@ -239,12 +239,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 15 ip_column = 'B' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 16 ip_column = 'B' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4arrowsgray.
lo_style_conditional->mode_iconset = ls_iconset4.
lo_style_conditional->set_range( ip_start_column = 'C'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset4-iconset = zcl_excel_style_cond=>c_iconset_4arrowsgray.
lo_style_cond->mode_iconset = ls_iconset4.
lo_style_cond->set_range( ip_start_column = 'C'
ip_start_row = 12
ip_stop_column = 'C'
ip_stop_row = 16 ).
@ -256,12 +256,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 15 ip_column = 'C' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 16 ip_column = 'C' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4redtoblack.
lo_style_conditional->mode_iconset = ls_iconset4.
lo_style_conditional->set_range( ip_start_column = 'D'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset4-iconset = zcl_excel_style_cond=>c_iconset_4redtoblack.
lo_style_cond->mode_iconset = ls_iconset4.
lo_style_cond->set_range( ip_start_column = 'D'
ip_start_row = 12
ip_stop_column = 'D'
ip_stop_row = 16 ).
@ -273,12 +273,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 15 ip_column = 'D' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 16 ip_column = 'D' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4rating.
lo_style_conditional->mode_iconset = ls_iconset4.
lo_style_conditional->set_range( ip_start_column = 'E'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset4-iconset = zcl_excel_style_cond=>c_iconset_4rating.
lo_style_cond->mode_iconset = ls_iconset4.
lo_style_cond->set_range( ip_start_column = 'E'
ip_start_row = 12
ip_stop_column = 'E'
ip_stop_row = 16 ).
@ -290,12 +290,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 15 ip_column = 'E' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 16 ip_column = 'E' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4trafficlights.
lo_style_conditional->mode_iconset = ls_iconset4.
lo_style_conditional->set_range( ip_start_column = 'F'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset4-iconset = zcl_excel_style_cond=>c_iconset_4trafficlights.
lo_style_cond->mode_iconset = ls_iconset4.
lo_style_cond->set_range( ip_start_column = 'F'
ip_start_row = 12
ip_stop_column = 'F'
ip_stop_row = 16 ).
@ -307,12 +307,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 15 ip_column = 'F' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 16 ip_column = 'F' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
ls_iconset5-iconset = zcl_excel_style_conditional=>c_iconset_5arrows.
lo_style_conditional->mode_iconset = ls_iconset5.
lo_style_conditional->set_range( ip_start_column = 'B'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset5-iconset = zcl_excel_style_cond=>c_iconset_5arrows.
lo_style_cond->mode_iconset = ls_iconset5.
lo_style_cond->set_range( ip_start_column = 'B'
ip_start_row = 19
ip_stop_column = 'B'
ip_stop_row = 23 ).
@ -324,12 +324,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 22 ip_column = 'B' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 23 ip_column = 'B' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
ls_iconset5-iconset = zcl_excel_style_conditional=>c_iconset_5arrowsgray.
lo_style_conditional->mode_iconset = ls_iconset5.
lo_style_conditional->set_range( ip_start_column = 'C'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset5-iconset = zcl_excel_style_cond=>c_iconset_5arrowsgray.
lo_style_cond->mode_iconset = ls_iconset5.
lo_style_cond->set_range( ip_start_column = 'C'
ip_start_row = 19
ip_stop_column = 'C'
ip_stop_row = 23 ).
@ -341,12 +341,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 22 ip_column = 'C' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 23 ip_column = 'C' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
ls_iconset5-iconset = zcl_excel_style_conditional=>c_iconset_5rating.
lo_style_conditional->mode_iconset = ls_iconset5.
lo_style_conditional->set_range( ip_start_column = 'D'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset5-iconset = zcl_excel_style_cond=>c_iconset_5rating.
lo_style_cond->mode_iconset = ls_iconset5.
lo_style_cond->set_range( ip_start_column = 'D'
ip_start_row = 19
ip_stop_column = 'D'
ip_stop_row = 23 ).
@ -358,12 +358,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 22 ip_column = 'D' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 23 ip_column = 'D' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset.
lo_style_conditional->priority = 1.
ls_iconset5-iconset = zcl_excel_style_conditional=>c_iconset_5quarters.
lo_style_conditional->mode_iconset = ls_iconset5.
lo_style_conditional->set_range( ip_start_column = 'E'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_cond->priority = 1.
ls_iconset5-iconset = zcl_excel_style_cond=>c_iconset_5quarters.
lo_style_cond->mode_iconset = ls_iconset5.
lo_style_cond->set_range( ip_start_column = 'E'
ip_start_row = 19
ip_stop_column = 'E'
ip_stop_row = 23 ).
@ -377,11 +377,11 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 29 ip_column = 'B' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 30 ip_column = 'B' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_databar.
lo_style_conditional->priority = 1.
lo_style_conditional->mode_databar = ls_databar.
lo_style_conditional->set_range( ip_start_column = 'B'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_databar.
lo_style_cond->priority = 1.
lo_style_cond->mode_databar = ls_databar.
lo_style_cond->set_range( ip_start_column = 'B'
ip_start_row = 26
ip_stop_column = 'B'
ip_stop_row = 30 ).
@ -395,11 +395,11 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 29 ip_column = 'C' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 30 ip_column = 'C' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_colorscale.
lo_style_conditional->priority = 1.
lo_style_conditional->mode_colorscale = ls_colorscale2.
lo_style_conditional->set_range( ip_start_column = 'C'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_colorscale.
lo_style_cond->priority = 1.
lo_style_cond->mode_colorscale = ls_colorscale2.
lo_style_cond->set_range( ip_start_column = 'C'
ip_start_row = 26
ip_stop_column = 'C'
ip_stop_row = 30 ).
@ -412,11 +412,11 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 29 ip_column = 'D' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 30 ip_column = 'D' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_colorscale.
lo_style_conditional->priority = 1.
lo_style_conditional->mode_colorscale = ls_colorscale3.
lo_style_conditional->set_range( ip_start_column = 'D'
lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_cond->rule = zcl_excel_style_cond=>c_rule_colorscale.
lo_style_cond->priority = 1.
lo_style_cond->mode_colorscale = ls_colorscale3.
lo_style_cond->set_range( ip_start_column = 'D'
ip_start_row = 26
ip_stop_column = 'D'
ip_stop_row = 30 ).

View File

@ -20,7 +20,7 @@ DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lo_column TYPE REF TO zcl_excel_column,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
@ -133,10 +133,10 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ).
" add autosize (column width)
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'B' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'C' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
" Create xlsx stream
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.

View File

@ -20,7 +20,7 @@ DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lo_column TYPE REF TO zcl_excel_column,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
@ -136,10 +136,10 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ).
" add autosize (column width)
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'B' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'C' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
" Create xlsx stream
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.

View File

@ -23,7 +23,7 @@ DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lo_column TYPE REF TO zcl_excel_column,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional,
lv_style_title_guid TYPE zexcel_cell_style,
lv_style_green_guid TYPE zexcel_cell_style,
@ -144,10 +144,10 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ).
" add autosize (column width)
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'B' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'C' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
" defne conditional styles
lo_style_green = lo_excel->add_new_style( ).

View File

@ -23,7 +23,7 @@ DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
lo_column TYPE REF TO zcl_excel_column,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional,
lv_style_title_guid TYPE zexcel_cell_style,
lv_style_green_guid TYPE zexcel_cell_style,
@ -122,10 +122,10 @@ CONSTANTS: lv_default_file_name TYPE string VALUE 'TechEd01.xlsx'.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ).
" add autosize (column width)
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'B' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_column = lo_worksheet->get_column( ip_column = 'C' ).
lo_column->set_auto_size( ip_auto_size = abap_true ).
" defne conditional styles
lo_style_green = lo_excel->add_new_style( ).

View File

@ -94,14 +94,11 @@
</DD03P>
<DD03P>
<TABNAME>ZEXCEL_S_FIELDCATALOG</TABNAME>
<FIELDNAME>COND_STYLE</FIELDNAME>
<FIELDNAME>STYLE_COND</FIELDNAME>
<POSITION>0011</POSITION>
<ROLLNAME>ZCL_EXCEL_STYLE_CONDITIONAL</ROLLNAME>
<ROLLNAME>ZEXCEL_CELL_STYLE</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<DATATYPE>REF</DATATYPE>
<MASK> REF RC</MASK>
<COMPTYPE>R</COMPTYPE>
<REFTYPE>C</REFTYPE>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<TABNAME>ZEXCEL_S_FIELDCATALOG</TABNAME>

View File

@ -56,17 +56,6 @@
<SHLPORIGIN>F</SHLPORIGIN>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<TABNAME>ZEXCEL_S_STYLEMAPPING</TABNAME>
<FIELDNAME>CL_STYLE</FIELDNAME>
<POSITION>0194</POSITION>
<ROLLNAME>ZCL_EXCEL_STYLE</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<DATATYPE>REF</DATATYPE>
<MASK> REF RC</MASK>
<COMPTYPE>R</COMPTYPE>
<REFTYPE>C</REFTYPE>
</DD03P>
</DD03P_TABLE>
<DD05M_TABLE/>
<DD08V_TABLE/>

View File

@ -1,41 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_TABL" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD02V>
<TABNAME>ZEXCEL_S_WORKSHEET_COLUMNDIME</TABNAME>
<DDLANGUAGE>E</DDLANGUAGE>
<TABCLASS>INTTAB</TABCLASS>
<DDTEXT>Stucture for the collection of column dimensions</DDTEXT>
<EXCLASS>1</EXCLASS>
</DD02V>
<DD03P_TABLE>
<DD03P>
<TABNAME>ZEXCEL_S_WORKSHEET_COLUMNDIME</TABNAME>
<FIELDNAME>COLUMN</FIELDNAME>
<POSITION>0001</POSITION>
<ROLLNAME>ZEXCEL_CELL_COLUMN_ALPHA</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<TABNAME>ZEXCEL_S_WORKSHEET_COLUMNDIME</TABNAME>
<FIELDNAME>COLUMN_DIMENSION</FIELDNAME>
<POSITION>0002</POSITION>
<ROLLNAME>ZCL_EXCEL_WORKSHEET_COLUMNDIME</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<DATATYPE>REF</DATATYPE>
<MASK> REF RC</MASK>
<COMPTYPE>R</COMPTYPE>
<REFTYPE>C</REFTYPE>
</DD03P>
</DD03P_TABLE>
<DD05M_TABLE/>
<DD08V_TABLE/>
<DD12V/>
<DD17V/>
<DD35V_TALE/>
<DD36M/>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,41 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_TABL" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD02V>
<TABNAME>ZEXCEL_S_WORKSHEET_ROWDIMENSIO</TABNAME>
<DDLANGUAGE>E</DDLANGUAGE>
<TABCLASS>INTTAB</TABCLASS>
<DDTEXT>Stucture for the collection of row dimensions</DDTEXT>
<EXCLASS>1</EXCLASS>
</DD02V>
<DD03P_TABLE>
<DD03P>
<TABNAME>ZEXCEL_S_WORKSHEET_ROWDIMENSIO</TABNAME>
<FIELDNAME>ROW</FIELDNAME>
<POSITION>0001</POSITION>
<ROLLNAME>INT4</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE>
</DD03P>
<DD03P>
<TABNAME>ZEXCEL_S_WORKSHEET_ROWDIMENSIO</TABNAME>
<FIELDNAME>ROW_DIMENSION</FIELDNAME>
<POSITION>0002</POSITION>
<ROLLNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD>
<DATATYPE>REF</DATATYPE>
<MASK> REF RC</MASK>
<COMPTYPE>R</COMPTYPE>
<REFTYPE>C</REFTYPE>
</DD03P>
</DD03P_TABLE>
<DD05M_TABLE/>
<DD08V_TABLE/>
<DD12V/>
<DD17V/>
<DD35V_TALE/>
<DD36M/>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_TTYP" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD40V>
<TYPENAME>ZEXCEL_T_WORKSHEET_COLUMNDIME</TYPENAME>
<DDLANGUAGE>E</DDLANGUAGE>
<ROWTYPE>ZEXCEL_S_WORKSHEET_COLUMNDIME</ROWTYPE>
<ROWKIND>S</ROWKIND>
<DATATYPE>STRU</DATATYPE>
<ACCESSMODE>T</ACCESSMODE>
<KEYDEF>D</KEYDEF>
<KEYKIND>N</KEYKIND>
<DDTEXT>Collection of column dimensions</DDTEXT>
</DD40V>
<DD42V/>
<DD43V/>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -1,20 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<abapGit version="v1.0.0" serializer="LCL_OBJECT_TTYP" serializer_version="v1.0.0">
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values>
<DD40V>
<TYPENAME>ZEXCEL_T_WORKSHEET_ROWDIMENSIO</TYPENAME>
<DDLANGUAGE>E</DDLANGUAGE>
<ROWTYPE>ZEXCEL_S_WORKSHEET_ROWDIMENSIO</ROWTYPE>
<ROWKIND>S</ROWKIND>
<DATATYPE>STRU</DATATYPE>
<ACCESSMODE>T</ACCESSMODE>
<KEYDEF>D</KEYDEF>
<KEYKIND>N</KEYKIND>
<DDTEXT>Collection of row dimensions</DDTEXT>
</DD40V>
<DD42V/>
<DD43V/>
</asx:values>
</asx:abap>
</abapGit>