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_color7 TYPE REF TO zcl_excel_style,
lo_style_credit 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_style_link TYPE REF TO zcl_excel_style,
lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime, lo_column TYPE REF TO zcl_excel_column,
lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, lo_row TYPE REF TO zcl_excel_row,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink. lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
DATA: lv_style_color0_guid TYPE zexcel_cell_style, DATA: lv_style_color0_guid TYPE zexcel_cell_style,
@ -700,8 +700,8 @@ START-OF-SELECTION.
LOOP AT lt_mapper INTO ls_mapper. LOOP AT lt_mapper INTO ls_mapper.
lv_col_str = zcl_excel_common=>convert_column2alpha( lv_col ). lv_col_str = zcl_excel_common=>convert_column2alpha( lv_col ).
IF ls_mapper IS INITIAL. IF ls_mapper IS INITIAL.
lo_row_dimension = lo_worksheet->get_row_dimension( ip_row = lv_row ). lo_row = lo_worksheet->get_row( ip_row = lv_row ).
lo_row_dimension->set_row_height( ip_row_height = 8 ). lo_row->set_row_height( ip_row_height = 8 ).
lv_col = 1. lv_col = 1.
lv_row = lv_row + 1. lv_row = lv_row + 1.
CONTINUE. CONTINUE.
@ -712,8 +712,8 @@ START-OF-SELECTION.
ip_style = ls_mapper ). ip_style = ls_mapper ).
lv_col = lv_col + 1. lv_col = lv_col + 1.
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = lv_col_str ). lo_column = lo_worksheet->get_column( ip_column = lv_col_str ).
lo_column_dimension->set_width( ip_width = 2 ). lo_column->set_width( ip_width = 2 ).
ENDLOOP. ENDLOOP.
lo_worksheet->set_show_gridlines( i_show_gridlines = abap_false ). lo_worksheet->set_show_gridlines( i_show_gridlines = abap_false ).
@ -723,15 +723,15 @@ START-OF-SELECTION.
ip_value = 'Created with abap2xlsx' ip_value = 'Created with abap2xlsx'
ip_style = lv_style_credit_guid ). 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' lo_worksheet->set_cell( ip_column = 'AP'
ip_row = 24 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_style = lv_style_link_guid
ip_hyperlink = lo_hyperlink ). ip_hyperlink = lo_hyperlink ).
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'AP' ). lo_column = lo_worksheet->get_column( ip_column = 'AP' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). 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 = 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' ). 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 SECURITY type ref to ZCL_EXCEL_SECURITY .
data USE_TEMPLATE type XFELD . 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 methods ADD_NEW_AUTOFILTER
importing importing
!IO_SHEET type ref to ZCL_EXCEL_WORKSHEET !IO_SHEET type ref to ZCL_EXCEL_WORKSHEET
@ -55,12 +49,12 @@ public section.
!IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET !IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET
raising raising
ZCX_EXCEL . ZCX_EXCEL .
methods DELETE_WORKSHEET_BY_NAME
importing
!IV_TITLE type CLIKE .
methods DELETE_WORKSHEET_BY_INDEX methods DELETE_WORKSHEET_BY_INDEX
importing importing
!IV_INDEX type NUMERIC . !IV_INDEX type NUMERIC .
methods DELETE_WORKSHEET_BY_NAME
importing
!IV_TITLE type CLIKE .
methods GET_ACTIVE_SHEET_INDEX methods GET_ACTIVE_SHEET_INDEX
returning returning
value(R_ACTIVE_WORKSHEET) type ZEXCEL_ACTIVE_WORKSHEET . value(R_ACTIVE_WORKSHEET) type ZEXCEL_ACTIVE_WORKSHEET .
@ -107,6 +101,9 @@ public section.
value(EP_STYLEMAPPING) type ZEXCEL_S_STYLEMAPPING value(EP_STYLEMAPPING) type ZEXCEL_S_STYLEMAPPING
raising raising
ZCX_EXCEL . ZCX_EXCEL .
methods GET_THEME
exporting
!EO_THEME type ref to ZCL_EXCEL_THEME .
methods GET_WORKSHEETS_ITERATOR methods GET_WORKSHEETS_ITERATOR
returning returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
@ -116,16 +113,16 @@ public section.
methods GET_WORKSHEETS_SIZE methods GET_WORKSHEETS_SIZE
returning returning
value(EP_SIZE) type I . 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 methods GET_WORKSHEET_BY_INDEX
importing importing
!IV_INDEX type NUMERIC !IV_INDEX type NUMERIC
returning returning
value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET . 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 methods SET_ACTIVE_SHEET_INDEX
importing importing
!I_ACTIVE_WORKSHEET type ZEXCEL_ACTIVE_WORKSHEET !I_ACTIVE_WORKSHEET type ZEXCEL_ACTIVE_WORKSHEET
@ -139,8 +136,9 @@ public section.
!IP_STYLE type ZEXCEL_CELL_STYLE !IP_STYLE type ZEXCEL_CELL_STYLE
raising raising
ZCX_EXCEL . ZCX_EXCEL .
*"* protected components of class ZCL_EXCEL methods SET_THEME
*"* do not include other source files here!!! importing
!IO_THEME type ref to ZCL_EXCEL_THEME .
protected section. protected section.
data WORKSHEETS type ref to ZCL_EXCEL_WORKSHEETS . data WORKSHEETS type ref to ZCL_EXCEL_WORKSHEETS .
@ -159,6 +157,11 @@ private section.
data T_STYLEMAPPING2 type ZEXCEL_T_STYLEMAPPING2 . data T_STYLEMAPPING2 type ZEXCEL_T_STYLEMAPPING2 .
data THEME type ref to ZCL_EXCEL_THEME . 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 methods STYLEMAPPING_DYNAMIC_STYLE
importing importing
!IP_STYLE type ref to ZCL_EXCEL_STYLE !IP_STYLE type ref to ZCL_EXCEL_STYLE
@ -433,6 +436,23 @@ method GET_STYLES_ITERATOR.
endmethod. 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. method GET_STYLE_INDEX_IN_STYLES.
DATA: index TYPE syindex. DATA: index TYPE syindex.
DATA: lo_iterator TYPE REF TO cl_object_collection_iterator, DATA: lo_iterator TYPE REF TO cl_object_collection_iterator,
@ -461,9 +481,9 @@ method GET_STYLE_INDEX_IN_STYLES.
endmethod. endmethod.
method GET_STYLE_TO_GUID. METHOD get_style_to_guid.
DATA: lo_style TYPE REF TO zcl_excel_style.
" # issue 139 " # issue 139
READ TABLE me->t_stylemapping2 INTO ep_stylemapping WITH TABLE KEY guid = ip_guid. READ TABLE me->t_stylemapping2 INTO ep_stylemapping WITH TABLE KEY guid = ip_guid.
IF sy-subrc <> 0. IF sy-subrc <> 0.
RAISE EXCEPTION TYPE zcx_excel RAISE EXCEPTION TYPE zcx_excel
@ -472,13 +492,12 @@ method GET_STYLE_TO_GUID.
ENDIF. ENDIF.
IF ep_stylemapping-dynamic_style_guid IS NOT INITIAL. 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 CHANGING e_target = ep_stylemapping-complete_style
e_targetx = ep_stylemapping-complete_stylex ). e_targetx = ep_stylemapping-complete_stylex ).
ENDIF. ENDIF.
ENDMETHOD.
endmethod.
method GET_THEME. method GET_THEME.
@ -595,7 +614,6 @@ method STYLEMAPPING_DYNAMIC_STYLE.
eo_style2-dynamic_style_guid = ip_style->get_guid( ). eo_style2-dynamic_style_guid = ip_style->get_guid( ).
eo_style2-guid = eo_style2-dynamic_style_guid. eo_style2-guid = eo_style2-dynamic_style_guid.
eo_style2-added_to_iterator = abap_true. eo_style2-added_to_iterator = abap_true.
eo_style2-cl_style = ip_style.
* don't care about attributes here, since this data may change * don't care about attributes here, since this data may change
* dynamically * dynamically

View File

@ -286,6 +286,12 @@
<LANGU>I</LANGU> <LANGU>I</LANGU>
<DESCRIPT>Get styles iterator</DESCRIPT> <DESCRIPT>Get styles iterator</DESCRIPT>
</SEOCOMPOTX> </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> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL</CLSNAME> <CLSNAME>ZCL_EXCEL</CLSNAME>
<CMPNAME>GET_STYLE_INDEX_IN_STYLES</CMPNAME> <CMPNAME>GET_STYLE_INDEX_IN_STYLES</CMPNAME>

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

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

View File

@ -1,9 +1,9 @@
class ZCL_EXCEL_WORKSHEET_ROWDIMENSI definition class ZCL_EXCEL_ROW definition
public public
final final
create public . create public .
*"* public components of class ZCL_EXCEL_WORKSHEET_ROWDIMENSI *"* public components of class ZCL_EXCEL_ROW
*"* do not include other source files here!!! *"* do not include other source files here!!!
public section. public section.
type-pools ABAP . type-pools ABAP .
@ -57,10 +57,10 @@ public section.
methods SET_XF_INDEX methods SET_XF_INDEX
importing importing
!IP_XF_INDEX type INT4 . !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!!! *"* do not include other source files here!!!
protected section. protected section.
*"* private components of class ZCL_EXCEL_WORKSHEET_ROWDIMENSI *"* private components of class ZCL_EXCEL_ROW
*"* do not include other source files here!!! *"* do not include other source files here!!!
private section. private section.
@ -74,7 +74,7 @@ ENDCLASS.
CLASS ZCL_EXCEL_WORKSHEET_ROWDIMENSI IMPLEMENTATION. CLASS ZCL_EXCEL_ROW IMPLEMENTATION.
method CONSTRUCTOR. method CONSTRUCTOR.
@ -90,7 +90,7 @@ method CONSTRUCTOR.
endmethod. endmethod.
METHOD get_collapsed. METHOD GET_COLLAPSED.
DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row, DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row,
lv_previous_row TYPE i, lv_previous_row TYPE i,
@ -121,7 +121,7 @@ METHOD get_collapsed.
ENDMETHOD. ENDMETHOD.
METHOD get_outline_level. METHOD GET_OUTLINE_LEVEL.
DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row. DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row.
FIELD-SYMBOLS: <ls_row_outline> LIKE LINE OF lt_row_outlines. FIELD-SYMBOLS: <ls_row_outline> LIKE LINE OF lt_row_outlines.
@ -155,7 +155,7 @@ method GET_ROW_INDEX.
endmethod. endmethod.
METHOD get_visible. METHOD GET_VISIBLE.
DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row. DATA: lt_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row.
FIELD-SYMBOLS: <ls_row_outline> LIKE LINE OF lt_row_outlines. 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:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
<asx:values> <asx:values>
<VSEOCLASS> <VSEOCLASS>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME> <CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<VERSION>1</VERSION> <VERSION>1</VERSION>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Worksheet RowDimension</DESCRIPT> <DESCRIPT>Worksheet RowDimension</DESCRIPT>
@ -17,107 +17,71 @@
<TPOOL/> <TPOOL/>
<DESCRIPTIONS> <DESCRIPTIONS>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME> <CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>COLLAPSED</CMPNAME> <CMPNAME>COLLAPSED</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Boolean Variable (X=True, -=False, Space=Unknown)</DESCRIPT> <DESCRIPT>Boolean Variable (X=True, -=False, Space=Unknown)</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME> <CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>COLLAPSED</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Boolean Variable (X=True, -=False, Space=Unknown)</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CMPNAME>GET_COLLAPSED</CMPNAME> <CMPNAME>GET_COLLAPSED</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>new - please pass worksheet to make use of new outline info</DESCRIPT> <DESCRIPT>new - please pass worksheet to make use of new outline info</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME> <CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>GET_OUTLINE_LEVEL</CMPNAME> <CMPNAME>GET_OUTLINE_LEVEL</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>new - please pass worksheet to make use of new outline info</DESCRIPT> <DESCRIPT>new - please pass worksheet to make use of new outline info</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME> <CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>GET_VISIBLE</CMPNAME> <CMPNAME>GET_VISIBLE</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>new - please pass worksheet to make use of new outline info</DESCRIPT> <DESCRIPT>new - please pass worksheet to make use of new outline info</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME> <CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>OUTLINE_LEVEL</CMPNAME> <CMPNAME>OUTLINE_LEVEL</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Natural number</DESCRIPT> <DESCRIPT>Natural number</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME> <CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>OUTLINE_LEVEL</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Natural number</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CMPNAME>ROW_HEIGHT</CMPNAME> <CMPNAME>ROW_HEIGHT</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Field of type FLTP</DESCRIPT> <DESCRIPT>Field of type FLTP</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME> <CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>ROW_HEIGHT</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Field of type FLTP</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CMPNAME>ROW_INDEX</CMPNAME> <CMPNAME>ROW_INDEX</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Natural number</DESCRIPT> <DESCRIPT>Natural number</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME> <CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>ROW_INDEX</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Natural number</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CMPNAME>SET_COLLAPSED</CMPNAME> <CMPNAME>SET_COLLAPSED</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>obsolete - please use worksheet-&gt;set_outline instead</DESCRIPT> <DESCRIPT>obsolete - please use worksheet-&gt;set_outline instead</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME> <CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>SET_OUTLINE_LEVEL</CMPNAME> <CMPNAME>SET_OUTLINE_LEVEL</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>obsolete - please use worksheet-&gt;set_outline instead</DESCRIPT> <DESCRIPT>obsolete - please use worksheet-&gt;set_outline instead</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME> <CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>VISIBLE</CMPNAME> <CMPNAME>VISIBLE</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Boolean Variable (X=True, -=False, Space=Unknown)</DESCRIPT> <DESCRIPT>Boolean Variable (X=True, -=False, Space=Unknown)</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME> <CLSNAME>ZCL_EXCEL_ROW</CLSNAME>
<CMPNAME>VISIBLE</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Boolean Variable (X=True, -=False, Space=Unknown)</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CMPNAME>XF_INDEX</CMPNAME> <CMPNAME>XF_INDEX</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Natural number</DESCRIPT> <DESCRIPT>Natural number</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET_ROWDIMENSI</CLSNAME>
<CMPNAME>XF_INDEX</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Natural number</DESCRIPT>
</SEOCOMPOTX>
</DESCRIPTIONS> </DESCRIPTIONS>
</asx:values> </asx:values>
</asx:abap> </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 number_format.
CREATE OBJECT protection. CREATE OBJECT protection.
* Start of insertion # issue 139 - Dateretention of cellstyles
IF ip_guid IS NOT INITIAL. IF ip_guid IS NOT INITIAL.
me->guid = ip_guid. me->guid = ip_guid.
ELSE. ELSE.
* End of insertion # issue 139 - Dateretention of cellstyles me->guid = zcl_excel_obsolete_func_wrap=>guid_create( ).
* 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
ENDIF. ENDIF.
* End of insertion # issue 139 - Dateretention of cellstyles
ENDMETHOD. ENDMETHOD.

View File

