Merge branch 'master' into hvam/unit0511

This commit is contained in:
Lars Hvam 2021-11-10 05:55:22 +01:00 committed by GitHub
commit 197b5ebe52
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
12 changed files with 367 additions and 26 deletions

View File

@ -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.

View File

@ -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.

View File

@ -0,0 +1,17 @@
<?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_COLLECTION</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2xlsx - Object Collection</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -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.

View File

@ -0,0 +1,16 @@
<?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_COLLECTION_ITERATOR</CLSNAME>
<LANGU>E</LANGU>
<DESCRIPT>abap2xlsx - Object Iterator</DESCRIPT>
<STATE>1</STATE>
<CLSCCINCL>X</CLSCCINCL>
<FIXPT>X</FIXPT>
<UNICODE>X</UNICODE>
</VSEOCLASS>
</asx:values>
</asx:abap>
</abapGit>

View File

@ -68,7 +68,32 @@ CLASS lcl_excel_common_test DEFINITION FOR TESTING
iv_shift_cols TYPE i iv_shift_cols TYPE i
iv_shift_rows TYPE i iv_shift_rows TYPE i
iv_expected TYPE string. 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_ulc_in FOR TESTING.
METHODS is_cell_in_range_lrc_in FOR TESTING. METHODS is_cell_in_range_lrc_in FOR TESTING.
METHODS is_cell_in_range_leftside_out FOR TESTING. METHODS is_cell_in_range_leftside_out FOR TESTING.
@ -1181,7 +1206,7 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
ENDMETHOD. ENDMETHOD.
METHOD shift_formula. METHOD shift_formula_basic.
" Very basic check " Very basic check
macro_shift_formula( macro_shift_formula(
@ -1190,6 +1215,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 0 iv_shift_rows = 0
iv_expected = 'C17' ). iv_expected = 'C17' ).
ENDMETHOD.
METHOD shift_formula_rightdown.
" Check shift right and down " Check shift right and down
macro_shift_formula( macro_shift_formula(
iv_reference_formula = 'C17' iv_reference_formula = 'C17'
@ -1197,6 +1226,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 3 iv_shift_rows = 3
iv_expected = 'E20' ). iv_expected = 'E20' ).
ENDMETHOD.
METHOD shift_formula_leftup.
" Check shift left and up " Check shift left and up
macro_shift_formula( macro_shift_formula(
iv_reference_formula = 'C17' iv_reference_formula = 'C17'
@ -1204,6 +1237,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = -3 iv_shift_rows = -3
iv_expected = 'A14' ). iv_expected = 'A14' ).
ENDMETHOD.
METHOD shift_formula_fixedcolrows.
" Fixed columns/rows " Fixed columns/rows
macro_shift_formula( macro_shift_formula(
iv_reference_formula = '$C$17' iv_reference_formula = '$C$17'
@ -1211,6 +1248,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1 iv_shift_rows = 1
iv_expected = '$C$17' ). iv_expected = '$C$17' ).
ENDMETHOD.
METHOD shift_formula_mixedfixedrows.
" Operators and Ranges, mixed fixed rows or columns " Operators and Ranges, mixed fixed rows or columns
macro_shift_formula( macro_shift_formula(
iv_reference_formula = 'SUM($C17:C$23)+C30' iv_reference_formula = 'SUM($C17:C$23)+C30'
@ -1218,6 +1259,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 11 iv_shift_rows = 11
iv_expected = 'SUM($C28:D$23)+D41' ). iv_expected = 'SUM($C28:D$23)+D41' ).
ENDMETHOD.
METHOD shift_formula_rangename.
" Operators and Rangename " Operators and Rangename
macro_shift_formula( macro_shift_formula(
iv_reference_formula = 'RNGNAME1+C7' iv_reference_formula = 'RNGNAME1+C7'
@ -1225,6 +1270,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = -4 iv_shift_rows = -4
iv_expected = 'RNGNAME1+B3' ). iv_expected = 'RNGNAME1+B3' ).
ENDMETHOD.
METHOD shift_formula_stringlitconc.
" String literals and string concatenation " String literals and string concatenation
macro_shift_formula( macro_shift_formula(
iv_reference_formula = '"Date:"&TEXT(B2)' iv_reference_formula = '"Date:"&TEXT(B2)'
@ -1232,6 +1281,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1 iv_shift_rows = 1
iv_expected = '"Date:"&TEXT(C3)' ). iv_expected = '"Date:"&TEXT(C3)' ).
ENDMETHOD.
METHOD shift_formula_extref.
" External sheet reference " External sheet reference
macro_shift_formula( macro_shift_formula(
iv_reference_formula = '[TEST6.XLSX]SHEET1!A1' iv_reference_formula = '[TEST6.XLSX]SHEET1!A1'
@ -1239,6 +1292,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 11 iv_shift_rows = 11
iv_expected = '[TEST6.XLSX]SHEET1!B12' ). iv_expected = '[TEST6.XLSX]SHEET1!B12' ).
ENDMETHOD.
METHOD shift_formula_charblanks.
" superflous blanks, multi-argument functions, literals in function, unknown functions " superflous blanks, multi-argument functions, literals in function, unknown functions
macro_shift_formula( macro_shift_formula(
iv_reference_formula = `X(B13, "KK" ) ` iv_reference_formula = `X(B13, "KK" ) `
@ -1246,6 +1303,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1 iv_shift_rows = 1
iv_expected = `X(C14, "KK" ) ` ). iv_expected = `X(C14, "KK" ) ` ).
ENDMETHOD.
METHOD shift_formula_stringblanks.
" same as above - but with string input instead of Char-input " same as above - but with string input instead of Char-input
macro_shift_formula( macro_shift_formula(
iv_reference_formula = `SIN(SIN(SIN(SIN(E22))))` iv_reference_formula = `SIN(SIN(SIN(SIN(E22))))`
@ -1253,6 +1314,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1 iv_shift_rows = 1
iv_expected = 'SIN(SIN(SIN(SIN(E23))))' ). iv_expected = 'SIN(SIN(SIN(SIN(E23))))' ).
ENDMETHOD.
METHOD shift_formula_funcnoargs.
" Functions w/o arguments, No cellreferences " Functions w/o arguments, No cellreferences
macro_shift_formula( macro_shift_formula(
iv_reference_formula = 'HEUTE()' iv_reference_formula = 'HEUTE()'
@ -1260,6 +1325,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 5 iv_shift_rows = 5
iv_expected = 'HEUTE()' ). iv_expected = 'HEUTE()' ).
ENDMETHOD.
METHOD shift_formula_nocellref.
" No cellreferences " No cellreferences
macro_shift_formula( macro_shift_formula(
iv_reference_formula = '"B2"' iv_reference_formula = '"B2"'
@ -1267,6 +1336,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 5 iv_shift_rows = 5
iv_expected = '"B2"' ). iv_expected = '"B2"' ).
ENDMETHOD.
METHOD shift_formula_empty.
" Empty " Empty
macro_shift_formula( macro_shift_formula(
iv_reference_formula = '' iv_reference_formula = ''
@ -1274,6 +1347,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 5 iv_shift_rows = 5
iv_expected = '' ). iv_expected = '' ).
ENDMETHOD.
METHOD shift_formula_referr_colunder.
" Referencing error , column only , underflow " Referencing error , column only , underflow
macro_shift_formula( macro_shift_formula(
iv_reference_formula = 'A1+$A1+A$1+$A$1+B2' 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_shift_rows = 0
iv_expected = '#REF!+$A1+#REF!+$A$1+A2' ). iv_expected = '#REF!+$A1+#REF!+$A$1+A2' ).
ENDMETHOD.
METHOD shift_formula_referr_rowunder.
" Referencing error , row only , underflow " Referencing error , row only , underflow
macro_shift_formula( macro_shift_formula(
iv_reference_formula = 'A1+$A1+A$1+$A$1+B2' 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_shift_rows = -1
iv_expected = '#REF!+#REF!+A$1+$A$1+B1' ). iv_expected = '#REF!+#REF!+A$1+$A$1+B1' ).
ENDMETHOD.
METHOD shift_formula_referr_rowcolund.
" Referencing error , row and column , underflow " Referencing error , row and column , underflow
macro_shift_formula( macro_shift_formula(
iv_reference_formula = 'A1+$A1+A$1+$A$1+B2' 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_shift_rows = -1
iv_expected = '#REF!+#REF!+#REF!+$A$1+A1' ). iv_expected = '#REF!+#REF!+#REF!+$A$1+A1' ).
ENDMETHOD.
METHOD shift_formula_sheet_nodigit.
" Sheet name not ending with digit " Sheet name not ending with digit
macro_shift_formula( macro_shift_formula(
iv_reference_formula = 'Sheet!A1' iv_reference_formula = 'Sheet!A1'
@ -1302,6 +1391,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1 iv_shift_rows = 1
iv_expected = 'Sheet!B2' ). iv_expected = 'Sheet!B2' ).
ENDMETHOD.
METHOD shift_formula_sheet_nodig.
" Sheet name ending with digit " Sheet name ending with digit
macro_shift_formula( macro_shift_formula(
iv_reference_formula = 'Sheet2!A1' iv_reference_formula = 'Sheet2!A1'
@ -1309,6 +1402,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1 iv_shift_rows = 1
iv_expected = 'Sheet2!B2' ). iv_expected = 'Sheet2!B2' ).
ENDMETHOD.
METHOD shift_formula_sheet_special.
" Sheet name with special characters " Sheet name with special characters
macro_shift_formula( macro_shift_formula(
iv_reference_formula = |'Sheet name'!A1| iv_reference_formula = |'Sheet name'!A1|
@ -1316,6 +1413,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1 iv_shift_rows = 1
iv_expected = |'Sheet name'!B2| ). iv_expected = |'Sheet name'!B2| ).
ENDMETHOD.
METHOD shift_formula_resp_blanks_1.
" Respecting blanks " Respecting blanks
macro_shift_formula( macro_shift_formula(
iv_reference_formula = 'SUBTOTAL(109,Table1[SUM 1])' iv_reference_formula = 'SUBTOTAL(109,Table1[SUM 1])'
@ -1323,6 +1424,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1 iv_shift_rows = 1
iv_expected = 'SUBTOTAL(109,Table1[SUM 1])' ). iv_expected = 'SUBTOTAL(109,Table1[SUM 1])' ).
ENDMETHOD.
METHOD shift_formula_resp_blanks_2.
" Respecting blanks " Respecting blanks
macro_shift_formula( macro_shift_formula(
iv_reference_formula = 'B4 & C4' iv_reference_formula = 'B4 & C4'
@ -1330,6 +1435,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1 iv_shift_rows = 1
iv_expected = 'B5 & C5' ). iv_expected = 'B5 & C5' ).
ENDMETHOD.
METHOD shift_formula_range.
" F_1 is a range name, not a cell address " F_1 is a range name, not a cell address
macro_shift_formula( macro_shift_formula(
iv_reference_formula = 'SUM(F_1,F_2)' iv_reference_formula = 'SUM(F_1,F_2)'
@ -1337,6 +1446,9 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1 iv_shift_rows = 1
iv_expected = 'SUM(F_1,F_2)' ). iv_expected = 'SUM(F_1,F_2)' ).
ENDMETHOD.
METHOD shift_formula_notcols.
" RC are not columns " RC are not columns
macro_shift_formula( macro_shift_formula(
iv_reference_formula = 'INDIRECT("RC[4]",FALSE)' iv_reference_formula = 'INDIRECT("RC[4]",FALSE)'
@ -1344,6 +1456,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1 iv_shift_rows = 1
iv_expected = 'INDIRECT("RC[4]",FALSE)' ). iv_expected = 'INDIRECT("RC[4]",FALSE)' ).
ENDMETHOD.
METHOD shift_formula_name.
" A1 is a sheet name " A1 is a sheet name
macro_shift_formula( macro_shift_formula(
iv_reference_formula = |'A1'!$A$1| iv_reference_formula = |'A1'!$A$1|
@ -1351,6 +1467,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1 iv_shift_rows = 1
iv_expected = |'A1'!$A$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 " Reference to another column in the same row of a Table, with a space in the column name
macro_shift_formula( macro_shift_formula(
iv_reference_formula = 'Tbl[[#This Row],[Air fare]]' iv_reference_formula = 'Tbl[[#This Row],[Air fare]]'
@ -1358,6 +1478,10 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
iv_shift_rows = 1 iv_shift_rows = 1
iv_expected = 'Tbl[[#This Row],[Air fare]]' ). 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 " Reference to another column in the same row of a Table, inside more complex expression
macro_shift_formula( macro_shift_formula(
iv_reference_formula = 'Tbl[[#This Row],[Air]]+A1' iv_reference_formula = 'Tbl[[#This Row],[Air]]+A1'

View File

@ -100,7 +100,7 @@ CLASS zcl_excel_converter DEFINITION
DATA wt_colors TYPE zexcel_t_converter_col . DATA wt_colors TYPE zexcel_t_converter_col .
DATA wt_filter TYPE zexcel_t_converter_fil . DATA wt_filter TYPE zexcel_t_converter_fil .
CLASS-DATA wt_objects TYPE tt_alv_types . 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_sort_values TYPE tt_sort_values .
DATA wt_subtotal_rows TYPE tt_subtotal_rows . DATA wt_subtotal_rows TYPE tt_subtotal_rows .
DATA wt_styles TYPE tt_styles . DATA wt_styles TYPE tt_styles .
@ -249,7 +249,7 @@ ENDCLASS.
CLASS zcl_excel_converter IMPLEMENTATION. CLASS ZCL_EXCEL_CONVERTER IMPLEMENTATION.
METHOD ask_option. METHOD ask_option.

View File

@ -597,7 +597,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
lo_table TYPE REF TO zcl_excel_table. lo_table TYPE REF TO zcl_excel_table.
DATA: lv_worksheets_num TYPE i, 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_xml_node_worksheet_pn TYPE string,
lv_value TYPE string, lv_value TYPE string,
lv_comment_index TYPE i VALUE 1, " (+) GGAR 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. lo_element TYPE REF TO if_ixml_element.
DATA: lv_value TYPE string, DATA: lv_value TYPE string,
lv_date TYPE sydatum, lv_date TYPE d,
lv_time TYPE syuzeit. lv_time TYPE t.
********************************************************************** **********************************************************************
* STEP 1: Create [Content_Types].xml into the root of the ZIP * STEP 1: Create [Content_Types].xml into the root of the ZIP

View File

@ -32,23 +32,28 @@ CLASS zcl_excel_writer_csv DEFINITION
PRIVATE SECTION. PRIVATE SECTION.
DATA excel TYPE REF TO zcl_excel . DATA excel TYPE REF TO zcl_excel .
CLASS-DATA delimiter TYPE c VALUE ';'. "#EC NOTEXT . . . . . . . . . " . CLASS-DATA delimiter TYPE c VALUE ';' ##NO_TEXT.
CLASS-DATA enclosure TYPE c VALUE '"'. "#EC NOTEXT . . . . . . . . . " . CLASS-DATA enclosure TYPE c VALUE '"' ##NO_TEXT.
CLASS-DATA eol TYPE c LENGTH 2 VALUE cl_abap_char_utilities=>cr_lf. "#EC NOTEXT . . . . . . . . . " . 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_name TYPE zexcel_worksheets_name .
CLASS-DATA worksheet_index TYPE zexcel_active_worksheet . CLASS-DATA worksheet_index TYPE zexcel_active_worksheet .
METHODS create METHODS create
RETURNING RETURNING
VALUE(ep_excel) TYPE xstring . VALUE(ep_excel) TYPE xstring
RAISING
zcx_excel.
METHODS create_csv METHODS create_csv
RETURNING RETURNING
VALUE(ep_content) TYPE xstring . VALUE(ep_content) TYPE xstring
RAISING
zcx_excel .
ENDCLASS. ENDCLASS.
CLASS zcl_excel_writer_csv IMPLEMENTATION. CLASS ZCL_EXCEL_WRITER_CSV IMPLEMENTATION.
METHOD create. METHOD create.
@ -68,7 +73,7 @@ CLASS zcl_excel_writer_csv IMPLEMENTATION.
END OF lty_format. END OF lty_format.
DATA: lt_format TYPE STANDARD TABLE OF lty_format, DATA: lt_format TYPE STANDARD TABLE OF lty_format,
ls_format LIKE LINE OF lt_format, ls_format LIKE LINE OF lt_format,
lv_date TYPE dats, lv_date TYPE d,
lv_tmp TYPE string, lv_tmp TYPE string,
lv_time TYPE c LENGTH 8. lv_time TYPE c LENGTH 8.

View File

@ -12,7 +12,7 @@
<DD03P_TABLE> <DD03P_TABLE>
<DD03P> <DD03P>
<FIELDNAME>ABOVE_AVERAGE</FIELDNAME> <FIELDNAME>ABOVE_AVERAGE</FIELDNAME>
<ROLLNAME>FLAG</ROLLNAME> <ROLLNAME>XSDBOOLEAN</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD> <ADMINFIELD>0</ADMINFIELD>
<VALEXI>X</VALEXI> <VALEXI>X</VALEXI>
<SHLPORIGIN>F</SHLPORIGIN> <SHLPORIGIN>F</SHLPORIGIN>
@ -20,7 +20,7 @@
</DD03P> </DD03P>
<DD03P> <DD03P>
<FIELDNAME>EQUAL_AVERAGE</FIELDNAME> <FIELDNAME>EQUAL_AVERAGE</FIELDNAME>
<ROLLNAME>FLAG</ROLLNAME> <ROLLNAME>XSDBOOLEAN</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD> <ADMINFIELD>0</ADMINFIELD>
<VALEXI>X</VALEXI> <VALEXI>X</VALEXI>
<SHLPORIGIN>F</SHLPORIGIN> <SHLPORIGIN>F</SHLPORIGIN>
@ -28,9 +28,12 @@
</DD03P> </DD03P>
<DD03P> <DD03P>
<FIELDNAME>STANDARD_DEVIATION</FIELDNAME> <FIELDNAME>STANDARD_DEVIATION</FIELDNAME>
<ROLLNAME>NUM1</ROLLNAME>
<ADMINFIELD>0</ADMINFIELD> <ADMINFIELD>0</ADMINFIELD>
<COMPTYPE>E</COMPTYPE> <INTTYPE>N</INTTYPE>
<INTLEN>000002</INTLEN>
<DATATYPE>NUMC</DATATYPE>
<LENG>000001</LENG>
<MASK> NUMC</MASK>
</DD03P> </DD03P>
<DD03P> <DD03P>
<FIELDNAME>CELL_STYLE</FIELDNAME> <FIELDNAME>CELL_STYLE</FIELDNAME>

View File

@ -5,7 +5,6 @@
<DD04V> <DD04V>
<ROLLNAME>ZEXCEL_DOCSECURITY</ROLLNAME> <ROLLNAME>ZEXCEL_DOCSECURITY</ROLLNAME>
<DDLANGUAGE>E</DDLANGUAGE> <DDLANGUAGE>E</DDLANGUAGE>
<DOMNAME>NUMC1</DOMNAME>
<HEADLEN>55</HEADLEN> <HEADLEN>55</HEADLEN>
<SCRLEN1>10</SCRLEN1> <SCRLEN1>10</SCRLEN1>
<SCRLEN2>15</SCRLEN2> <SCRLEN2>15</SCRLEN2>
@ -16,7 +15,9 @@
<SCRTEXT_M>DocSecurity</SCRTEXT_M> <SCRTEXT_M>DocSecurity</SCRTEXT_M>
<SCRTEXT_L>DocSecurity</SCRTEXT_L> <SCRTEXT_L>DocSecurity</SCRTEXT_L>
<DTELMASTER>E</DTELMASTER> <DTELMASTER>E</DTELMASTER>
<REFKIND>D</REFKIND> <DATATYPE>NUMC</DATATYPE>
<LENG>000001</LENG>
<OUTPUTLEN>000001</OUTPUTLEN>
</DD04V> </DD04V>
</asx:values> </asx:values>
</asx:abap> </asx:abap>

View File

@ -6,5 +6,7 @@ INTERFACE zif_excel_writer
IMPORTING IMPORTING
!io_excel TYPE REF TO zcl_excel !io_excel TYPE REF TO zcl_excel
RETURNING RETURNING
VALUE(ep_file) TYPE xstring . VALUE(ep_file) TYPE xstring
RAISING
zcx_excel.
ENDINTERFACE. ENDINTERFACE.