diff --git a/src/zangry_birds.prog.abap b/src/zangry_birds.prog.abap
index a31d4ea..07cdec5 100644
--- a/src/zangry_birds.prog.abap
+++ b/src/zangry_birds.prog.abap
@@ -22,7 +22,7 @@ DATA: lo_excel TYPE REF TO zcl_excel,
lo_style_color7 TYPE REF TO zcl_excel_style,
lo_style_credit TYPE REF TO zcl_excel_style,
lo_style_link TYPE REF TO zcl_excel_style,
- lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
+ lo_column TYPE REF TO zcl_excel_column,
lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
@@ -712,8 +712,8 @@ START-OF-SELECTION.
ip_style = ls_mapper ).
lv_col = lv_col + 1.
- lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = lv_col_str ).
- lo_column_dimension->set_width( ip_width = 2 ).
+ lo_column = lo_worksheet->get_column( ip_column = lv_col_str ).
+ lo_column->set_width( ip_width = 2 ).
ENDLOOP.
lo_worksheet->set_show_gridlines( i_show_gridlines = abap_false ).
@@ -730,8 +730,8 @@ START-OF-SELECTION.
ip_style = lv_style_link_guid
ip_hyperlink = lo_hyperlink ).
- lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'AP' ).
- lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = 'AP' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_worksheet->set_merge( ip_row = 15 ip_column_start = 'AP' ip_row_to = 22 ip_column_end = 'AR' ).
lo_worksheet->set_merge( ip_row = 24 ip_column_start = 'AP' ip_row_to = 26 ip_column_end = 'AR' ).
diff --git a/src/zcl_excel_column.clas.abap b/src/zcl_excel_column.clas.abap
new file mode 100644
index 0000000..35c310b
--- /dev/null
+++ b/src/zcl_excel_column.clas.abap
@@ -0,0 +1,230 @@
+class ZCL_EXCEL_COLUMN definition
+ public
+ final
+ create public .
+
+*"* public components of class ZCL_EXCEL_COLUMN
+*"* do not include other source files here!!!
+public section.
+ type-pools ABAP .
+
+ methods CONSTRUCTOR
+ importing
+ !IP_INDEX type ZEXCEL_CELL_COLUMN_ALPHA
+ !IP_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET
+ !IP_EXCEL type ref to ZCL_EXCEL .
+ methods GET_AUTO_SIZE
+ returning
+ value(R_AUTO_SIZE) type ABAP_BOOL .
+ methods GET_COLLAPSED
+ returning
+ value(R_COLLAPSED) type ABAP_BOOL .
+ methods GET_COLUMN_INDEX
+ returning
+ value(R_COLUMN_INDEX) type INT4 .
+ methods GET_OUTLINE_LEVEL
+ returning
+ value(R_OUTLINE_LEVEL) type INT4 .
+ methods GET_VISIBLE
+ returning
+ value(R_VISIBLE) type ABAP_BOOL .
+ methods GET_WIDTH
+ returning
+ value(R_WIDTH) type FLOAT .
+ methods GET_XF_INDEX
+ returning
+ value(R_XF_INDEX) type INT4 .
+ methods SET_AUTO_SIZE
+ importing
+ !IP_AUTO_SIZE type ABAP_BOOL
+ returning
+ value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
+ methods SET_COLLAPSED
+ importing
+ !IP_COLLAPSED type ABAP_BOOL
+ returning
+ value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
+ methods SET_COLUMN_INDEX
+ importing
+ !IP_INDEX type ZEXCEL_CELL_COLUMN_ALPHA
+ returning
+ value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
+ methods SET_OUTLINE_LEVEL
+ importing
+ !IP_OUTLINE_LEVEL type INT4 .
+ methods SET_VISIBLE
+ importing
+ !IP_VISIBLE type ABAP_BOOL
+ returning
+ value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
+ methods SET_WIDTH
+ importing
+ !IP_WIDTH type SIMPLE
+ returning
+ value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN
+ raising
+ ZCX_EXCEL .
+ methods SET_XF_INDEX
+ importing
+ !IP_XF_INDEX type INT4
+ returning
+ value(IO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
+ methods SET_COLUMN_STYLE_BY_GUID
+ importing
+ !IP_STYLE_GUID type ZEXCEL_CELL_STYLE
+ raising
+ ZCX_EXCEL .
+ methods GET_COLUMN_STYLE_GUID
+ returning
+ value(EP_STYLE_GUID) type ZEXCEL_CELL_STYLE
+ raising
+ ZCX_EXCEL .
+*"* protected components of class ZCL_EXCEL_COLUMN
+*"* do not include other source files here!!!
+protected section.
+*"* private components of class ZCL_EXCEL_COLUMN
+*"* do not include other source files here!!!
+private section.
+
+ data COLUMN_INDEX type INT4 .
+ data WIDTH type FLOAT .
+ data AUTO_SIZE type ABAP_BOOL .
+ data VISIBLE type ABAP_BOOL .
+ data OUTLINE_LEVEL type INT4 .
+ data COLLAPSED type ABAP_BOOL .
+ data XF_INDEX type INT4 .
+ data STYLE_GUID type ZEXCEL_CELL_STYLE .
+ data EXCEL type ref to ZCL_EXCEL .
+ data WORKSHEET type ref to ZCL_EXCEL_WORKSHEET .
+ENDCLASS.
+
+
+
+CLASS ZCL_EXCEL_COLUMN IMPLEMENTATION.
+
+
+method CONSTRUCTOR.
+ me->column_index = zcl_excel_common=>convert_column2int( ip_index ).
+ me->width = -1.
+ me->auto_size = abap_false.
+ me->visible = abap_true.
+ me->outline_level = 0.
+ me->collapsed = abap_false.
+ me->excel = ip_excel. "ins issue #157 - Allow Style for columns
+ me->worksheet = ip_worksheet. "ins issue #157 - Allow Style for columns
+
+ " set default index to cellXf
+ me->xf_index = 0.
+
+ endmethod.
+
+
+method GET_AUTO_SIZE.
+ r_auto_size = me->auto_size.
+ endmethod.
+
+
+method GET_COLLAPSED.
+ r_Collapsed = me->Collapsed.
+ endmethod.
+
+
+method GET_COLUMN_INDEX.
+ r_column_index = me->column_index.
+ endmethod.
+
+
+method GET_COLUMN_STYLE_GUID.
+ IF me->style_guid IS NOT INITIAL.
+ ep_style_guid = me->style_guid.
+ ELSE.
+ ep_style_guid = me->worksheet->zif_excel_sheet_properties~get_style( ).
+ ENDIF.
+ endmethod.
+
+
+method GET_OUTLINE_LEVEL.
+ r_outline_level = me->outline_level.
+ endmethod.
+
+
+method GET_VISIBLE.
+ r_Visible = me->Visible.
+ endmethod.
+
+
+method GET_WIDTH.
+ r_WIDTH = me->WIDTH.
+ endmethod.
+
+
+method GET_XF_INDEX.
+ r_xf_index = me->xf_index.
+ endmethod.
+
+
+METHOD set_auto_size.
+ me->auto_size = ip_auto_size.
+ io_column = me.
+ENDMETHOD.
+
+
+METHOD set_collapsed.
+ me->collapsed = ip_collapsed.
+ io_column = me.
+ENDMETHOD.
+
+
+METHOD set_column_index.
+ me->column_index = zcl_excel_common=>convert_column2int( ip_index ).
+ io_column = me.
+ENDMETHOD.
+
+
+method SET_COLUMN_STYLE_BY_GUID.
+ DATA: stylemapping TYPE zexcel_s_stylemapping.
+
+ IF me->excel IS NOT BOUND.
+ RAISE EXCEPTION TYPE zcx_excel
+ EXPORTING
+ error = 'Internal error - reference to ZCL_EXCEL not bound'.
+ ENDIF.
+ TRY.
+ stylemapping = me->excel->get_style_to_guid( ip_style_guid ).
+ me->style_guid = stylemapping-guid.
+
+ CATCH zcx_excel .
+ EXIT. " leave as is in case of error
+ ENDTRY.
+
+ endmethod.
+
+
+method SET_OUTLINE_LEVEL.
+ me->outline_level = ip_outline_level.
+ endmethod.
+
+
+METHOD set_visible.
+ me->visible = ip_visible.
+ io_column = me.
+ENDMETHOD.
+
+
+METHOD set_width.
+ TRY.
+ me->width = ip_width.
+ io_column = me.
+ CATCH cx_sy_conversion_no_number.
+ RAISE EXCEPTION TYPE zcx_excel
+ EXPORTING
+ error = 'Unable to interpret width as number'.
+ ENDTRY.
+ENDMETHOD.
+
+
+METHOD set_xf_index.
+ me->xf_index = ip_xf_index.
+ io_column = me.
+ENDMETHOD.
+ENDCLASS.
diff --git a/src/zcl_excel_column.clas.xml b/src/zcl_excel_column.clas.xml
new file mode 100644
index 0000000..b92f1e7
--- /dev/null
+++ b/src/zcl_excel_column.clas.xml
@@ -0,0 +1,94 @@
+
+
+
+
+
+ ZCL_EXCEL_COLUMN
+ 1
+ E
+ Worksheet Column
+ 2
+ 1
+ X
+ X
+ X
+ X
+
+
+
+
+ ZCL_EXCEL_COLUMN
+ AUTO_SIZE
+ E
+ Auto size?
+
+
+ ZCL_EXCEL_COLUMN
+ COLLAPSED
+ E
+ Collapsed?
+
+
+ ZCL_EXCEL_COLUMN
+ COLUMN_INDEX
+ E
+ Column index
+
+
+ ZCL_EXCEL_COLUMN
+ EXCEL
+ E
+ Excel creator
+
+
+ ZCL_EXCEL_COLUMN
+ GET_COLUMN_STYLE_GUID
+ E
+ Get guid of column style
+
+
+ ZCL_EXCEL_COLUMN
+ OUTLINE_LEVEL
+ E
+ Outline level
+
+
+ ZCL_EXCEL_COLUMN
+ SET_COLUMN_STYLE_BY_GUID
+ E
+ Set column style by style guid
+
+
+ ZCL_EXCEL_COLUMN
+ STYLE_GUID
+ E
+ Style identifier
+
+
+ ZCL_EXCEL_COLUMN
+ VISIBLE
+ E
+ Visible?
+
+
+ ZCL_EXCEL_COLUMN
+ WIDTH
+ E
+ Column width
+
+
+ ZCL_EXCEL_COLUMN
+ WORKSHEET
+ E
+ Worksheet
+
+
+ ZCL_EXCEL_COLUMN
+ XF_INDEX
+ E
+ Index to cellXf
+
+
+
+
+
diff --git a/src/zcl_excel_columns.clas.abap b/src/zcl_excel_columns.clas.abap
new file mode 100644
index 0000000..ddbdae5
--- /dev/null
+++ b/src/zcl_excel_columns.clas.abap
@@ -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.
diff --git a/src/zcl_excel_columns.clas.xml b/src/zcl_excel_columns.clas.xml
new file mode 100644
index 0000000..21c109f
--- /dev/null
+++ b/src/zcl_excel_columns.clas.xml
@@ -0,0 +1,70 @@
+
+
+
+
+
+ ZCL_EXCEL_COLUMNS
+ 1
+ E
+ Ranges collection
+ 2
+ 1
+ X
+ X
+ X
+ X
+
+
+
+
+ ZCL_EXCEL_COLUMNS
+ ADD
+ E
+ Adds an Element to the Collection
+
+
+ ZCL_EXCEL_COLUMNS
+ CLEAR
+ E
+ Initializes the Collection
+
+
+ ZCL_EXCEL_COLUMNS
+ CONSTRUCTOR
+ E
+ CONSTRUCTOR
+
+
+ ZCL_EXCEL_COLUMNS
+ GET
+ E
+ Gets Element
+
+
+ ZCL_EXCEL_COLUMNS
+ GET_ITERATOR
+ E
+ Returns an iterator
+
+
+ ZCL_EXCEL_COLUMNS
+ IS_EMPTY
+ E
+ Checks whether elements are contained
+
+
+ ZCL_EXCEL_COLUMNS
+ REMOVE
+ E
+ Deletes an Element from the Collection
+
+
+ ZCL_EXCEL_COLUMNS
+ SIZE
+ E
+ Specifies number of contained elements
+
+
+
+
+
diff --git a/src/zcl_excel_converter.clas.abap b/src/zcl_excel_converter.clas.abap
index e178be0..e37aee7 100644
--- a/src/zcl_excel_converter.clas.abap
+++ b/src/zcl_excel_converter.clas.abap
@@ -351,67 +351,67 @@ method BIND_CELLS.
endmethod.
-method BIND_TABLE.
- data: lt_field_catalog type zexcel_t_fieldcatalog,
- ls_field_catalog type zexcel_s_fieldcatalog,
- ls_fcat type zexcel_s_converter_fcat,
- lo_col_dim type ref to zcl_excel_worksheet_columndime,
- lo_row_dim type ref to zcl_excel_worksheet_rowdimensi,
- l_col_int type zexcel_cell_column,
- l_col_alpha type zexcel_cell_column_alpha,
- ls_settings type zexcel_s_table_settings,
- l_line type i.
+METHOD bind_table.
+ DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
+ ls_field_catalog TYPE zexcel_s_fieldcatalog,
+ ls_fcat TYPE zexcel_s_converter_fcat,
+ lo_column TYPE REF TO zcl_excel_column,
+ lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi,
+ lv_col_int TYPE zexcel_cell_column,
+ lv_col_alpha TYPE zexcel_cell_column_alpha,
+ ls_settings TYPE zexcel_s_table_settings,
+ lv_line TYPE i.
- field-symbols: type any table.
+ FIELD-SYMBOLS: TYPE ANY TABLE.
- assign wo_data->* to .
+ ASSIGN wo_data->* TO .
ls_settings-table_style = i_style_table.
ls_settings-top_left_column = zcl_excel_common=>convert_column2alpha( ip_column = w_col_int ).
ls_settings-top_left_row = w_row_int.
ls_settings-show_row_stripes = ws_layout-is_stripped.
- describe table wt_fieldcatalog lines l_line.
- l_line = l_line + 1 + w_col_int.
- ls_settings-bottom_right_column = zcl_excel_common=>convert_column2alpha( ip_column = l_line ).
+ DESCRIBE TABLE wt_fieldcatalog LINES lv_line.
+ lv_line = lv_line + 1 + w_col_int.
+ ls_settings-bottom_right_column = zcl_excel_common=>convert_column2alpha( ip_column = lv_line ).
- describe table lines l_line.
- ls_settings-bottom_right_row = l_line + 1 + w_row_int.
- sort wt_fieldcatalog by position.
- loop at wt_fieldcatalog into ls_fcat.
- move-corresponding ls_fcat to ls_field_catalog.
+ DESCRIBE TABLE LINES lv_line.
+ ls_settings-bottom_right_row = lv_line + 1 + w_row_int.
+ SORT wt_fieldcatalog BY position.
+ LOOP AT wt_fieldcatalog INTO ls_fcat.
+ MOVE-CORRESPONDING ls_fcat TO ls_field_catalog.
ls_field_catalog-dynpfld = abap_true.
- insert ls_field_catalog into table lt_field_catalog.
- endloop.
+ INSERT ls_field_catalog INTO TABLE lt_field_catalog.
+ ENDLOOP.
wo_worksheet->bind_table(
- exporting
+ EXPORTING
ip_table =
it_field_catalog = lt_field_catalog
is_table_settings = ls_settings
- importing
+ IMPORTING
es_table_settings = ls_settings
).
- loop at wt_fieldcatalog into ls_fcat.
- l_col_int = w_col_int + ls_fcat-position - 1.
- l_col_alpha = zcl_excel_common=>convert_column2alpha( l_col_int ).
+ LOOP AT wt_fieldcatalog INTO ls_fcat.
+ lv_col_int = w_col_int + ls_fcat-position - 1.
+ lv_col_alpha = zcl_excel_common=>convert_column2alpha( lv_col_int ).
* Freeze panes
- if ls_fcat-fix_column = abap_true.
- add 1 to r_freeze_col.
- endif.
+ IF ls_fcat-fix_column = abap_true.
+ ADD 1 TO r_freeze_col.
+ ENDIF.
* Now let's check for optimized
- if ls_fcat-is_optimized = abap_true.
- lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
- lo_col_dim->set_auto_size( ip_auto_size = abap_true ) .
- endif.
+ IF ls_fcat-is_optimized = abap_true.
+ lo_column = wo_worksheet->get_column( ip_column = lv_col_alpha ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ) .
+ ENDIF.
* Now let's check for visible
- if ls_fcat-is_hidden = abap_true.
- lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
- lo_col_dim->set_visible( ip_visible = abap_false ) .
- endif.
- endloop.
+ IF ls_fcat-is_hidden = abap_true.
+ lo_column = wo_worksheet->get_column( ip_column = lv_col_alpha ).
+ lo_column->set_visible( ip_visible = abap_false ) .
+ ENDIF.
+ ENDLOOP.
- endmethod.
+ENDMETHOD.
method CLASS_CONSTRUCTOR.
@@ -1173,7 +1173,7 @@ method LOOP_NORMAL.
l_col_alpha_start TYPE zexcel_cell_column_alpha,
l_cell_value TYPE zexcel_cell_value,
l_s_color TYPE abap_bool,
- lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime,
+ lo_column TYPE REF TO zcl_excel_column,
lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi,
l_formula TYPE zexcel_cell_formula,
l_style TYPE zexcel_cell_style,
@@ -1255,13 +1255,13 @@ method LOOP_NORMAL.
ENDLOOP.
* Now let's check for optimized
IF -is_optimized = abap_true .
- lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
- lo_col_dim->set_auto_size( ip_auto_size = abap_true ) .
+ lo_column = wo_worksheet->get_column( ip_column = l_col_alpha ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ) .
ENDIF.
* Now let's check for visible
IF -is_hidden = abap_true.
- lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
- lo_col_dim->set_visible( ip_visible = abap_false ) .
+ lo_column = wo_worksheet->get_column( ip_column = l_col_alpha ).
+ lo_column->set_visible( ip_visible = abap_false ) .
ENDIF.
* Now let's check for total versus subtotal.
IF -totals_function IS NOT INITIAL.
@@ -1292,7 +1292,7 @@ method LOOP_SUBTOTAL.
l_col_alpha_start TYPE zexcel_cell_column_alpha,
l_cell_value TYPE zexcel_cell_value,
l_s_color TYPE abap_bool,
- lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime,
+ lo_column TYPE REF TO zcl_excel_column,
lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi,
l_formula TYPE zexcel_cell_formula,
l_style TYPE zexcel_cell_style,
@@ -1611,13 +1611,13 @@ method LOOP_SUBTOTAL.
ENDIF.
* Now let's check for optimized
IF -is_optimized = abap_true.
- lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
- lo_col_dim->set_auto_size( ip_auto_size = abap_true ) .
+ lo_column = wo_worksheet->get_column( ip_column = l_col_alpha ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ) .
ENDIF.
* Now let's check for visible
IF -is_hidden = abap_true.
- lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
- lo_col_dim->set_visible( ip_visible = abap_false ) .
+ lo_column = wo_worksheet->get_column( ip_column = l_col_alpha ).
+ lo_column->set_visible( ip_visible = abap_false ) .
ENDIF.
ENDLOOP.
diff --git a/src/zcl_excel_reader_2007.clas.abap b/src/zcl_excel_reader_2007.clas.abap
index da1134f..9b99d59 100644
--- a/src/zcl_excel_reader_2007.clas.abap
+++ b/src/zcl_excel_reader_2007.clas.abap
@@ -2255,7 +2255,7 @@ METHOD load_worksheet.
lo_ixml_column_elem TYPE REF TO if_ixml_element,
ls_column TYPE lty_column,
lv_column_alpha TYPE zexcel_cell_column_alpha,
- lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
+ lo_column TYPE REF TO zcl_excel_column,
lv_outline_level TYPE int4,
lo_ixml_tabcolor TYPE REF TO if_ixml_element,
@@ -2557,27 +2557,27 @@ METHOD load_worksheet.
WHILE lv_index <= ls_column-max AND lv_index <= lv_max_col.
lv_column_alpha = zcl_excel_common=>convert_column2alpha( lv_index ).
- lo_column_dimension = io_worksheet->get_column_dimension( lv_column_alpha ).
+ lo_column = io_worksheet->get_column( lv_column_alpha ).
IF ls_column-customwidth = lc_xml_attr_true
OR ls_column-customwidth = lc_xml_attr_true_int
OR ls_column-width IS NOT INITIAL. "+#234
- lo_column_dimension->set_width( ls_column-width ).
+ lo_column->set_width( ls_column-width ).
ENDIF.
IF ls_column-bestfit = lc_xml_attr_true
OR ls_column-bestfit = lc_xml_attr_true_int.
- lo_column_dimension->set_auto_size( abap_true ).
+ lo_column->set_auto_size( abap_true ).
ENDIF.
IF ls_column-collapsed = lc_xml_attr_true
OR ls_column-collapsed = lc_xml_attr_true_int.
- lo_column_dimension->set_collapsed( abap_true ).
+ lo_column->set_collapsed( abap_true ).
ENDIF.
IF ls_column-hidden = lc_xml_attr_true
OR ls_column-hidden = lc_xml_attr_true_int.
- lo_column_dimension->set_visible( abap_false ).
+ lo_column->set_visible( abap_false ).
ENDIF.
IF ls_column-outlinelevel > ''.
@@ -2585,7 +2585,7 @@ METHOD load_worksheet.
CONDENSE ls_column-outlinelevel.
lv_outline_level = ls_column-outlinelevel.
IF lv_outline_level > 0.
- lo_column_dimension->set_outline_level( lv_outline_level ).
+ lo_column->set_outline_level( lv_outline_level ).
ENDIF.
ENDIF.
@@ -2594,7 +2594,7 @@ METHOD load_worksheet.
READ TABLE styles INTO lo_excel_style INDEX sy-index.
DATA: dummy_zexcel_cell_style TYPE zexcel_cell_style.
dummy_zexcel_cell_style = lo_excel_style->get_guid( ).
- lo_column_dimension->set_column_style_by_guid( dummy_zexcel_cell_style ).
+ lo_column->set_column_style_by_guid( dummy_zexcel_cell_style ).
ENDIF.
ADD 1 TO lv_index.
diff --git a/src/zcl_excel_worksheet.clas.abap b/src/zcl_excel_worksheet.clas.abap
index 9b97c76..512f08c 100644
--- a/src/zcl_excel_worksheet.clas.abap
+++ b/src/zcl_excel_worksheet.clas.abap
@@ -25,17 +25,22 @@ public section.
constants C_BREAK_NONE type ZEXCEL_BREAK value 0. "#EC NOTEXT
constants C_BREAK_ROW type ZEXCEL_BREAK value 1. "#EC NOTEXT
data EXCEL type ref to ZCL_EXCEL read-only .
- data PRINT_GRIDLINES type ZEXCEL_PRINT_GRIDLINES read-only value ABAP_FALSE. "#EC NOTEXT . . . . . . . . . . . . . . . . " .
+ data PRINT_GRIDLINES type ZEXCEL_PRINT_GRIDLINES read-only value ABAP_FALSE. "#EC NOTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " .
data SHEET_CONTENT type ZEXCEL_T_CELL_DATA .
data SHEET_SETUP type ref to ZCL_EXCEL_SHEET_SETUP .
- data SHOW_GRIDLINES type ZEXCEL_SHOW_GRIDLINES read-only value ABAP_TRUE. "#EC NOTEXT . . . . . . . . . . . . . . . . " .
- data SHOW_ROWCOLHEADERS type ZEXCEL_SHOW_GRIDLINES read-only value ABAP_TRUE. "#EC NOTEXT . . . . . . . . . . . . . . . . " .
+ data SHOW_GRIDLINES type ZEXCEL_SHOW_GRIDLINES read-only value ABAP_TRUE. "#EC NOTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " .
+ data SHOW_ROWCOLHEADERS type ZEXCEL_SHOW_GRIDLINES read-only value ABAP_TRUE. "#EC NOTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . . " .
data STYLES type ZEXCEL_T_SHEET_STYLE .
data TABCOLOR type ZEXCEL_S_TABCOLOR read-only .
methods ADD_DRAWING
importing
!IP_DRAWING type ref to ZCL_EXCEL_DRAWING .
+ methods ADD_NEW_COLUMN
+ importing
+ !IP_COLUMN type SIMPLE
+ returning
+ value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods ADD_NEW_CONDITIONAL_STYLE
returning
value(EO_CONDITIONAL_STYLE) type ref to ZCL_EXCEL_STYLE_CONDITIONAL .
@@ -244,16 +249,17 @@ public section.
!EP_FORMULA type ZEXCEL_CELL_FORMULA
raising
ZCX_EXCEL .
- methods GET_COLUMN_DIMENSION
+ methods GET_COLUMN
importing
!IP_COLUMN type SIMPLE
returning
- value(R_COLUMN_DIMENSION) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME
- raising
- ZCX_EXCEL .
- methods GET_COLUMN_DIMENSIONS
+ value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
+ methods GET_COLUMNS
returning
- value(R_COLUMN_DIMENSION) type ZEXCEL_T_WORKSHEET_COLUMNDIME .
+ value(EO_COLUMNS) type ref to ZCL_EXCEL_COLUMNS .
+ methods GET_COLUMNS_ITERATOR
+ returning
+ value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
methods GET_COND_STYLES_ITERATOR
returning
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
@@ -263,9 +269,9 @@ public section.
methods GET_DATA_VALIDATIONS_SIZE
returning
value(EP_SIZE) type I .
- methods GET_DEFAULT_COLUMN_DIMENSION
+ methods GET_DEFAULT_COLUMN
returning
- value(R_COLUMN_DIMENSION) type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME .
+ value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
methods GET_DEFAULT_EXCEL_DATE_FORMAT
returning
value(EP_DEFAULT_EXCEL_DATE_FORMAT) type ZEXCEL_NUMBER_FORMAT .
@@ -485,15 +491,14 @@ private section.
types:
mty_ts_merge TYPE SORTED TABLE OF mty_merge WITH UNIQUE KEY table_line .
- class-data MTH_FONT_CACHE type MTY_TH_FONT_CACHE .
*"* private components of class ZCL_EXCEL_WORKSHEET
*"* do not include other source files here!!!
data ACTIVE_CELL type ZEXCEL_S_CELL_DATA .
data CHARTS type ref to ZCL_EXCEL_DRAWINGS .
- data COLUMN_DIMENSIONS type ZEXCEL_T_WORKSHEET_COLUMNDIME .
+ data COLUMNS type ref to ZCL_EXCEL_COLUMNS .
data CONDITIONAL_STYLES type ref to ZCL_EXCEL_STYLES_CONDITIONAL .
data DATA_VALIDATIONS type ref to ZCL_EXCEL_DATA_VALIDATIONS .
- data DEFAULT_COLUMN_DIMENSION type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME .
+ data COLUMN_DEFAULT type ref to ZCL_EXCEL_COLUMN .
data DEFAULT_EXCEL_DATE_FORMAT type ZEXCEL_NUMBER_FORMAT .
data DEFAULT_EXCEL_TIME_FORMAT type ZEXCEL_NUMBER_FORMAT .
data DEFAULT_ROW_DIMENSION type ref to ZCL_EXCEL_WORKSHEET_ROWDIMENSI .
@@ -503,9 +508,10 @@ private section.
data GUID type UUID .
data HYPERLINKS type ref to CL_OBJECT_COLLECTION .
data LOWER_CELL type ZEXCEL_S_CELL_DATA .
+ data MO_PAGEBREAKS type ref to ZCL_EXCEL_WORKSHEET_PAGEBREAKS .
+ class-data MTH_FONT_CACHE type MTY_TH_FONT_CACHE .
data MT_MERGED_CELLS type MTY_TS_MERGE .
data MT_ROW_OUTLINES type MTY_TS_OUTLINES_ROW .
- data MO_PAGEBREAKS type ref to ZCL_EXCEL_WORKSHEET_PAGEBREAKS .
data PRINT_TITLE_COL_FROM type ZEXCEL_CELL_COLUMN_ALPHA .
data PRINT_TITLE_COL_TO type ZEXCEL_CELL_COLUMN_ALPHA .
data PRINT_TITLE_ROW_FROM type ZEXCEL_CELL_ROW .
@@ -513,7 +519,7 @@ private section.
data RANGES type ref to ZCL_EXCEL_RANGES .
data ROW_DIMENSIONS type MTY_TS_ROW_DIMENSION .
data TABLES type ref to CL_OBJECT_COLLECTION .
- data TITLE type ZEXCEL_SHEET_TITLE value 'Worksheet'. "#EC NOTEXT . . . . . . . . . . . . " .
+ data TITLE type ZEXCEL_SHEET_TITLE value 'Worksheet'. "#EC NOTEXT . . . . . . . . . . . . . . . . . . . . . " .
data UPPER_CELL type ZEXCEL_S_CELL_DATA .
methods CALCULATE_CELL_WIDTH
@@ -554,11 +560,24 @@ method ADD_DRAWING.
endmethod.
-method ADD_NEW_CONDITIONAL_STYLE.
+METHOD add_new_column.
+ DATA: lv_column_alpha TYPE zexcel_cell_column_alpha.
+ lv_column_alpha = zcl_excel_common=>convert_column2alpha( ip_column ).
+
+ CREATE OBJECT eo_column
+ EXPORTING
+ ip_index = lv_column_alpha
+ ip_excel = me->excel
+ ip_worksheet = me.
+ columns->add( eo_column ).
+ENDMETHOD.
+
+
+METHOD add_new_conditional_style.
CREATE OBJECT eo_conditional_style.
conditional_styles->add( eo_conditional_style ).
- endmethod.
+ENDMETHOD.
method ADD_NEW_DATA_VALIDATION.
@@ -568,11 +587,11 @@ method ADD_NEW_DATA_VALIDATION.
endmethod.
-method ADD_NEW_RANGE.
+METHOD add_new_range.
* Create default blank range
CREATE OBJECT eo_range.
ranges->add( eo_range ).
- endmethod.
+ENDMETHOD.
method BIND_ALV.
@@ -3238,7 +3257,7 @@ METHOD calculate_cell_width.
ENDMETHOD.
-method CALCULATE_COLUMN_WIDTHS.
+METHOD calculate_column_widths.
TYPES:
BEGIN OF t_auto_size,
col_index TYPE int4,
@@ -3246,79 +3265,54 @@ method CALCULATE_COLUMN_WIDTHS.
END OF t_auto_size.
TYPES: tt_auto_size TYPE TABLE OF t_auto_size.
- DATA: column_dimensions TYPE zexcel_t_worksheet_columndime.
- DATA: column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
+ DATA: lo_column_iterator TYPE REF TO cl_object_collection_iterator,
+ lo_column TYPE REF TO zcl_excel_column.
DATA: auto_size TYPE flag.
DATA: auto_sizes TYPE tt_auto_size.
-* DATA: col_alpha TYPE zexcel_cell_column_alpha." issue #155 - less restrictive typing for ip_column
DATA: cell_value TYPE zexcel_cell_value.
DATA: cell_style TYPE REF TO zcl_excel_style.
DATA: count TYPE int4.
DATA: highest_row TYPE int4.
DATA: width TYPE float.
- FIELD-SYMBOLS: LIKE LINE OF column_dimensions.
FIELD-SYMBOLS: LIKE LINE OF auto_sizes.
- column_dimensions[] = me->get_column_dimensions( ).
- LOOP AT column_dimensions ASSIGNING .
- auto_size = -column_dimension->get_auto_size( ).
+ lo_column_iterator = me->get_columns_iterator( ).
+ WHILE lo_column_iterator->has_next( ) = abap_true.
+ lo_column ?= lo_column_iterator->get_next( ).
+ auto_size = lo_column->get_auto_size( ).
IF auto_size = abap_true.
APPEND INITIAL LINE TO auto_sizes ASSIGNING .
- -col_index = -column_dimension->get_column_index( ).
+ -col_index = lo_column->get_column_index( ).
-width = -1.
ENDIF.
- ENDLOOP.
+ ENDWHILE.
" There is only something to do if there are some auto-size columns
IF NOT auto_sizes IS INITIAL.
highest_row = me->get_highest_row( ).
LOOP AT auto_sizes ASSIGNING .
-* col_alpha = zcl_excel_common=>convert_column2alpha( -col_index )." issue #155 - less restrictive typing for ip_column
count = 1.
WHILE count <= highest_row.
* Do not check merged cells
IF is_cell_merged(
ip_column = -col_index
ip_row = count ) = abap_false.
-* Start of change # issue 139 - Dateretention of cellstyles
-* IF cell_style IS BOUND.
-* CREATE OBJECT cell_style.
-* ENDIF.
-* me->get_cell(
-* EXPORTING
-* ip_column = col_alpha " Cell Column
-* ip_row = count " Cell Row
-* IMPORTING
-* ep_value = cell_value " Cell Value
-* ep_style = cell_style " Request Cell Style as well
-* ).
-* " For an easy start we just take the number of characters as the width
-* width = strlen( cell_value ).
-* " Addition to solve issue #120, contribution by Stefan Schmöcker
-* " Calculate width using Font Size and Font Type
-* IF cell_style IS BOUND
-* AND cell_style->font IS BOUND.
-* width = cell_style->font->calculate_text_width( cell_value ).
-* ENDIF.
-* width = calculate_cell_width( ip_column = col_alpha " issue #155 - less restrictive typing for ip_column
- width = calculate_cell_width( ip_column = -col_index " issue #155 - less restrictive typing for ip_column
- ip_row = count ).
-* End of change # issue 139 - Dateretention of cellstyles
- IF width > -width.
- -width = width.
- ENDIF.
+ width = calculate_cell_width( ip_column = -col_index " issue #155 - less restrictive typing for ip_column
+ ip_row = count ).
+ IF width > -width.
+ -width = width.
+ ENDIF.
ENDIF.
count = count + 1.
ENDWHILE.
-* column_dimension = me->get_column_dimension( col_alpha ). " issue #155 - less restrictive typing for ip_column
- column_dimension = me->get_column_dimension( -col_index ). " issue #155 - less restrictive typing for ip_column
- column_dimension->set_width( -width ).
+ lo_column = me->get_column( -col_index ). " issue #155 - less restrictive typing for ip_column
+ lo_column->set_width( -width ).
ENDLOOP.
ENDIF.
- endmethod.
+ENDMETHOD.
METHOD change_cell_style.
@@ -3655,6 +3649,7 @@ METHOD constructor.
CREATE OBJECT conditional_styles.
CREATE OBJECT data_validations.
CREATE OBJECT tables.
+ CREATE OBJECT columns.
CREATE OBJECT ranges. " issue #163
CREATE OBJECT mo_pagebreaks.
CREATE OBJECT drawings
@@ -3795,7 +3790,7 @@ method GET_ACTIVE_CELL.
endmethod.
-method GET_CELL.
+METHOD get_cell.
DATA: lv_column TYPE zexcel_cell_column,
ls_sheet_content TYPE zexcel_s_cell_data.
@@ -3825,36 +3820,43 @@ method GET_CELL.
ENDIF.
ENDWHILE.
ENDIF.
- endmethod.
+ENDMETHOD.
-method GET_COLUMN_DIMENSION.
- FIELD-SYMBOLS: LIKE LINE OF column_dimensions.
- DATA: lv_column_alpha TYPE zexcel_cell_column_alpha. " issue #155 - less restrictive typing for ip_column
+METHOD get_column.
- lv_column_alpha = zcl_excel_common=>convert_column2alpha( ip_column )." issue #155 - less restrictive typing for ip_column
- READ TABLE me->column_dimensions ASSIGNING
- WITH KEY column = lv_column_alpha. " issue #155 - less restrictive typing for ip_column
+ DATA: lo_column_iterator TYPE REF TO cl_object_collection_iterator,
+ lo_column TYPE REF TO zcl_excel_column,
+ lv_column TYPE zexcel_cell_column.
- IF NOT IS ASSIGNED.
- CREATE OBJECT r_column_dimension
- EXPORTING
- ip_index = lv_column_alpha " issue #155 - less restrictive typing for ip_column
- ip_excel = me->excel " issue #157 - Allow style for columns
- ip_worksheet = me. " issue #157 - Allow style for columns
- APPEND INITIAL LINE TO me->column_dimensions ASSIGNING .
- -column = lv_column_alpha. " issue #155 - less restrictive typing for ip_column
- -column_dimension = r_column_dimension.
- ELSE.
- r_column_dimension = -column_dimension.
+ lv_column = zcl_excel_common=>convert_column2int( ip_column ).
+
+ lo_column_iterator = me->get_columns_iterator( ).
+ WHILE lo_column_iterator->has_next( ) = abap_true.
+ lo_column ?= lo_column_iterator->get_next( ).
+ IF lo_column->get_column_index( ) = lv_column.
+ eo_column = lo_column.
+ EXIT.
+ ENDIF.
+ ENDWHILE.
+
+ IF eo_column IS NOT BOUND.
+ eo_column = me->add_new_column( ip_column ).
ENDIF.
- endmethod.
+ENDMETHOD.
-method GET_COLUMN_DIMENSIONS.
- r_column_dimension[] = me->column_dimensions[].
- endmethod.
+METHOD get_columns.
+ eo_columns = me->columns.
+ENDMETHOD.
+
+
+METHOD get_columns_iterator.
+
+ eo_iterator = me->columns->get_iterator( ).
+
+ENDMETHOD.
method GET_COND_STYLES_ITERATOR.
@@ -3874,17 +3876,17 @@ method GET_DATA_VALIDATIONS_SIZE.
endmethod.
-method GET_DEFAULT_COLUMN_DIMENSION.
- IF me->default_column_dimension IS NOT BOUND.
- CREATE OBJECT me->default_column_dimension
+METHOD GET_DEFAULT_COLUMN.
+ IF me->column_default IS NOT BOUND.
+ CREATE OBJECT me->column_default
EXPORTING
- ip_index = 'A' " ????
- ip_worksheet = me
- ip_excel = me->excel.
+ ip_index = 'A' " ????
+ ip_worksheet = me
+ ip_excel = me->excel.
ENDIF.
- r_column_dimension = me->default_column_dimension.
- endmethod.
+ eo_column = me->column_default.
+ENDMETHOD.
method GET_DEFAULT_EXCEL_DATE_FORMAT.
@@ -4589,7 +4591,7 @@ method SET_CELL_FORMULA.
endmethod.
-method SET_CELL_STYLE.
+METHOD set_cell_style.
DATA: lv_column TYPE zexcel_cell_column,
ls_sheet_content TYPE zexcel_s_cell_data,
@@ -4612,14 +4614,14 @@ method SET_CELL_STYLE.
set_cell( ip_column = ip_column ip_row = ip_row ip_value = '' ip_style = ip_style ).
ENDIF.
- endmethod.
+ENDMETHOD.
method SET_COLUMN_WIDTH.
- DATA: column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
+ DATA: lo_column TYPE REF TO zcl_excel_column.
DATA: width TYPE float.
- column_dimension = me->get_column_dimension( ip_column ).
+ lo_column = me->get_column( ip_column ).
* if a fix size is supplied use this
IF ip_width_fix IS SUPPLIED.
@@ -4630,7 +4632,7 @@ method SET_COLUMN_WIDTH.
EXPORTING
error = 'Please supply a positive number as column-width'.
ENDIF.
- column_dimension->set_width( width ).
+ lo_column->set_width( width ).
EXIT.
CATCH cx_sy_conversion_no_number.
* Strange stuff passed --> raise error
@@ -4641,7 +4643,7 @@ method SET_COLUMN_WIDTH.
ENDIF.
* If we get down to here, we have to use whatever is found in autosize.
- column_dimension->set_auto_size( ip_width_autosize ).
+ lo_column->set_auto_size( ip_width_autosize ).
endmethod.
diff --git a/src/zcl_excel_worksheet.clas.xml b/src/zcl_excel_worksheet.clas.xml
index d2a7734..9ca4636 100644
--- a/src/zcl_excel_worksheet.clas.xml
+++ b/src/zcl_excel_worksheet.clas.xml
@@ -88,6 +88,12 @@
I
Add drawing to the sheet
+
+ ZCL_EXCEL_WORKSHEET
+ ADD_NEW_COLUMN
+ E
+ Create a new column
+
ZCL_EXCEL_WORKSHEET
ADD_NEW_CONDITIONAL_STYLE
@@ -210,15 +216,15 @@
ZCL_EXCEL_WORKSHEET
- COLUMN_DIMENSIONS
+ COLUMNS
E
- Collection of column dimensions
+ Ranges collection
ZCL_EXCEL_WORKSHEET
- COLUMN_DIMENSIONS
- I
- Collection of column dimensions
+ COLUMN_DEFAULT
+ E
+ Worksheet ColumnDimension
ZCL_EXCEL_WORKSHEET
@@ -292,18 +298,6 @@
I
Data validations collection
-
- ZCL_EXCEL_WORKSHEET
- DEFAULT_COLUMN_DIMENSION
- E
- Worksheet ColumnDimension
-
-
- ZCL_EXCEL_WORKSHEET
- DEFAULT_COLUMN_DIMENSION
- I
- Worksheet ColumnDimension
-
ZCL_EXCEL_WORKSHEET
DEFAULT_EXCEL_DATE_FORMAT
@@ -444,27 +438,21 @@
ZCL_EXCEL_WORKSHEET
- GET_COLUMN_DIMENSION
+ GET_COLUMN
E
- Get column dimension at a specific column
+ Get column object at a specific column
ZCL_EXCEL_WORKSHEET
- GET_COLUMN_DIMENSION
- I
- Get column dimension at a specific column
-
-
- ZCL_EXCEL_WORKSHEET
- GET_COLUMN_DIMENSIONS
+ GET_COLUMNS
E
- Get column dimensions
+ Get columns
ZCL_EXCEL_WORKSHEET
- GET_COLUMN_DIMENSIONS
- I
- Get column dimensions
+ GET_COLUMNS_ITERATOR
+ E
+ Get columns iterator
ZCL_EXCEL_WORKSHEET
@@ -504,15 +492,9 @@
ZCL_EXCEL_WORKSHEET
- GET_DEFAULT_COLUMN_DIMENSION
+ GET_DEFAULT_COLUMN
E
- Get column dimension at a specific column
-
-
- ZCL_EXCEL_WORKSHEET
- GET_DEFAULT_COLUMN_DIMENSION
- I
- Get column dimension at a specific column
+ Get column at a specific column
ZCL_EXCEL_WORKSHEET
@@ -542,7 +524,7 @@
ZCL_EXCEL_WORKSHEET
GET_DEFAULT_ROW_DIMENSION
E
- Get column dimension at a specific column
+ Get column at a specific column
ZCL_EXCEL_WORKSHEET
diff --git a/src/zcl_excel_writer_2007.clas.abap b/src/zcl_excel_writer_2007.clas.abap
index 41815c0..b8ca8dc 100644
--- a/src/zcl_excel_writer_2007.clas.abap
+++ b/src/zcl_excel_writer_2007.clas.abap
@@ -36,7 +36,6 @@ protected section.
importing
!IO_DOCUMENT type ref to IF_IXML_DOCUMENT
!IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET
- !IT_COLUMN_DIMENSIONS type ZEXCEL_T_WORKSHEET_COLUMNDIME
returning
value(RV_IXML_SHEET_DATA_ROOT) type ref to IF_IXML_ELEMENT .
methods ADD_FURTHER_DATA_TO_ZIP
@@ -2948,11 +2947,6 @@ METHOD create_xl_sheet.
lc_xml_node_sheetformatpr TYPE string VALUE 'sheetFormatPr',
lc_xml_node_cols TYPE string VALUE 'cols',
lc_xml_node_col TYPE string VALUE 'col',
-* lc_xml_node_sheetdata TYPE string VALUE 'sheetData',
-* lc_xml_node_row TYPE string VALUE 'row',
-* lc_xml_node_c TYPE string VALUE 'c',
-* lc_xml_node_v TYPE string VALUE 'v',
-* lc_xml_node_f TYPE string VALUE 'f',
lc_xml_node_sheetprotection TYPE string VALUE 'sheetProtection',
lc_xml_node_pagemargins TYPE string VALUE 'pageMargins',
lc_xml_node_pagesetup TYPE string VALUE 'pageSetup',
@@ -3013,10 +3007,6 @@ METHOD create_xl_sheet.
lc_xml_attr_outlinelevelrow TYPE string VALUE 'x14ac:outlineLevelRow',
lc_xml_attr_outlinelevelcol TYPE string VALUE 'x14ac:outlineLevelCol',
lc_xml_attr_outlinelevel TYPE string VALUE 'outlineLevel',
-* lc_xml_attr_r TYPE string VALUE 'r',
-* lc_xml_attr_s TYPE string VALUE 's',
-* lc_xml_attr_spans TYPE string VALUE 'spans',
-* lc_xml_attr_t TYPE string VALUE 't',
lc_xml_attr_password TYPE string VALUE 'password',
lc_xml_attr_sheet TYPE string VALUE 'sheet',
lc_xml_attr_objects TYPE string VALUE 'objects',
@@ -3104,7 +3094,7 @@ METHOD create_xl_sheet.
lo_table TYPE REF TO zcl_excel_table,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi,
lo_row_dim_empty TYPE REF TO zcl_excel_worksheet_rowdimensi,
- default_col_dimension TYPE REF TO zcl_excel_worksheet_columndime,
+ lo_column_default TYPE REF TO zcl_excel_column,
default_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
DATA: lv_value TYPE string,
@@ -3132,7 +3122,8 @@ METHOD create_xl_sheet.
lv_freeze_cell_row TYPE zexcel_cell_row,
lv_freeze_cell_column TYPE zexcel_cell_column,
lv_freeze_cell_column_alpha TYPE zexcel_cell_column_alpha,
- column_dimensions TYPE zexcel_t_worksheet_columndime,
+ lo_column_iterator TYPE REF TO cl_object_collection_iterator,
+ lo_column TYPE REF TO zcl_excel_column,
row_dimensions TYPE zexcel_t_worksheet_rowdimensio,
ls_style_cond_mapping TYPE zexcel_s_styles_cond_mapping,
lv_relation_id TYPE i VALUE 0,
@@ -3150,7 +3141,6 @@ METHOD create_xl_sheet.
write_current_row TYPE boolean,
lt_values TYPE zexcel_t_autofilter_values,
ls_values TYPE zexcel_s_autofilter_values,
-* lv_guid TYPE uuid,
lo_autofilters TYPE REF TO zcl_excel_autofilters,
lo_autofilter TYPE REF TO zcl_excel_autofilter,
l_autofilter_hidden TYPE flag,
@@ -3162,7 +3152,6 @@ METHOD create_xl_sheet.
FIELD-SYMBOLS: TYPE zexcel_s_cell_data,
LIKE LINE OF lt_range_merge,
- TYPE zexcel_s_worksheet_columndime,
TYPE zexcel_s_worksheet_rowdimensio,
LIKE LINE OF lts_row_outlines.
@@ -3389,11 +3378,11 @@ METHOD create_xl_sheet.
lo_element_root->append_child( new_child = lo_element ). " sheetViews node
- column_dimensions[] = io_worksheet->get_column_dimensions( ).
+ lo_column_iterator = io_worksheet->get_columns_iterator( ).
" Calculate col
- IF NOT column_dimensions IS INITIAL.
+ IF NOT lo_column_iterator IS BOUND.
io_worksheet->calculate_column_widths( ).
- column_dimensions[] = io_worksheet->get_column_dimensions( ).
+ lo_column_iterator = io_worksheet->get_columns_iterator( ).
ENDIF.
row_dimensions[] = io_worksheet->get_row_dimensions( ).
" sheetFormatPr node
@@ -3417,61 +3406,48 @@ METHOD create_xl_sheet.
lo_element->set_attribute_ns( name = lc_xml_attr_defaultrowheight
value = lv_value ).
" defaultColWidth
- default_col_dimension = io_worksheet->get_default_column_dimension( ).
- IF default_col_dimension IS BOUND.
- IF default_col_dimension->get_width( ) >= 0.
- lv_value = default_col_dimension->get_width( ).
+ lo_column_default = io_worksheet->get_default_column( ).
+ IF lo_column_default IS BOUND.
+ IF lo_column_default->get_width( ) >= 0.
+ lv_value = lo_column_default->get_width( ).
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element->set_attribute_ns( name = lc_xml_attr_defaultcolwidth
value = lv_value ).
ENDIF.
ENDIF.
- " outlineLevelRow
-* Excel is recalculating the outlinelevel on startup from the outline levels found in the rows
-* If we place anything incorrect here it gets corrected, if don't place anything it gets added
-* So no need to calculate the outlinelevel here ( at least for rows - probably for columns as well but I haven't tested yet
-* LOOP AT row_dimensions ASSIGNING .
-* IF -row_dimension->get_outline_level( ) > outline_level_row.
-* outline_level_row = -row_dimension->get_outline_level( ).
-* ENDIF.
-* ENDLOOP.
-* lv_value = outline_level_row.
-* SHIFT lv_value RIGHT DELETING TRAILING space.
-* SHIFT lv_value LEFT DELETING LEADING space.
-* lo_element->set_attribute_ns( name = lc_xml_attr_outlinelevelrow
-* value = lv_value ).
+
" outlineLevelCol
- LOOP AT column_dimensions ASSIGNING .
- IF -column_dimension->get_outline_level( ) > outline_level_col.
- outline_level_col = -column_dimension->get_outline_level( ).
+ WHILE lo_column_iterator->has_next( ) = abap_true.
+ lo_column ?= lo_column_iterator->get_next( ).
+ IF lo_column->get_outline_level( ) > outline_level_col.
+ outline_level_col = lo_column->get_outline_level( ).
ENDIF.
- ENDLOOP.
+ ENDWHILE.
+
lv_value = outline_level_col.
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element->set_attribute_ns( name = lc_xml_attr_outlinelevelcol
value = lv_value ).
-* lv_value = 0.
-* SHIFT lv_value RIGHT DELETING TRAILING space.
-* SHIFT lv_value LEFT DELETING LEADING space.
-* lo_element->set_attribute_ns( name = lc_xml_attr_dydescent
-* value = lv_value ).
lo_element_root->append_child( new_child = lo_element ). " sheetFormatPr node
- IF io_worksheet->zif_excel_sheet_properties~get_style( ) IS NOT INITIAL OR NOT column_dimensions IS INITIAL.
+* Reset column iterator
+ lo_column_iterator = io_worksheet->get_columns_iterator( ).
+ IF io_worksheet->zif_excel_sheet_properties~get_style( ) IS NOT INITIAL OR lo_column_iterator->has_next( ) = abap_true.
" cols node
lo_element = lo_document->create_simple_element( name = lc_xml_node_cols
parent = lo_document ).
" This code have to be enhanced in order to manage also column style properties
" Now it is an out/out
- IF NOT column_dimensions IS INITIAL.
- LOOP AT column_dimensions ASSIGNING .
+ IF lo_column_iterator->has_next( ) = abap_true.
+ WHILE lo_column_iterator->has_next( ) = abap_true.
+ lo_column ?= lo_column_iterator->get_next( ).
" col node
lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_col
parent = lo_document ).
- lv_value = -column_dimension->get_column_index( ).
+ lv_value = lo_column->get_column_index( ).
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
lo_element_2->set_attribute_ns( name = lc_xml_attr_min
@@ -3479,28 +3455,27 @@ METHOD create_xl_sheet.
lo_element_2->set_attribute_ns( name = lc_xml_attr_max
value = lv_value ).
" Width
- IF -column_dimension->get_width( ) < 0.
+ IF lo_column->get_width( ) < 0.
lo_element_2->set_attribute_ns( name = lc_xml_attr_width
value = lc_xml_attr_defaultwidth ).
ELSE.
- lv_value = -column_dimension->get_width( ).
+ lv_value = lo_column->get_width( ).
lo_element_2->set_attribute_ns( name = lc_xml_attr_width
value = lv_value ).
ENDIF.
" Column visibility
- IF -column_dimension->get_visible( ) = abap_false.
+ IF lo_column->get_visible( ) = abap_false.
lo_element_2->set_attribute_ns( name = lc_xml_attr_hidden
value = lc_xml_attr_true ).
ENDIF.
" Auto size?
- IF -column_dimension->get_auto_size( ) = abap_true.
+ IF lo_column->get_auto_size( ) = abap_true.
lo_element_2->set_attribute_ns( name = lc_xml_attr_bestfit
value = lc_xml_attr_true ).
ENDIF.
" Custom width?
- IF default_col_dimension IS BOUND.
- IF -column_dimension->get_width( )
- <> default_col_dimension->get_width( ).
+ IF lo_column_default IS BOUND.
+ IF lo_column->get_width( ) <> lo_column_default->get_width( ).
lo_element_2->set_attribute_ns( name = lc_xml_attr_customwidth
value = lc_xml_attr_true ).
@@ -3510,13 +3485,13 @@ METHOD create_xl_sheet.
value = lc_xml_attr_true ).
ENDIF.
" Collapsed
- IF -column_dimension->get_collapsed( ) = abap_true.
+ IF lo_column->get_collapsed( ) = abap_true.
lo_element_2->set_attribute_ns( name = lc_xml_attr_collapsed
value = lc_xml_attr_true ).
ENDIF.
" outlineLevel
- IF -column_dimension->get_outline_level( ) > 0.
- lv_value = -column_dimension->get_outline_level( ).
+ IF lo_column->get_outline_level( ) > 0.
+ lv_value = lo_column->get_outline_level( ).
SHIFT lv_value RIGHT DELETING TRAILING space.
SHIFT lv_value LEFT DELETING LEADING space.
@@ -3524,14 +3499,9 @@ METHOD create_xl_sheet.
value = lv_value ).
ENDIF.
" Style
-* lv_value = -column_dimension->get_xf_index( ). "del issue #157 - set column style
- lv_style_guid = -column_dimension->get_column_style_guid( ). "ins issue #157 - set column style
-* lv_value = me->excel->get_style_index_in_styles( lv_style_guid ). "del issue #237
+ lv_style_guid = lo_column->get_column_style_guid( ). "ins issue #157 - set column style
CLEAR ls_style_mapping.
READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = lv_style_guid.
-* lv_style_index = ls_style_mapping-style. "del issue #295
-* IF lv_style_index > 0. "ins issue #237 - del issue #295
-* lv_value = lv_style_index - 1. "ins issue #237 - del issue #295
IF sy-subrc = 0. "ins issue #295
lv_value = ls_style_mapping-style. "ins issue #295
SHIFT lv_value RIGHT DELETING TRAILING space.
@@ -3541,7 +3511,7 @@ METHOD create_xl_sheet.
ENDIF. "ins issue #237
lo_element->append_child( new_child = lo_element_2 ). " col node
- ENDLOOP.
+ ENDWHILE.
* ELSE. "del issue #157 - set sheet style ( add missing columns
* IF io_worksheet->zif_excel_sheet_properties~get_style( ) IS NOT INITIAL. "del issue #157 - set sheet style ( add missing columns
* Begin of insertion issue #157 - set sheet style ( add missing columns
@@ -3557,10 +3527,12 @@ METHOD create_xl_sheet.
missing_column LIKE LINE OF t_missing_columns.
* First collect columns that were already handled before. The rest has to be inserted now
- LOOP AT column_dimensions ASSIGNING .
- lv_column = zcl_excel_common=>convert_column2int( -column ).
+ lo_column_iterator = io_worksheet->get_columns_iterator( ).
+ WHILE lo_column_iterator->has_next( ) = abap_true.
+ lo_column ?= lo_column_iterator->get_next( ).
+ lv_column = zcl_excel_common=>convert_column2int( lo_column->get_column_index( ) ).
INSERT lv_column INTO TABLE lts_sorted_columns.
- ENDLOOP.
+ ENDWHILE.
* Now find all columns that were missing so far
missing_column-first_column = 1.
@@ -3624,312 +3596,10 @@ METHOD create_xl_sheet.
* Sheet content - use own method to create this
*--------------------------------------------------------------------*
lo_element = create_xl_sheet_sheet_data( io_worksheet = io_worksheet
- io_document = lo_document
- it_column_dimensions = column_dimensions ) .
-* " sheetData node
-* lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetdata
-* parent = lo_document ).
-* " Get column count
-* col_count = io_worksheet->get_highest_column( ).
-* " Get autofilter
-** lv_guid = io_worksheet->get_guid( ) .
+ io_document = lo_document ) .
+
lo_autofilters = excel->get_autofilters_reference( ).
lo_autofilter = lo_autofilters->get( io_worksheet = io_worksheet ) .
-* IF lo_autofilter IS BOUND.
-* lt_values = lo_autofilter->get_values( ) .
-* ls_area = lo_autofilter->get_filter_area( ) .
-* l_autofilter_hidden = abap_true. " First defautl is not showing
-* ENDIF.
-**--------------------------------------------------------------------*
-** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 1 - start
-**--------------------------------------------------------------------*
-** Build table to hold all table-areas attached to this sheet
-* lo_iterator = io_worksheet->get_tables_iterator( ).
-* WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true.
-* lo_table ?= lo_iterator->if_object_collection_iterator~get_next( ).
-* ls_table_area-left = zcl_excel_common=>convert_column2int( lo_table->settings-top_left_column ).
-* ls_table_area-right = lo_table->get_right_column_integer( ).
-* ls_table_area-top = lo_table->settings-top_left_row.
-* ls_table_area-bottom = lo_table->get_bottom_row_integer( ).
-* INSERT ls_table_area INTO TABLE lt_table_areas.
-* ENDWHILE.
-**--------------------------------------------------------------------*
-** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 1 - end
-**--------------------------------------------------------------------*
-** We have problems when the first rows or trailing rows are not set but we have rowinformation
-** to solve this we add dummycontent into first and last line that will not be set
-** Set first line if necessary
-* READ TABLE io_worksheet->sheet_content TRANSPORTING NO FIELDS WITH KEY cell_row = 1.
-* IF sy-subrc <> 0.
-* ls_sheet_content_empty-cell_row = 1.
-* ls_sheet_content_empty-cell_column = 1.
-* ls_sheet_content_empty-cell_value = lc_dummy_cell_content.
-* INSERT ls_sheet_content_empty INTO TABLE io_worksheet->sheet_content.
-* ENDIF.
-** Set last line if necessary
-** Last row with cell content
-* lv_last_row = io_worksheet->get_highest_row( ).
-** Last line with row-information set directly ( like line height, hidden-status ... )
-* lts_row_dimensions = io_worksheet->get_row_dimensions( ).
-* SORT lts_row_dimensions BY row DESCENDING.
-* READ TABLE lts_row_dimensions INDEX 1 ASSIGNING .
-* IF sy-subrc = 0 AND -row > lv_last_row.
-* lv_last_row = -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 .
-* IF -collapsed = 'X'.
-* lv_current_row = -row_to + 1. " collapsed-status may be set on following row
-* ELSE.
-* lv_current_row = -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 .
-* 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 .
-* ENDIF.
-*
-* IF ls_last_row-cell_row NE -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 = -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( -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 = -cell_coords ).
-*
-** begin of change issue #157 - allow column cellstyle
-** if no cellstyle is set, look into column, then into sheet
-* IF -cell_style IS NOT INITIAL.
-* lv_style_guid = -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 <= -cell_row
-* AND bottom >= -cell_row
-* AND left <= -cell_column
-* AND right >= -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( -cell_column ).
-* READ TABLE column_dimensions WITH KEY column = lv_column_p ASSIGNING .
-* IF sy-subrc = 0.
-* lv_style_guid = -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 -cell_style IS NOT INITIAL.
-** READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = -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 -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 = -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 -cell_value IS NOT INITIAL "cell can have just style or formula
-* AND -cell_value <> lc_dummy_cell_content.
-* IF -data_type IS NOT INITIAL.
-* IF -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 = -data_type ).
-* ENDIF.
-* ENDIF.
-*
-* " value node
-* lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_v
-* parent = lo_document ).
-*
-* IF -data_type EQ 's' OR -data_type EQ 's_leading_blanks'.
-* lv_value = me->get_shared_string_index( -cell_value ).
-* CONDENSE lv_value.
-* lo_element_4->set_value( value = lv_value ).
-* ELSE.
-* lv_value = -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 = .
-* ENDLOOP.
-* IF sy-subrc = 0.
-* READ TABLE lt_values INTO ls_values WITH KEY column = ls_last_row-cell_column.
-* IF sy-subrc = 0 AND ls_values-value = ls_last_row-cell_value.
-* CLEAR l_autofilter_hidden.
-* ENDIF.
-* IF lo_autofilter IS BOUND.
-* IF ls_area-row_start >= ls_last_row-cell_row OR " One less for header
-* ls_area-row_end < ls_last_row-cell_row .
-* CLEAR l_autofilter_hidden.
-* ENDIF.
-* ELSE.
-* CLEAR l_autofilter_hidden.
-* ENDIF.
-* " Row visibility of previos row.
-* IF row_dimension->get_visible( ) = abap_false OR
-* l_autofilter_hidden = abap_true.
-* lo_element_2->set_attribute_ns( name = 'hidden' value = 'true').
-* ENDIF.
-* lo_element->append_child( new_child = lo_element_2 ). " row node
-* ENDIF.
-* DELETE io_worksheet->sheet_content WHERE cell_value = lc_dummy_cell_content. " Get rid of dummyentries
-
lo_element_root->append_child( new_child = lo_element ). " sheetData node
IF lo_autofilter IS BOUND.
@@ -4815,8 +4485,6 @@ METHOD create_xl_sheet.
ENDIF.
-
-
**********************************************************************
* STEP 5: Create xstring stream
lo_streamfactory = lo_ixml->create_stream_factory( ).
@@ -4824,9 +4492,6 @@ METHOD create_xl_sheet.
lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ).
lo_renderer->render( ).
-
-* REPLACE FIRST OCCURRENCE OF me->mv_sheet_data_xstring_dummy IN ep_content WITH me->mv_sheet_data_xstring IN BYTE MODE.
-
ENDMETHOD.
@@ -5112,6 +4777,7 @@ METHOD create_xl_sheet_sheet_data.
lo_table TYPE REF TO zcl_excel_table,
lt_table_areas TYPE SORTED TABLE OF lty_table_area WITH NON-UNIQUE KEY left right top bottom,
ls_table_area LIKE LINE OF lt_table_areas,
+ lo_column TYPE REF TO zcl_excel_column,
ls_sheet_content LIKE LINE OF io_worksheet->sheet_content,
ls_sheet_content_empty LIKE LINE OF io_worksheet->sheet_content,
@@ -5132,13 +4798,9 @@ METHOD create_xl_sheet_sheet_data.
lo_element_4 TYPE REF TO if_ixml_element,
lv_value TYPE string,
- lv_style_guid TYPE zexcel_cell_style,
- lv_column_p TYPE zexcel_cell_column_alpha,
-
- xxx.
+ lv_style_guid TYPE zexcel_cell_style.
FIELD-SYMBOLS: TYPE zexcel_s_cell_data,
- TYPE zexcel_s_worksheet_columndime,
TYPE zexcel_s_worksheet_rowdimensio,
LIKE LINE OF lts_row_outlines.
@@ -5362,16 +5024,15 @@ METHOD create_xl_sheet_sheet_data.
*--------------------------------------------------------------------*
*issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 2 - end
*--------------------------------------------------------------------*
- lv_column_p = zcl_excel_common=>convert_column2alpha( -cell_column ).
- READ TABLE it_column_dimensions WITH KEY column = lv_column_p ASSIGNING .
- IF sy-subrc = 0.
- lv_style_guid = -column_dimension->get_column_style_guid( ).
+ lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ).
+ lo_column ?= io_worksheet->get_column( -cell_column ).
+ IF lo_column->get_column_index( ) = -cell_column.
+ lv_style_guid = lo_column->get_column_style_guid( ).
IF lv_style_guid IS INITIAL.
lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ).
ENDIF.
- ELSE.
- lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ).
ENDIF.
+
*--------------------------------------------------------------------*
*issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 3 - start
*--------------------------------------------------------------------*
diff --git a/src/zcl_excel_writer_huge_file.clas.abap b/src/zcl_excel_writer_huge_file.clas.abap
index e1abf4b..c2f22f8 100644
--- a/src/zcl_excel_writer_huge_file.clas.abap
+++ b/src/zcl_excel_writer_huge_file.clas.abap
@@ -282,7 +282,7 @@ METHOD create_xl_sheet.
lo_iterator TYPE REF TO cl_object_collection_iterator,
lo_table TYPE REF TO zcl_excel_table,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi,
- default_col_dimension TYPE REF TO zcl_excel_worksheet_columndime,
+ lo_column_default TYPE REF TO zcl_excel_column,
default_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi,
lv_value TYPE string,
lv_index TYPE i,
@@ -294,7 +294,8 @@ METHOD create_xl_sheet.
lv_freeze_cell_row TYPE zexcel_cell_row,
lv_freeze_cell_column TYPE zexcel_cell_column,
lv_freeze_cell_column_alpha TYPE zexcel_cell_column_alpha,
- column_dimensions TYPE zexcel_t_worksheet_columndime,
+ lo_column_iterator TYPE REF TO cl_object_collection_iterator,
+ lo_column TYPE REF TO zcl_excel_column,
row_dimensions TYPE zexcel_t_worksheet_rowdimensio,
lv_relation_id TYPE i VALUE 0,
outline_level_row TYPE i VALUE 0,
@@ -314,7 +315,6 @@ METHOD create_xl_sheet.
FIELD-SYMBOLS:
TYPE zexcel_s_cell_data,
LIKE LINE OF lt_range_merge,
- TYPE zexcel_s_worksheet_columndime,
TYPE zexcel_s_worksheet_rowdimensio,
TYPE lty_column,
TYPE lty_row,
@@ -427,12 +427,12 @@ METHOD create_xl_sheet.
*
* 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 column_dimensions IS INITIAL.
+ IF NOT lo_column_iterator IS BOUND.
io_worksheet->calculate_column_widths( ).
- column_dimensions[] = io_worksheet->get_column_dimensions( ).
+ lo_column_iterator = io_worksheet->get_columns_iterator( ).
ENDIF.
default_row_dimension = io_worksheet->get_default_row_dimension( ).
@@ -449,10 +449,10 @@ METHOD create_xl_sheet.
CONDENSE lv_value.
l_worksheet-defaultrowheight = lv_value.
- default_col_dimension = io_worksheet->get_default_column_dimension( ).
- IF default_col_dimension IS BOUND.
- IF default_col_dimension->get_width( ) >= 0.
- l_worksheet-defaultcolwidth = default_col_dimension->get_width( ).
+ lo_column_default = io_worksheet->get_default_column( ).
+ IF lo_column_default IS BOUND.
+ IF lo_column_default->get_width( ) >= 0.
+ l_worksheet-defaultcolwidth = lo_column_default->get_width( ).
ENDIF.
ENDIF.
@@ -462,54 +462,49 @@ METHOD create_xl_sheet.
ENDIF.
ENDLOOP.
- LOOP AT column_dimensions ASSIGNING .
- IF -column_dimension->get_outline_level( ) > outline_level_col.
- l_worksheet-outlinelevelcol = -column_dimension->get_outline_level( ).
- ENDIF.
- ENDLOOP.
-
-*
* Set column information (width, style, ...)
-*
- LOOP AT column_dimensions ASSIGNING .
- APPEND INITIAL LINE TO l_worksheet-cols ASSIGNING .
- -min = -max = -column_dimension->get_column_index( ).
- -width = -column_dimension->get_width( ).
- IF -width < 0.
- -width = lc_default_col_width.
- ENDIF.
- IF -column_dimension->get_visible( ) = abap_false.
- -hidden = lc_true.
- ENDIF.
- IF -column_dimension->get_auto_size( ) = abap_true.
- -bestfit = lc_true.
- ENDIF.
- IF default_col_dimension IS BOUND.
- IF -column_dimension->get_width( )
- <> default_col_dimension->get_width( ).
+ IF lo_column_iterator->has_next( ) = abap_true.
+ WHILE lo_column_iterator->has_next( ) = abap_true.
+ lo_column ?= lo_column_iterator->get_next( ).
+ IF lo_column->get_outline_level( ) > outline_level_col.
+ l_worksheet-outlinelevelcol = lo_column->get_outline_level( ).
+ ENDIF.
+ APPEND INITIAL LINE TO l_worksheet-cols ASSIGNING .
+ -min = -max = lo_column->get_column_index( ).
+ -width = lo_column->get_width( ).
+ IF -width < 0.
+ -width = lc_default_col_width.
+ ENDIF.
+ IF lo_column->get_visible( ) = abap_false.
+ -hidden = lc_true.
+ ENDIF.
+ IF lo_column->get_auto_size( ) = abap_true.
+ -bestfit = lc_true.
+ ENDIF.
+ IF lo_column_default IS BOUND.
+ IF lo_column->get_width( ) <> lo_column_default->get_width( ).
+ -customwidth = lc_true.
+ ENDIF.
+ ELSE.
-customwidth = lc_true.
ENDIF.
- ELSE.
- -customwidth = lc_true.
- ENDIF.
- IF -column_dimension->get_collapsed( ) = abap_true.
- -collapsed = lc_true.
- ENDIF.
- -outlinelevel = -column_dimension->get_outline_level( ).
- lv_style_guid = -column_dimension->get_column_style_guid( ).
- -style = me->excel->get_style_index_in_styles( lv_style_guid ) - 1.
- ENDLOOP.
-
+ IF lo_column->get_collapsed( ) = abap_true.
+ -collapsed = lc_true.
+ ENDIF.
+ -outlinelevel = lo_column->get_outline_level( ).
+ lv_style_guid = lo_column->get_column_style_guid( ).
+ -style = me->excel->get_style_index_in_styles( lv_style_guid ) - 1.
*
* Missing columns
*
* First collect columns that were already handled before.
* The rest has to be inserted now.
*
- LOOP AT column_dimensions ASSIGNING .
- lv_column = zcl_excel_common=>convert_column2int( -column ).
- INSERT lv_column INTO TABLE lts_sorted_columns.
- ENDLOOP.
+
+ lv_column = zcl_excel_common=>convert_column2int( lo_column->get_column_index( ) ).
+ INSERT lv_column INTO TABLE lts_sorted_columns.
+ ENDWHILE.
+ ENDIF.
*
* Now find all columns that were missing so far
@@ -534,8 +529,8 @@ METHOD create_xl_sheet.
APPEND INITIAL LINE TO l_worksheet-cols ASSIGNING .
-min = missing_column-first_column.
-max = missing_column-last_column.
- IF default_col_dimension IS BOUND AND default_col_dimension->get_width( ) >= 0.
- -width = default_col_dimension->get_width( ).
+ IF lo_column_default IS BOUND AND lo_column_default->get_width( ) >= 0.
+ -width = lo_column_default->get_width( ).
ELSE.
-width = lc_default_col_width.
ENDIF.
diff --git a/src/zdemo_calendar.prog.abap b/src/zdemo_calendar.prog.abap
index c188a3b..af80072 100644
--- a/src/zdemo_calendar.prog.abap
+++ b/src/zdemo_calendar.prog.abap
@@ -48,7 +48,7 @@ START-OF-SELECTION.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
- lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime,
+ lo_column TYPE REF TO zcl_excel_column,
lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi,
hyperlink TYPE REF TO zcl_excel_hyperlink,
lo_drawing TYPE REF TO zcl_excel_drawing.
@@ -215,10 +215,10 @@ START-OF-SELECTION.
lo_worksheet->sheet_setup->paper_size = zcl_excel_sheet_setup=>c_papersize_a4.
lo_worksheet->sheet_setup->horizontal_centered = abap_true.
lo_worksheet->sheet_setup->vertical_centered = abap_true.
- lo_col_dim = lo_worksheet->get_column_dimension( 'A' ).
- lo_col_dim->set_width( '1.0' ).
- lo_col_dim = lo_worksheet->get_column_dimension( 'B' ).
- lo_col_dim->set_width( '2.0' ).
+ lo_column = lo_worksheet->get_column( 'A' ).
+ lo_column->set_width( '1.0' ).
+ lo_column = lo_worksheet->get_column( 'B' ).
+ lo_column->set_width( '2.0' ).
IF p_lands = abap_true.
lo_worksheet->sheet_setup->orientation = zcl_excel_sheet_setup=>c_orientation_landscape.
lv_height = c_height_landscape.
@@ -228,8 +228,8 @@ START-OF-SELECTION.
lo_worksheet->sheet_setup->margin_right = '0.10'.
lo_worksheet->sheet_setup->margin_bottom = '0.10'.
ELSE.
- lo_col_dim = lo_worksheet->get_column_dimension( 'K' ).
- lo_col_dim->set_width( '3.0' ).
+ lo_column = lo_worksheet->get_column( 'K' ).
+ lo_column->set_width( '3.0' ).
lo_worksheet->sheet_setup->margin_top = '0.80'.
lo_worksheet->sheet_setup->margin_left = '0.55'.
lo_worksheet->sheet_setup->margin_right = '0.05'.
diff --git a/src/zdemo_calendar_classes.prog.abap b/src/zdemo_calendar_classes.prog.abap
index fedf291..19cdc2c 100644
--- a/src/zdemo_calendar_classes.prog.abap
+++ b/src/zdemo_calendar_classes.prog.abap
@@ -216,7 +216,7 @@ CLASS zcl_helper IMPLEMENTATION.
col_max TYPE i,
from_col_int TYPE zexcel_cell_column,
col TYPE zexcel_cell_column_alpha,
- lr_col_dim TYPE REF TO zcl_excel_worksheet_columndime,
+ lo_column TYPE REF TO zcl_excel_column,
lr_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi.
DATA: lv_date TYPE datum,
value TYPE string,
@@ -325,8 +325,8 @@ CLASS zcl_helper IMPLEMENTATION.
ELSE.
width = '11.4'.
ENDIF.
- lr_col_dim = c_worksheet->get_column_dimension( col ).
- lr_col_dim->set_width( width ).
+ lo_column = c_worksheet->get_column( col ).
+ lo_column->set_width( width ).
col_int = col_int + 1.
ENDWHILE.
row = i_from_row + 1.
@@ -364,7 +364,7 @@ CLASS zcl_helper IMPLEMENTATION.
from_col_int TYPE zexcel_cell_column,
col_int TYPE zexcel_cell_column,
col TYPE zexcel_cell_column_alpha.
- DATA: lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime,
+ DATA: lo_column TYPE REF TO zcl_excel_column,
lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi.
FIELD-SYMBOLS: LIKE LINE OF day_names.
@@ -410,8 +410,8 @@ CLASS zcl_helper IMPLEMENTATION.
ip_style = i_day_style " Single-Character Indicator
).
" width
- lo_col_dim = c_worksheet->get_column_dimension( col ).
- lo_col_dim->set_width( '3.6' ).
+ lo_column = c_worksheet->get_column( col ).
+ lo_column->set_width( '3.6' ).
lv_date = lv_date + 1.
@@ -441,8 +441,8 @@ CLASS zcl_helper IMPLEMENTATION.
col_int = from_col_int + day + 2.
col = zcl_excel_common=>convert_column2alpha( col_int ).
" width
- lo_col_dim = c_worksheet->get_column_dimension( col ).
- lo_col_dim->set_width( '3.6' ).
+ lo_column = c_worksheet->get_column( col ).
+ lo_column->set_width( '3.6' ).
ENDWHILE.
ENDMETHOD. "ADD_CALENDAR_LANDSCAPE
diff --git a/src/zdemo_excel1.prog.abap b/src/zdemo_excel1.prog.abap
index 7f393a7..8442ba8 100644
--- a/src/zdemo_excel1.prog.abap
+++ b/src/zdemo_excel1.prog.abap
@@ -9,10 +9,10 @@
REPORT zdemo_excel1.
-DATA: lo_excel TYPE REF TO zcl_excel,
- lo_worksheet TYPE REF TO zcl_excel_worksheet,
- lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
- column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
+DATA: lo_excel TYPE REF TO zcl_excel,
+ lo_worksheet TYPE REF TO zcl_excel_worksheet,
+ lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
+ lo_column TYPE REF TO zcl_excel_column.
CONSTANTS: gc_save_file_name TYPE string VALUE '01_HelloWorld.xlsx'.
INCLUDE zdemo_excel_outputopt_incl.
@@ -31,8 +31,8 @@ START-OF-SELECTION.
lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'http://www.abap2xlsx.org' ).
lo_worksheet->set_cell( ip_column = 'B' ip_row = 4 ip_value = 'Click here to visit abap2xlsx homepage' ip_hyperlink = lo_hyperlink ).
- column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
- column_dimension->set_width( ip_width = 11 ).
+ lo_column = lo_worksheet->get_column( ip_column = 'B' ).
+ lo_column->set_width( ip_width = 11 ).
diff --git a/src/zdemo_excel10.prog.abap b/src/zdemo_excel10.prog.abap
index 2aaff40..a648afe 100644
--- a/src/zdemo_excel10.prog.abap
+++ b/src/zdemo_excel10.prog.abap
@@ -11,7 +11,7 @@ REPORT zdemo_excel10.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_conditional2 TYPE REF TO zcl_excel_style_conditional,
- column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
+ lo_column TYPE REF TO zcl_excel_column.
DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog,
ls_table_settings TYPE zexcel_s_table_settings,
@@ -87,8 +87,8 @@ START-OF-SELECTION.
is_table_settings = ls_table_settings
it_field_catalog = lt_field_catalog ).
- column_dimension = lo_worksheet->get_column_dimension( ip_column = 'D' ). "make date field a bit wider
- column_dimension->set_width( ip_width = 13 ).
+ lo_column = lo_worksheet->get_column( ip_column = 'D' ). "make date field a bit wider
+ lo_column->set_width( ip_width = 13 ).
*** Create output
diff --git a/src/zdemo_excel11.prog.abap b/src/zdemo_excel11.prog.abap
index 250a940..b939e80 100644
--- a/src/zdemo_excel11.prog.abap
+++ b/src/zdemo_excel11.prog.abap
@@ -191,7 +191,7 @@ START-OF-SELECTION.
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_style_body TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border,
- column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
+ lo_column TYPE REF TO zcl_excel_column,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
DATA: lv_style_body_even_guid TYPE zexcel_cell_style,
@@ -369,46 +369,10 @@ START-OF-SELECTION.
count = 1.
WHILE count <= highest_column.
col_alpha = zcl_excel_common=>convert_column2alpha( ip_column = count ).
- column_dimension = lo_worksheet->get_column_dimension( ip_column = col_alpha ).
- column_dimension->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = col_alpha ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
count = count + 1.
ENDWHILE.
-* " Set Column width manuall
-* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ).
-* column_dimension->set_width( ip_width = 11 ).
-* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
-* column_dimension->set_width( ip_width = 11 ).
-* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ).
-* column_dimension->set_width( ip_width = 35 ).
-* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'E' ).
-* column_dimension->set_width( ip_width = 18 ).
-* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'F' ).
-* column_dimension->set_width( ip_width = 5 ).
-* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'G' ).
-* column_dimension->set_width( ip_width = 6 ).
-* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'H' ).
-* column_dimension->set_width( ip_width = 12 ).
-* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'I' ).
-* column_dimension->set_width( ip_width = 3 ).
-* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'J' ).
-* column_dimension->set_width( ip_width = 13 ).
-* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'K' ).
-* column_dimension->set_width( ip_width = 13 ).
-* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'L' ).
-* column_dimension->set_width( ip_width = 13 ).
-* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'M' ).
-* column_dimension->set_width( ip_width = 13 ).
-* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'N' ).
-* column_dimension->set_width( ip_width = 12 ).
-* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'O' ).
-* column_dimension->set_width( ip_width = 9 ).
-* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'P' ).
-* column_dimension->set_width( ip_width = 12 ).
-* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'Q' ).
-* column_dimension->set_width( ip_width = 9 ).
-* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'R' ).
-* column_dimension->set_width( ip_width = 40 ).
-
*** Create output
lcl_output=>output( lo_excel ).
diff --git a/src/zdemo_excel12.prog.abap b/src/zdemo_excel12.prog.abap
index 4041f53..5c06367 100644
--- a/src/zdemo_excel12.prog.abap
+++ b/src/zdemo_excel12.prog.abap
@@ -10,7 +10,7 @@ REPORT zdemo_excel12.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
- column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
+ lo_column TYPE REF TO zcl_excel_column,
row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi.
DATA: lv_file TYPE xstring,
@@ -54,35 +54,27 @@ START-OF-SELECTION.
" Column Settings
" Auto size
- column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
- column_dimension->set_auto_size( ip_auto_size = abap_true ).
- column_dimension = lo_worksheet->get_column_dimension( ip_column = 'I' ).
- column_dimension->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = 'B' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = 'I' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
" Manual Width
- column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ).
- column_dimension->set_width( ip_width = 50 ).
- column_dimension = lo_worksheet->get_column_dimension( ip_column = 'D' ).
- column_dimension->set_visible( ip_visible = abap_false ).
+ lo_column = lo_worksheet->get_column( ip_column = 'C' ).
+ lo_column->set_width( ip_width = 50 ).
+ lo_column = lo_worksheet->get_column( ip_column = 'D' ).
+ lo_column->set_visible( ip_visible = abap_false ).
" Implementation in the Writer is not working yet ===== TODO =====
- column_dimension = lo_worksheet->get_column_dimension( ip_column = 'F' ).
- column_dimension->set_outline_level( ip_outline_level = 0 ).
- column_dimension = lo_worksheet->get_column_dimension( ip_column = 'G' ).
- column_dimension->set_outline_level( ip_outline_level = 1 ).
- column_dimension = lo_worksheet->get_column_dimension( ip_column = 'H' ).
- column_dimension->set_outline_level( ip_outline_level = 2 ).
+ lo_column = lo_worksheet->get_column( ip_column = 'F' ).
+ lo_column->set_outline_level( ip_outline_level = 0 ).
+ lo_column = lo_worksheet->get_column( ip_column = 'G' ).
+ lo_column->set_outline_level( ip_outline_level = 1 ).
+ lo_column = lo_worksheet->get_column( ip_column = 'H' ).
+ lo_column->set_outline_level( ip_outline_level = 2 ).
row_dimension = lo_worksheet->get_row_dimension( ip_row = 1 ).
row_dimension->set_visible( ip_visible = abap_false ).
row_dimension = lo_worksheet->get_row_dimension( ip_row = 5 ).
row_dimension->set_row_height( ip_row_height = 20 ).
-* obsolete, not intuitive. Use new method shown below
-* " Implementation in the Writer is not working yet ===== TODO =====
-* row_dimension = lo_worksheet->get_row_dimension( ip_row = 6 ).
-* row_dimension->set_outline_level( ip_outline_level = 0 ).
-* row_dimension = lo_worksheet->get_row_dimension( ip_row = 7 ).
-* row_dimension->set_outline_level( ip_outline_level = 1 ).
-* row_dimension = lo_worksheet->get_row_dimension( ip_row = 8 ).
-* row_dimension->set_outline_level( ip_outline_level = 2 ).
* Define an outline rows 10-16, collapsed on startup
lo_worksheet->set_row_outline( iv_row_from = 10
diff --git a/src/zdemo_excel24.prog.abap b/src/zdemo_excel24.prog.abap
index 1104942..ace4342 100644
--- a/src/zdemo_excel24.prog.abap
+++ b/src/zdemo_excel24.prog.abap
@@ -12,7 +12,7 @@ TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
- column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
+ lo_column TYPE REF TO zcl_excel_column,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink.
DATA: lv_file TYPE xstring,
@@ -44,8 +44,8 @@ START-OF-SELECTION.
lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet2!A1' ).
lo_worksheet->set_cell( ip_column = 'A' ip_row = 6 ip_value = 'This is a link to the second sheet' ip_hyperlink = lo_hyperlink ).
- column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ).
- column_dimension->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = 'A' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
" Second sheet
diff --git a/src/zdemo_excel28.prog.abap b/src/zdemo_excel28.prog.abap
index 88c7cb8..0c3b4e6 100644
--- a/src/zdemo_excel28.prog.abap
+++ b/src/zdemo_excel28.prog.abap
@@ -12,7 +12,7 @@ DATA: lo_excel TYPE REF TO zcl_excel,
lo_excel_writer TYPE REF TO zif_excel_writer,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
- column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
+ lo_column TYPE REF TO zcl_excel_column.
DATA: lv_file TYPE xstring,
lv_bytecount TYPE i,
@@ -56,8 +56,8 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = sy-datum ).
lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ).
- column_dimension = lo_worksheet->get_column_dimension( 'B' ).
- column_dimension->set_width( 11 ).
+ lo_column = lo_worksheet->get_column( 'B' ).
+ lo_column->set_width( 11 ).
lo_worksheet = lo_excel->add_new_worksheet( ).
lo_worksheet->set_title( ip_title = 'Sheet2' ).
@@ -93,7 +93,7 @@ START-OF-SELECTION.
CHANGING data_tab = lt_file_tab ).
* zcl_excel_writer_csv=>set_active_sheet_index( i_active_worksheet = 2 ).
- zcl_excel_writer_csv=>set_active_sheet_index_by_name( I_WORKSHEET_NAME = 'Sheet1' ).
+ zcl_excel_writer_csv=>set_active_sheet_index_by_name( i_worksheet_name = 'Sheet1' ).
lv_file = lo_excel_writer->write_file( lo_excel ).
REPLACE FIRST OCCURRENCE OF '_Sheet2.csv' IN lv_full_path WITH '_Sheet1.csv'.
diff --git a/src/zdemo_excel3.prog.abap b/src/zdemo_excel3.prog.abap
index 53584bf..cfc4805 100644
--- a/src/zdemo_excel3.prog.abap
+++ b/src/zdemo_excel3.prog.abap
@@ -12,7 +12,7 @@ TYPE-POOLS: abap.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
- column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
+ lo_column TYPE REF TO zcl_excel_column.
DATA: ls_table_settings TYPE zexcel_s_table_settings.
@@ -55,8 +55,8 @@ START-OF-SELECTION.
lo_worksheet->freeze_panes( ip_num_rows = 3 ). "freeze column headers when scrolling
- column_dimension = lo_worksheet->get_column_dimension( ip_column = 'E' ). "make date field a bit wider
- column_dimension->set_width( ip_width = 11 ).
+ lo_column = lo_worksheet->get_column( ip_column = 'E' ). "make date field a bit wider
+ lo_column->set_width( ip_width = 11 ).
" Add another table for data validations
lo_worksheet = lo_excel->add_new_worksheet( ).
lv_title = 'Data Validation'.
diff --git a/src/zdemo_excel30.prog.abap b/src/zdemo_excel30.prog.abap
index 836df2b..71d8432 100644
--- a/src/zdemo_excel30.prog.abap
+++ b/src/zdemo_excel30.prog.abap
@@ -11,7 +11,7 @@ REPORT zdemo_excel30.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
- column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
+ lo_column TYPE REF TO zcl_excel_column.
DATA: lv_value TYPE string,
@@ -81,16 +81,16 @@ START-OF-SELECTION.
lv_count = lv_count + 1.
ENDWHILE.
- column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ).
- column_dimension->set_auto_size( abap_true ).
- column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
- column_dimension->set_auto_size( abap_true ).
- column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ).
- column_dimension->set_auto_size( abap_true ).
- column_dimension = lo_worksheet->get_column_dimension( ip_column = 'D' ).
- column_dimension->set_auto_size( abap_true ).
- column_dimension = lo_worksheet->get_column_dimension( ip_column = 'E' ).
- column_dimension->set_auto_size( abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = 'A' ).
+ lo_column->set_auto_size( abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = 'B' ).
+ lo_column->set_auto_size( abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = 'C' ).
+ lo_column->set_auto_size( abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = 'D' ).
+ lo_column->set_auto_size( abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = 'E' ).
+ lo_column->set_auto_size( abap_true ).
diff --git a/src/zdemo_excel31.prog.abap b/src/zdemo_excel31.prog.abap
index 081003b..84f1737 100644
--- a/src/zdemo_excel31.prog.abap
+++ b/src/zdemo_excel31.prog.abap
@@ -11,7 +11,7 @@ REPORT zdemo_excel31.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lo_hyperlink TYPE REF TO zcl_excel_hyperlink,
- column_dimension TYPE REF TO zcl_excel_worksheet_columndime.
+ lo_column TYPE REF TO zcl_excel_column.
DATA: fieldval TYPE text80,
@@ -55,12 +55,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_column = 'C' ip_row = row ip_value = fieldval ip_style = style_column_c_guid ).
ENDDO.
- column_dimension = lo_worksheet->get_column_dimension( 'A' ).
- column_dimension->set_auto_size( ip_auto_size = abap_true ).
- column_dimension = lo_worksheet->get_column_dimension( 'B' ).
- column_dimension->set_auto_size( ip_auto_size = abap_true ).
- column_dimension = lo_worksheet->get_column_dimension( 'C' ).
- column_dimension->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( 'A' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( 'B' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( 'C' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
" Add sheet
lo_worksheet = lo_excel->add_new_worksheet( ).
@@ -91,12 +91,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_column = 'C' ip_row = row ip_value = fieldval ip_style = style_column_c_guid ).
ENDDO.
- column_dimension = lo_worksheet->get_column_dimension( 'A' ).
- column_dimension->set_auto_size( ip_auto_size = abap_true ).
- column_dimension = lo_worksheet->get_column_dimension( 'B' ).
- column_dimension->set_auto_size( ip_auto_size = abap_true ).
- column_dimension = lo_worksheet->get_column_dimension( 'C' ).
- column_dimension->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( 'A' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( 'B' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( 'C' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
" Add sheet
lo_worksheet = lo_excel->add_new_worksheet( ).
@@ -127,12 +127,12 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_column = 'C' ip_row = row ip_value = fieldval ip_style = style_column_c_guid ).
ENDDO.
- column_dimension = lo_worksheet->get_column_dimension( 'A' ).
- column_dimension->set_auto_size( ip_auto_size = abap_true ).
- column_dimension = lo_worksheet->get_column_dimension( 'B' ).
- column_dimension->set_auto_size( ip_auto_size = abap_true ).
- column_dimension = lo_worksheet->get_column_dimension( 'C' ).
- column_dimension->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( 'A' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( 'B' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( 'C' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
" Add sheet for merged cells
lo_worksheet = lo_excel->add_new_worksheet( ).
@@ -148,8 +148,8 @@ START-OF-SELECTION.
ip_column_end = 'C'
ip_row = 1 ).
- column_dimension = lo_worksheet->get_column_dimension( 'A' ).
- column_dimension->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( 'A' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
lo_excel->set_active_sheet_index( i_active_worksheet = 1 ).
diff --git a/src/zdemo_excel34.prog.abap b/src/zdemo_excel34.prog.abap
index 1334d8d..8638666 100644
--- a/src/zdemo_excel34.prog.abap
+++ b/src/zdemo_excel34.prog.abap
@@ -19,7 +19,7 @@ DATA: current_row TYPE i,
colorflag TYPE i,
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,
writing1 TYPE string,
@@ -65,8 +65,8 @@ START-OF-SELECTION.
col_alpha = zcl_excel_common=>convert_column2alpha( col ).
* Set size of column
- column_dimension = lo_worksheet->get_column_dimension( col_alpha ).
- column_dimension->set_width( width ).
+ lo_column = lo_worksheet->get_column( col_alpha ).
+ lo_column->set_width( width ).
* Set size of row
row_dimension = lo_worksheet->get_row_dimension( row ).
@@ -100,10 +100,10 @@ START-OF-SELECTION.
ip_row = row
ip_alignment_horizontal = zcl_excel_style_alignment=>c_horizontal_center ).
ENDDO.
- column_dimension = lo_worksheet->get_column_dimension( 'A' ).
- column_dimension->set_auto_size( abap_true ).
- column_dimension = lo_worksheet->get_column_dimension( 'J' ).
- column_dimension->set_auto_size( abap_true ).
+ lo_column = lo_worksheet->get_column( 'A' ).
+ lo_column->set_auto_size( abap_true ).
+ lo_column = lo_worksheet->get_column( 'J' ).
+ lo_column->set_auto_size( abap_true ).
* Set win-position
CONSTANTS: c_pawn TYPE string VALUE 'Pawn'.
diff --git a/src/zdemo_excel36.prog.abap b/src/zdemo_excel36.prog.abap
index 74f2258..8fecb97 100644
--- a/src/zdemo_excel36.prog.abap
+++ b/src/zdemo_excel36.prog.abap
@@ -4,7 +4,7 @@ REPORT zdemo_excel36.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
- column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
+ lo_column TYPE REF TO zcl_excel_column,
col TYPE i.
DATA: lo_style_arial20 TYPE REF TO zcl_excel_style,
@@ -69,12 +69,12 @@ START-OF-SELECTION.
* 3rd sheet - defaultstyle for columns ( set to Times New Roman 11 )
lo_worksheet = lo_excel->add_new_worksheet( ).
lo_worksheet->set_title( 'Style for 3 columns' ).
- column_dimension = lo_worksheet->get_column_dimension( 'B' ).
- column_dimension->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ).
- column_dimension = lo_worksheet->get_column_dimension( 'C' ).
- column_dimension->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ).
- column_dimension = lo_worksheet->get_column_dimension( 'F' ).
- column_dimension->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ).
+ lo_column = lo_worksheet->get_column( 'B' ).
+ lo_column->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ).
+ lo_column = lo_worksheet->get_column( 'C' ).
+ lo_column->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ).
+ lo_column = lo_worksheet->get_column( 'F' ).
+ lo_column->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ).
lo_worksheet->set_cell( ip_column = 2 ip_row = 4 ip_value = 'The columns B,C and F are set to Times New Roman' ).
lo_worksheet->set_cell( ip_column = 2 ip_row = 10 ip_value = 'All other cells in this sheet are set to font Arial, fontsize 20' ).
diff --git a/src/zdemo_excel38.prog.abap b/src/zdemo_excel38.prog.abap
index 553f151..a67772a 100644
--- a/src/zdemo_excel38.prog.abap
+++ b/src/zdemo_excel38.prog.abap
@@ -3,7 +3,7 @@ REPORT.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
- lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
+ lo_column TYPE REF TO zcl_excel_column,
lo_drawing TYPE REF TO zcl_excel_drawing.
TYPES: BEGIN OF gty_icon,
@@ -36,10 +36,10 @@ START-OF-SELECTION.
" Get active sheet
lo_worksheet = lo_excel->get_active_worksheet( ).
lo_worksheet->set_title( ip_title = 'Demo Icons' ).
- lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ).
- lo_column_dimension->set_auto_size( 'X' ).
- lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
- lo_column_dimension->set_auto_size( 'X' ).
+ lo_column = lo_worksheet->get_column( ip_column = 'A' ).
+ lo_column->set_auto_size( 'X' ).
+ lo_column = lo_worksheet->get_column( ip_column = 'B' ).
+ lo_column->set_auto_size( 'X' ).
* Get all icons
SELECT name
diff --git a/src/zdemo_teched6.prog.abap b/src/zdemo_teched6.prog.abap
index 9752085..f9f7a61 100644
--- a/src/zdemo_teched6.prog.abap
+++ b/src/zdemo_teched6.prog.abap
@@ -20,7 +20,7 @@ DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
- lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
+ lo_column TYPE REF TO zcl_excel_column,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
@@ -133,10 +133,10 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ).
" add autosize (column width)
- lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
- lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
- lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ).
- lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = 'B' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = 'C' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
" Create xlsx stream
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
diff --git a/src/zdemo_teched7.prog.abap b/src/zdemo_teched7.prog.abap
index a429c8f..5a7249c 100644
--- a/src/zdemo_teched7.prog.abap
+++ b/src/zdemo_teched7.prog.abap
@@ -20,7 +20,7 @@ DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
- lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
+ lo_column TYPE REF TO zcl_excel_column,
lv_style_title_guid TYPE zexcel_cell_style,
ls_key TYPE wwwdatatab.
@@ -136,10 +136,10 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ).
" add autosize (column width)
- lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
- lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
- lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ).
- lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = 'B' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = 'C' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
" Create xlsx stream
CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007.
diff --git a/src/zdemo_teched8.prog.abap b/src/zdemo_teched8.prog.abap
index 109064a..da49146 100644
--- a/src/zdemo_teched8.prog.abap
+++ b/src/zdemo_teched8.prog.abap
@@ -23,7 +23,7 @@ DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
- lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
+ lo_column TYPE REF TO zcl_excel_column,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional,
lv_style_title_guid TYPE zexcel_cell_style,
lv_style_green_guid TYPE zexcel_cell_style,
@@ -144,10 +144,10 @@ START-OF-SELECTION.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ).
" add autosize (column width)
- lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
- lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
- lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ).
- lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = 'B' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = 'C' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
" defne conditional styles
lo_style_green = lo_excel->add_new_style( ).
diff --git a/src/zdemo_teched9.prog.abap b/src/zdemo_teched9.prog.abap
index c9b0ac8..0127c24 100644
--- a/src/zdemo_teched9.prog.abap
+++ b/src/zdemo_teched9.prog.abap
@@ -23,7 +23,7 @@ DATA: lo_style_title TYPE REF TO zcl_excel_style,
lo_drawing TYPE REF TO zcl_excel_drawing,
lo_range TYPE REF TO zcl_excel_range,
lo_data_validation TYPE REF TO zcl_excel_data_validation,
- lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime,
+ lo_column TYPE REF TO zcl_excel_column,
lo_style_conditional TYPE REF TO zcl_excel_style_conditional,
lv_style_title_guid TYPE zexcel_cell_style,
lv_style_green_guid TYPE zexcel_cell_style,
@@ -122,10 +122,10 @@ CONSTANTS: lv_default_file_name TYPE string VALUE 'TechEd01.xlsx'.
lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ).
" add autosize (column width)
- lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ).
- lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
- lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ).
- lo_column_dimension->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = 'B' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
+ lo_column = lo_worksheet->get_column( ip_column = 'C' ).
+ lo_column->set_auto_size( ip_auto_size = abap_true ).
" defne conditional styles
lo_style_green = lo_excel->add_new_style( ).