@ -1,11 +1,12 @@
class ZCL_EXCEL_STYLE_CONDITIONAL definition class ZCL_EXCEL_STYLE_COND definition
public public
final final
create public . create public .
public section. 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!!! *"* do not include other source files here!!!
constants C_CFVO_TYPE_FORMULA type ZEXCEL_CONDITIONAL_TYPE value 'formula'. "#EC NOTEXT 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 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_ICONSET type ZEXCEL_CONDITIONAL_ICONSET .
data MODE_TOP10 type ZEXCEL_CONDITIONAL_TOP10 . data MODE_TOP10 type ZEXCEL_CONDITIONAL_TOP10 .
data MODE_ABOVE_AVERAGE type ZEXCEL_CONDITIONAL_ABOVE_AVG . 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 . data RULE type ZEXCEL_CONDITION_RULE .
methods CONSTRUCTOR . methods CONSTRUCTOR
importing
!IP_GUID type ZEXCEL_CELL_STYLE optional .
methods GET_DIMENSION_RANGE methods GET_DIMENSION_RANGE
returning returning
value(EP_DIMENSION_RANGE) type STRING . value(EP_DIMENSION_RANGE) type STRING .
@ -79,7 +82,6 @@ public section.
!IP_START_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA !IP_START_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA
!IP_STOP_ROW type ZEXCEL_CELL_ROW !IP_STOP_ROW type ZEXCEL_CELL_ROW
!IP_STOP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA . !IP_STOP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA .
class ZCL_EXCEL_STYLE_CONDITIONAL definition load .
class-methods FACTORY_COND_STYLE_ICONSET class-methods FACTORY_COND_STYLE_ICONSET
importing importing
!IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET !IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET
@ -94,23 +96,27 @@ public section.
!IV_CFVO4_VALUE type ZEXCEL_CONDITIONAL_VALUE optional !IV_CFVO4_VALUE type ZEXCEL_CONDITIONAL_VALUE optional
!IV_CFVO5_TYPE type ZEXCEL_CONDITIONAL_TYPE default C_CFVO_TYPE_PERCENT !IV_CFVO5_TYPE type ZEXCEL_CONDITIONAL_TYPE default C_CFVO_TYPE_PERCENT
!IV_CFVO5_VALUE type ZEXCEL_CONDITIONAL_VALUE optional !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 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 *"* protected components of class ZABAP_EXCEL_STYLE_FONT
*"* do not include other source files here!!! *"* do not include other source files here!!!
protected section. protected section.
private section. private section.
data MV_RULE_RANGE type STRING . data MV_RULE_RANGE type STRING .
data GUID type ZEXCEL_CELL_STYLE .
ENDCLASS. 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, DATA: lv_column TYPE zexcel_cell_column,
lv_row_alpha TYPE string, lv_row_alpha TYPE string,
lv_col_alpha TYPE string, lv_col_alpha TYPE string,
@ -160,30 +166,37 @@ ENDMETHOD.
METHOD constructor. METHOD constructor.
DATA: ls_iconset TYPE zexcel_conditional_iconset. DATA: ls_iconset TYPE zexcel_conditional_iconset.
ls_iconset-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights. ls_iconset-iconset = zcl_excel_style_cond=>c_iconset_3trafficlights.
ls_iconset-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent. ls_iconset-cfvo1_type = zcl_excel_style_cond=>c_cfvo_type_percent.
ls_iconset-cfvo1_value = '0'. 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-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-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-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-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->iconset->operator = zcl_excel_style_conditional=>c_operator_none.
me->mode_iconset = ls_iconset. me->mode_iconset = ls_iconset.
me->priority = 1. me->priority = 1.
* inizialize dimension range * 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. ENDMETHOD.
METHOD factory_cond_style_iconset. METHOD FACTORY_COND_STYLE_ICONSET.
*--------------------------------------------------------------------* *--------------------------------------------------------------------*
* Work in progress * Work in progress
@ -223,14 +236,19 @@ METHOD factory_cond_style_iconset.
ENDMETHOD. ENDMETHOD.
METHOD get_dimension_range. METHOD GET_DIMENSION_RANGE.
ep_dimension_range = me->mv_rule_range. ep_dimension_range = me->mv_rule_range.
ENDMETHOD. ENDMETHOD.
METHOD set_range. METHOD GET_GUID.
ep_guid = me->guid.
ENDMETHOD.
METHOD SET_RANGE.
CLEAR: me->mv_rule_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 . value(EP_STYLE_CODE) type I .
*"* protected components of class ZABAP_EXCEL_WORKSHEETS *"* protected components of class ZABAP_EXCEL_WORKSHEETS
*"* do not include other source files here!!! *"* do not include other source files here!!!
protected section. *"* protected components of class ZABAP_EXCEL_WORKSHEETS
*"* private components of class ZCL_EXCEL_STYLES
*"* do not include other source files here!!! *"* do not include other source files here!!!
protected section.
private section. private section.
data STYLES type ref to CL_OBJECT_COLLECTION . 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 . ZCX_EXCEL .
*"* protected components of class ZCL_EXCEL_TABLE *"* protected components of class ZCL_EXCEL_TABLE
*"* do not include other source files here!!! *"* do not include other source files here!!!
protected section. *"* protected components of class ZCL_EXCEL_TABLE
*"* private components of class ZCL_EXCEL_TABLE
*"* do not include other source files here!!! *"* do not include other source files here!!!
protected section.
private section. private section.
data ID type I . 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_NONE type ZEXCEL_BREAK value 0. "#EC NOTEXT
constants C_BREAK_ROW type ZEXCEL_BREAK value 1. "#EC NOTEXT constants C_BREAK_ROW type ZEXCEL_BREAK value 1. "#EC NOTEXT
data EXCEL type ref to ZCL_EXCEL read-only . 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_CONTENT type ZEXCEL_T_CELL_DATA .
data SHEET_SETUP type ref to ZCL_EXCEL_SHEET_SETUP . 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_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_ROWCOLHEADERS type ZEXCEL_SHOW_GRIDLINES read-only value ABAP_TRUE. "#EC NOTEXT . " . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . .
data STYLES type ZEXCEL_T_SHEET_STYLE . data STYLES type ZEXCEL_T_SHEET_STYLE .
data TABCOLOR type ZEXCEL_S_TABCOLOR read-only . data TABCOLOR type ZEXCEL_S_TABCOLOR read-only .
methods ADD_DRAWING methods ADD_DRAWING
importing importing
!IP_DRAWING type ref to ZCL_EXCEL_DRAWING . !IP_DRAWING type ref to ZCL_EXCEL_DRAWING .
methods ADD_NEW_CONDITIONAL_STYLE methods ADD_NEW_COLUMN
importing
!IP_COLUMN type SIMPLE
returning 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 methods ADD_NEW_DATA_VALIDATION
returning returning
value(EO_DATA_VALIDATION) type ref to ZCL_EXCEL_DATA_VALIDATION . value(EO_DATA_VALIDATION) type ref to ZCL_EXCEL_DATA_VALIDATION .
methods ADD_NEW_RANGE methods ADD_NEW_RANGE
returning returning
value(EO_RANGE) type ref to ZCL_EXCEL_RANGE . 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 methods BIND_ALV
importing importing
!IO_ALV type ref to OBJECT !IO_ALV type ref to OBJECT
@ -244,17 +254,18 @@ public section.
!EP_FORMULA type ZEXCEL_CELL_FORMULA !EP_FORMULA type ZEXCEL_CELL_FORMULA
raising raising
ZCX_EXCEL . ZCX_EXCEL .
methods GET_COLUMN_DIMENSION methods GET_COLUMN
importing importing
!IP_COLUMN type SIMPLE !IP_COLUMN type SIMPLE
returning returning
value(R_COLUMN_DIMENSION) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
raising methods GET_COLUMNS
ZCX_EXCEL .
methods GET_COLUMN_DIMENSIONS
returning returning
value(R_COLUMN_DIMENSION) type ZEXCEL_T_WORKSHEET_COLUMNDIME . value(EO_COLUMNS) type ref to ZCL_EXCEL_COLUMNS .
methods GET_COND_STYLES_ITERATOR methods GET_COLUMNS_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods GET_STYLE_COND_ITERATOR
returning returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods GET_DATA_VALIDATIONS_ITERATOR methods GET_DATA_VALIDATIONS_ITERATOR
@ -263,18 +274,18 @@ public section.
methods GET_DATA_VALIDATIONS_SIZE methods GET_DATA_VALIDATIONS_SIZE
returning returning
value(EP_SIZE) type I . value(EP_SIZE) type I .
methods GET_DEFAULT_COLUMN_DIMENSION methods GET_DEFAULT_COLUMN
returning 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 methods GET_DEFAULT_EXCEL_DATE_FORMAT
returning returning
value(EP_DEFAULT_EXCEL_DATE_FORMAT) type ZEXCEL_NUMBER_FORMAT . value(EP_DEFAULT_EXCEL_DATE_FORMAT) type ZEXCEL_NUMBER_FORMAT .
methods GET_DEFAULT_EXCEL_TIME_FORMAT methods GET_DEFAULT_EXCEL_TIME_FORMAT
returning returning
value(EP_DEFAULT_EXCEL_TIME_FORMAT) type ZEXCEL_NUMBER_FORMAT . value(EP_DEFAULT_EXCEL_TIME_FORMAT) type ZEXCEL_NUMBER_FORMAT .
methods GET_DEFAULT_ROW_DIMENSION methods GET_DEFAULT_ROW
returning 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 methods GET_DIMENSION_RANGE
returning returning
value(EP_DIMENSION_RANGE) type STRING value(EP_DIMENSION_RANGE) type STRING
@ -326,17 +337,25 @@ public section.
methods GET_RANGES_ITERATOR methods GET_RANGES_ITERATOR
returning returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods GET_ROW_DIMENSION methods GET_ROW
importing importing
!IP_ROW type INT4 !IP_ROW type INT4
returning returning
value(R_ROW_DIMENSION) type ref to ZCL_EXCEL_WORKSHEET_ROWDIMENSI . value(EO_ROW) type ref to ZCL_EXCEL_ROW .
methods GET_ROW_DIMENSIONS methods GET_ROWS
returning 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 methods GET_ROW_OUTLINES
returning returning
value(RT_ROW_OUTLINES) type MTY_TS_OUTLINES_ROW . 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 methods GET_TABCOLOR
returning returning
value(EV_TABCOLOR) type ZEXCEL_S_TABCOLOR . value(EV_TABCOLOR) type ZEXCEL_S_TABCOLOR .
@ -474,8 +493,8 @@ private section.
TYPE HASHED TABLE OF mty_s_font_cache TYPE HASHED TABLE OF mty_s_font_cache
WITH UNIQUE KEY font_name font_height flag_bold flag_italic . WITH UNIQUE KEY font_name font_height flag_bold flag_italic .
types: 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, BEGIN OF mty_merge,
row_from TYPE i, row_from TYPE i,
row_to TYPE i, row_to TYPE i,
@ -485,35 +504,35 @@ private section.
types: types:
mty_ts_merge TYPE SORTED TABLE OF mty_merge WITH UNIQUE KEY table_line . 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 *"* private components of class ZCL_EXCEL_WORKSHEET
*"* do not include other source files here!!! *"* do not include other source files here!!!
data ACTIVE_CELL type ZEXCEL_S_CELL_DATA . data ACTIVE_CELL type ZEXCEL_S_CELL_DATA .
data CHARTS type ref to ZCL_EXCEL_DRAWINGS . data CHARTS type ref to ZCL_EXCEL_DRAWINGS .
data COLUMN_DIMENSIONS type ZEXCEL_T_WORKSHEET_COLUMNDIME . data COLUMNS type ref to ZCL_EXCEL_COLUMNS .
data CONDITIONAL_STYLES type ref to ZCL_EXCEL_STYLES_CONDITIONAL . 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 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_DATE_FORMAT type ZEXCEL_NUMBER_FORMAT .
data DEFAULT_EXCEL_TIME_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 DRAWINGS type ref to ZCL_EXCEL_DRAWINGS .
data FREEZE_PANE_CELL_COLUMN type ZEXCEL_CELL_COLUMN . data FREEZE_PANE_CELL_COLUMN type ZEXCEL_CELL_COLUMN .
data FREEZE_PANE_CELL_ROW type ZEXCEL_CELL_ROW . data FREEZE_PANE_CELL_ROW type ZEXCEL_CELL_ROW .
data GUID type UUID . data GUID type UUID .
data HYPERLINKS type ref to CL_OBJECT_COLLECTION . data HYPERLINKS type ref to CL_OBJECT_COLLECTION .
data LOWER_CELL type ZEXCEL_S_CELL_DATA . 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_MERGED_CELLS type MTY_TS_MERGE .
data MT_ROW_OUTLINES type MTY_TS_OUTLINES_ROW . 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_FROM type ZEXCEL_CELL_COLUMN_ALPHA .
data PRINT_TITLE_COL_TO 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_FROM type ZEXCEL_CELL_ROW .
data PRINT_TITLE_ROW_TO type ZEXCEL_CELL_ROW . data PRINT_TITLE_ROW_TO type ZEXCEL_CELL_ROW .
data RANGES type ref to ZCL_EXCEL_RANGES . 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 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 . data UPPER_CELL type ZEXCEL_S_CELL_DATA .
methods CALCULATE_CELL_WIDTH methods CALCULATE_CELL_WIDTH
@ -554,11 +573,18 @@ method ADD_DRAWING.
endmethod. endmethod.
method ADD_NEW_CONDITIONAL_STYLE. METHOD add_new_column.
DATA: lv_column_alpha TYPE zexcel_cell_column_alpha.
CREATE OBJECT eo_conditional_style. lv_column_alpha = zcl_excel_common=>convert_column2alpha( ip_column ).
conditional_styles->add( eo_conditional_style ).
endmethod. 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. method ADD_NEW_DATA_VALIDATION.
@ -568,11 +594,25 @@ method ADD_NEW_DATA_VALIDATION.
endmethod. endmethod.
method ADD_NEW_RANGE. METHOD add_new_range.
* Create default blank range * Create default blank range
CREATE OBJECT eo_range. CREATE OBJECT eo_range.
ranges->add( 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. method BIND_ALV.
@ -2662,7 +2702,7 @@ method BIND_ALV_OLE2.
endmethod. endmethod.
method BIND_TABLE. METHOD bind_table.
*--------------------------------------------------------------------* *--------------------------------------------------------------------*
* issue #230 - Pimp my Code * issue #230 - Pimp my Code
* - Stefan Schmöcker, (wi p) 2012-12-01 * - Stefan Schmöcker, (wi p) 2012-12-01
@ -2702,12 +2742,14 @@ method BIND_TABLE.
lv_maxcol TYPE i, lv_maxcol TYPE i,
lv_maxrow TYPE i, lv_maxrow TYPE i,
lo_iterator TYPE REF TO cl_object_collection_iterator, 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. lo_curtable TYPE REF TO zcl_excel_table.
FIELD-SYMBOLS: FIELD-SYMBOLS:
<ls_field_catalog> TYPE zexcel_s_fieldcatalog, <ls_field_catalog> TYPE zexcel_s_fieldcatalog,
<fs_table_line> TYPE ANY, <ls_field_catalog_custom> TYPE zexcel_s_fieldcatalog,
<fs_fldval> TYPE ANY. <fs_table_line> TYPE any,
<fs_fldval> TYPE any.
ls_settings = is_table_settings. 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 " 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 " If no medium description is provided we try to use small or long
* lv_value = <ls_field_catalog>-scrtext_m. * lv_value = <ls_field_catalog>-scrtext_m.
field-symbols: <scrtxt1> type any, FIELD-SYMBOLS: <scrtxt1> TYPE any,
<scrtxt2> type any, <scrtxt2> TYPE any,
<scrtxt3> type any. <scrtxt3> TYPE any.
case iv_default_descr. CASE iv_default_descr.
when 'M'. WHEN 'M'.
assign <ls_field_catalog>-scrtext_m to <scrtxt1>. ASSIGN <ls_field_catalog>-scrtext_m TO <scrtxt1>.
assign <ls_field_catalog>-scrtext_s to <scrtxt2>. ASSIGN <ls_field_catalog>-scrtext_s TO <scrtxt2>.
assign <ls_field_catalog>-scrtext_l to <scrtxt3>. ASSIGN <ls_field_catalog>-scrtext_l TO <scrtxt3>.
when 'S'. WHEN 'S'.
assign <ls_field_catalog>-scrtext_s to <scrtxt1>. ASSIGN <ls_field_catalog>-scrtext_s TO <scrtxt1>.
assign <ls_field_catalog>-scrtext_m to <scrtxt2>. ASSIGN <ls_field_catalog>-scrtext_m TO <scrtxt2>.
assign <ls_field_catalog>-scrtext_l to <scrtxt3>. ASSIGN <ls_field_catalog>-scrtext_l TO <scrtxt3>.
when 'L'. WHEN 'L'.
assign <ls_field_catalog>-scrtext_l to <scrtxt1>. ASSIGN <ls_field_catalog>-scrtext_l TO <scrtxt1>.
assign <ls_field_catalog>-scrtext_m to <scrtxt2>. ASSIGN <ls_field_catalog>-scrtext_m TO <scrtxt2>.
assign <ls_field_catalog>-scrtext_s to <scrtxt3>. ASSIGN <ls_field_catalog>-scrtext_s TO <scrtxt3>.
when others. WHEN OTHERS.
assign <ls_field_catalog>-scrtext_m to <scrtxt1>. ASSIGN <ls_field_catalog>-scrtext_m TO <scrtxt1>.
assign <ls_field_catalog>-scrtext_s to <scrtxt2>. ASSIGN <ls_field_catalog>-scrtext_s TO <scrtxt2>.
assign <ls_field_catalog>-scrtext_l to <scrtxt3>. ASSIGN <ls_field_catalog>-scrtext_l TO <scrtxt3>.
endcase. ENDCASE.
if <scrtxt1> is not initial. IF <scrtxt1> IS NOT INITIAL.
lv_value = <scrtxt1>. lv_value = <scrtxt1>.
<ls_field_catalog>-scrtext_l = lv_value. <ls_field_catalog>-scrtext_l = lv_value.
elseif <scrtxt2> is not initial. ELSEIF <scrtxt2> IS NOT INITIAL.
lv_value = <scrtxt2>. lv_value = <scrtxt2>.
<ls_field_catalog>-scrtext_l = lv_value. <ls_field_catalog>-scrtext_l = lv_value.
elseif <scrtxt3> is not initial. ELSEIF <scrtxt3> IS NOT INITIAL.
lv_value = <scrtxt3>. lv_value = <scrtxt3>.
<ls_field_catalog>-scrtext_l = lv_value. <ls_field_catalog>-scrtext_l = lv_value.
else. ELSE.
lv_value = 'Column'. " default value as Excel does lv_value = 'Column'. " default value as Excel does
<ls_field_catalog>-scrtext_l = lv_value. <ls_field_catalog>-scrtext_l = lv_value.
endif. ENDIF.
WHILE 1 = 1. WHILE 1 = 1.
lv_value_lowercase = lv_value. lv_value_lowercase = lv_value.
TRANSLATE lv_value_lowercase TO LOWER CASE. TRANSLATE lv_value_lowercase TO LOWER CASE.
@ -2951,10 +2993,11 @@ method BIND_TABLE.
*--------------------------------------------------------------------* *--------------------------------------------------------------------*
" conditional formatting " 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_first_row = ls_settings-top_left_row + 1. " +1 to exclude header
lv_last_row = ls_settings-top_left_row + lv_rows. 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_start_row = lv_first_row
ip_stop_column = lv_column_alpha ip_stop_column = lv_column_alpha
ip_stop_row = lv_last_row ). ip_stop_row = lv_last_row ).
@ -2977,7 +3020,7 @@ method BIND_TABLE.
ENDIF. ENDIF.
" << Issue #291 " << Issue #291
endmethod. ENDMETHOD.
METHOD calculate_cell_width. METHOD calculate_cell_width.
@ -3231,7 +3274,7 @@ METHOD calculate_cell_width.
ENDMETHOD. ENDMETHOD.
method CALCULATE_COLUMN_WIDTHS. METHOD calculate_column_widths.
TYPES: TYPES:
BEGIN OF t_auto_size, BEGIN OF t_auto_size,
col_index TYPE int4, col_index TYPE int4,
@ -3239,77 +3282,54 @@ method CALCULATE_COLUMN_WIDTHS.
END OF t_auto_size. END OF t_auto_size.
TYPES: tt_auto_size TYPE TABLE OF t_auto_size. TYPES: tt_auto_size TYPE TABLE OF t_auto_size.
DATA: column_dimensions TYPE zexcel_t_worksheet_columndime. DATA: lo_column_iterator TYPE REF TO cl_object_collection_iterator,
DATA: column_dimension TYPE REF TO zcl_excel_worksheet_columndime. lo_column TYPE REF TO zcl_excel_column.
DATA: auto_size TYPE flag. DATA: auto_size TYPE flag.
DATA: auto_sizes TYPE tt_auto_size. 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: count TYPE int4.
DATA: highest_row TYPE int4. DATA: highest_row TYPE int4.
DATA: width TYPE float. DATA: width TYPE float.
FIELD-SYMBOLS: <column_dimension> LIKE LINE OF column_dimensions.
FIELD-SYMBOLS: <auto_size> LIKE LINE OF auto_sizes. FIELD-SYMBOLS: <auto_size> LIKE LINE OF auto_sizes.
column_dimensions[] = me->get_column_dimensions( ). lo_column_iterator = me->get_columns_iterator( ).
LOOP AT column_dimensions ASSIGNING <column_dimension>. WHILE lo_column_iterator->has_next( ) = abap_true.
auto_size = <column_dimension>-column_dimension->get_auto_size( ). lo_column ?= lo_column_iterator->get_next( ).
auto_size = lo_column->get_auto_size( ).
IF auto_size = abap_true. IF auto_size = abap_true.
APPEND INITIAL LINE TO auto_sizes ASSIGNING <auto_size>. 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. <auto_size>-width = -1.
ENDIF. ENDIF.
ENDLOOP. ENDWHILE.
" There is only something to do if there are some auto-size columns " There is only something to do if there are some auto-size columns
IF NOT auto_sizes IS INITIAL. IF NOT auto_sizes IS INITIAL.
highest_row = me->get_highest_row( ). highest_row = me->get_highest_row( ).
LOOP AT auto_sizes ASSIGNING <auto_size>. 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. count = 1.
WHILE count <= highest_row. WHILE count <= highest_row.
* Do not check merged cells * Do not check merged cells
IF is_cell_merged( IF is_cell_merged(
ip_column = <auto_size>-col_index ip_column = <auto_size>-col_index
ip_row = count ) = abap_false. 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 width = calculate_cell_width( ip_column = <auto_size>-col_index " issue #155 - less restrictive typing for ip_column
ip_row = count ). ip_row = count ).
* End of change # issue 139 - Dateretention of cellstyles
IF width > <auto_size>-width. IF width > <auto_size>-width.
<auto_size>-width = width. <auto_size>-width = width.
ENDIF. ENDIF.
ENDIF. ENDIF.
count = count + 1. count = count + 1.
ENDWHILE. ENDWHILE.
* column_dimension = me->get_column_dimension( col_alpha ). " issue #155 - less restrictive typing for ip_column lo_column = me->get_column( <auto_size>-col_index ). " 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 lo_column->set_width( <auto_size>-width ).
column_dimension->set_width( <auto_size>-width ).
ENDLOOP. ENDLOOP.
ENDIF. ENDIF.
endmethod. ENDMETHOD.
METHOD change_cell_style. METHOD change_cell_style.
@ -3643,9 +3663,11 @@ METHOD constructor.
me->set_title( ip_title = lv_title ). me->set_title( ip_title = lv_title ).
CREATE OBJECT sheet_setup. CREATE OBJECT sheet_setup.
CREATE OBJECT conditional_styles. CREATE OBJECT styles_cond.
CREATE OBJECT data_validations. CREATE OBJECT data_validations.
CREATE OBJECT tables. CREATE OBJECT tables.
CREATE OBJECT columns.
CREATE OBJECT rows.
CREATE OBJECT ranges. " issue #163 CREATE OBJECT ranges. " issue #163
CREATE OBJECT mo_pagebreaks. CREATE OBJECT mo_pagebreaks.
CREATE OBJECT drawings CREATE OBJECT drawings
@ -3783,7 +3805,7 @@ method GET_ACTIVE_CELL.
endmethod. endmethod.
method GET_CELL. METHOD get_cell.
DATA: lv_column TYPE zexcel_cell_column, DATA: lv_column TYPE zexcel_cell_column,
ls_sheet_content TYPE zexcel_s_cell_data. ls_sheet_content TYPE zexcel_s_cell_data.
@ -3811,42 +3833,43 @@ method GET_CELL.
ENDIF. ENDIF.
ENDWHILE. ENDWHILE.
ENDIF. ENDIF.
endmethod. ENDMETHOD.
method GET_COLUMN_DIMENSION. METHOD get_column.
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
lv_column_alpha = zcl_excel_common=>convert_column2alpha( ip_column )." issue #155 - less restrictive typing for ip_column DATA: lo_column_iterator TYPE REF TO cl_object_collection_iterator,
READ TABLE me->column_dimensions ASSIGNING <fs_column_dimension> lo_column TYPE REF TO zcl_excel_column,
WITH KEY column = lv_column_alpha. " issue #155 - less restrictive typing for ip_column lv_column TYPE zexcel_cell_column.
IF NOT <fs_column_dimension> IS ASSIGNED. lv_column = zcl_excel_common=>convert_column2int( ip_column ).
CREATE OBJECT r_column_dimension
EXPORTING lo_column_iterator = me->get_columns_iterator( ).
ip_index = lv_column_alpha " issue #155 - less restrictive typing for ip_column WHILE lo_column_iterator->has_next( ) = abap_true.
ip_excel = me->excel " issue #157 - Allow style for columns lo_column ?= lo_column_iterator->get_next( ).
ip_worksheet = me. " issue #157 - Allow style for columns IF lo_column->get_column_index( ) = lv_column.
APPEND INITIAL LINE TO me->column_dimensions ASSIGNING <fs_column_dimension>. eo_column = lo_column.
<fs_column_dimension>-column = lv_column_alpha. " issue #155 - less restrictive typing for ip_column EXIT.
<fs_column_dimension>-column_dimension = r_column_dimension. ENDIF.
ELSE. ENDWHILE.
r_column_dimension = <fs_column_dimension>-column_dimension.
IF eo_column IS NOT BOUND.
eo_column = me->add_new_column( ip_column ).
ENDIF. ENDIF.
endmethod. ENDMETHOD.
method GET_COLUMN_DIMENSIONS. METHOD get_columns.
r_column_dimension[] = me->column_dimensions[]. eo_columns = me->columns.
endmethod. ENDMETHOD.
method GET_COND_STYLES_ITERATOR. METHOD GET_COLUMNS_ITERATOR.
eo_iterator = me->conditional_styles->get_iterator( ). eo_iterator = me->columns->get_iterator( ).
endmethod.
ENDMETHOD.
method GET_DATA_VALIDATIONS_ITERATOR. method GET_DATA_VALIDATIONS_ITERATOR.
@ -3860,17 +3883,17 @@ method GET_DATA_VALIDATIONS_SIZE.
endmethod. endmethod.
method GET_DEFAULT_COLUMN_DIMENSION. METHOD GET_DEFAULT_COLUMN.
IF me->default_column_dimension IS NOT BOUND. IF me->column_default IS NOT BOUND.
CREATE OBJECT me->default_column_dimension CREATE OBJECT me->column_default
EXPORTING EXPORTING
ip_index = 'A' " ???? ip_index = 'A' " ????
ip_worksheet = me ip_worksheet = me
ip_excel = me->excel. ip_excel = me->excel.
ENDIF. ENDIF.
r_column_dimension = me->default_column_dimension. eo_column = me->column_default.
endmethod. ENDMETHOD.
method GET_DEFAULT_EXCEL_DATE_FORMAT. method GET_DEFAULT_EXCEL_DATE_FORMAT.
@ -3933,13 +3956,13 @@ method GET_DEFAULT_EXCEL_TIME_FORMAT.
endmethod. endmethod.
method GET_DEFAULT_ROW_DIMENSION. METHOD get_default_row.
IF me->default_row_dimension IS NOT BOUND. IF me->row_default IS NOT BOUND.
CREATE OBJECT me->default_row_dimension. CREATE OBJECT me->row_default.
ENDIF. ENDIF.
r_row_dimension = me->default_row_dimension. eo_row = me->row_default.
endmethod. ENDMETHOD.
method GET_DIMENSION_RANGE. method GET_DIMENSION_RANGE.
@ -4073,32 +4096,35 @@ method GET_RANGES_ITERATOR.
endmethod. 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> IF eo_row IS NOT BOUND.
WITH TABLE KEY row = ip_row. eo_row = me->add_new_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.
ENDIF. ENDIF.
ENDMETHOD. 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. ENDMETHOD.
@ -4110,6 +4136,29 @@ METHOD get_row_outlines.
ENDMETHOD. 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. method GET_TABCOLOR.
ev_tabcolor = me->tabcolor. ev_tabcolor = me->tabcolor.
endmethod. endmethod.
@ -4574,7 +4623,7 @@ method SET_CELL_FORMULA.
endmethod. endmethod.
method SET_CELL_STYLE. METHOD set_cell_style.
DATA: lv_column TYPE zexcel_cell_column, DATA: lv_column TYPE zexcel_cell_column,
lv_style_guid TYPE zexcel_cell_style. 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 ). set_cell( ip_column = ip_column ip_row = ip_row ip_value = '' ip_style = ip_style ).
ENDIF. ENDIF.
endmethod. ENDMETHOD.
method SET_COLUMN_WIDTH. 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. 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 a fix size is supplied use this
IF ip_width_fix IS SUPPLIED. IF ip_width_fix IS SUPPLIED.
@ -4612,7 +4661,7 @@ method SET_COLUMN_WIDTH.
EXPORTING EXPORTING
error = 'Please supply a positive number as column-width'. error = 'Please supply a positive number as column-width'.
ENDIF. ENDIF.
column_dimension->set_width( width ). lo_column->set_width( width ).
EXIT. EXIT.
CATCH cx_sy_conversion_no_number. CATCH cx_sy_conversion_no_number.
* Strange stuff passed --> raise error * Strange stuff passed --> raise error
@ -4623,7 +4672,7 @@ method SET_COLUMN_WIDTH.
ENDIF. ENDIF.
* If we get down to here, we have to use whatever is found in autosize. * 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. endmethod.
@ -4702,11 +4751,11 @@ method SET_PRINT_GRIDLINES.
endmethod. endmethod.
method SET_ROW_HEIGHT. METHOD set_row_height.
DATA: row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. DATA: lo_row TYPE REF TO zcl_excel_row.
DATA: height TYPE float. 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 * if a fix size is supplied use this
TRY. TRY.
@ -4716,7 +4765,7 @@ method SET_ROW_HEIGHT.
EXPORTING EXPORTING
error = 'Please supply a positive number as row-height'. error = 'Please supply a positive number as row-height'.
ENDIF. ENDIF.
row_dimension->set_row_height( height ). lo_row->set_row_height( height ).
EXIT. EXIT.
CATCH cx_sy_conversion_no_number. CATCH cx_sy_conversion_no_number.
* Strange stuff passed --> raise error * Strange stuff passed --> raise error
@ -4725,9 +4774,7 @@ method SET_ROW_HEIGHT.
error = 'Unable to interpret supplied input as number'. error = 'Unable to interpret supplied input as number'.
ENDTRY. ENDTRY.
ENDMETHOD.
endmethod.
METHOD set_row_outline. METHOD set_row_outline.

