mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 10:56:14 +08:00
First implementation for issue #484
This commit is contained in:
parent
240c61dbd7
commit
68b2c66edd
|
@ -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' ).
|
||||
|
||||
|
|
230
src/zcl_excel_column.clas.abap
Normal file
230
src/zcl_excel_column.clas.abap
Normal file
|
@ -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.
|
94
src/zcl_excel_column.clas.xml
Normal file
94
src/zcl_excel_column.clas.xml
Normal file
|
@ -0,0 +1,94 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
|
||||
<VERSION>1</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Worksheet Column</DESCRIPT>
|
||||
<EXPOSURE>2</EXPOSURE>
|
||||
<STATE>1</STATE>
|
||||
<CLSFINAL>X</CLSFINAL>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
<TPOOL/>
|
||||
<DESCRIPTIONS>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
|
||||
<CMPNAME>AUTO_SIZE</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Auto size?</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
|
||||
<CMPNAME>COLLAPSED</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Collapsed?</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
|
||||
<CMPNAME>COLUMN_INDEX</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Column index</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
|
||||
<CMPNAME>EXCEL</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Excel creator</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
|
||||
<CMPNAME>GET_COLUMN_STYLE_GUID</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Get guid of column style</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
|
||||
<CMPNAME>OUTLINE_LEVEL</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Outline level</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
|
||||
<CMPNAME>SET_COLUMN_STYLE_BY_GUID</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Set column style by style guid</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
|
||||
<CMPNAME>STYLE_GUID</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Style identifier</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
|
||||
<CMPNAME>VISIBLE</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Visible?</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
|
||||
<CMPNAME>WIDTH</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Column width</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
|
||||
<CMPNAME>WORKSHEET</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Worksheet</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMN</CLSNAME>
|
||||
<CMPNAME>XF_INDEX</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Index to cellXf</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
</DESCRIPTIONS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
87
src/zcl_excel_columns.clas.abap
Normal file
87
src/zcl_excel_columns.clas.abap
Normal file
|
@ -0,0 +1,87 @@
|
|||
class ZCL_EXCEL_COLUMNS definition
|
||||
public
|
||||
final
|
||||
create public .
|
||||
|
||||
*"* public components of class ZCL_EXCEL_COLUMNS
|
||||
*"* do not include other source files here!!!
|
||||
public section.
|
||||
|
||||
methods ADD
|
||||
importing
|
||||
!IO_COLUMN type ref to ZCL_EXCEL_COLUMN .
|
||||
methods CLEAR .
|
||||
methods CONSTRUCTOR .
|
||||
methods GET
|
||||
importing
|
||||
!IP_INDEX type I
|
||||
returning
|
||||
value(EO_COLUMN) type ref to ZCL_EXCEL_COLUMN .
|
||||
methods GET_ITERATOR
|
||||
returning
|
||||
value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR .
|
||||
methods IS_EMPTY
|
||||
returning
|
||||
value(IS_EMPTY) type FLAG .
|
||||
methods REMOVE
|
||||
importing
|
||||
!IO_COLUMN type ref to ZCL_EXCEL_COLUMN .
|
||||
methods SIZE
|
||||
returning
|
||||
value(EP_SIZE) type I .
|
||||
*"* protected components of class ZABAP_EXCEL_WORKSHEETS
|
||||
*"* do not include other source files here!!!
|
||||
protected section.
|
||||
*"* private components of class ZABAP_EXCEL_RANGES
|
||||
*"* do not include other source files here!!!
|
||||
private section.
|
||||
|
||||
data COLUMNS type ref to CL_OBJECT_COLLECTION .
|
||||
ENDCLASS.
|
||||
|
||||
|
||||
|
||||
CLASS ZCL_EXCEL_COLUMNS IMPLEMENTATION.
|
||||
|
||||
|
||||
METHOD add.
|
||||
columns->add( io_column ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD clear.
|
||||
columns->clear( ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD constructor.
|
||||
|
||||
CREATE OBJECT columns.
|
||||
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get.
|
||||
eo_column ?= columns->if_object_collection~get( ip_index ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_iterator.
|
||||
eo_iterator ?= columns->if_object_collection~get_iterator( ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD is_empty.
|
||||
is_empty = columns->if_object_collection~is_empty( ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD remove.
|
||||
columns->remove( io_column ).
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD size.
|
||||
ep_size = columns->if_object_collection~size( ).
|
||||
ENDMETHOD.
|
||||
ENDCLASS.
|
70
src/zcl_excel_columns.clas.xml
Normal file
70
src/zcl_excel_columns.clas.xml
Normal file
|
@ -0,0 +1,70 @@
|
|||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||
<asx:values>
|
||||
<VSEOCLASS>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
|
||||
<VERSION>1</VERSION>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Ranges collection</DESCRIPT>
|
||||
<EXPOSURE>2</EXPOSURE>
|
||||
<STATE>1</STATE>
|
||||
<CLSFINAL>X</CLSFINAL>
|
||||
<CLSCCINCL>X</CLSCCINCL>
|
||||
<FIXPT>X</FIXPT>
|
||||
<UNICODE>X</UNICODE>
|
||||
</VSEOCLASS>
|
||||
<TPOOL/>
|
||||
<DESCRIPTIONS>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
|
||||
<CMPNAME>ADD</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Adds an Element to the Collection</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
|
||||
<CMPNAME>CLEAR</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Initializes the Collection</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
|
||||
<CMPNAME>CONSTRUCTOR</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>CONSTRUCTOR</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
|
||||
<CMPNAME>GET</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Gets Element</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
|
||||
<CMPNAME>GET_ITERATOR</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Returns an iterator</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
|
||||
<CMPNAME>IS_EMPTY</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Checks whether elements are contained</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
|
||||
<CMPNAME>REMOVE</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Deletes an Element from the Collection</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_COLUMNS</CLSNAME>
|
||||
<CMPNAME>SIZE</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Specifies number of contained elements</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
</DESCRIPTIONS>
|
||||
</asx:values>
|
||||
</asx:abap>
|
||||
</abapGit>
|
|
@ -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: <fs_tab> type any table.
|
||||
FIELD-SYMBOLS: <fs_tab> TYPE ANY TABLE.
|
||||
|
||||
assign wo_data->* to <fs_tab> .
|
||||
ASSIGN wo_data->* TO <fs_tab> .
|
||||
|
||||
ls_settings-table_style = i_style_table.
|
||||
ls_settings-top_left_column = zcl_excel_common=>convert_column2alpha( ip_column = w_col_int ).
|
||||
ls_settings-top_left_row = w_row_int.
|
||||
ls_settings-show_row_stripes = ws_layout-is_stripped.
|
||||
|
||||
describe table wt_fieldcatalog lines l_line.
|
||||
l_line = l_line + 1 + w_col_int.
|
||||
ls_settings-bottom_right_column = zcl_excel_common=>convert_column2alpha( ip_column = l_line ).
|
||||
DESCRIBE TABLE wt_fieldcatalog LINES lv_line.
|
||||
lv_line = lv_line + 1 + w_col_int.
|
||||
ls_settings-bottom_right_column = zcl_excel_common=>convert_column2alpha( ip_column = lv_line ).
|
||||
|
||||
describe table <fs_tab> lines l_line.
|
||||
ls_settings-bottom_right_row = l_line + 1 + w_row_int.
|
||||
sort wt_fieldcatalog by position.
|
||||
loop at wt_fieldcatalog into ls_fcat.
|
||||
move-corresponding ls_fcat to ls_field_catalog.
|
||||
DESCRIBE TABLE <fs_tab> LINES lv_line.
|
||||
ls_settings-bottom_right_row = lv_line + 1 + w_row_int.
|
||||
SORT wt_fieldcatalog BY position.
|
||||
LOOP AT wt_fieldcatalog INTO ls_fcat.
|
||||
MOVE-CORRESPONDING ls_fcat TO ls_field_catalog.
|
||||
ls_field_catalog-dynpfld = abap_true.
|
||||
insert ls_field_catalog into table lt_field_catalog.
|
||||
endloop.
|
||||
INSERT ls_field_catalog INTO TABLE lt_field_catalog.
|
||||
ENDLOOP.
|
||||
|
||||
wo_worksheet->bind_table(
|
||||
exporting
|
||||
EXPORTING
|
||||
ip_table = <fs_tab>
|
||||
it_field_catalog = lt_field_catalog
|
||||
is_table_settings = ls_settings
|
||||
importing
|
||||
IMPORTING
|
||||
es_table_settings = ls_settings
|
||||
).
|
||||
loop at wt_fieldcatalog into ls_fcat.
|
||||
l_col_int = w_col_int + ls_fcat-position - 1.
|
||||
l_col_alpha = zcl_excel_common=>convert_column2alpha( l_col_int ).
|
||||
LOOP AT wt_fieldcatalog INTO ls_fcat.
|
||||
lv_col_int = w_col_int + ls_fcat-position - 1.
|
||||
lv_col_alpha = zcl_excel_common=>convert_column2alpha( lv_col_int ).
|
||||
* Freeze panes
|
||||
if ls_fcat-fix_column = abap_true.
|
||||
add 1 to r_freeze_col.
|
||||
endif.
|
||||
IF ls_fcat-fix_column = abap_true.
|
||||
ADD 1 TO r_freeze_col.
|
||||
ENDIF.
|
||||
* Now let's check for optimized
|
||||
if ls_fcat-is_optimized = abap_true.
|
||||
lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
|
||||
lo_col_dim->set_auto_size( ip_auto_size = abap_true ) .
|
||||
endif.
|
||||
IF ls_fcat-is_optimized = abap_true.
|
||||
lo_column = wo_worksheet->get_column( ip_column = lv_col_alpha ).
|
||||
lo_column->set_auto_size( ip_auto_size = abap_true ) .
|
||||
ENDIF.
|
||||
* Now let's check for visible
|
||||
if ls_fcat-is_hidden = abap_true.
|
||||
lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
|
||||
lo_col_dim->set_visible( ip_visible = abap_false ) .
|
||||
endif.
|
||||
endloop.
|
||||
IF ls_fcat-is_hidden = abap_true.
|
||||
lo_column = wo_worksheet->get_column( ip_column = lv_col_alpha ).
|
||||
lo_column->set_visible( ip_visible = abap_false ) .
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
endmethod.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
method CLASS_CONSTRUCTOR.
|
||||
|
@ -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 <fs_sfcat>-is_optimized = abap_true .
|
||||
lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
|
||||
lo_col_dim->set_auto_size( ip_auto_size = abap_true ) .
|
||||
lo_column = wo_worksheet->get_column( ip_column = l_col_alpha ).
|
||||
lo_column->set_auto_size( ip_auto_size = abap_true ) .
|
||||
ENDIF.
|
||||
* Now let's check for visible
|
||||
IF <fs_sfcat>-is_hidden = abap_true.
|
||||
lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
|
||||
lo_col_dim->set_visible( ip_visible = abap_false ) .
|
||||
lo_column = wo_worksheet->get_column( ip_column = l_col_alpha ).
|
||||
lo_column->set_visible( ip_visible = abap_false ) .
|
||||
ENDIF.
|
||||
* Now let's check for total versus subtotal.
|
||||
IF <fs_sfcat>-totals_function IS NOT INITIAL.
|
||||
|
@ -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 <fs_sfcat>-is_optimized = abap_true.
|
||||
lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
|
||||
lo_col_dim->set_auto_size( ip_auto_size = abap_true ) .
|
||||
lo_column = wo_worksheet->get_column( ip_column = l_col_alpha ).
|
||||
lo_column->set_auto_size( ip_auto_size = abap_true ) .
|
||||
ENDIF.
|
||||
* Now let's check for visible
|
||||
IF <fs_sfcat>-is_hidden = abap_true.
|
||||
lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ).
|
||||
lo_col_dim->set_visible( ip_visible = abap_false ) .
|
||||
lo_column = wo_worksheet->get_column( ip_column = l_col_alpha ).
|
||||
lo_column->set_visible( ip_visible = abap_false ) .
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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: <column_dimension> LIKE LINE OF column_dimensions.
|
||||
FIELD-SYMBOLS: <auto_size> LIKE LINE OF auto_sizes.
|
||||
|
||||
column_dimensions[] = me->get_column_dimensions( ).
|
||||
LOOP AT column_dimensions ASSIGNING <column_dimension>.
|
||||
auto_size = <column_dimension>-column_dimension->get_auto_size( ).
|
||||
lo_column_iterator = me->get_columns_iterator( ).
|
||||
WHILE lo_column_iterator->has_next( ) = abap_true.
|
||||
lo_column ?= lo_column_iterator->get_next( ).
|
||||
auto_size = lo_column->get_auto_size( ).
|
||||
IF auto_size = abap_true.
|
||||
APPEND INITIAL LINE TO auto_sizes ASSIGNING <auto_size>.
|
||||
<auto_size>-col_index = <column_dimension>-column_dimension->get_column_index( ).
|
||||
<auto_size>-col_index = lo_column->get_column_index( ).
|
||||
<auto_size>-width = -1.
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ENDWHILE.
|
||||
|
||||
" There is only something to do if there are some auto-size columns
|
||||
IF NOT auto_sizes IS INITIAL.
|
||||
highest_row = me->get_highest_row( ).
|
||||
LOOP AT auto_sizes ASSIGNING <auto_size>.
|
||||
* col_alpha = zcl_excel_common=>convert_column2alpha( <auto_size>-col_index )." issue #155 - less restrictive typing for ip_column
|
||||
count = 1.
|
||||
WHILE count <= highest_row.
|
||||
* Do not check merged cells
|
||||
IF is_cell_merged(
|
||||
ip_column = <auto_size>-col_index
|
||||
ip_row = count ) = abap_false.
|
||||
* Start of change # issue 139 - Dateretention of cellstyles
|
||||
* IF cell_style IS BOUND.
|
||||
* CREATE OBJECT cell_style.
|
||||
* ENDIF.
|
||||
* me->get_cell(
|
||||
* EXPORTING
|
||||
* ip_column = col_alpha " Cell Column
|
||||
* ip_row = count " Cell Row
|
||||
* IMPORTING
|
||||
* ep_value = cell_value " Cell Value
|
||||
* ep_style = cell_style " Request Cell Style as well
|
||||
* ).
|
||||
* " For an easy start we just take the number of characters as the width
|
||||
* width = strlen( cell_value ).
|
||||
* " Addition to solve issue #120, contribution by Stefan Schmöcker
|
||||
* " Calculate width using Font Size and Font Type
|
||||
* IF cell_style IS BOUND
|
||||
* AND cell_style->font IS BOUND.
|
||||
* width = cell_style->font->calculate_text_width( cell_value ).
|
||||
* ENDIF.
|
||||
* width = calculate_cell_width( ip_column = col_alpha " issue #155 - less restrictive typing for ip_column
|
||||
width = calculate_cell_width( ip_column = <auto_size>-col_index " issue #155 - less restrictive typing for ip_column
|
||||
ip_row = count ).
|
||||
* End of change # issue 139 - Dateretention of cellstyles
|
||||
IF width > <auto_size>-width.
|
||||
<auto_size>-width = width.
|
||||
ENDIF.
|
||||
width = calculate_cell_width( ip_column = <auto_size>-col_index " issue #155 - less restrictive typing for ip_column
|
||||
ip_row = count ).
|
||||
IF width > <auto_size>-width.
|
||||
<auto_size>-width = width.
|
||||
ENDIF.
|
||||
ENDIF.
|
||||
count = count + 1.
|
||||
ENDWHILE.
|
||||
* column_dimension = me->get_column_dimension( col_alpha ). " issue #155 - less restrictive typing for ip_column
|
||||
column_dimension = me->get_column_dimension( <auto_size>-col_index ). " issue #155 - less restrictive typing for ip_column
|
||||
column_dimension->set_width( <auto_size>-width ).
|
||||
lo_column = me->get_column( <auto_size>-col_index ). " issue #155 - less restrictive typing for ip_column
|
||||
lo_column->set_width( <auto_size>-width ).
|
||||
ENDLOOP.
|
||||
ENDIF.
|
||||
|
||||
endmethod.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD change_cell_style.
|
||||
|
@ -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: <fs_column_dimension> LIKE LINE OF column_dimensions.
|
||||
DATA: lv_column_alpha TYPE zexcel_cell_column_alpha. " issue #155 - less restrictive typing for ip_column
|
||||
METHOD get_column.
|
||||
|
||||
lv_column_alpha = zcl_excel_common=>convert_column2alpha( ip_column )." issue #155 - less restrictive typing for ip_column
|
||||
READ TABLE me->column_dimensions ASSIGNING <fs_column_dimension>
|
||||
WITH KEY column = lv_column_alpha. " issue #155 - less restrictive typing for ip_column
|
||||
DATA: lo_column_iterator TYPE REF TO cl_object_collection_iterator,
|
||||
lo_column TYPE REF TO zcl_excel_column,
|
||||
lv_column TYPE zexcel_cell_column.
|
||||
|
||||
IF NOT <fs_column_dimension> IS ASSIGNED.
|
||||
CREATE OBJECT r_column_dimension
|
||||
EXPORTING
|
||||
ip_index = lv_column_alpha " issue #155 - less restrictive typing for ip_column
|
||||
ip_excel = me->excel " issue #157 - Allow style for columns
|
||||
ip_worksheet = me. " issue #157 - Allow style for columns
|
||||
APPEND INITIAL LINE TO me->column_dimensions ASSIGNING <fs_column_dimension>.
|
||||
<fs_column_dimension>-column = lv_column_alpha. " issue #155 - less restrictive typing for ip_column
|
||||
<fs_column_dimension>-column_dimension = r_column_dimension.
|
||||
ELSE.
|
||||
r_column_dimension = <fs_column_dimension>-column_dimension.
|
||||
lv_column = zcl_excel_common=>convert_column2int( ip_column ).
|
||||
|
||||
lo_column_iterator = me->get_columns_iterator( ).
|
||||
WHILE lo_column_iterator->has_next( ) = abap_true.
|
||||
lo_column ?= lo_column_iterator->get_next( ).
|
||||
IF lo_column->get_column_index( ) = lv_column.
|
||||
eo_column = lo_column.
|
||||
EXIT.
|
||||
ENDIF.
|
||||
ENDWHILE.
|
||||
|
||||
IF eo_column IS NOT BOUND.
|
||||
eo_column = me->add_new_column( ip_column ).
|
||||
ENDIF.
|
||||
|
||||
endmethod.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
method GET_COLUMN_DIMENSIONS.
|
||||
r_column_dimension[] = me->column_dimensions[].
|
||||
endmethod.
|
||||
METHOD get_columns.
|
||||
eo_columns = me->columns.
|
||||
ENDMETHOD.
|
||||
|
||||
|
||||
METHOD get_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.
|
||||
|
|
|
@ -88,6 +88,12 @@
|
|||
<LANGU>I</LANGU>
|
||||
<DESCRIPT>Add drawing to the sheet</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
<CMPNAME>ADD_NEW_COLUMN</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Create a new column</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
<CMPNAME>ADD_NEW_CONDITIONAL_STYLE</CMPNAME>
|
||||
|
@ -210,15 +216,15 @@
|
|||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
<CMPNAME>COLUMN_DIMENSIONS</CMPNAME>
|
||||
<CMPNAME>COLUMNS</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Collection of column dimensions</DESCRIPT>
|
||||
<DESCRIPT>Ranges collection</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
<CMPNAME>COLUMN_DIMENSIONS</CMPNAME>
|
||||
<LANGU>I</LANGU>
|
||||
<DESCRIPT>Collection of column dimensions</DESCRIPT>
|
||||
<CMPNAME>COLUMN_DEFAULT</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Worksheet ColumnDimension</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
|
@ -292,18 +298,6 @@
|
|||
<LANGU>I</LANGU>
|
||||
<DESCRIPT>Data validations collection</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
<CMPNAME>DEFAULT_COLUMN_DIMENSION</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Worksheet ColumnDimension</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
<CMPNAME>DEFAULT_COLUMN_DIMENSION</CMPNAME>
|
||||
<LANGU>I</LANGU>
|
||||
<DESCRIPT>Worksheet ColumnDimension</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
<CMPNAME>DEFAULT_EXCEL_DATE_FORMAT</CMPNAME>
|
||||
|
@ -444,27 +438,21 @@
|
|||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
<CMPNAME>GET_COLUMN_DIMENSION</CMPNAME>
|
||||
<CMPNAME>GET_COLUMN</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Get column dimension at a specific column</DESCRIPT>
|
||||
<DESCRIPT>Get column object at a specific column</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
<CMPNAME>GET_COLUMN_DIMENSION</CMPNAME>
|
||||
<LANGU>I</LANGU>
|
||||
<DESCRIPT>Get column dimension at a specific column</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
<CMPNAME>GET_COLUMN_DIMENSIONS</CMPNAME>
|
||||
<CMPNAME>GET_COLUMNS</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Get column dimensions</DESCRIPT>
|
||||
<DESCRIPT>Get columns</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
<CMPNAME>GET_COLUMN_DIMENSIONS</CMPNAME>
|
||||
<LANGU>I</LANGU>
|
||||
<DESCRIPT>Get column dimensions</DESCRIPT>
|
||||
<CMPNAME>GET_COLUMNS_ITERATOR</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Get columns iterator</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
|
@ -504,15 +492,9 @@
|
|||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
<CMPNAME>GET_DEFAULT_COLUMN_DIMENSION</CMPNAME>
|
||||
<CMPNAME>GET_DEFAULT_COLUMN</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Get column dimension at a specific column</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
<CMPNAME>GET_DEFAULT_COLUMN_DIMENSION</CMPNAME>
|
||||
<LANGU>I</LANGU>
|
||||
<DESCRIPT>Get column dimension at a specific column</DESCRIPT>
|
||||
<DESCRIPT>Get column at a specific column</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
|
@ -542,7 +524,7 @@
|
|||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
<CMPNAME>GET_DEFAULT_ROW_DIMENSION</CMPNAME>
|
||||
<LANGU>E</LANGU>
|
||||
<DESCRIPT>Get column dimension at a specific column</DESCRIPT>
|
||||
<DESCRIPT>Get column at a specific column</DESCRIPT>
|
||||
</SEOCOMPOTX>
|
||||
<SEOCOMPOTX>
|
||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||
|
|
|
@ -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: <ls_sheet_content> TYPE zexcel_s_cell_data,
|
||||
<fs_range_merge> LIKE LINE OF lt_range_merge,
|
||||
<column_dimension> TYPE zexcel_s_worksheet_columndime,
|
||||
<row_dimension> TYPE zexcel_s_worksheet_rowdimensio,
|
||||
<ls_row_outline> 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 <row_dimension>.
|
||||
* IF <row_dimension>-row_dimension->get_outline_level( ) > outline_level_row.
|
||||
* outline_level_row = <row_dimension>-row_dimension->get_outline_level( ).
|
||||
* ENDIF.
|
||||
* ENDLOOP.
|
||||
* lv_value = outline_level_row.
|
||||
* SHIFT lv_value RIGHT DELETING TRAILING space.
|
||||
* SHIFT lv_value LEFT DELETING LEADING space.
|
||||
* lo_element->set_attribute_ns( name = lc_xml_attr_outlinelevelrow
|
||||
* value = lv_value ).
|
||||
|
||||
" outlineLevelCol
|
||||
LOOP AT column_dimensions ASSIGNING <column_dimension>.
|
||||
IF <column_dimension>-column_dimension->get_outline_level( ) > outline_level_col.
|
||||
outline_level_col = <column_dimension>-column_dimension->get_outline_level( ).
|
||||
WHILE lo_column_iterator->has_next( ) = abap_true.
|
||||
lo_column ?= lo_column_iterator->get_next( ).
|
||||
IF lo_column->get_outline_level( ) > outline_level_col.
|
||||
outline_level_col = lo_column->get_outline_level( ).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
ENDWHILE.
|
||||
|
||||
lv_value = outline_level_col.
|
||||
SHIFT lv_value RIGHT DELETING TRAILING space.
|
||||
SHIFT lv_value LEFT DELETING LEADING space.
|
||||
lo_element->set_attribute_ns( name = lc_xml_attr_outlinelevelcol
|
||||
value = lv_value ).
|
||||
* lv_value = 0.
|
||||
* SHIFT lv_value RIGHT DELETING TRAILING space.
|
||||
* SHIFT lv_value LEFT DELETING LEADING space.
|
||||
* lo_element->set_attribute_ns( name = lc_xml_attr_dydescent
|
||||
* value = lv_value ).
|
||||
|
||||
lo_element_root->append_child( new_child = lo_element ). " sheetFormatPr node
|
||||
|
||||
IF io_worksheet->zif_excel_sheet_properties~get_style( ) IS NOT INITIAL OR NOT column_dimensions IS INITIAL.
|
||||
* Reset column iterator
|
||||
lo_column_iterator = io_worksheet->get_columns_iterator( ).
|
||||
IF io_worksheet->zif_excel_sheet_properties~get_style( ) IS NOT INITIAL OR lo_column_iterator->has_next( ) = abap_true.
|
||||
" cols node
|
||||
lo_element = lo_document->create_simple_element( name = lc_xml_node_cols
|
||||
parent = lo_document ).
|
||||
" This code have to be enhanced in order to manage also column style properties
|
||||
" Now it is an out/out
|
||||
IF NOT column_dimensions IS INITIAL.
|
||||
LOOP AT column_dimensions ASSIGNING <column_dimension>.
|
||||
IF lo_column_iterator->has_next( ) = abap_true.
|
||||
WHILE lo_column_iterator->has_next( ) = abap_true.
|
||||
lo_column ?= lo_column_iterator->get_next( ).
|
||||
" col node
|
||||
lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_col
|
||||
parent = lo_document ).
|
||||
lv_value = <column_dimension>-column_dimension->get_column_index( ).
|
||||
lv_value = lo_column->get_column_index( ).
|
||||
SHIFT lv_value RIGHT DELETING TRAILING space.
|
||||
SHIFT lv_value LEFT DELETING LEADING space.
|
||||
lo_element_2->set_attribute_ns( name = lc_xml_attr_min
|
||||
|
@ -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>-column_dimension->get_width( ) < 0.
|
||||
IF lo_column->get_width( ) < 0.
|
||||
lo_element_2->set_attribute_ns( name = lc_xml_attr_width
|
||||
value = lc_xml_attr_defaultwidth ).
|
||||
ELSE.
|
||||
lv_value = <column_dimension>-column_dimension->get_width( ).
|
||||
lv_value = lo_column->get_width( ).
|
||||
lo_element_2->set_attribute_ns( name = lc_xml_attr_width
|
||||
value = lv_value ).
|
||||
ENDIF.
|
||||
" Column visibility
|
||||
IF <column_dimension>-column_dimension->get_visible( ) = abap_false.
|
||||
IF lo_column->get_visible( ) = abap_false.
|
||||
lo_element_2->set_attribute_ns( name = lc_xml_attr_hidden
|
||||
value = lc_xml_attr_true ).
|
||||
ENDIF.
|
||||
" Auto size?
|
||||
IF <column_dimension>-column_dimension->get_auto_size( ) = abap_true.
|
||||
IF lo_column->get_auto_size( ) = abap_true.
|
||||
lo_element_2->set_attribute_ns( name = lc_xml_attr_bestfit
|
||||
value = lc_xml_attr_true ).
|
||||
ENDIF.
|
||||
" Custom width?
|
||||
IF default_col_dimension IS BOUND.
|
||||
IF <column_dimension>-column_dimension->get_width( )
|
||||
<> default_col_dimension->get_width( ).
|
||||
IF lo_column_default IS BOUND.
|
||||
IF lo_column->get_width( ) <> lo_column_default->get_width( ).
|
||||
lo_element_2->set_attribute_ns( name = lc_xml_attr_customwidth
|
||||
value = lc_xml_attr_true ).
|
||||
|
||||
|
@ -3510,13 +3485,13 @@ METHOD create_xl_sheet.
|
|||
value = lc_xml_attr_true ).
|
||||
ENDIF.
|
||||
" Collapsed
|
||||
IF <column_dimension>-column_dimension->get_collapsed( ) = abap_true.
|
||||
IF lo_column->get_collapsed( ) = abap_true.
|
||||
lo_element_2->set_attribute_ns( name = lc_xml_attr_collapsed
|
||||
value = lc_xml_attr_true ).
|
||||
ENDIF.
|
||||
" outlineLevel
|
||||
IF <column_dimension>-column_dimension->get_outline_level( ) > 0.
|
||||
lv_value = <column_dimension>-column_dimension->get_outline_level( ).
|
||||
IF lo_column->get_outline_level( ) > 0.
|
||||
lv_value = lo_column->get_outline_level( ).
|
||||
|
||||
SHIFT lv_value RIGHT DELETING TRAILING space.
|
||||
SHIFT lv_value LEFT DELETING LEADING space.
|
||||
|
@ -3524,14 +3499,9 @@ METHOD create_xl_sheet.
|
|||
value = lv_value ).
|
||||
ENDIF.
|
||||
" Style
|
||||
* lv_value = <column_dimension>-column_dimension->get_xf_index( ). "del issue #157 - set column style
|
||||
lv_style_guid = <column_dimension>-column_dimension->get_column_style_guid( ). "ins issue #157 - set column style
|
||||
* lv_value = me->excel->get_style_index_in_styles( lv_style_guid ). "del issue #237
|
||||
lv_style_guid = lo_column->get_column_style_guid( ). "ins issue #157 - set column style
|
||||
CLEAR ls_style_mapping.
|
||||
READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = lv_style_guid.
|
||||
* lv_style_index = ls_style_mapping-style. "del issue #295
|
||||
* IF lv_style_index > 0. "ins issue #237 - del issue #295
|
||||
* lv_value = lv_style_index - 1. "ins issue #237 - del issue #295
|
||||
IF sy-subrc = 0. "ins issue #295
|
||||
lv_value = ls_style_mapping-style. "ins issue #295
|
||||
SHIFT lv_value RIGHT DELETING TRAILING space.
|
||||
|
@ -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 <column_dimension>.
|
||||
lv_column = zcl_excel_common=>convert_column2int( <column_dimension>-column ).
|
||||
lo_column_iterator = io_worksheet->get_columns_iterator( ).
|
||||
WHILE lo_column_iterator->has_next( ) = abap_true.
|
||||
lo_column ?= lo_column_iterator->get_next( ).
|
||||
lv_column = zcl_excel_common=>convert_column2int( lo_column->get_column_index( ) ).
|
||||
INSERT lv_column INTO TABLE lts_sorted_columns.
|
||||
ENDLOOP.
|
||||
ENDWHILE.
|
||||
|
||||
* Now find all columns that were missing so far
|
||||
missing_column-first_column = 1.
|
||||
|
@ -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 <row_dimension>.
|
||||
* IF sy-subrc = 0 AND <row_dimension>-row > lv_last_row.
|
||||
* lv_last_row = <row_dimension>-row.
|
||||
* ENDIF.
|
||||
** Last line with row-information set indirectly by row outline
|
||||
* lts_row_outlines = io_worksheet->get_row_outlines( ).
|
||||
* LOOP AT lts_row_outlines ASSIGNING <ls_row_outline>.
|
||||
* IF <ls_row_outline>-collapsed = 'X'.
|
||||
* lv_current_row = <ls_row_outline>-row_to + 1. " collapsed-status may be set on following row
|
||||
* ELSE.
|
||||
* lv_current_row = <ls_row_outline>-row_to. " collapsed-status may be set on following row
|
||||
* ENDIF.
|
||||
* IF lv_current_row > lv_last_row.
|
||||
* lv_last_row = lv_current_row.
|
||||
* ENDIF.
|
||||
* ENDLOOP.
|
||||
* READ TABLE io_worksheet->sheet_content TRANSPORTING NO FIELDS WITH KEY cell_row = lv_last_row.
|
||||
* IF sy-subrc <> 0.
|
||||
* ls_sheet_content_empty-cell_row = lv_last_row.
|
||||
* ls_sheet_content_empty-cell_column = 1.
|
||||
* ls_sheet_content_empty-cell_value = lc_dummy_cell_content.
|
||||
* INSERT ls_sheet_content_empty INTO TABLE io_worksheet->sheet_content.
|
||||
* ENDIF.
|
||||
*
|
||||
* CLEAR ls_sheet_content.
|
||||
* LOOP AT io_worksheet->sheet_content INTO ls_sheet_content.
|
||||
* IF lt_values IS INITIAL. " no values attached to autofilter " issue #368 autofilter filtering too much
|
||||
* CLEAR l_autofilter_hidden.
|
||||
* ELSE.
|
||||
* READ TABLE lt_values INTO ls_values WITH KEY column = ls_last_row-cell_column.
|
||||
* IF sy-subrc = 0 AND ls_values-value = ls_last_row-cell_value.
|
||||
* CLEAR l_autofilter_hidden.
|
||||
* ENDIF.
|
||||
* ENDIF.
|
||||
* CLEAR ls_style_mapping.
|
||||
** Create row element
|
||||
** issues #346,#154, #195 - problems when we have information in row_dimension but no cell content in that row
|
||||
** Get next line that may have to be added. If we have empty lines this is the next line after previous cell content
|
||||
** Otherwise it is the line of the current cell content
|
||||
* lv_current_row = ls_last_row-cell_row + 1.
|
||||
* IF lv_current_row > ls_sheet_content-cell_row.
|
||||
* lv_current_row = ls_sheet_content-cell_row.
|
||||
* ENDIF.
|
||||
** Fill in empty lines if necessary - assign an emtpy sheet content
|
||||
* lv_next_row = lv_current_row.
|
||||
* WHILE lv_next_row <= ls_sheet_content-cell_row.
|
||||
* lv_current_row = lv_next_row.
|
||||
* lv_next_row = lv_current_row + 1.
|
||||
* IF lv_current_row = ls_sheet_content-cell_row. " cell value found in this row
|
||||
* ASSIGN ls_sheet_content TO <ls_sheet_content>.
|
||||
* ELSE.
|
||||
** Check if empty row is really necessary - this is basically the case when we have information in row_dimension
|
||||
* lo_row_dim_empty = io_worksheet->get_row_dimension( lv_current_row ).
|
||||
* CHECK lo_row_dim_empty->get_row_height( ) >= 0 OR
|
||||
* lo_row_dim_empty->get_collapsed( io_worksheet ) = abap_true OR
|
||||
* lo_row_dim_empty->get_outline_level( io_worksheet ) > 0 OR
|
||||
* lo_row_dim_empty->get_xf_index( ) <> 0.
|
||||
* " Dummyentry A1
|
||||
* ls_sheet_content_empty-cell_row = lv_current_row.
|
||||
* ls_sheet_content_empty-cell_column = 1.
|
||||
* ASSIGN ls_sheet_content_empty TO <ls_sheet_content>.
|
||||
* ENDIF.
|
||||
*
|
||||
* IF ls_last_row-cell_row NE <ls_sheet_content>-cell_row.
|
||||
* IF lo_autofilter IS BOUND.
|
||||
* IF ls_area-row_start >= ls_last_row-cell_row OR " One less for header
|
||||
* ls_area-row_end < ls_last_row-cell_row .
|
||||
* CLEAR l_autofilter_hidden.
|
||||
* ENDIF.
|
||||
* ELSE.
|
||||
* CLEAR l_autofilter_hidden.
|
||||
* ENDIF.
|
||||
* IF ls_last_row-cell_row IS NOT INITIAL.
|
||||
* " Row visibility of previos row.
|
||||
* IF row_dimension->get_visible( io_worksheet ) = abap_false OR
|
||||
* l_autofilter_hidden = abap_true.
|
||||
* lo_element_2->set_attribute_ns( name = 'hidden' value = 'true').
|
||||
* ENDIF.
|
||||
* lo_element->append_child( new_child = lo_element_2 ). " row node
|
||||
* ENDIF.
|
||||
* " Add new row
|
||||
* lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_row
|
||||
* parent = lo_document ).
|
||||
* " r
|
||||
* lv_value = <ls_sheet_content>-cell_row.
|
||||
* SHIFT lv_value RIGHT DELETING TRAILING space.
|
||||
* SHIFT lv_value LEFT DELETING LEADING space.
|
||||
*
|
||||
* lo_element_2->set_attribute_ns( name = lc_xml_attr_r
|
||||
* value = lv_value ).
|
||||
* " Spans
|
||||
* lv_value = col_count.
|
||||
* CONCATENATE '1:' lv_value INTO lv_value.
|
||||
* SHIFT lv_value RIGHT DELETING TRAILING space.
|
||||
* SHIFT lv_value LEFT DELETING LEADING space.
|
||||
* lo_element_2->set_attribute_ns( name = lc_xml_attr_spans
|
||||
* value = lv_value ).
|
||||
* row_dimension = io_worksheet->get_row_dimension( <ls_sheet_content>-cell_row ).
|
||||
* " Do we need the row dimension attributes?
|
||||
* IF row_dimension->get_row_height( ) >= 0 OR
|
||||
* row_dimension->get_collapsed( io_worksheet ) = abap_true OR
|
||||
* row_dimension->get_outline_level( io_worksheet ) > 0 OR
|
||||
* row_dimension->get_xf_index( ) <> 0 OR
|
||||
* l_autofilter_hidden = abap_true.
|
||||
* " Row dimensions
|
||||
* IF row_dimension->get_row_height( ) >= 0.
|
||||
* lo_element_2->set_attribute_ns( name = 'customHeight' value = '1').
|
||||
* lv_value = row_dimension->get_row_height( ).
|
||||
* lo_element_2->set_attribute_ns( name = 'ht' value = lv_value ).
|
||||
* ENDIF.
|
||||
* " Collapsed
|
||||
* IF row_dimension->get_collapsed( io_worksheet ) = abap_true.
|
||||
* lo_element_2->set_attribute_ns( name = 'collapsed' value = 'true').
|
||||
* ENDIF.
|
||||
* " Outline level
|
||||
* IF row_dimension->get_outline_level( io_worksheet ) > 0.
|
||||
* lv_value = row_dimension->get_outline_level( io_worksheet ).
|
||||
* SHIFT lv_value RIGHT DELETING TRAILING space.
|
||||
* SHIFT lv_value LEFT DELETING LEADING space.
|
||||
* lo_element_2->set_attribute_ns( name = 'outlineLevel' value = lv_value ).
|
||||
* ENDIF.
|
||||
* " Style
|
||||
* IF row_dimension->get_xf_index( ) <> 0.
|
||||
* lv_value = row_dimension->get_xf_index( ).
|
||||
* lo_element_2->set_attribute_ns( name = 's' value = lv_value ).
|
||||
* lo_element_2->set_attribute_ns( name = 'customFormat' value = '1').
|
||||
* ENDIF.
|
||||
* ENDIF.
|
||||
* IF lt_values IS INITIAL. " no values attached to autofilter " issue #368 autofilter filtering too much
|
||||
* CLEAR l_autofilter_hidden.
|
||||
* ELSE.
|
||||
* l_autofilter_hidden = abap_true. " First default is not showing
|
||||
* ENDIF.
|
||||
* ELSE.
|
||||
*
|
||||
* ENDIF.
|
||||
* ENDWHILE.
|
||||
*
|
||||
* lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_c
|
||||
* parent = lo_document ).
|
||||
*
|
||||
* lo_element_3->set_attribute_ns( name = lc_xml_attr_r
|
||||
* value = <ls_sheet_content>-cell_coords ).
|
||||
*
|
||||
** begin of change issue #157 - allow column cellstyle
|
||||
** if no cellstyle is set, look into column, then into sheet
|
||||
* IF <ls_sheet_content>-cell_style IS NOT INITIAL.
|
||||
* lv_style_guid = <ls_sheet_content>-cell_style.
|
||||
* ELSE.
|
||||
**--------------------------------------------------------------------*
|
||||
** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 2 - start
|
||||
**--------------------------------------------------------------------*
|
||||
** Check if cell in any of the table areas
|
||||
* LOOP AT lt_table_areas TRANSPORTING NO FIELDS WHERE top <= <ls_sheet_content>-cell_row
|
||||
* AND bottom >= <ls_sheet_content>-cell_row
|
||||
* AND left <= <ls_sheet_content>-cell_column
|
||||
* AND right >= <ls_sheet_content>-cell_column.
|
||||
* EXIT.
|
||||
* ENDLOOP.
|
||||
* IF sy-subrc = 0.
|
||||
* CLEAR lv_style_guid. " No style --> EXCEL will use built-in-styles as declared in the tables-section
|
||||
* ELSE.
|
||||
**--------------------------------------------------------------------*
|
||||
** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 2 - end
|
||||
**--------------------------------------------------------------------*
|
||||
* lv_column_p = zcl_excel_common=>convert_column2alpha( <ls_sheet_content>-cell_column ).
|
||||
* READ TABLE column_dimensions WITH KEY column = lv_column_p ASSIGNING <column_dimension>.
|
||||
* IF sy-subrc = 0.
|
||||
* lv_style_guid = <column_dimension>-column_dimension->get_column_style_guid( ).
|
||||
* IF lv_style_guid IS INITIAL.
|
||||
* lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ).
|
||||
* ENDIF.
|
||||
* ELSE.
|
||||
* lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ).
|
||||
* ENDIF.
|
||||
**--------------------------------------------------------------------*
|
||||
** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 3 - start
|
||||
**--------------------------------------------------------------------*
|
||||
* ENDIF.
|
||||
**--------------------------------------------------------------------*
|
||||
** issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 3 - end
|
||||
**--------------------------------------------------------------------*
|
||||
* ENDIF.
|
||||
** IF <ls_sheet_content>-cell_style IS NOT INITIAL.
|
||||
** READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = <ls_sheet_content>-cell_style.
|
||||
* IF lv_style_guid IS NOT INITIAL.
|
||||
* READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = lv_style_guid.
|
||||
** end of change issue #157 - allow column cellstyles
|
||||
* lv_value = ls_style_mapping-style.
|
||||
* SHIFT lv_value RIGHT DELETING TRAILING space.
|
||||
* SHIFT lv_value LEFT DELETING LEADING space.
|
||||
* lo_element_3->set_attribute_ns( name = lc_xml_attr_s
|
||||
* value = lv_value ).
|
||||
* ENDIF.
|
||||
*
|
||||
* " For cells with formula ignore the value - Excel will calculate it
|
||||
* IF <ls_sheet_content>-cell_formula IS NOT INITIAL.
|
||||
* " fomula node
|
||||
* lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_f
|
||||
* parent = lo_document ).
|
||||
* lv_value = <ls_sheet_content>-cell_formula.
|
||||
* CONDENSE lv_value.
|
||||
* lo_element_4->set_value( value = lv_value ).
|
||||
* lo_element_3->append_child( new_child = lo_element_4 ). " fomula node
|
||||
* ELSEIF <ls_sheet_content>-cell_value IS NOT INITIAL "cell can have just style or formula
|
||||
* AND <ls_sheet_content>-cell_value <> lc_dummy_cell_content.
|
||||
* IF <ls_sheet_content>-data_type IS NOT INITIAL.
|
||||
* IF <ls_sheet_content>-data_type EQ 's_leading_blanks'.
|
||||
* lo_element_3->set_attribute_ns( name = lc_xml_attr_t
|
||||
* value = 's' ).
|
||||
* ELSE.
|
||||
* lo_element_3->set_attribute_ns( name = lc_xml_attr_t
|
||||
* value = <ls_sheet_content>-data_type ).
|
||||
* ENDIF.
|
||||
* ENDIF.
|
||||
*
|
||||
* " value node
|
||||
* lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_v
|
||||
* parent = lo_document ).
|
||||
*
|
||||
* IF <ls_sheet_content>-data_type EQ 's' OR <ls_sheet_content>-data_type EQ 's_leading_blanks'.
|
||||
* lv_value = me->get_shared_string_index( <ls_sheet_content>-cell_value ).
|
||||
* CONDENSE lv_value.
|
||||
* lo_element_4->set_value( value = lv_value ).
|
||||
* ELSE.
|
||||
* lv_value = <ls_sheet_content>-cell_value.
|
||||
* CONDENSE lv_value.
|
||||
* lo_element_4->set_value( value = lv_value ).
|
||||
* ENDIF.
|
||||
*
|
||||
* lo_element_3->append_child( new_child = lo_element_4 ). " value node
|
||||
* ENDIF.
|
||||
*
|
||||
* lo_element_2->append_child( new_child = lo_element_3 ). " column node
|
||||
* ls_last_row = <ls_sheet_content>.
|
||||
* ENDLOOP.
|
||||
* IF sy-subrc = 0.
|
||||
* READ TABLE lt_values INTO ls_values WITH KEY column = ls_last_row-cell_column.
|
||||
* IF sy-subrc = 0 AND ls_values-value = ls_last_row-cell_value.
|
||||
* CLEAR l_autofilter_hidden.
|
||||
* ENDIF.
|
||||
* IF lo_autofilter IS BOUND.
|
||||
* IF ls_area-row_start >= ls_last_row-cell_row OR " One less for header
|
||||
* ls_area-row_end < ls_last_row-cell_row .
|
||||
* CLEAR l_autofilter_hidden.
|
||||
* ENDIF.
|
||||
* ELSE.
|
||||
* CLEAR l_autofilter_hidden.
|
||||
* ENDIF.
|
||||
* " Row visibility of previos row.
|
||||
* IF row_dimension->get_visible( ) = abap_false OR
|
||||
* l_autofilter_hidden = abap_true.
|
||||
* lo_element_2->set_attribute_ns( name = 'hidden' value = 'true').
|
||||
* ENDIF.
|
||||
* lo_element->append_child( new_child = lo_element_2 ). " row node
|
||||
* ENDIF.
|
||||
* DELETE io_worksheet->sheet_content WHERE cell_value = lc_dummy_cell_content. " Get rid of dummyentries
|
||||
|
||||
lo_element_root->append_child( new_child = lo_element ). " sheetData node
|
||||
|
||||
IF lo_autofilter IS BOUND.
|
||||
|
@ -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: <ls_sheet_content> TYPE zexcel_s_cell_data,
|
||||
<column_dimension> TYPE zexcel_s_worksheet_columndime,
|
||||
<row_dimension> TYPE zexcel_s_worksheet_rowdimensio,
|
||||
<ls_row_outline> LIKE LINE OF lts_row_outlines.
|
||||
|
||||
|
@ -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( <ls_sheet_content>-cell_column ).
|
||||
READ TABLE it_column_dimensions WITH KEY column = lv_column_p ASSIGNING <column_dimension>.
|
||||
IF sy-subrc = 0.
|
||||
lv_style_guid = <column_dimension>-column_dimension->get_column_style_guid( ).
|
||||
lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ).
|
||||
lo_column ?= io_worksheet->get_column( <ls_sheet_content>-cell_column ).
|
||||
IF lo_column->get_column_index( ) = <ls_sheet_content>-cell_column.
|
||||
lv_style_guid = lo_column->get_column_style_guid( ).
|
||||
IF lv_style_guid IS INITIAL.
|
||||
lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ).
|
||||
ENDIF.
|
||||
ELSE.
|
||||
lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ).
|
||||
ENDIF.
|
||||
|
||||
*--------------------------------------------------------------------*
|
||||
*issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 3 - start
|
||||
*--------------------------------------------------------------------*
|
||||
|
|
|
@ -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:
|
||||
<sheet_content> TYPE zexcel_s_cell_data,
|
||||
<range_merge> LIKE LINE OF lt_range_merge,
|
||||
<column_dimension> TYPE zexcel_s_worksheet_columndime,
|
||||
<row_dimension> TYPE zexcel_s_worksheet_rowdimensio,
|
||||
<col> TYPE lty_column,
|
||||
<row> TYPE lty_row,
|
||||
|
@ -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 <column_dimension>.
|
||||
IF <column_dimension>-column_dimension->get_outline_level( ) > outline_level_col.
|
||||
l_worksheet-outlinelevelcol = <column_dimension>-column_dimension->get_outline_level( ).
|
||||
ENDIF.
|
||||
ENDLOOP.
|
||||
|
||||
*
|
||||
* Set column information (width, style, ...)
|
||||
*
|
||||
LOOP AT column_dimensions ASSIGNING <column_dimension>.
|
||||
APPEND INITIAL LINE TO l_worksheet-cols ASSIGNING <col>.
|
||||
<col>-min = <col>-max = <column_dimension>-column_dimension->get_column_index( ).
|
||||
<col>-width = <column_dimension>-column_dimension->get_width( ).
|
||||
IF <col>-width < 0.
|
||||
<col>-width = lc_default_col_width.
|
||||
ENDIF.
|
||||
IF <column_dimension>-column_dimension->get_visible( ) = abap_false.
|
||||
<col>-hidden = lc_true.
|
||||
ENDIF.
|
||||
IF <column_dimension>-column_dimension->get_auto_size( ) = abap_true.
|
||||
<col>-bestfit = lc_true.
|
||||
ENDIF.
|
||||
IF default_col_dimension IS BOUND.
|
||||
IF <column_dimension>-column_dimension->get_width( )
|
||||
<> default_col_dimension->get_width( ).
|
||||
IF lo_column_iterator->has_next( ) = abap_true.
|
||||
WHILE lo_column_iterator->has_next( ) = abap_true.
|
||||
lo_column ?= lo_column_iterator->get_next( ).
|
||||
IF lo_column->get_outline_level( ) > outline_level_col.
|
||||
l_worksheet-outlinelevelcol = lo_column->get_outline_level( ).
|
||||
ENDIF.
|
||||
APPEND INITIAL LINE TO l_worksheet-cols ASSIGNING <col>.
|
||||
<col>-min = <col>-max = lo_column->get_column_index( ).
|
||||
<col>-width = lo_column->get_width( ).
|
||||
IF <col>-width < 0.
|
||||
<col>-width = lc_default_col_width.
|
||||
ENDIF.
|
||||
IF lo_column->get_visible( ) = abap_false.
|
||||
<col>-hidden = lc_true.
|
||||
ENDIF.
|
||||
IF lo_column->get_auto_size( ) = abap_true.
|
||||
<col>-bestfit = lc_true.
|
||||
ENDIF.
|
||||
IF lo_column_default IS BOUND.
|
||||
IF lo_column->get_width( ) <> lo_column_default->get_width( ).
|
||||
<col>-customwidth = lc_true.
|
||||
ENDIF.
|
||||
ELSE.
|
||||
<col>-customwidth = lc_true.
|
||||
ENDIF.
|
||||
ELSE.
|
||||
<col>-customwidth = lc_true.
|
||||
ENDIF.
|
||||
IF <column_dimension>-column_dimension->get_collapsed( ) = abap_true.
|
||||
<col>-collapsed = lc_true.
|
||||
ENDIF.
|
||||
<col>-outlinelevel = <column_dimension>-column_dimension->get_outline_level( ).
|
||||
lv_style_guid = <column_dimension>-column_dimension->get_column_style_guid( ).
|
||||
<col>-style = me->excel->get_style_index_in_styles( lv_style_guid ) - 1.
|
||||
ENDLOOP.
|
||||
|
||||
IF lo_column->get_collapsed( ) = abap_true.
|
||||
<col>-collapsed = lc_true.
|
||||
ENDIF.
|
||||
<col>-outlinelevel = lo_column->get_outline_level( ).
|
||||
lv_style_guid = lo_column->get_column_style_guid( ).
|
||||
<col>-style = me->excel->get_style_index_in_styles( lv_style_guid ) - 1.
|
||||
*
|
||||
* Missing columns
|
||||
*
|
||||
* First collect columns that were already handled before.
|
||||
* The rest has to be inserted now.
|
||||
*
|
||||
LOOP AT column_dimensions ASSIGNING <column_dimension>.
|
||||
lv_column = zcl_excel_common=>convert_column2int( <column_dimension>-column ).
|
||||
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 <col>.
|
||||
<col>-min = missing_column-first_column.
|
||||
<col>-max = missing_column-last_column.
|
||||
IF default_col_dimension IS BOUND AND default_col_dimension->get_width( ) >= 0.
|
||||
<col>-width = default_col_dimension->get_width( ).
|
||||
IF lo_column_default IS BOUND AND lo_column_default->get_width( ) >= 0.
|
||||
<col>-width = lo_column_default->get_width( ).
|
||||
ELSE.
|
||||
<col>-width = lc_default_col_width.
|
||||
ENDIF.
|
||||
|
|
|
@ -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'.
|
||||
|
|
|
@ -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: <day_name> LIKE LINE OF day_names.
|
||||
|
@ -410,8 +410,8 @@ CLASS zcl_helper IMPLEMENTATION.
|
|||
ip_style = i_day_style " Single-Character Indicator
|
||||
).
|
||||
" width
|
||||
lo_col_dim = c_worksheet->get_column_dimension( col ).
|
||||
lo_col_dim->set_width( '3.6' ).
|
||||
lo_column = c_worksheet->get_column( col ).
|
||||
lo_column->set_width( '3.6' ).
|
||||
|
||||
|
||||
lv_date = lv_date + 1.
|
||||
|
@ -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
|
||||
|
||||
|
|
|
@ -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 ).
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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 ).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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'.
|
||||
|
||||
|
|
|
@ -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'.
|
||||
|
|
|
@ -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 ).
|
||||
|
||||
|
||||
|
||||
|
|
|
@ -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 ).
|
||||
|
||||
|
|
|
@ -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'.
|
||||
|
|
|
@ -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' ).
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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.
|
||||
|
|
|
@ -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( ).
|
||||
|
|
|
@ -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( ).
|
||||
|
|
Loading…
Reference in New Issue
Block a user