diff --git a/src/zcl_excel_collection.clas.abap b/src/zcl_excel_collection.clas.abap
new file mode 100644
index 0000000..868f5ed
--- /dev/null
+++ b/src/zcl_excel_collection.clas.abap
@@ -0,0 +1,84 @@
+CLASS zcl_excel_collection DEFINITION
+ PUBLIC
+ FINAL
+ CREATE PUBLIC .
+
+ PUBLIC SECTION.
+
+ TYPES:
+ ty_collection TYPE STANDARD TABLE OF REF TO object .
+
+ DATA collection TYPE ty_collection READ-ONLY .
+
+ METHODS size
+ RETURNING
+ VALUE(size) TYPE i .
+ METHODS is_empty
+ RETURNING
+ VALUE(is_empty) TYPE abap_bool .
+ METHODS get
+ IMPORTING
+ !index TYPE i
+ RETURNING
+ VALUE(object) TYPE REF TO object .
+ METHODS get_iterator
+ RETURNING
+ VALUE(iterator) TYPE REF TO zcl_excel_collection_iterator .
+ METHODS add
+ IMPORTING
+ !element TYPE REF TO object .
+ METHODS remove
+ IMPORTING
+ !element TYPE REF TO object .
+ METHODS clear .
+ PROTECTED SECTION.
+ PRIVATE SECTION.
+ENDCLASS.
+
+
+
+CLASS ZCL_EXCEL_COLLECTION IMPLEMENTATION.
+
+
+ METHOD add .
+ APPEND element TO collection.
+ ENDMETHOD.
+
+
+ METHOD clear .
+ CLEAR collection.
+ ENDMETHOD.
+
+
+ METHOD get .
+ READ TABLE collection INDEX index INTO object.
+ ENDMETHOD.
+
+
+ METHOD get_iterator .
+ CREATE OBJECT iterator
+ EXPORTING
+ collection = me.
+ ENDMETHOD.
+
+
+ METHOD is_empty.
+ is_empty = boolc( size( ) = 0 ).
+ ENDMETHOD.
+
+
+ METHOD remove .
+ DATA obj TYPE REF TO object.
+ LOOP AT collection INTO obj.
+ IF obj = element.
+ DELETE collection.
+ RETURN.
+ ENDIF.
+ ENDLOOP.
+ ENDMETHOD.
+
+
+ METHOD size.
+ size = lines( collection ).
+ ENDMETHOD.
+ENDCLASS.
diff --git a/src/zcl_excel_collection.clas.testclasses.abap b/src/zcl_excel_collection.clas.testclasses.abap
new file mode 100644
index 0000000..5ef517e
--- /dev/null
+++ b/src/zcl_excel_collection.clas.testclasses.abap
@@ -0,0 +1,37 @@
+CLASS ltcl_test DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS FINAL.
+
+ PRIVATE SECTION.
+ METHODS test01 FOR TESTING RAISING cx_static_check.
+ENDCLASS.
+
+
+CLASS ltcl_test IMPLEMENTATION.
+
+ METHOD test01.
+
+ DATA lo_collection TYPE REF TO zcl_excel_collection.
+
+ CREATE OBJECT lo_collection.
+
+ cl_abap_unit_assert=>assert_equals(
+ act = lo_collection->size( )
+ exp = 0 ).
+
+ cl_abap_unit_assert=>assert_equals(
+ act = lo_collection->is_empty( )
+ exp = abap_true ).
+
+* heh, yea, add the collection to itself :)
+ lo_collection->add( lo_collection ).
+
+ cl_abap_unit_assert=>assert_equals(
+ act = lo_collection->size( )
+ exp = 1 ).
+
+ cl_abap_unit_assert=>assert_equals(
+ act = lo_collection->is_empty( )
+ exp = abap_false ).
+
+ ENDMETHOD.
+
+ENDCLASS.
diff --git a/src/zcl_excel_collection.clas.xml b/src/zcl_excel_collection.clas.xml
new file mode 100644
index 0000000..89f82e0
--- /dev/null
+++ b/src/zcl_excel_collection.clas.xml
@@ -0,0 +1,17 @@
+
+
+
+
+
+ ZCL_EXCEL_COLLECTION
+ E
+ abap2xlsx - Object Collection
+ 1
+ X
+ X
+ X
+ X
+
+
+
+
diff --git a/src/zcl_excel_collection_iterator.clas.abap b/src/zcl_excel_collection_iterator.clas.abap
new file mode 100644
index 0000000..d104dc2
--- /dev/null
+++ b/src/zcl_excel_collection_iterator.clas.abap
@@ -0,0 +1,52 @@
+CLASS zcl_excel_collection_iterator DEFINITION
+ PUBLIC
+ FINAL
+ CREATE PUBLIC .
+
+ PUBLIC SECTION.
+ METHODS get_index
+ RETURNING
+ VALUE(index) TYPE i.
+ METHODS has_next
+ RETURNING
+ VALUE(has_next) TYPE abap_bool.
+ METHODS get_next
+ RETURNING
+ VALUE(object) TYPE REF TO object.
+ METHODS constructor
+ IMPORTING
+ collection TYPE REF TO zCL_excel_COLLECTION.
+ PROTECTED SECTION.
+ PRIVATE SECTION.
+ DATA index TYPE i VALUE 0.
+ DATA collection TYPE REF TO zcl_excel_collection.
+ENDCLASS.
+
+
+
+CLASS ZCL_EXCEL_COLLECTION_ITERATOR IMPLEMENTATION.
+
+
+ METHOD constructor .
+ me->collection = collection.
+ ENDMETHOD.
+
+
+ METHOD get_index .
+ index = me->index.
+ ENDMETHOD.
+
+
+ METHOD get_next .
+ DATA obj TYPE REF TO object.
+ index = index + 1.
+ object = collection->get( index ).
+ ENDMETHOD.
+
+
+ METHOD has_next.
+ DATA obj TYPE REF TO object.
+ obj = collection->get( index + 1 ).
+ has_next = boolc( obj IS NOT INITIAL ).
+ ENDMETHOD.
+ENDCLASS.
diff --git a/src/zcl_excel_collection_iterator.clas.xml b/src/zcl_excel_collection_iterator.clas.xml
new file mode 100644
index 0000000..09546d0
--- /dev/null
+++ b/src/zcl_excel_collection_iterator.clas.xml
@@ -0,0 +1,16 @@
+
+
+
+
+
+ ZCL_EXCEL_COLLECTION_ITERATOR
+ E
+ abap2xlsx - Object Iterator
+ 1
+ X
+ X
+ X
+
+
+
+
diff --git a/src/zcl_excel_common.clas.testclasses.abap b/src/zcl_excel_common.clas.testclasses.abap
index b978b2e..903fda0 100644
--- a/src/zcl_excel_common.clas.testclasses.abap
+++ b/src/zcl_excel_common.clas.testclasses.abap
@@ -68,7 +68,32 @@ CLASS lcl_excel_common_test DEFINITION FOR TESTING
iv_shift_cols TYPE i
iv_shift_rows TYPE i
iv_expected TYPE string.
- METHODS: shift_formula FOR TESTING.
+ METHODS: shift_formula_basic FOR TESTING,
+ shift_formula_rightdown FOR TESTING,
+ shift_formula_leftup FOR TESTING,
+ shift_formula_fixedcolrows FOR TESTING,
+ shift_formula_mixedfixedrows FOR TESTING,
+ shift_formula_rangename FOR TESTING,
+ shift_formula_stringlitconc FOR TESTING,
+ shift_formula_extref FOR TESTING,
+ shift_formula_charblanks FOR TESTING,
+ shift_formula_stringblanks FOR TESTING,
+ shift_formula_funcnoargs FOR TESTING,
+ shift_formula_nocellref FOR TESTING,
+ shift_formula_empty FOR TESTING,
+ shift_formula_referr_colunder FOR TESTING,
+ shift_formula_referr_rowunder FOR TESTING,
+ shift_formula_referr_rowcolund FOR TESTING,
+ shift_formula_sheet_nodigit FOR TESTING,
+ shift_formula_sheet_nodig FOR TESTING,
+ shift_formula_sheet_special FOR TESTING,
+ shift_formula_resp_blanks_1 FOR TESTING,
+ shift_formula_resp_blanks_2 FOR TESTING,
+ shift_formula_range FOR TESTING,
+ shift_formula_notcols FOR TESTING,
+ shift_formula_name FOR TESTING,
+ shift_formula_refcolumn1 FOR TESTING,
+ shift_formula_refcolumn2 FOR TESTING.
METHODS is_cell_in_range_ulc_in FOR TESTING.
METHODS is_cell_in_range_lrc_in FOR TESTING.
METHODS is_cell_in_range_leftside_out FOR TESTING.
@@ -1181,7 +1206,7 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
ENDMETHOD.
- METHOD shift_formula.
+ METHOD shift_formula_basic.
" Very basic check
macro_shift_formula(
@@ -1190,6 +1215,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 0
iv_expected = 'C17' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_rightdown.
+
" Check shift right and down
macro_shift_formula(
iv_reference_formula = 'C17'
@@ -1197,6 +1226,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 3
iv_expected = 'E20' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_leftup.
+
" Check shift left and up
macro_shift_formula(
iv_reference_formula = 'C17'
@@ -1204,6 +1237,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = -3
iv_expected = 'A14' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_fixedcolrows.
+
" Fixed columns/rows
macro_shift_formula(
iv_reference_formula = '$C$17'
@@ -1211,6 +1248,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1
iv_expected = '$C$17' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_mixedfixedrows.
+
" Operators and Ranges, mixed fixed rows or columns
macro_shift_formula(
iv_reference_formula = 'SUM($C17:C$23)+C30'
@@ -1218,6 +1259,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 11
iv_expected = 'SUM($C28:D$23)+D41' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_rangename.
+
" Operators and Rangename
macro_shift_formula(
iv_reference_formula = 'RNGNAME1+C7'
@@ -1225,6 +1270,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = -4
iv_expected = 'RNGNAME1+B3' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_stringlitconc.
+
" String literals and string concatenation
macro_shift_formula(
iv_reference_formula = '"Date:"&TEXT(B2)'
@@ -1232,6 +1281,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1
iv_expected = '"Date:"&TEXT(C3)' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_extref.
+
" External sheet reference
macro_shift_formula(
iv_reference_formula = '[TEST6.XLSX]SHEET1!A1'
@@ -1239,6 +1292,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 11
iv_expected = '[TEST6.XLSX]SHEET1!B12' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_charblanks.
+
" superflous blanks, multi-argument functions, literals in function, unknown functions
macro_shift_formula(
iv_reference_formula = `X(B13, "KK" ) `
@@ -1246,6 +1303,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1
iv_expected = `X(C14, "KK" ) ` ).
+ ENDMETHOD.
+
+ METHOD shift_formula_stringblanks.
+
" same as above - but with string input instead of Char-input
macro_shift_formula(
iv_reference_formula = `SIN(SIN(SIN(SIN(E22))))`
@@ -1253,6 +1314,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1
iv_expected = 'SIN(SIN(SIN(SIN(E23))))' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_funcnoargs.
+
" Functions w/o arguments, No cellreferences
macro_shift_formula(
iv_reference_formula = 'HEUTE()'
@@ -1260,6 +1325,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 5
iv_expected = 'HEUTE()' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_nocellref.
+
" No cellreferences
macro_shift_formula(
iv_reference_formula = '"B2"'
@@ -1267,6 +1336,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 5
iv_expected = '"B2"' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_empty.
+
" Empty
macro_shift_formula(
iv_reference_formula = ''
@@ -1274,6 +1347,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 5
iv_expected = '' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_referr_colunder.
+
" Referencing error , column only , underflow
macro_shift_formula(
iv_reference_formula = 'A1+$A1+A$1+$A$1+B2'
@@ -1281,6 +1358,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 0
iv_expected = '#REF!+$A1+#REF!+$A$1+A2' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_referr_rowunder.
+
" Referencing error , row only , underflow
macro_shift_formula(
iv_reference_formula = 'A1+$A1+A$1+$A$1+B2'
@@ -1288,6 +1369,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = -1
iv_expected = '#REF!+#REF!+A$1+$A$1+B1' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_referr_rowcolund.
+
" Referencing error , row and column , underflow
macro_shift_formula(
iv_reference_formula = 'A1+$A1+A$1+$A$1+B2'
@@ -1295,6 +1380,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = -1
iv_expected = '#REF!+#REF!+#REF!+$A$1+A1' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_sheet_nodigit.
+
" Sheet name not ending with digit
macro_shift_formula(
iv_reference_formula = 'Sheet!A1'
@@ -1302,6 +1391,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1
iv_expected = 'Sheet!B2' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_sheet_nodig.
+
" Sheet name ending with digit
macro_shift_formula(
iv_reference_formula = 'Sheet2!A1'
@@ -1309,6 +1402,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1
iv_expected = 'Sheet2!B2' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_sheet_special.
+
" Sheet name with special characters
macro_shift_formula(
iv_reference_formula = |'Sheet name'!A1|
@@ -1316,6 +1413,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1
iv_expected = |'Sheet name'!B2| ).
+ ENDMETHOD.
+
+ METHOD shift_formula_resp_blanks_1.
+
" Respecting blanks
macro_shift_formula(
iv_reference_formula = 'SUBTOTAL(109,Table1[SUM 1])'
@@ -1323,6 +1424,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1
iv_expected = 'SUBTOTAL(109,Table1[SUM 1])' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_resp_blanks_2.
+
" Respecting blanks
macro_shift_formula(
iv_reference_formula = 'B4 & C4'
@@ -1330,6 +1435,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1
iv_expected = 'B5 & C5' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_range.
+
" F_1 is a range name, not a cell address
macro_shift_formula(
iv_reference_formula = 'SUM(F_1,F_2)'
@@ -1337,6 +1446,9 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1
iv_expected = 'SUM(F_1,F_2)' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_notcols.
" RC are not columns
macro_shift_formula(
iv_reference_formula = 'INDIRECT("RC[4]",FALSE)'
@@ -1344,6 +1456,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1
iv_expected = 'INDIRECT("RC[4]",FALSE)' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_name.
+
" A1 is a sheet name
macro_shift_formula(
iv_reference_formula = |'A1'!$A$1|
@@ -1351,6 +1467,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1
iv_expected = |'A1'!$A$1| ).
+ ENDMETHOD.
+
+ METHOD shift_formula_refcolumn1.
+
" Reference to another column in the same row of a Table, with a space in the column name
macro_shift_formula(
iv_reference_formula = 'Tbl[[#This Row],[Air fare]]'
@@ -1358,6 +1478,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1
iv_expected = 'Tbl[[#This Row],[Air fare]]' ).
+ ENDMETHOD.
+
+ METHOD shift_formula_refcolumn2.
+
" Reference to another column in the same row of a Table, inside more complex expression
macro_shift_formula(
iv_reference_formula = 'Tbl[[#This Row],[Air]]+A1'
diff --git a/src/zcl_excel_converter.clas.abap b/src/zcl_excel_converter.clas.abap
index 43b9aa4..8e599e4 100644
--- a/src/zcl_excel_converter.clas.abap
+++ b/src/zcl_excel_converter.clas.abap
@@ -100,15 +100,15 @@ CLASS zcl_excel_converter DEFINITION
DATA wt_colors TYPE zexcel_t_converter_col .
DATA wt_filter TYPE zexcel_t_converter_fil .
CLASS-DATA wt_objects TYPE tt_alv_types .
- CLASS-DATA w_fcount TYPE numc3 .
+ CLASS-DATA w_fcount TYPE n LENGTH 3 .
DATA wt_sort_values TYPE tt_sort_values .
DATA wt_subtotal_rows TYPE tt_subtotal_rows .
DATA wt_styles TYPE tt_styles .
- CONSTANTS c_type_hdr TYPE c VALUE 'H'. "#EC NOTEXT
- CONSTANTS c_type_str TYPE c VALUE 'P'. "#EC NOTEXT
- CONSTANTS c_type_nor TYPE c VALUE 'N'. "#EC NOTEXT
- CONSTANTS c_type_sub TYPE c VALUE 'S'. "#EC NOTEXT
- CONSTANTS c_type_tot TYPE c VALUE 'T'. "#EC NOTEXT
+ CONSTANTS c_type_hdr TYPE c VALUE 'H'. "#EC NOTEXT
+ CONSTANTS c_type_str TYPE c VALUE 'P'. "#EC NOTEXT
+ CONSTANTS c_type_nor TYPE c VALUE 'N'. "#EC NOTEXT
+ CONSTANTS c_type_sub TYPE c VALUE 'S'. "#EC NOTEXT
+ CONSTANTS c_type_tot TYPE c VALUE 'T'. "#EC NOTEXT
DATA wt_color_styles TYPE tt_color_styles .
CLASS-DATA ws_option TYPE zexcel_s_converter_option .
CLASS-DATA ws_indx TYPE indx .
@@ -249,7 +249,7 @@ ENDCLASS.
-CLASS zcl_excel_converter IMPLEMENTATION.
+CLASS ZCL_EXCEL_CONVERTER IMPLEMENTATION.
METHOD ask_option.
diff --git a/src/zcl_excel_writer_2007.clas.abap b/src/zcl_excel_writer_2007.clas.abap
index 4ad3139..4319c63 100644
--- a/src/zcl_excel_writer_2007.clas.abap
+++ b/src/zcl_excel_writer_2007.clas.abap
@@ -597,7 +597,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
lo_table TYPE REF TO zcl_excel_table.
DATA: lv_worksheets_num TYPE i,
- lv_worksheets_numc TYPE numc3,
+ lv_worksheets_numc TYPE n LENGTH 3,
lv_xml_node_worksheet_pn TYPE string,
lv_value TYPE string,
lv_comment_index TYPE i VALUE 1, " (+) GGAR
@@ -1075,8 +1075,8 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
lo_element TYPE REF TO if_ixml_element.
DATA: lv_value TYPE string,
- lv_date TYPE sydatum,
- lv_time TYPE syuzeit.
+ lv_date TYPE d,
+ lv_time TYPE t.
**********************************************************************
* STEP 1: Create [Content_Types].xml into the root of the ZIP
diff --git a/src/zcl_excel_writer_csv.clas.abap b/src/zcl_excel_writer_csv.clas.abap
index 5defa92..44f4560 100644
--- a/src/zcl_excel_writer_csv.clas.abap
+++ b/src/zcl_excel_writer_csv.clas.abap
@@ -32,23 +32,28 @@ CLASS zcl_excel_writer_csv DEFINITION
PRIVATE SECTION.
DATA excel TYPE REF TO zcl_excel .
- CLASS-DATA delimiter TYPE c VALUE ';'. "#EC NOTEXT . . . . . . . . . " .
- CLASS-DATA enclosure TYPE c VALUE '"'. "#EC NOTEXT . . . . . . . . . " .
- CLASS-DATA eol TYPE c LENGTH 2 VALUE cl_abap_char_utilities=>cr_lf. "#EC NOTEXT . . . . . . . . . " .
+ CLASS-DATA delimiter TYPE c VALUE ';' ##NO_TEXT.
+ CLASS-DATA enclosure TYPE c VALUE '"' ##NO_TEXT.
+ CLASS-DATA:
+ eol TYPE c LENGTH 2 VALUE cl_abap_char_utilities=>cr_lf ##NO_TEXT.
CLASS-DATA worksheet_name TYPE zexcel_worksheets_name .
CLASS-DATA worksheet_index TYPE zexcel_active_worksheet .
METHODS create
RETURNING
- VALUE(ep_excel) TYPE xstring .
+ VALUE(ep_excel) TYPE xstring
+ RAISING
+ zcx_excel.
METHODS create_csv
RETURNING
- VALUE(ep_content) TYPE xstring .
+ VALUE(ep_content) TYPE xstring
+ RAISING
+ zcx_excel .
ENDCLASS.
-CLASS zcl_excel_writer_csv IMPLEMENTATION.
+CLASS ZCL_EXCEL_WRITER_CSV IMPLEMENTATION.
METHOD create.
@@ -68,7 +73,7 @@ CLASS zcl_excel_writer_csv IMPLEMENTATION.
END OF lty_format.
DATA: lt_format TYPE STANDARD TABLE OF lty_format,
ls_format LIKE LINE OF lt_format,
- lv_date TYPE dats,
+ lv_date TYPE d,
lv_tmp TYPE string,
lv_time TYPE c LENGTH 8.
diff --git a/src/zexcel_conditional_above_avg.tabl.xml b/src/zexcel_conditional_above_avg.tabl.xml
index 6fac646..c932505 100644
--- a/src/zexcel_conditional_above_avg.tabl.xml
+++ b/src/zexcel_conditional_above_avg.tabl.xml
@@ -12,7 +12,7 @@
ABOVE_AVERAGE
- FLAG
+ XSDBOOLEAN
0
X
F
@@ -20,7 +20,7 @@
EQUAL_AVERAGE
- FLAG
+ XSDBOOLEAN
0
X
F
@@ -28,9 +28,12 @@
STANDARD_DEVIATION
- NUM1
0
- E
+ N
+ 000002
+ NUMC
+ 000001
+ NUMC
CELL_STYLE
diff --git a/src/zexcel_docsecurity.dtel.xml b/src/zexcel_docsecurity.dtel.xml
index 0fa7df3..20e3f22 100644
--- a/src/zexcel_docsecurity.dtel.xml
+++ b/src/zexcel_docsecurity.dtel.xml
@@ -5,7 +5,6 @@
ZEXCEL_DOCSECURITY
E
- NUMC1
55
10
15
@@ -16,7 +15,9 @@
DocSecurity
DocSecurity
E
- D
+ NUMC
+ 000001
+ 000001
diff --git a/src/zif_excel_writer.intf.abap b/src/zif_excel_writer.intf.abap
index 8fbf52a..9b7dfd7 100644
--- a/src/zif_excel_writer.intf.abap
+++ b/src/zif_excel_writer.intf.abap
@@ -6,5 +6,7 @@ INTERFACE zif_excel_writer
IMPORTING
!io_excel TYPE REF TO zcl_excel
RETURNING
- VALUE(ep_file) TYPE xstring .
+ VALUE(ep_file) TYPE xstring
+ RAISING
+ zcx_excel.
ENDINTERFACE.