View File

@ -90,15 +90,9 @@
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>ADD_NEW_CONDITIONAL_STYLE</CMPNAME> <CMPNAME>ADD_NEW_COLUMN</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Creates a new conditional formatting</DESCRIPT> <DESCRIPT>Create a new column</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>ADD_NEW_CONDITIONAL_STYLE</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Creates a new conditional formatting</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
@ -124,6 +118,18 @@
<LANGU>I</LANGU> <LANGU>I</LANGU>
<DESCRIPT>Create a new local range</DESCRIPT> <DESCRIPT>Create a new local range</DESCRIPT>
</SEOCOMPOTX> </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> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>BIND_ALV</CMPNAME> <CMPNAME>BIND_ALV</CMPNAME>
@ -210,27 +216,15 @@
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>COLUMN_DIMENSIONS</CMPNAME> <CMPNAME>COLUMNS</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Collection of column dimensions</DESCRIPT> <DESCRIPT>Ranges collection</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>COLUMN_DIMENSIONS</CMPNAME> <CMPNAME>COLUMN_DEFAULT</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Collection of column dimensions</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>CONDITIONAL_STYLES</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Styles conditional collection</DESCRIPT> <DESCRIPT>Worksheet ColumnDimension</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>CONDITIONAL_STYLES</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Styles conditional collection</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
@ -292,18 +286,6 @@
<LANGU>I</LANGU> <LANGU>I</LANGU>
<DESCRIPT>Data validations collection</DESCRIPT> <DESCRIPT>Data validations collection</DESCRIPT>
</SEOCOMPOTX> </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> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>DEFAULT_EXCEL_DATE_FORMAT</CMPNAME> <CMPNAME>DEFAULT_EXCEL_DATE_FORMAT</CMPNAME>
@ -328,18 +310,6 @@
<LANGU>I</LANGU> <LANGU>I</LANGU>
<DESCRIPT>Date format used in case style is not provide for D fields</DESCRIPT> <DESCRIPT>Date format used in case style is not provide for D fields</DESCRIPT>
</SEOCOMPOTX> </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> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>DELETE_MERGE</CMPNAME> <CMPNAME>DELETE_MERGE</CMPNAME>
@ -444,45 +414,27 @@
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_COLUMN_DIMENSION</CMPNAME> <CMPNAME>GET_COLUMN</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Get column dimension at a specific column</DESCRIPT> <DESCRIPT>Get column object at a specific column</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_COLUMN_DIMENSION</CMPNAME> <CMPNAME>GET_COLUMNS</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>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Get column dimensions</DESCRIPT> <DESCRIPT>Get columns</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_COLUMN_DIMENSIONS</CMPNAME> <CMPNAME>GET_COLUMNS_ITERATOR</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Get column dimensions</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_COND_STYLES_ITERATOR</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Get conditional styles iterator</DESCRIPT> <DESCRIPT>Get columns iterator</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_COND_STYLES_ITERATOR</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Get conditional styles iterator</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_DATA_VALIDATIONS_ITERATOR</CMPNAME> <CMPNAME>GET_DATA_VALIDATIONS_ITERATOR</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Get conditional styles iterator</DESCRIPT> <DESCRIPT>Get data validation iterator</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
@ -504,15 +456,9 @@
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_DEFAULT_COLUMN_DIMENSION</CMPNAME> <CMPNAME>GET_DEFAULT_COLUMN</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</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>
<CMPNAME>GET_DEFAULT_COLUMN_DIMENSION</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Get column dimension at a specific column</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
@ -540,15 +486,9 @@
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_DEFAULT_ROW_DIMENSION</CMPNAME> <CMPNAME>GET_DEFAULT_ROW</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</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>
<CMPNAME>GET_DEFAULT_ROW_DIMENSION</CMPNAME>
<LANGU>I</LANGU>
<DESCRIPT>Get column dimension at a specific column</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
@ -666,27 +606,21 @@
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_ROW_DIMENSION</CMPNAME> <CMPNAME>GET_ROW</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Get row dimension at a specific row</DESCRIPT> <DESCRIPT>Get row at a specific row</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_ROW_DIMENSION</CMPNAME> <CMPNAME>GET_ROWS</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>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Get row dimensions</DESCRIPT> <DESCRIPT>Get rows</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_ROW_DIMENSIONS</CMPNAME> <CMPNAME>GET_ROWS_ITERATOR</CMPNAME>
<LANGU>I</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Get column dimensions</DESCRIPT> <DESCRIPT>Get rows iterator</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
@ -694,6 +628,18 @@
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Get all outlines for rows</DESCRIPT> <DESCRIPT>Get all outlines for rows</DESCRIPT>
</SEOCOMPOTX> </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> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>GET_TABCOLOR</CMPNAME> <CMPNAME>GET_TABCOLOR</CMPNAME>
@ -832,12 +778,6 @@
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>All row outlines ( sorted table )</DESCRIPT> <DESCRIPT>All row outlines ( sorted table )</DESCRIPT>
</SEOCOMPOTX> </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> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>MT_MERGED_CELLS</CMPNAME> <CMPNAME>MT_MERGED_CELLS</CMPNAME>
@ -936,15 +876,15 @@
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>ROW_DIMENSIONS</CMPNAME> <CMPNAME>ROWS</CMPNAME>
<LANGU>E</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Collection of row dimensions</DESCRIPT> <DESCRIPT>Ranges collection</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>ROW_DIMENSIONS</CMPNAME> <CMPNAME>ROW_DEFAULT</CMPNAME>
<LANGU>I</LANGU> <LANGU>E</LANGU>
<DESCRIPT>Collection of row dimensions</DESCRIPT> <DESCRIPT>Worksheet ColumnDimension</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
@ -1168,6 +1108,12 @@
<LANGU>I</LANGU> <LANGU>I</LANGU>
<DESCRIPT>Sheet style table type</DESCRIPT> <DESCRIPT>Sheet style table type</DESCRIPT>
</SEOCOMPOTX> </SEOCOMPOTX>
<SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>STYLES_COND</CMPNAME>
<LANGU>E</LANGU>
<DESCRIPT>Styles conditional collection</DESCRIPT>
</SEOCOMPOTX>
<SEOCOMPOTX> <SEOCOMPOTX>
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME> <CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
<CMPNAME>TABCOLOR</CMPNAME> <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 importing
!IO_DOCUMENT type ref to IF_IXML_DOCUMENT !IO_DOCUMENT type ref to IF_IXML_DOCUMENT
!IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET !IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET
!IT_COLUMN_DIMENSIONS type ZEXCEL_T_WORKSHEET_COLUMNDIME
returning returning
value(RV_IXML_SHEET_DATA_ROOT) type ref to IF_IXML_ELEMENT . value(RV_IXML_SHEET_DATA_ROOT) type ref to IF_IXML_ELEMENT .
methods ADD_FURTHER_DATA_TO_ZIP 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_sheetformatpr TYPE string VALUE 'sheetFormatPr',
lc_xml_node_cols TYPE string VALUE 'cols', lc_xml_node_cols TYPE string VALUE 'cols',
lc_xml_node_col TYPE string VALUE 'col', 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_sheetprotection TYPE string VALUE 'sheetProtection',
lc_xml_node_pagemargins TYPE string VALUE 'pageMargins', lc_xml_node_pagemargins TYPE string VALUE 'pageMargins',
lc_xml_node_pagesetup TYPE string VALUE 'pageSetup', 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_outlinelevelrow TYPE string VALUE 'x14ac:outlineLevelRow',
lc_xml_attr_outlinelevelcol TYPE string VALUE 'x14ac:outlineLevelCol', lc_xml_attr_outlinelevelcol TYPE string VALUE 'x14ac:outlineLevelCol',
lc_xml_attr_outlinelevel TYPE string VALUE 'outlineLevel', 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_password TYPE string VALUE 'password',
lc_xml_attr_sheet TYPE string VALUE 'sheet', lc_xml_attr_sheet TYPE string VALUE 'sheet',
lc_xml_attr_objects TYPE string VALUE 'objects', 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_ostream TYPE REF TO if_ixml_ostream,
lo_renderer TYPE REF TO if_ixml_renderer, lo_renderer TYPE REF TO if_ixml_renderer,
lo_iterator TYPE REF TO cl_object_collection_iterator, 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_data_validation TYPE REF TO zcl_excel_data_validation,
lo_table TYPE REF TO zcl_excel_table, lo_table TYPE REF TO zcl_excel_table,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, lo_column_default TYPE REF TO zcl_excel_column,
lo_row_dim_empty TYPE REF TO zcl_excel_worksheet_rowdimensi, lo_row_default TYPE REF TO zcl_excel_row.
default_col_dimension TYPE REF TO zcl_excel_worksheet_columndime,
default_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
DATA: lv_value TYPE string, DATA: lv_value TYPE string,
lt_range_merge TYPE string_table, 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_row TYPE zexcel_cell_row,
lv_freeze_cell_column TYPE zexcel_cell_column, lv_freeze_cell_column TYPE zexcel_cell_column,
lv_freeze_cell_column_alpha TYPE zexcel_cell_column_alpha, lv_freeze_cell_column_alpha TYPE zexcel_cell_column_alpha,
column_dimensions TYPE zexcel_t_worksheet_columndime, lo_column_iterator TYPE REF TO cl_object_collection_iterator,
row_dimensions TYPE zexcel_t_worksheet_rowdimensio, 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, ls_style_cond_mapping TYPE zexcel_s_styles_cond_mapping,
lv_relation_id TYPE i VALUE 0, lv_relation_id TYPE i VALUE 0,
outline_level_row 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 LIKE LINE OF io_worksheet->sheet_content,
ls_sheet_content_empty LIKE LINE OF io_worksheet->sheet_content, ls_sheet_content_empty LIKE LINE OF io_worksheet->sheet_content,
lv_last_row TYPE i, lv_last_row TYPE i,
lts_row_dimensions TYPE zexcel_t_worksheet_rowdimensio,
lts_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row, lts_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row,
col_count TYPE int4, col_count TYPE int4,
merge_count TYPE int4, merge_count TYPE int4,
write_current_row TYPE boolean, write_current_row TYPE boolean,
lt_values TYPE zexcel_t_autofilter_values, lt_values TYPE zexcel_t_autofilter_values,
ls_values TYPE zexcel_s_autofilter_values, ls_values TYPE zexcel_s_autofilter_values,
* lv_guid TYPE uuid,
lo_autofilters TYPE REF TO zcl_excel_autofilters, lo_autofilters TYPE REF TO zcl_excel_autofilters,
lo_autofilter TYPE REF TO zcl_excel_autofilter, lo_autofilter TYPE REF TO zcl_excel_autofilter,
l_autofilter_hidden TYPE flag, l_autofilter_hidden TYPE flag,
@ -3136,8 +3124,9 @@ METHOD create_xl_sheet.
FIELD-SYMBOLS: <fs_range_merge> LIKE LINE OF lt_range_merge, FIELD-SYMBOLS: <ls_sheet_content> TYPE zexcel_s_cell_data,
<column_dimension> TYPE zexcel_s_worksheet_columndime. <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 * 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 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 " Calculate col
IF NOT column_dimensions IS INITIAL. IF NOT lo_column_iterator IS BOUND.
io_worksheet->calculate_column_widths( ). io_worksheet->calculate_column_widths( ).
column_dimensions[] = io_worksheet->get_column_dimensions( ). lo_column_iterator = io_worksheet->get_columns_iterator( ).
ENDIF. ENDIF.
row_dimensions[] = io_worksheet->get_row_dimensions( ).
" sheetFormatPr node " sheetFormatPr node
lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetformatpr lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetformatpr
parent = lo_document ). parent = lo_document ).
" defaultRowHeight " defaultRowHeight
default_row_dimension = io_worksheet->get_default_row_dimension( ). lo_row_default = io_worksheet->get_default_row( ).
IF default_row_dimension IS BOUND. IF lo_row_default IS BOUND.
IF default_row_dimension->get_row_height( ) >= 0. IF lo_row_default->get_row_height( ) >= 0.
lo_element->set_attribute_ns( name = lc_xml_attr_customheight lo_element->set_attribute_ns( name = lc_xml_attr_customheight
value = lc_xml_attr_true ). value = lc_xml_attr_true ).
lv_value = default_row_dimension->get_row_height( ). lv_value = lo_row_default->get_row_height( ).
ELSE. ELSE.
lv_value = '12.75'. lv_value = '12.75'.
ENDIF. ENDIF.
@ -3390,61 +3380,48 @@ METHOD create_xl_sheet.
lo_element->set_attribute_ns( name = lc_xml_attr_defaultrowheight lo_element->set_attribute_ns( name = lc_xml_attr_defaultrowheight
value = lv_value ). value = lv_value ).
" defaultColWidth " defaultColWidth
default_col_dimension = io_worksheet->get_default_column_dimension( ). lo_column_default = io_worksheet->get_default_column( ).
IF default_col_dimension IS BOUND. IF lo_column_default IS BOUND.
IF default_col_dimension->get_width( ) >= 0. IF lo_column_default->get_width( ) >= 0.
lv_value = default_col_dimension->get_width( ). lv_value = lo_column_default->get_width( ).
SHIFT lv_value RIGHT DELETING TRAILING space. SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space. SHIFT lv_value LEFT DELETING LEADING space.
lo_element->set_attribute_ns( name = lc_xml_attr_defaultcolwidth lo_element->set_attribute_ns( name = lc_xml_attr_defaultcolwidth
value = lv_value ). value = lv_value ).
ENDIF. ENDIF.
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 " outlineLevelCol
LOOP AT column_dimensions ASSIGNING <column_dimension>. WHILE lo_column_iterator->has_next( ) = abap_true.
IF <column_dimension>-column_dimension->get_outline_level( ) > outline_level_col. lo_column ?= lo_column_iterator->get_next( ).
outline_level_col = <column_dimension>-column_dimension->get_outline_level( ). IF lo_column->get_outline_level( ) > outline_level_col.
outline_level_col = lo_column->get_outline_level( ).
ENDIF. ENDIF.
ENDLOOP. ENDWHILE.
lv_value = outline_level_col. lv_value = outline_level_col.
SHIFT lv_value RIGHT DELETING TRAILING space. SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space. SHIFT lv_value LEFT DELETING LEADING space.
lo_element->set_attribute_ns( name = lc_xml_attr_outlinelevelcol lo_element->set_attribute_ns( name = lc_xml_attr_outlinelevelcol
value = lv_value ). 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 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 " cols node
lo_element = lo_document->create_simple_element( name = lc_xml_node_cols lo_element = lo_document->create_simple_element( name = lc_xml_node_cols
parent = lo_document ). parent = lo_document ).
" This code have to be enhanced in order to manage also column style properties " This code have to be enhanced in order to manage also column style properties
" Now it is an out/out " Now it is an out/out
IF NOT column_dimensions IS INITIAL. IF lo_column_iterator->has_next( ) = abap_true.
LOOP AT column_dimensions ASSIGNING <column_dimension>. WHILE lo_column_iterator->has_next( ) = abap_true.
lo_column ?= lo_column_iterator->get_next( ).
" col node " col node
lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_col lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_col
parent = lo_document ). 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 RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space. SHIFT lv_value LEFT DELETING LEADING space.
lo_element_2->set_attribute_ns( name = lc_xml_attr_min 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 lo_element_2->set_attribute_ns( name = lc_xml_attr_max
value = lv_value ). value = lv_value ).
" Width " 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 lo_element_2->set_attribute_ns( name = lc_xml_attr_width
value = lc_xml_attr_defaultwidth ). value = lc_xml_attr_defaultwidth ).
ELSE. 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 lo_element_2->set_attribute_ns( name = lc_xml_attr_width
value = lv_value ). value = lv_value ).
ENDIF. ENDIF.
" Column visibility " 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 lo_element_2->set_attribute_ns( name = lc_xml_attr_hidden
value = lc_xml_attr_true ). value = lc_xml_attr_true ).
ENDIF. ENDIF.
" Auto size? " 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 lo_element_2->set_attribute_ns( name = lc_xml_attr_bestfit
value = lc_xml_attr_true ). value = lc_xml_attr_true ).
ENDIF. ENDIF.
" Custom width? " Custom width?
IF default_col_dimension IS BOUND. IF lo_column_default IS BOUND.
IF <column_dimension>-column_dimension->get_width( ) IF lo_column->get_width( ) <> lo_column_default->get_width( ).
<> default_col_dimension->get_width( ).
lo_element_2->set_attribute_ns( name = lc_xml_attr_customwidth lo_element_2->set_attribute_ns( name = lc_xml_attr_customwidth
value = lc_xml_attr_true ). value = lc_xml_attr_true ).
@ -3483,13 +3459,13 @@ METHOD create_xl_sheet.
value = lc_xml_attr_true ). value = lc_xml_attr_true ).
ENDIF. ENDIF.
" Collapsed " 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 lo_element_2->set_attribute_ns( name = lc_xml_attr_collapsed
value = lc_xml_attr_true ). value = lc_xml_attr_true ).
ENDIF. ENDIF.
" outlineLevel " outlineLevel
IF <column_dimension>-column_dimension->get_outline_level( ) > 0. IF lo_column->get_outline_level( ) > 0.
lv_value = <column_dimension>-column_dimension->get_outline_level( ). lv_value = lo_column->get_outline_level( ).
SHIFT lv_value RIGHT DELETING TRAILING space. SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space. SHIFT lv_value LEFT DELETING LEADING space.
@ -3497,14 +3473,9 @@ METHOD create_xl_sheet.
value = lv_value ). value = lv_value ).
ENDIF. ENDIF.
" Style " Style
* lv_value = <column_dimension>-column_dimension->get_xf_index( ). "del issue #157 - set column style lv_style_guid = lo_column->get_column_style_guid( ). "ins 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
CLEAR ls_style_mapping. CLEAR ls_style_mapping.
READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = lv_style_guid. 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 IF sy-subrc = 0. "ins issue #295
lv_value = ls_style_mapping-style. "ins issue #295 lv_value = ls_style_mapping-style. "ins issue #295
SHIFT lv_value RIGHT DELETING TRAILING space. SHIFT lv_value RIGHT DELETING TRAILING space.
@ -3514,7 +3485,7 @@ METHOD create_xl_sheet.
ENDIF. "ins issue #237 ENDIF. "ins issue #237
lo_element->append_child( new_child = lo_element_2 ). " col node lo_element->append_child( new_child = lo_element_2 ). " col node
ENDLOOP. ENDWHILE.
* ELSE. "del issue #157 - set sheet style ( add missing columns * 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 * 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 * 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. missing_column LIKE LINE OF t_missing_columns.
* First collect columns that were already handled before. The rest has to be inserted now * First collect columns that were already handled before. The rest has to be inserted now
LOOP AT column_dimensions ASSIGNING <column_dimension>. lo_column_iterator = io_worksheet->get_columns_iterator( ).
lv_column = zcl_excel_common=>convert_column2int( <column_dimension>-column ). 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. INSERT lv_column INTO TABLE lts_sorted_columns.
ENDLOOP. ENDWHILE.
* Now find all columns that were missing so far * Now find all columns that were missing so far
missing_column-first_column = 1. missing_column-first_column = 1.
@ -3597,312 +3570,10 @@ METHOD create_xl_sheet.
* Sheet content - use own method to create this * Sheet content - use own method to create this
*--------------------------------------------------------------------* *--------------------------------------------------------------------*
lo_element = create_xl_sheet_sheet_data( io_worksheet = io_worksheet lo_element = create_xl_sheet_sheet_data( io_worksheet = io_worksheet
io_document = lo_document 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( ) .
lo_autofilters = excel->get_autofilters_reference( ). lo_autofilters = excel->get_autofilters_reference( ).
lo_autofilter = lo_autofilters->get( io_worksheet = io_worksheet ) . 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 lo_element_root->append_child( new_child = lo_element ). " sheetData node
IF lo_autofilter IS BOUND. IF lo_autofilter IS BOUND.
@ -4050,35 +3721,35 @@ METHOD create_xl_sheet.
ENDIF. ENDIF.
" Conditional formatting node " 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. WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true.
lo_style_conditional ?= lo_iterator->if_object_collection_iterator~get_next( ). lo_style_cond ?= lo_iterator->if_object_collection_iterator~get_next( ).
IF lo_style_conditional->rule IS INITIAL. IF lo_style_cond->rule IS INITIAL.
CONTINUE. CONTINUE.
ENDIF. ENDIF.
lo_element = lo_document->create_simple_element( name = lc_xml_node_condformatting lo_element = lo_document->create_simple_element( name = lc_xml_node_condformatting
parent = lo_document ). 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 lo_element->set_attribute_ns( name = lc_xml_attr_sqref
value = lv_value ). value = lv_value ).
" cfRule node " cfRule node
lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_cfrule lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_cfrule
parent = lo_document ). 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 lo_element_2->set_attribute_ns( name = lc_xml_attr_type
value = lv_value ). 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 RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space. SHIFT lv_value LEFT DELETING LEADING space.
lo_element_2->set_attribute_ns( name = lc_xml_attr_priority lo_element_2->set_attribute_ns( name = lc_xml_attr_priority
value = lv_value ). value = lv_value ).
CASE lo_style_conditional->rule. CASE lo_style_cond->rule.
" Start >> Databar by Albert Lladanosa " 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. CLEAR lt_cfvo.
lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_databar 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 lo_element_2->append_child( new_child = lo_element_3 ). " databar node
" End << Databar by Albert Lladanosa " 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. CLEAR: lt_cfvo, lt_colors.
lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_colorscale 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 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. CLEAR lt_cfvo.
" iconset node " iconset node
lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_iconset lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_iconset
parent = lo_document ). 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. lv_value = ls_iconset-iconset.
lo_element_3->set_attribute_ns( name = lc_xml_attr_iconset lo_element_3->set_attribute_ns( name = lc_xml_attr_iconset
value = lv_value ). value = lv_value ).
@ -4194,15 +3865,15 @@ METHOD create_xl_sheet.
value = lv_value ). value = lv_value ).
CASE ls_iconset-iconset. CASE ls_iconset-iconset.
WHEN zcl_excel_style_conditional=>c_iconset_3trafficlights2 OR WHEN zcl_excel_style_cond=>c_iconset_3trafficlights2 OR
zcl_excel_style_conditional=>c_iconset_3arrows OR zcl_excel_style_cond=>c_iconset_3arrows OR
zcl_excel_style_conditional=>c_iconset_3arrowsgray OR zcl_excel_style_cond=>c_iconset_3arrowsgray OR
zcl_excel_style_conditional=>c_iconset_3flags OR zcl_excel_style_cond=>c_iconset_3flags OR
zcl_excel_style_conditional=>c_iconset_3signs OR zcl_excel_style_cond=>c_iconset_3signs OR
zcl_excel_style_conditional=>c_iconset_3symbols OR zcl_excel_style_cond=>c_iconset_3symbols OR
zcl_excel_style_conditional=>c_iconset_3symbols2 OR zcl_excel_style_cond=>c_iconset_3symbols2 OR
zcl_excel_style_conditional=>c_iconset_3trafficlights OR zcl_excel_style_cond=>c_iconset_3trafficlights OR
zcl_excel_style_conditional=>c_iconset_3trafficlights2. zcl_excel_style_cond=>c_iconset_3trafficlights2.
MOVE ls_iconset-cfvo1_value TO ls_cfvo-value. MOVE ls_iconset-cfvo1_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo1_type TO ls_cfvo-type. MOVE ls_iconset-cfvo1_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo. 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_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo3_type TO ls_cfvo-type. MOVE ls_iconset-cfvo3_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo. APPEND ls_cfvo TO lt_cfvo.
WHEN zcl_excel_style_conditional=>c_iconset_4arrows OR WHEN zcl_excel_style_cond=>c_iconset_4arrows OR
zcl_excel_style_conditional=>c_iconset_4arrowsgray OR zcl_excel_style_cond=>c_iconset_4arrowsgray OR
zcl_excel_style_conditional=>c_iconset_4rating OR zcl_excel_style_cond=>c_iconset_4rating OR
zcl_excel_style_conditional=>c_iconset_4redtoblack OR zcl_excel_style_cond=>c_iconset_4redtoblack OR
zcl_excel_style_conditional=>c_iconset_4trafficlights. zcl_excel_style_cond=>c_iconset_4trafficlights.
MOVE ls_iconset-cfvo1_value TO ls_cfvo-value. MOVE ls_iconset-cfvo1_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo1_type TO ls_cfvo-type. MOVE ls_iconset-cfvo1_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo. 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_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo4_type TO ls_cfvo-type. MOVE ls_iconset-cfvo4_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo. APPEND ls_cfvo TO lt_cfvo.
WHEN zcl_excel_style_conditional=>c_iconset_5arrows OR WHEN zcl_excel_style_cond=>c_iconset_5arrows OR
zcl_excel_style_conditional=>c_iconset_5arrowsgray OR zcl_excel_style_cond=>c_iconset_5arrowsgray OR
zcl_excel_style_conditional=>c_iconset_5quarters OR zcl_excel_style_cond=>c_iconset_5quarters OR
zcl_excel_style_conditional=>c_iconset_5rating. zcl_excel_style_cond=>c_iconset_5rating.
MOVE ls_iconset-cfvo1_value TO ls_cfvo-value. MOVE ls_iconset-cfvo1_value TO ls_cfvo-value.
MOVE ls_iconset-cfvo1_type TO ls_cfvo-type. MOVE ls_iconset-cfvo1_type TO ls_cfvo-type.
APPEND ls_cfvo TO lt_cfvo. 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 lo_element_2->append_child( new_child = lo_element_3 ). " iconset node
WHEN zcl_excel_style_conditional=>c_rule_cellis. WHEN zcl_excel_style_cond=>c_rule_cellis.
ls_cellis = lo_style_conditional->mode_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. 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. lv_value = ls_style_cond_mapping-dxf.
CONDENSE lv_value. CONDENSE lv_value.
@ -4292,8 +3963,8 @@ METHOD create_xl_sheet.
lo_element_2->append_child( new_child = lo_element_3 ). " 2nd formula node lo_element_2->append_child( new_child = lo_element_3 ). " 2nd formula node
ENDIF. ENDIF.
WHEN zcl_excel_style_conditional=>c_rule_expression. WHEN zcl_excel_style_cond=>c_rule_expression.
ls_expression = lo_style_conditional->mode_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. 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. lv_value = ls_style_cond_mapping-dxf.
CONDENSE lv_value. CONDENSE lv_value.
@ -4307,8 +3978,8 @@ METHOD create_xl_sheet.
lo_element_2->append_child( new_child = lo_element_3 ). " formula node lo_element_2->append_child( new_child = lo_element_3 ). " formula node
* begin of ins issue #366 - missing conditional rules: top10 * begin of ins issue #366 - missing conditional rules: top10
WHEN zcl_excel_style_conditional=>c_rule_top10. WHEN zcl_excel_style_cond=>c_rule_top10.
ls_conditional_top10 = lo_style_conditional->mode_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. 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. lv_value = ls_style_cond_mapping-dxf.
CONDENSE lv_value. CONDENSE lv_value.
@ -4327,8 +3998,8 @@ METHOD create_xl_sheet.
value ='1' ). value ='1' ).
ENDIF. ENDIF.
WHEN zcl_excel_style_conditional=>c_rule_above_average. WHEN zcl_excel_style_cond=>c_rule_above_average.
ls_conditional_above_avg = lo_style_conditional->mode_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. 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. lv_value = ls_style_cond_mapping-dxf.
CONDENSE lv_value. CONDENSE lv_value.
@ -4788,8 +4459,6 @@ METHOD create_xl_sheet.
ENDIF. ENDIF.
********************************************************************** **********************************************************************
* STEP 5: Create xstring stream * STEP 5: Create xstring stream
lo_streamfactory = lo_ixml->create_stream_factory( ). 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 = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer->render( ). 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. ENDMETHOD.
@ -5085,6 +4751,7 @@ METHOD create_xl_sheet_sheet_data.
lo_table TYPE REF TO zcl_excel_table, 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, 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, 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 LIKE LINE OF io_worksheet->sheet_content,
ls_sheet_content_empty 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_next_row TYPE i,
lv_last_row TYPE i, lv_last_row TYPE i,
lts_row_dimensions TYPE zexcel_t_worksheet_rowdimensio, * lts_row_dimensions TYPE zexcel_t_worksheet_rowdimensio,
lo_row_dim_empty TYPE REF TO zcl_excel_worksheet_rowdimensi, lo_row_iterator TYPE REF TO cl_object_collection_iterator,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, 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, lts_row_outlines TYPE zcl_excel_worksheet=>mty_ts_outlines_row,
ls_last_row TYPE zexcel_s_cell_data, 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, lo_element_4 TYPE REF TO if_ixml_element,
lv_value TYPE string, lv_value TYPE string,
lv_style_guid TYPE zexcel_cell_style, lv_style_guid TYPE zexcel_cell_style.
lv_column_p TYPE zexcel_cell_column_alpha.
FIELD-SYMBOLS: <ls_sheet_content> TYPE zexcel_s_cell_data, 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. <ls_row_outline> LIKE LINE OF lts_row_outlines.
@ -5160,12 +4825,15 @@ METHOD create_xl_sheet_sheet_data.
*Last row with cell content *Last row with cell content
lv_last_row = io_worksheet->get_highest_row( ). lv_last_row = io_worksheet->get_highest_row( ).
*Last line with row-information set directly ( like line height, hidden-status ... ) *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. lo_row_iterator = io_worksheet->get_rows_iterator( ).
READ TABLE lts_row_dimensions INDEX 1 ASSIGNING <row_dimension>. WHILE lo_row_iterator->has_next( ) = abap_true.
IF sy-subrc = 0 AND <row_dimension>-row > lv_last_row. lo_row ?= lo_row_iterator->get_next( ).
lv_last_row = <row_dimension>-row. IF lo_row->get_row_index( ) > lv_last_row.
lv_last_row = lo_row->get_row_index( ).
ENDIF. ENDIF.
ENDWHILE.
*Last line with row-information set indirectly by row outline *Last line with row-information set indirectly by row outline
lts_row_outlines = io_worksheet->get_row_outlines( ). lts_row_outlines = io_worksheet->get_row_outlines( ).
LOOP AT lts_row_outlines ASSIGNING <ls_row_outline>. 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>. ASSIGN ls_sheet_content TO <ls_sheet_content>.
ELSE. ELSE.
*Check if empty row is really necessary - this is basically the case when we have information in row_dimension *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 ). lo_row_empty = io_worksheet->get_row( lv_current_row ).
CHECK lo_row_dim_empty->get_row_height( ) >= 0 OR CHECK lo_row_empty->get_row_height( ) >= 0 OR
lo_row_dim_empty->get_collapsed( io_worksheet ) = abap_true OR lo_row_empty->get_collapsed( io_worksheet ) = abap_true OR
lo_row_dim_empty->get_outline_level( io_worksheet ) > 0 OR lo_row_empty->get_outline_level( io_worksheet ) > 0 OR
lo_row_dim_empty->get_xf_index( ) <> 0. lo_row_empty->get_xf_index( ) <> 0.
" Dummyentry A1 " Dummyentry A1
ls_sheet_content_empty-cell_row = lv_current_row. ls_sheet_content_empty-cell_row = lv_current_row.
ls_sheet_content_empty-cell_column = 1. ls_sheet_content_empty-cell_column = 1.
@ -5236,7 +4904,7 @@ METHOD create_xl_sheet_sheet_data.
ENDIF. ENDIF.
IF ls_last_row-cell_row IS NOT INITIAL. IF ls_last_row-cell_row IS NOT INITIAL.
" Row visibility of previos row. " 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. l_autofilter_hidden = abap_true.
lo_element_2->set_attribute_ns( name = 'hidden' value = 'true'). lo_element_2->set_attribute_ns( name = 'hidden' value = 'true').
ENDIF. ENDIF.
@ -5262,33 +4930,33 @@ METHOD create_xl_sheet_sheet_data.
SHIFT lv_value LEFT DELETING LEADING space. SHIFT lv_value LEFT DELETING LEADING space.
lo_element_2->set_attribute_ns( name = lc_xml_attr_spans lo_element_2->set_attribute_ns( name = lc_xml_attr_spans
value = lv_value ). 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? " Do we need the row dimension attributes?
IF row_dimension->get_row_height( ) >= 0 OR IF lo_row->get_row_height( ) >= 0 OR
row_dimension->get_collapsed( io_worksheet ) = abap_true OR lo_row->get_collapsed( io_worksheet ) = abap_true OR
row_dimension->get_outline_level( io_worksheet ) > 0 OR lo_row->get_outline_level( io_worksheet ) > 0 OR
row_dimension->get_xf_index( ) <> 0 OR lo_row->get_xf_index( ) <> 0 OR
l_autofilter_hidden = abap_true. l_autofilter_hidden = abap_true.
" Row dimensions " 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'). 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 ). lo_element_2->set_attribute_ns( name = 'ht' value = lv_value ).
ENDIF. ENDIF.
" Collapsed " 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'). lo_element_2->set_attribute_ns( name = 'collapsed' value = 'true').
ENDIF. ENDIF.
" Outline level " Outline level
IF row_dimension->get_outline_level( io_worksheet ) > 0. IF lo_row->get_outline_level( io_worksheet ) > 0.
lv_value = row_dimension->get_outline_level( io_worksheet ). lv_value = lo_row->get_outline_level( io_worksheet ).
SHIFT lv_value RIGHT DELETING TRAILING space. SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space. SHIFT lv_value LEFT DELETING LEADING space.
lo_element_2->set_attribute_ns( name = 'outlineLevel' value = lv_value ). lo_element_2->set_attribute_ns( name = 'outlineLevel' value = lv_value ).
ENDIF. ENDIF.
" Style " Style
IF row_dimension->get_xf_index( ) <> 0. IF lo_row->get_xf_index( ) <> 0.
lv_value = row_dimension->get_xf_index( ). 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 = 's' value = lv_value ).
lo_element_2->set_attribute_ns( name = 'customFormat' value = '1'). lo_element_2->set_attribute_ns( name = 'customFormat' value = '1').
ENDIF. 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 *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 ). lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ).
READ TABLE it_column_dimensions WITH KEY column = lv_column_p ASSIGNING <column_dimension>. lo_column ?= io_worksheet->get_column( <ls_sheet_content>-cell_column ).
IF sy-subrc = 0. IF lo_column->get_column_index( ) = <ls_sheet_content>-cell_column.
lv_style_guid = <column_dimension>-column_dimension->get_column_style_guid( ). lv_style_guid = lo_column->get_column_style_guid( ).
IF lv_style_guid IS INITIAL. IF lv_style_guid IS INITIAL.
lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ). lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ).
ENDIF. ENDIF.
ELSE.
lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ).
ENDIF. ENDIF.
*--------------------------------------------------------------------* *--------------------------------------------------------------------*
*issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 3 - start *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. CLEAR l_autofilter_hidden.
ENDIF. ENDIF.
" Row visibility of previos row. " 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. l_autofilter_hidden = abap_true.
lo_element_2->set_attribute_ns( name = 'hidden' value = 'true'). lo_element_2->set_attribute_ns( name = 'hidden' value = 'true').
ENDIF. ENDIF.
@ -5574,7 +5241,7 @@ METHOD create_xl_styles.
lo_iterator TYPE REF TO cl_object_collection_iterator, lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_iterator2 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_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. 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. WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true.
lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ).
" Conditional formatting styles into exch sheet " 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. WHILE lo_iterator2->if_object_collection_iterator~has_next( ) EQ abap_true.
lo_style_conditional ?= lo_iterator2->if_object_collection_iterator~get_next( ). lo_style_cond ?= lo_iterator2->if_object_collection_iterator~get_next( ).
CASE lo_style_conditional->rule. CASE lo_style_cond->rule.
* begin of change issue #366 - missing conditional rules: top10, move dfx-styles to own method * 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 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_dxf_element = lo_element
io_ixml_document = lo_document io_ixml_document = lo_document
it_cellxfs = lt_cellxfs it_cellxfs = lt_cellxfs
@ -6358,9 +6025,9 @@ METHOD create_xl_styles.
CHANGING CHANGING
cv_dfx_count = lv_dfx_count ). 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 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_dxf_element = lo_element
io_ixml_document = lo_document io_ixml_document = lo_document
it_cellxfs = lt_cellxfs 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 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_dxf_element = lo_element
io_ixml_document = lo_document io_ixml_document = lo_document
it_cellxfs = lt_cellxfs it_cellxfs = lt_cellxfs
@ -6382,9 +6049,9 @@ METHOD create_xl_styles.
CHANGING CHANGING
cv_dfx_count = lv_dfx_count ). 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 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_dxf_element = lo_element
io_ixml_document = lo_document io_ixml_document = lo_document
it_cellxfs = lt_cellxfs it_cellxfs = lt_cellxfs

View File

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

View File

@ -48,9 +48,9 @@ START-OF-SELECTION.
DATA: lo_excel TYPE REF TO zcl_excel, DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer, lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime, lo_column TYPE REF TO zcl_excel_column,
lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi, lo_row TYPE REF TO zcl_excel_row,
hyperlink TYPE REF TO zcl_excel_hyperlink, lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
lo_drawing TYPE REF TO zcl_excel_drawing. lo_drawing TYPE REF TO zcl_excel_drawing.
DATA: lo_style_month TYPE REF TO zcl_excel_style, 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->paper_size = zcl_excel_sheet_setup=>c_papersize_a4.
lo_worksheet->sheet_setup->horizontal_centered = abap_true. lo_worksheet->sheet_setup->horizontal_centered = abap_true.
lo_worksheet->sheet_setup->vertical_centered = abap_true. lo_worksheet->sheet_setup->vertical_centered = abap_true.
lo_col_dim = lo_worksheet->get_column_dimension( 'A' ). lo_column = lo_worksheet->get_column( 'A' ).
lo_col_dim->set_width( '1.0' ). lo_column->set_width( '1.0' ).
lo_col_dim = lo_worksheet->get_column_dimension( 'B' ). lo_column = lo_worksheet->get_column( 'B' ).
lo_col_dim->set_width( '2.0' ). lo_column->set_width( '2.0' ).
IF p_lands = abap_true. IF p_lands = abap_true.
lo_worksheet->sheet_setup->orientation = zcl_excel_sheet_setup=>c_orientation_landscape. lo_worksheet->sheet_setup->orientation = zcl_excel_sheet_setup=>c_orientation_landscape.
lv_height = c_height_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_right = '0.10'.
lo_worksheet->sheet_setup->margin_bottom = '0.10'. lo_worksheet->sheet_setup->margin_bottom = '0.10'.
ELSE. ELSE.
lo_col_dim = lo_worksheet->get_column_dimension( 'K' ). lo_column = lo_worksheet->get_column( 'K' ).
lo_col_dim->set_width( '3.0' ). lo_column->set_width( '3.0' ).
lo_worksheet->sheet_setup->margin_top = '0.80'. lo_worksheet->sheet_setup->margin_top = '0.80'.
lo_worksheet->sheet_setup->margin_left = '0.55'. lo_worksheet->sheet_setup->margin_left = '0.55'.
lo_worksheet->sheet_setup->margin_right = '0.05'. lo_worksheet->sheet_setup->margin_right = '0.05'.
@ -291,13 +291,13 @@ START-OF-SELECTION.
row = lv_from_row - 2. row = lv_from_row - 2.
ENDIF. ENDIF.
IF NOT <img_descr>-url IS INITIAL. 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( lo_worksheet->set_cell(
EXPORTING EXPORTING
ip_column = from_col " Cell Column ip_column = from_col " Cell Column
ip_row = row " Cell Row ip_row = row " Cell Row
ip_value = value " Cell Value ip_value = value " Cell Value
ip_hyperlink = hyperlink ip_hyperlink = lo_hyperlink
). ).
ELSE. ELSE.
lo_worksheet->set_cell( lo_worksheet->set_cell(
@ -307,8 +307,8 @@ START-OF-SELECTION.
ip_value = value " Cell Value ip_value = value " Cell Value
). ).
ENDIF. ENDIF.
lo_row_dim = lo_worksheet->get_row_dimension( row ). lo_row = lo_worksheet->get_row( row ).
lo_row_dim->set_row_height( '22.0' ). lo_row->set_row_height( '22.0' ).
" In Landscape mode the row between the description and the " In Landscape mode the row between the description and the
" dates should be not so high " dates should be not so high
@ -320,11 +320,11 @@ START-OF-SELECTION.
ip_row = row " Cell Row ip_row = row " Cell Row
ip_value = ' ' " Cell Value ip_value = ' ' " Cell Value
). ).
lo_row_dim = lo_worksheet->get_row_dimension( row ). lo_row = lo_worksheet->get_row( row ).
lo_row_dim->set_row_height( '7.0' ). lo_row->set_row_height( '7.0' ).
row = lv_from_row - 1. row = lv_from_row - 1.
lo_row_dim = lo_worksheet->get_row_dimension( row ). lo_row = lo_worksheet->get_row( row ).
lo_row_dim->set_row_height( '5.0' ). lo_row->set_row_height( '5.0' ).
ENDIF. ENDIF.
CONCATENATE p_path lv_file_separator <img_descr>-filename INTO image_path. 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, col_max TYPE i,
from_col_int TYPE zexcel_cell_column, from_col_int TYPE zexcel_cell_column,
col TYPE zexcel_cell_column_alpha, col TYPE zexcel_cell_column_alpha,
lr_col_dim TYPE REF TO zcl_excel_worksheet_columndime, lo_column TYPE REF TO zcl_excel_column,
lr_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi. lo_row TYPE REF TO zcl_excel_row.
DATA: lv_date TYPE datum, DATA: lv_date TYPE datum,
value TYPE string, value TYPE string,
weekday TYPE wotnr, weekday TYPE wotnr,
@ -325,16 +325,16 @@ CLASS zcl_helper IMPLEMENTATION.
ELSE. ELSE.
width = '11.4'. width = '11.4'.
ENDIF. ENDIF.
lr_col_dim = c_worksheet->get_column_dimension( col ). lo_column = c_worksheet->get_column( col ).
lr_col_dim->set_width( width ). lo_column->set_width( width ).
col_int = col_int + 1. col_int = col_int + 1.
ENDWHILE. ENDWHILE.
row = i_from_row + 1. row = i_from_row + 1.
row_max = i_from_row + 6. row_max = i_from_row + 6.
WHILE row <= row_max. WHILE row <= row_max.
height = 50. height = 50.
lr_row_dim = c_worksheet->get_row_dimension( row ). lo_row = c_worksheet->get_row( row ).
lr_row_dim->set_row_height( height ). lo_row->set_row_height( height ).
row = row + 1. row = row + 1.
ENDWHILE. ENDWHILE.
ENDMETHOD. "add_calendar ENDMETHOD. "add_calendar
@ -342,8 +342,8 @@ CLASS zcl_helper IMPLEMENTATION.
DATA: value TYPE string, DATA: value TYPE string,
hyperlink TYPE REF TO zcl_excel_hyperlink. hyperlink TYPE REF TO zcl_excel_hyperlink.
value = 'Created with abap2xlsx. Find more information at http://abap2xlsx.org.'(002). value = 'Created with abap2xlsx. Find more information at http://www.plinky.it/abap/abap2xlsx.php.'(002).
hyperlink = zcl_excel_hyperlink=>create_external_link( 'http://abap2xlsx.org' ). "#EC NOTEXT hyperlink = zcl_excel_hyperlink=>create_external_link( 'http://www.plinky.it/abap/abap2xlsx.php' ). "#EC NOTEXT
c_worksheet->set_cell( c_worksheet->set_cell(
EXPORTING EXPORTING
ip_column = i_from_col " Cell Column ip_column = i_from_col " Cell Column
@ -364,8 +364,8 @@ CLASS zcl_helper IMPLEMENTATION.
from_col_int TYPE zexcel_cell_column, from_col_int TYPE zexcel_cell_column,
col_int TYPE zexcel_cell_column, col_int TYPE zexcel_cell_column,
col TYPE zexcel_cell_column_alpha. col TYPE zexcel_cell_column_alpha.
DATA: lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime, DATA: lo_column TYPE REF TO zcl_excel_column,
lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi. lo_row TYPE REF TO zcl_excel_row.
FIELD-SYMBOLS: <day_name> LIKE LINE OF day_names. 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 ip_style = i_day_style " Single-Character Indicator
). ).
" width " width
lo_col_dim = c_worksheet->get_column_dimension( col ). lo_column = c_worksheet->get_column( col ).
lo_col_dim->set_width( '3.6' ). lo_column->set_width( '3.6' ).
lv_date = lv_date + 1. lv_date = lv_date + 1.
@ -424,8 +424,8 @@ CLASS zcl_helper IMPLEMENTATION.
ip_row = row " Cell Row ip_row = row " Cell Row
ip_value = ' ' " Cell Value ip_value = ' ' " Cell Value
). ).
lo_row_dim = c_worksheet->get_row_dimension( row ). lo_row = c_worksheet->get_row( row ).
lo_row_dim->set_row_height( '5.0' ). lo_row->set_row_height( '5.0' ).
row = i_from_row + 3. row = i_from_row + 3.
zcl_helper=>add_a2x_footer( zcl_helper=>add_a2x_footer(
EXPORTING EXPORTING
@ -441,8 +441,8 @@ CLASS zcl_helper IMPLEMENTATION.
col_int = from_col_int + day + 2. col_int = from_col_int + day + 2.
col = zcl_excel_common=>convert_column2alpha( col_int ). col = zcl_excel_common=>convert_column2alpha( col_int ).
" width " width
lo_col_dim = c_worksheet->get_column_dimension( col ). lo_column = c_worksheet->get_column( col ).
lo_col_dim->set_width( '3.6' ). lo_column->set_width( '3.6' ).
ENDWHILE. ENDWHILE.
ENDMETHOD. "ADD_CALENDAR_LANDSCAPE ENDMETHOD. "ADD_CALENDAR_LANDSCAPE

View File

@ -81,4 +81,4 @@ START-OF-SELECTION.
" Reader/Writer Demo must always run at the end " Reader/Writer Demo must always run at the end
" to make sure all documents where created " 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, DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink, 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'. CONSTANTS: gc_save_file_name TYPE string VALUE '01_HelloWorld.xlsx'.
INCLUDE zdemo_excel_outputopt_incl. 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 = 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 = 'B' ip_row = 3 ip_value = sy-datum ).
lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ). 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 ). 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' ). lo_column = lo_worksheet->get_column( ip_column = 'B' ).
column_dimension->set_width( ip_width = 11 ). lo_column->set_width( ip_width = 11 ).

View File

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

View File

@ -191,8 +191,8 @@ START-OF-SELECTION.
lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_body TYPE REF TO zcl_excel_style, lo_style_body TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border, lo_border_dark TYPE REF TO zcl_excel_style_border,
column_dimension TYPE REF TO zcl_excel_worksheet_columndime, lo_column TYPE REF TO zcl_excel_column,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. lo_row TYPE REF TO zcl_excel_row.
DATA: lv_style_body_even_guid TYPE zexcel_cell_style, DATA: lv_style_body_even_guid TYPE zexcel_cell_style,
lv_style_body_green 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 ). ip_style = lv_style_body_even_guid ).
ENDLOOP. ENDLOOP.
" Hide first row " Hide first row
row_dimension = lo_worksheet->get_row_dimension( 1 ). lo_row = lo_worksheet->get_row( 1 ).
row_dimension->set_visible( abap_false ). lo_row->set_visible( abap_false ).
DATA: highest_column TYPE zexcel_cell_column, DATA: highest_column TYPE zexcel_cell_column,
count TYPE int4, count TYPE int4,
@ -369,46 +369,10 @@ START-OF-SELECTION.
count = 1. count = 1.
WHILE count <= highest_column. WHILE count <= highest_column.
col_alpha = zcl_excel_common=>convert_column2alpha( ip_column = count ). col_alpha = zcl_excel_common=>convert_column2alpha( ip_column = count ).
column_dimension = lo_worksheet->get_column_dimension( ip_column = col_alpha ). lo_column = lo_worksheet->get_column( ip_column = col_alpha ).
column_dimension->set_auto_size( ip_auto_size = abap_true ). lo_column->set_auto_size( ip_auto_size = abap_true ).
count = count + 1. count = count + 1.
ENDWHILE. 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 *** Create output
lcl_output=>output( lo_excel ). lcl_output=>output( lo_excel ).

View File

@ -10,8 +10,8 @@ REPORT zdemo_excel12.
DATA: lo_excel TYPE REF TO zcl_excel, DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet, 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,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. lo_row TYPE REF TO zcl_excel_row.
DATA: lv_file TYPE xstring, DATA: lv_file TYPE xstring,
lv_bytecount TYPE i, lv_bytecount TYPE i,
@ -54,35 +54,27 @@ START-OF-SELECTION.
" Column Settings " Column Settings
" Auto size " Auto size
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). lo_column = lo_worksheet->get_column( ip_column = 'B' ).
column_dimension->set_auto_size( ip_auto_size = abap_true ). lo_column->set_auto_size( ip_auto_size = abap_true ).
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'I' ). lo_column = lo_worksheet->get_column( ip_column = 'I' ).
column_dimension->set_auto_size( ip_auto_size = abap_true ). lo_column->set_auto_size( ip_auto_size = abap_true ).
" Manual Width " Manual Width
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). lo_column = lo_worksheet->get_column( ip_column = 'C' ).
column_dimension->set_width( ip_width = 50 ). lo_column->set_width( ip_width = 50 ).
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'D' ). lo_column = lo_worksheet->get_column( ip_column = 'D' ).
column_dimension->set_visible( ip_visible = abap_false ). lo_column->set_visible( ip_visible = abap_false ).
" Implementation in the Writer is not working yet ===== TODO ===== " Implementation in the Writer is not working yet ===== TODO =====
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'F' ). lo_column = lo_worksheet->get_column( ip_column = 'F' ).
column_dimension->set_outline_level( ip_outline_level = 0 ). lo_column->set_outline_level( ip_outline_level = 0 ).
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'G' ). lo_column = lo_worksheet->get_column( ip_column = 'G' ).
column_dimension->set_outline_level( ip_outline_level = 1 ). lo_column->set_outline_level( ip_outline_level = 1 ).
column_dimension = lo_worksheet->get_column_dimension( ip_column = 'H' ). lo_column = lo_worksheet->get_column( ip_column = 'H' ).
column_dimension->set_outline_level( ip_outline_level = 2 ). lo_column->set_outline_level( ip_outline_level = 2 ).
row_dimension = lo_worksheet->get_row_dimension( ip_row = 1 ). lo_row = lo_worksheet->get_row( ip_row = 1 ).
row_dimension->set_visible( ip_visible = abap_false ). lo_row->set_visible( ip_visible = abap_false ).
row_dimension = lo_worksheet->get_row_dimension( ip_row = 5 ). lo_row = lo_worksheet->get_row( ip_row = 5 ).
row_dimension->set_row_height( ip_row_height = 20 ). lo_row->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 ).
* Define an outline rows 10-16, collapsed on startup * Define an outline rows 10-16, collapsed on startup
lo_worksheet->set_row_outline( iv_row_from = 10 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_shrink_guid TYPE zexcel_cell_style,
lv_style_indent_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'. CONSTANTS: gc_save_file_name TYPE string VALUE '14_Alignment.xlsx'.
INCLUDE zdemo_excel_outputopt_incl. INCLUDE zdemo_excel_outputopt_incl.
@ -117,8 +117,8 @@ START-OF-SELECTION.
" Set row size for first 7 rows to 40 " Set row size for first 7 rows to 40
DO 7 TIMES. DO 7 TIMES.
lo_row_dimension = lo_worksheet->get_row_dimension( sy-index ). lo_row = lo_worksheet->get_row( sy-index ).
lo_row_dimension->set_row_height( 40 ). lo_row->set_row_height( 40 ).
ENDDO. ENDDO.
"Horizontal alignment "Horizontal alignment

View File

@ -47,7 +47,7 @@ DATA: lv_file TYPE xstring,
DATA: lv_full_path TYPE string, DATA: lv_full_path TYPE string,
lv_workdir TYPE string, lv_workdir TYPE string,
lv_file_separator TYPE c. 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'. CONSTANTS: gc_save_file_name TYPE string VALUE '02_Styles.xlsx'.
INCLUDE zdemo_excel_outputopt_incl. 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_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 = lo_worksheet->get_row( ip_row = 10 ).
lo_row_dim->set_row_height( ip_row_height = 30 ). 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_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 = lo_worksheet->get_row( ip_row = 11 ).
lo_row_dim->set_row_height( ip_row_height = 30 ). 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_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 = lo_worksheet->get_row( ip_row = 12 ).
lo_row_dim->set_row_height( ip_row_height = 30 ). 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_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 = lo_worksheet->get_row( ip_row = 13 ).
lo_row_dim->set_row_height( ip_row_height = 30 ). 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_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 = lo_worksheet->get_row( ip_row = 14 ).
lo_row_dim->set_row_height( ip_row_height = 30 ). 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_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 = lo_worksheet->get_row( ip_row = 15 ).
lo_row_dim->set_row_height( ip_row_height = 30 ). 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_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 = lo_worksheet->get_row( ip_row = 16 ).
lo_row_dim->set_row_height( ip_row_height = 30 ). 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_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 = lo_worksheet->get_row( ip_row = 17 ).
lo_row_dim->set_row_height( ip_row_height = 30 ). 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_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 = lo_worksheet->get_row( ip_row = 18 ).
lo_row_dim->set_row_height( ip_row_height = 30 ). 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_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 = lo_worksheet->get_row( ip_row = 19 ).
lo_row_dim->set_row_height( ip_row_height = 30 ). 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_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 = lo_worksheet->get_row( ip_row = 20 ).
lo_row_dim->set_row_height( ip_row_height = 30 ). 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_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 = lo_worksheet->get_row( ip_row = 21 ).
lo_row_dim->set_row_height( ip_row_height = 30 ). 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_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 = lo_worksheet->get_row( ip_row = 22 ).
lo_row_dim->set_row_height( ip_row_height = 30 ). 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_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 = lo_worksheet->get_row( ip_row = 23 ).
lo_row_dim->set_row_height( ip_row_height = 30 ). 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, DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet, 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. lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
DATA: lv_file TYPE xstring, 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_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 ). 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' ). lo_column = lo_worksheet->get_column( ip_column = 'A' ).
column_dimension->set_auto_size( ip_auto_size = abap_true ). lo_column->set_auto_size( ip_auto_size = abap_true ).
" Second sheet " 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_worksheet TYPE REF TO zcl_excel_worksheet,
lo_range TYPE REF TO zcl_excel_range, lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation, 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_1 TYPE REF TO zcl_excel_style,
lo_style_2 TYPE REF TO zcl_excel_style, lo_style_2 TYPE REF TO zcl_excel_style,
lv_style_1_guid TYPE zexcel_cell_style, lv_style_1_guid TYPE zexcel_cell_style,
@ -73,31 +73,29 @@ START-OF-SELECTION.
lo_data_validation->cell_column = 'C'. lo_data_validation->cell_column = 'C'.
lo_worksheet->set_cell( ip_row = 2 ip_column = 'C' ip_value = 'Select a value' ). 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_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_cellis. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_cellis.
ls_cellis-formula = '"Anchovy"'. 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. ls_cellis-cell_style = lv_style_1_guid.
lo_style_conditional->mode_cellis = ls_cellis. lo_style_cond->mode_cellis = ls_cellis.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
lo_style_conditional->set_range( ip_start_column = 'C' lo_style_cond->set_range( ip_start_column = 'C'
ip_start_row = 2 ip_start_row = 2
ip_stop_column = 'C' ip_stop_column = 'C'
ip_stop_row = 2 ). ip_stop_row = 2 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_cellis. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_cellis.
ls_cellis-formula = '"Carp"'. 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. ls_cellis-cell_style = lv_style_2_guid.
lo_style_conditional->mode_cellis = ls_cellis. lo_style_cond->mode_cellis = ls_cellis.
lo_style_conditional->priority = 2. lo_style_cond->priority = 2.
lo_style_conditional->set_range( ip_start_column = 'C' lo_style_cond->set_range( ip_start_column = 'C'
ip_start_row = 2 ip_start_row = 2
ip_stop_column = 'C' ip_stop_column = 'C'
ip_stop_row = 2 ). ip_stop_row = 2 ).
*** Create output *** Create output
lcl_output=>output( lo_excel ). 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_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink, 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, DATA: lv_file TYPE xstring,
lv_bytecount TYPE i, 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 = 'B' ip_row = 3 ip_value = sy-datum ).
lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ). lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ).
column_dimension = lo_worksheet->get_column_dimension( 'B' ). lo_column = lo_worksheet->get_column( 'B' ).
column_dimension->set_width( 11 ). lo_column->set_width( 11 ).
lo_worksheet = lo_excel->add_new_worksheet( ). lo_worksheet = lo_excel->add_new_worksheet( ).
lo_worksheet->set_title( ip_title = 'Sheet2' ). lo_worksheet->set_title( ip_title = 'Sheet2' ).
@ -93,7 +93,7 @@ START-OF-SELECTION.
CHANGING data_tab = lt_file_tab ). 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( 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 ). lv_file = lo_excel_writer->write_file( lo_excel ).
REPLACE FIRST OCCURRENCE OF '_Sheet2.csv' IN lv_full_path WITH '_Sheet1.csv'. 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, DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet, 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. 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 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 lo_column = lo_worksheet->get_column( ip_column = 'E' ). "make date field a bit wider
column_dimension->set_width( ip_width = 11 ). lo_column->set_width( ip_width = 11 ).
" Add another table for data validations " Add another table for data validations
lo_worksheet = lo_excel->add_new_worksheet( ). lo_worksheet = lo_excel->add_new_worksheet( ).
lv_title = 'Data Validation'. lv_title = 'Data Validation'.

View File

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

View File

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

View File

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

View File

@ -4,7 +4,7 @@ REPORT zdemo_excel36.
DATA: lo_excel TYPE REF TO zcl_excel, DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet, 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. col TYPE i.
DATA: lo_style_arial20 TYPE REF TO zcl_excel_style, 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 ) * 3rd sheet - defaultstyle for columns ( set to Times New Roman 11 )
lo_worksheet = lo_excel->add_new_worksheet( ). lo_worksheet = lo_excel->add_new_worksheet( ).
lo_worksheet->set_title( 'Style for 3 columns' ). lo_worksheet->set_title( 'Style for 3 columns' ).
column_dimension = lo_worksheet->get_column_dimension( 'B' ). lo_column = lo_worksheet->get_column( 'B' ).
column_dimension->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ). lo_column->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ).
column_dimension = lo_worksheet->get_column_dimension( 'C' ). lo_column = lo_worksheet->get_column( 'C' ).
column_dimension->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ). lo_column->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ).
column_dimension = lo_worksheet->get_column_dimension( 'F' ). lo_column = lo_worksheet->get_column( 'F' ).
column_dimension->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ). 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 = 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' ). 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, DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet, 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. lo_drawing TYPE REF TO zcl_excel_drawing.
TYPES: BEGIN OF gty_icon, TYPES: BEGIN OF gty_icon,
@ -36,10 +36,10 @@ START-OF-SELECTION.
" Get active sheet " Get active sheet
lo_worksheet = lo_excel->get_active_worksheet( ). lo_worksheet = lo_excel->get_active_worksheet( ).
lo_worksheet->set_title( ip_title = 'Demo Icons' ). lo_worksheet->set_title( ip_title = 'Demo Icons' ).
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ). lo_column = lo_worksheet->get_column( ip_column = 'A' ).
lo_column_dimension->set_auto_size( 'X' ). lo_column->set_auto_size( 'X' ).
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). lo_column = lo_worksheet->get_column( ip_column = 'B' ).
lo_column_dimension->set_auto_size( 'X' ). lo_column->set_auto_size( 'X' ).
* Get all icons * Get all icons
SELECT name SELECT name

View File

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

View File

@ -10,7 +10,7 @@ REPORT zdemo_excel7.
DATA: lo_excel TYPE REF TO zcl_excel, DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet, 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, DATA: ls_iconset3 TYPE zexcel_conditional_iconset,
ls_iconset4 TYPE zexcel_conditional_iconset, ls_iconset4 TYPE zexcel_conditional_iconset,
@ -27,54 +27,54 @@ START-OF-SELECTION.
CREATE OBJECT lo_excel. 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-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-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-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-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-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-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-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-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-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-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-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-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-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-cfvo2_value = '0'.
ls_databar-colorrgb = 'FF638EC6'. 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-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-cfvo2_value = '50'.
ls_colorscale2-colorrgb1 = 'FFF8696B'. ls_colorscale2-colorrgb1 = 'FFF8696B'.
ls_colorscale2-colorrgb2 = 'FF63BE7B'. 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-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-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-cfvo3_value = '0'.
ls_colorscale3-colorrgb1 = 'FFF8696B'. ls_colorscale3-colorrgb1 = 'FFF8696B'.
ls_colorscale3-colorrgb2 = 'FFFFEB84'. ls_colorscale3-colorrgb2 = 'FFFFEB84'.
@ -85,14 +85,14 @@ START-OF-SELECTION.
* ICONSET * ICONSET
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_conditional->priority = 1. 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_cond->mode_iconset = ls_iconset3.
lo_style_conditional->set_range( ip_start_column = 'B' lo_style_cond->set_range( ip_start_column = 'B'
ip_start_row = 5 ip_start_row = 5
ip_stop_column = 'B' ip_stop_column = 'B'
ip_stop_row = 9 ). 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 = 8 ip_column = 'B' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 9 ip_column = 'B' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'B' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3arrowsgray. ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3arrowsgray.
lo_style_conditional->mode_iconset = ls_iconset3. lo_style_cond->mode_iconset = ls_iconset3.
lo_style_conditional->set_range( ip_start_column = 'C' lo_style_cond->set_range( ip_start_column = 'C'
ip_start_row = 5 ip_start_row = 5
ip_stop_column = 'C' ip_stop_column = 'C'
ip_stop_row = 9 ). 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 = 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 = 8 ip_column = 'C' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 9 ip_column = 'C' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'C' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3flags. ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3flags.
lo_style_conditional->mode_iconset = ls_iconset3. lo_style_cond->mode_iconset = ls_iconset3.
lo_style_conditional->set_range( ip_start_column = 'D' lo_style_cond->set_range( ip_start_column = 'D'
ip_start_row = 5 ip_start_row = 5
ip_stop_column = 'D' ip_stop_column = 'D'
ip_stop_row = 9 ). 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 = 8 ip_column = 'D' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 9 ip_column = 'D' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'D' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights. ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3trafficlights.
lo_style_conditional->mode_iconset = ls_iconset3. lo_style_cond->mode_iconset = ls_iconset3.
lo_style_conditional->set_range( ip_start_column = 'E' lo_style_cond->set_range( ip_start_column = 'E'
ip_start_row = 5 ip_start_row = 5
ip_stop_column = 'E' ip_stop_column = 'E'
ip_stop_row = 9 ). 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 = 8 ip_column = 'E' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 9 ip_column = 'E' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'E' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights2. ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3trafficlights2.
lo_style_conditional->mode_iconset = ls_iconset3. lo_style_cond->mode_iconset = ls_iconset3.
lo_style_conditional->set_range( ip_start_column = 'F' lo_style_cond->set_range( ip_start_column = 'F'
ip_start_row = 5 ip_start_row = 5
ip_stop_column = 'F' ip_stop_column = 'F'
ip_stop_row = 9 ). 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 = 8 ip_column = 'F' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 9 ip_column = 'F' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'F' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3signs. ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3signs.
lo_style_conditional->mode_iconset = ls_iconset3. lo_style_cond->mode_iconset = ls_iconset3.
lo_style_conditional->set_range( ip_start_column = 'G' lo_style_cond->set_range( ip_start_column = 'G'
ip_start_row = 5 ip_start_row = 5
ip_stop_column = 'G' ip_stop_column = 'G'
ip_stop_row = 9 ). 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 = 8 ip_column = 'G' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 9 ip_column = 'G' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'G' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3symbols. ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3symbols.
lo_style_conditional->mode_iconset = ls_iconset3. lo_style_cond->mode_iconset = ls_iconset3.
lo_style_conditional->set_range( ip_start_column = 'H' lo_style_cond->set_range( ip_start_column = 'H'
ip_start_row = 5 ip_start_row = 5
ip_stop_column = 'H' ip_stop_column = 'H'
ip_stop_row = 9 ). 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 = 8 ip_column = 'H' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 9 ip_column = 'H' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'H' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3symbols2. ls_iconset3-iconset = zcl_excel_style_cond=>c_iconset_3symbols2.
lo_style_conditional->mode_iconset = ls_iconset3. lo_style_cond->mode_iconset = ls_iconset3.
lo_style_conditional->set_range( ip_start_column = 'I' lo_style_cond->set_range( ip_start_column = 'I'
ip_start_row = 5 ip_start_row = 5
ip_stop_column = 'I' ip_stop_column = 'I'
ip_stop_row = 9 ). 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 = 8 ip_column = 'I' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 9 ip_column = 'I' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'I' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4arrows. ls_iconset4-iconset = zcl_excel_style_cond=>c_iconset_4arrows.
lo_style_conditional->mode_iconset = ls_iconset4. lo_style_cond->mode_iconset = ls_iconset4.
lo_style_conditional->set_range( ip_start_column = 'B' lo_style_cond->set_range( ip_start_column = 'B'
ip_start_row = 12 ip_start_row = 12
ip_stop_column = 'B' ip_stop_column = 'B'
ip_stop_row = 16 ). 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 = 15 ip_column = 'B' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 16 ip_column = 'B' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 16 ip_column = 'B' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4arrowsgray. ls_iconset4-iconset = zcl_excel_style_cond=>c_iconset_4arrowsgray.
lo_style_conditional->mode_iconset = ls_iconset4. lo_style_cond->mode_iconset = ls_iconset4.
lo_style_conditional->set_range( ip_start_column = 'C' lo_style_cond->set_range( ip_start_column = 'C'
ip_start_row = 12 ip_start_row = 12
ip_stop_column = 'C' ip_stop_column = 'C'
ip_stop_row = 16 ). 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 = 15 ip_column = 'C' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 16 ip_column = 'C' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 16 ip_column = 'C' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4redtoblack. ls_iconset4-iconset = zcl_excel_style_cond=>c_iconset_4redtoblack.
lo_style_conditional->mode_iconset = ls_iconset4. lo_style_cond->mode_iconset = ls_iconset4.
lo_style_conditional->set_range( ip_start_column = 'D' lo_style_cond->set_range( ip_start_column = 'D'
ip_start_row = 12 ip_start_row = 12
ip_stop_column = 'D' ip_stop_column = 'D'
ip_stop_row = 16 ). 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 = 15 ip_column = 'D' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 16 ip_column = 'D' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 16 ip_column = 'D' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4rating. ls_iconset4-iconset = zcl_excel_style_cond=>c_iconset_4rating.
lo_style_conditional->mode_iconset = ls_iconset4. lo_style_cond->mode_iconset = ls_iconset4.
lo_style_conditional->set_range( ip_start_column = 'E' lo_style_cond->set_range( ip_start_column = 'E'
ip_start_row = 12 ip_start_row = 12
ip_stop_column = 'E' ip_stop_column = 'E'
ip_stop_row = 16 ). 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 = 15 ip_column = 'E' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 16 ip_column = 'E' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 16 ip_column = 'E' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4trafficlights. ls_iconset4-iconset = zcl_excel_style_cond=>c_iconset_4trafficlights.
lo_style_conditional->mode_iconset = ls_iconset4. lo_style_cond->mode_iconset = ls_iconset4.
lo_style_conditional->set_range( ip_start_column = 'F' lo_style_cond->set_range( ip_start_column = 'F'
ip_start_row = 12 ip_start_row = 12
ip_stop_column = 'F' ip_stop_column = 'F'
ip_stop_row = 16 ). 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 = 15 ip_column = 'F' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 16 ip_column = 'F' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 16 ip_column = 'F' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
ls_iconset5-iconset = zcl_excel_style_conditional=>c_iconset_5arrows. ls_iconset5-iconset = zcl_excel_style_cond=>c_iconset_5arrows.
lo_style_conditional->mode_iconset = ls_iconset5. lo_style_cond->mode_iconset = ls_iconset5.
lo_style_conditional->set_range( ip_start_column = 'B' lo_style_cond->set_range( ip_start_column = 'B'
ip_start_row = 19 ip_start_row = 19
ip_stop_column = 'B' ip_stop_column = 'B'
ip_stop_row = 23 ). 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 = 22 ip_column = 'B' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 23 ip_column = 'B' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 23 ip_column = 'B' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
ls_iconset5-iconset = zcl_excel_style_conditional=>c_iconset_5arrowsgray. ls_iconset5-iconset = zcl_excel_style_cond=>c_iconset_5arrowsgray.
lo_style_conditional->mode_iconset = ls_iconset5. lo_style_cond->mode_iconset = ls_iconset5.
lo_style_conditional->set_range( ip_start_column = 'C' lo_style_cond->set_range( ip_start_column = 'C'
ip_start_row = 19 ip_start_row = 19
ip_stop_column = 'C' ip_stop_column = 'C'
ip_stop_row = 23 ). 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 = 22 ip_column = 'C' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 23 ip_column = 'C' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 23 ip_column = 'C' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
ls_iconset5-iconset = zcl_excel_style_conditional=>c_iconset_5rating. ls_iconset5-iconset = zcl_excel_style_cond=>c_iconset_5rating.
lo_style_conditional->mode_iconset = ls_iconset5. lo_style_cond->mode_iconset = ls_iconset5.
lo_style_conditional->set_range( ip_start_column = 'D' lo_style_cond->set_range( ip_start_column = 'D'
ip_start_row = 19 ip_start_row = 19
ip_stop_column = 'D' ip_stop_column = 'D'
ip_stop_row = 23 ). 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 = 22 ip_column = 'D' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 23 ip_column = 'D' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 23 ip_column = 'D' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_iconset.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
ls_iconset5-iconset = zcl_excel_style_conditional=>c_iconset_5quarters. ls_iconset5-iconset = zcl_excel_style_cond=>c_iconset_5quarters.
lo_style_conditional->mode_iconset = ls_iconset5. lo_style_cond->mode_iconset = ls_iconset5.
lo_style_conditional->set_range( ip_start_column = 'E' lo_style_cond->set_range( ip_start_column = 'E'
ip_start_row = 19 ip_start_row = 19
ip_stop_column = 'E' ip_stop_column = 'E'
ip_stop_row = 23 ). 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 = 29 ip_column = 'B' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 30 ip_column = 'B' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 30 ip_column = 'B' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_databar. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_databar.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
lo_style_conditional->mode_databar = ls_databar. lo_style_cond->mode_databar = ls_databar.
lo_style_conditional->set_range( ip_start_column = 'B' lo_style_cond->set_range( ip_start_column = 'B'
ip_start_row = 26 ip_start_row = 26
ip_stop_column = 'B' ip_stop_column = 'B'
ip_stop_row = 30 ). 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 = 29 ip_column = 'C' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 30 ip_column = 'C' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 30 ip_column = 'C' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_colorscale. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_colorscale.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
lo_style_conditional->mode_colorscale = ls_colorscale2. lo_style_cond->mode_colorscale = ls_colorscale2.
lo_style_conditional->set_range( ip_start_column = 'C' lo_style_cond->set_range( ip_start_column = 'C'
ip_start_row = 26 ip_start_row = 26
ip_stop_column = 'C' ip_stop_column = 'C'
ip_stop_row = 30 ). 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 = 29 ip_column = 'D' ip_value = 40 ).
lo_worksheet->set_cell( ip_row = 30 ip_column = 'D' ip_value = 50 ). lo_worksheet->set_cell( ip_row = 30 ip_column = 'D' ip_value = 50 ).
lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_cond = lo_worksheet->add_new_style_cond( ).
lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_colorscale. lo_style_cond->rule = zcl_excel_style_cond=>c_rule_colorscale.
lo_style_conditional->priority = 1. lo_style_cond->priority = 1.
lo_style_conditional->mode_colorscale = ls_colorscale3. lo_style_cond->mode_colorscale = ls_colorscale3.
lo_style_conditional->set_range( ip_start_column = 'D' lo_style_cond->set_range( ip_start_column = 'D'
ip_start_row = 26 ip_start_row = 26
ip_stop_column = 'D' ip_stop_column = 'D'
ip_stop_row = 30 ). 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_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range, lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation, 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, lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab. 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' ). lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ).
" add autosize (column width) " add autosize (column width)
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). lo_column = lo_worksheet->get_column( ip_column = 'B' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). lo_column = lo_worksheet->get_column( ip_column = 'C' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). lo_column->set_auto_size( ip_auto_size = abap_true ).
" Create xlsx stream " Create xlsx stream
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. 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_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range, lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation, 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, lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab. 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' ). lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ).
" add autosize (column width) " add autosize (column width)
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). lo_column = lo_worksheet->get_column( ip_column = 'B' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). lo_column = lo_worksheet->get_column( ip_column = 'C' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). lo_column->set_auto_size( ip_auto_size = abap_true ).
" Create xlsx stream " Create xlsx stream
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. 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_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range, lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation, 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, lo_style_conditional TYPE REF TO zcl_excel_style_conditional,
lv_style_title_guid TYPE zexcel_cell_style, lv_style_title_guid TYPE zexcel_cell_style,
lv_style_green_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' ). lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ).
" add autosize (column width) " add autosize (column width)
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). lo_column = lo_worksheet->get_column( ip_column = 'B' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). lo_column = lo_worksheet->get_column( ip_column = 'C' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). lo_column->set_auto_size( ip_auto_size = abap_true ).
" defne conditional styles " defne conditional styles
lo_style_green = lo_excel->add_new_style( ). 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_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range, lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation, 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, lo_style_conditional TYPE REF TO zcl_excel_style_conditional,
lv_style_title_guid TYPE zexcel_cell_style, lv_style_title_guid TYPE zexcel_cell_style,
lv_style_green_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' ). lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ).
" add autosize (column width) " add autosize (column width)
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). lo_column = lo_worksheet->get_column( ip_column = 'B' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). lo_column = lo_worksheet->get_column( ip_column = 'C' ).
lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). lo_column->set_auto_size( ip_auto_size = abap_true ).
" defne conditional styles " defne conditional styles
lo_style_green = lo_excel->add_new_style( ). lo_style_green = lo_excel->add_new_style( ).

View File

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

View File

@ -56,17 +56,6 @@
<SHLPORIGIN>F</SHLPORIGIN> <SHLPORIGIN>F</SHLPORIGIN>
<COMPTYPE>E</COMPTYPE> <COMPTYPE>E</COMPTYPE>
</DD03P> </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> </DD03P_TABLE>
<DD05M_TABLE/> <DD05M_TABLE/>
<DD08V_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>