mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 22:07:30 +08:00
Merge branch 'main' into fix-issue-1013-part2
This commit is contained in:
commit
22b622c5a5
|
@ -136,7 +136,9 @@
|
||||||
"local_class_naming": false,
|
"local_class_naming": false,
|
||||||
"main_file_contents": true,
|
"main_file_contents": true,
|
||||||
"message_exists": false,
|
"message_exists": false,
|
||||||
"msag_consistency": true,
|
"msag_consistency": {
|
||||||
|
"numericParamters": false
|
||||||
|
},
|
||||||
"newline_between_methods": false,
|
"newline_between_methods": false,
|
||||||
"no_public_attributes": false,
|
"no_public_attributes": false,
|
||||||
"object_naming": {
|
"object_naming": {
|
||||||
|
|
39
src/not_cloud/zcl_excel_converter_salv_model.clas.abap
Normal file
39
src/not_cloud/zcl_excel_converter_salv_model.clas.abap
Normal file
|
@ -0,0 +1,39 @@
|
||||||
|
CLASS zcl_excel_converter_salv_model DEFINITION
|
||||||
|
PUBLIC
|
||||||
|
INHERITING FROM cl_salv_model
|
||||||
|
FINAL
|
||||||
|
CREATE PUBLIC .
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
CLASS-METHODS is_get_metadata_callable
|
||||||
|
IMPORTING
|
||||||
|
io_salv TYPE REF TO cl_salv_table
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE abap_bool.
|
||||||
|
PROTECTED SECTION.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CLASS zcl_excel_converter_salv_model IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD is_get_metadata_callable.
|
||||||
|
DATA: lo_object TYPE REF TO object,
|
||||||
|
lo_model TYPE REF TO cl_salv_model.
|
||||||
|
|
||||||
|
" In 7.52 and older versions, we have a short dump with CL_SALV_TABLE->GET_METADATA if the ALV is not displayed
|
||||||
|
" (due to io_salv->r_controller->r_adapter not instantiated yet). That's later fixed by SAP (no short dump in 7.57).
|
||||||
|
" NB: r_controller is always instantiated.
|
||||||
|
lo_object = io_salv.
|
||||||
|
TRY.
|
||||||
|
lo_model ?= lo_object.
|
||||||
|
CATCH cx_sy_move_cast_error.
|
||||||
|
" In 7.57, CL_SALV_TABLE is no more a subclass of CL_SALV_MODEL, but CL_SALV_TABLE->GET_METADATA can be called.
|
||||||
|
result = abap_true.
|
||||||
|
RETURN.
|
||||||
|
ENDTRY.
|
||||||
|
result = boolc( lo_model->r_controller->r_adapter IS BOUND ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
16
src/not_cloud/zcl_excel_converter_salv_model.clas.xml
Normal file
16
src/not_cloud/zcl_excel_converter_salv_model.clas.xml
Normal 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_CONVERTER_SALV_MODEL</CLSNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>SALV model utility methods</DESCRIPT>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -74,8 +74,18 @@ CLASS zcl_excel_converter_salv_table IMPLEMENTATION.
|
||||||
ls_vari-report = ls_layout_key-report.
|
ls_vari-report = ls_layout_key-report.
|
||||||
ls_vari-handle = ls_layout_key-handle.
|
ls_vari-handle = ls_layout_key-handle.
|
||||||
ls_vari-log_group = ls_layout_key-logical_group.
|
ls_vari-log_group = ls_layout_key-logical_group.
|
||||||
|
ls_vari-variant = lo_layout->get_initial_layout( ).
|
||||||
ELSE.
|
ELSE.
|
||||||
|
IF zcl_excel_converter_salv_model=>is_get_metadata_callable( io_salv ) = abap_true.
|
||||||
io_salv->get_metadata( ) .
|
io_salv->get_metadata( ) .
|
||||||
|
ELSE.
|
||||||
|
" (do same as offline below)
|
||||||
|
cl_salv_controller_metadata=>get_variant(
|
||||||
|
EXPORTING
|
||||||
|
r_layout = lo_layout
|
||||||
|
CHANGING
|
||||||
|
s_variant = ls_vari ).
|
||||||
|
ENDIF.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ELSE.
|
ELSE.
|
||||||
* If we are offline we need to build this.
|
* If we are offline we need to build this.
|
||||||
|
|
|
@ -1548,10 +1548,13 @@ CLASS zcl_excel_ole IMPLEMENTATION.
|
||||||
CLEAR contentsitem-value.
|
CLEAR contentsitem-value.
|
||||||
|
|
||||||
* if type is not numeric -> dun display with zero
|
* if type is not numeric -> dun display with zero
|
||||||
|
IF <item> CO '0123456789.,-+E '.
|
||||||
WRITE <item> TO contentsitem-value NO-ZERO.
|
WRITE <item> TO contentsitem-value NO-ZERO.
|
||||||
|
|
||||||
SHIFT contentsitem-value LEFT DELETING LEADING space.
|
SHIFT contentsitem-value LEFT DELETING LEADING space.
|
||||||
|
ELSE.
|
||||||
|
WRITE <item> TO contentsitem-value.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
APPEND contentsitem TO contents.
|
APPEND contentsitem TO contents.
|
||||||
|
|
|
@ -133,6 +133,7 @@ CLASS zcl_excel_common DEFINITION
|
||||||
CLASS-METHODS number_to_excel_string
|
CLASS-METHODS number_to_excel_string
|
||||||
IMPORTING
|
IMPORTING
|
||||||
VALUE(ip_value) TYPE numeric
|
VALUE(ip_value) TYPE numeric
|
||||||
|
ip_currency TYPE waers_curc OPTIONAL
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ep_value) TYPE zexcel_cell_value .
|
VALUE(ep_value) TYPE zexcel_cell_value .
|
||||||
CLASS-METHODS recursive_class_to_struct
|
CLASS-METHODS recursive_class_to_struct
|
||||||
|
@ -846,7 +847,7 @@ CLASS zcl_excel_common IMPLEMENTATION.
|
||||||
lv_value = ip_value.
|
lv_value = ip_value.
|
||||||
|
|
||||||
|
|
||||||
FIND REGEX `\s|'` IN lv_value. " \s finds regular and white spaces
|
FIND REGEX `\s|'|-` IN lv_value. " \s finds regular and white spaces
|
||||||
IF sy-subrc = 0.
|
IF sy-subrc = 0.
|
||||||
REPLACE ALL OCCURRENCES OF `'` IN lv_value WITH `''`.
|
REPLACE ALL OCCURRENCES OF `'` IN lv_value WITH `''`.
|
||||||
CONCATENATE `'` lv_value `'` INTO lv_value .
|
CONCATENATE `'` lv_value `'` INTO lv_value .
|
||||||
|
@ -944,6 +945,15 @@ CLASS zcl_excel_common IMPLEMENTATION.
|
||||||
<fcat>-scrtext_s = ls_salv_t_column_ref-r_column->get_short_text( ).
|
<fcat>-scrtext_s = ls_salv_t_column_ref-r_column->get_short_text( ).
|
||||||
<fcat>-scrtext_m = ls_salv_t_column_ref-r_column->get_medium_text( ).
|
<fcat>-scrtext_m = ls_salv_t_column_ref-r_column->get_medium_text( ).
|
||||||
<fcat>-scrtext_l = ls_salv_t_column_ref-r_column->get_long_text( ).
|
<fcat>-scrtext_l = ls_salv_t_column_ref-r_column->get_long_text( ).
|
||||||
|
<fcat>-currency_column = ls_salv_t_column_ref-r_column->get_currency_column( ).
|
||||||
|
" If currency column not in structure then clear the field again
|
||||||
|
IF <fcat>-currency_column IS NOT INITIAL.
|
||||||
|
READ TABLE lt_salv_t_column_ref WITH KEY columnname = <fcat>-currency_column TRANSPORTING NO FIELDS.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
CLEAR <fcat>-currency_column.
|
||||||
|
ENDIF.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
IF ip_conv_exit_length = abap_false.
|
IF ip_conv_exit_length = abap_false.
|
||||||
<fcat>-abap_type = lo_salv_column_table->get_ddic_inttype( ).
|
<fcat>-abap_type = lo_salv_column_table->get_ddic_inttype( ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -1007,7 +1017,11 @@ CLASS zcl_excel_common IMPLEMENTATION.
|
||||||
METHOD number_to_excel_string.
|
METHOD number_to_excel_string.
|
||||||
DATA: lv_value_c TYPE c LENGTH 100.
|
DATA: lv_value_c TYPE c LENGTH 100.
|
||||||
|
|
||||||
|
IF ip_currency IS INITIAL.
|
||||||
WRITE ip_value TO lv_value_c EXPONENT 0 NO-GROUPING NO-SIGN.
|
WRITE ip_value TO lv_value_c EXPONENT 0 NO-GROUPING NO-SIGN.
|
||||||
|
ELSE.
|
||||||
|
WRITE ip_value TO lv_value_c EXPONENT 0 NO-GROUPING NO-SIGN CURRENCY ip_currency.
|
||||||
|
ENDIF.
|
||||||
REPLACE ALL OCCURRENCES OF ',' IN lv_value_c WITH '.'.
|
REPLACE ALL OCCURRENCES OF ',' IN lv_value_c WITH '.'.
|
||||||
|
|
||||||
ep_value = lv_value_c.
|
ep_value = lv_value_c.
|
||||||
|
@ -1691,4 +1705,5 @@ CLASS zcl_excel_common IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -45,6 +45,9 @@ CLASS lcl_excel_common_test DEFINITION FOR TESTING
|
||||||
METHODS date_to_excel_string4 FOR TESTING RAISING cx_static_check.
|
METHODS date_to_excel_string4 FOR TESTING RAISING cx_static_check.
|
||||||
METHODS date_to_excel_string5 FOR TESTING RAISING cx_static_check.
|
METHODS date_to_excel_string5 FOR TESTING RAISING cx_static_check.
|
||||||
METHODS date_to_excel_string6 FOR TESTING RAISING cx_static_check.
|
METHODS date_to_excel_string6 FOR TESTING RAISING cx_static_check.
|
||||||
|
METHODS amount_to_excel_string1 FOR TESTING RAISING cx_static_check.
|
||||||
|
METHODS amount_to_excel_string2 FOR TESTING RAISING cx_static_check.
|
||||||
|
METHODS amount_to_excel_string3 FOR TESTING RAISING cx_static_check.
|
||||||
METHODS: encrypt_password FOR TESTING.
|
METHODS: encrypt_password FOR TESTING.
|
||||||
METHODS: excel_string_to_date FOR TESTING.
|
METHODS: excel_string_to_date FOR TESTING.
|
||||||
METHODS excel_string_to_time1 FOR TESTING RAISING cx_static_check.
|
METHODS excel_string_to_time1 FOR TESTING RAISING cx_static_check.
|
||||||
|
@ -122,6 +125,12 @@ CLASS lcl_excel_common_test DEFINITION FOR TESTING
|
||||||
METHODS is_cell_in_range_upperside_out FOR TESTING.
|
METHODS is_cell_in_range_upperside_out FOR TESTING.
|
||||||
METHODS is_cell_in_range_rightside_out FOR TESTING.
|
METHODS is_cell_in_range_rightside_out FOR TESTING.
|
||||||
METHODS is_cell_in_range_lowerside_out FOR TESTING.
|
METHODS is_cell_in_range_lowerside_out FOR TESTING.
|
||||||
|
METHODS escape_string_whitespace1 FOR TESTING.
|
||||||
|
METHODS escape_string_whitespace2 FOR TESTING.
|
||||||
|
METHODS escape_string_whitespace3 FOR TESTING.
|
||||||
|
METHODS escape_string_quote FOR TESTING.
|
||||||
|
METHODS escape_string_hyphen FOR TESTING.
|
||||||
|
METHODS escape_string_regular FOR TESTING.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -461,6 +470,47 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD amount_to_excel_string1.
|
||||||
|
DATA ep_value TYPE zexcel_cell_value.
|
||||||
|
|
||||||
|
ep_value = zcl_excel_common=>number_to_excel_string( ip_value = '1003.99'
|
||||||
|
ip_currency = 'EUR' ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = ep_value
|
||||||
|
exp = '1003.99'
|
||||||
|
msg = 'Wrong currency amount conversion'
|
||||||
|
level = if_aunit_constants=>critical ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD amount_to_excel_string2.
|
||||||
|
DATA ep_value TYPE zexcel_cell_value.
|
||||||
|
|
||||||
|
ep_value = zcl_excel_common=>number_to_excel_string( ip_value = '-1003.99'
|
||||||
|
ip_currency = 'HUF' ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = ep_value
|
||||||
|
exp = '-100399'
|
||||||
|
msg = 'Wrong currency amount conversion'
|
||||||
|
level = if_aunit_constants=>critical ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD amount_to_excel_string3.
|
||||||
|
DATA ep_value TYPE zexcel_cell_value.
|
||||||
|
|
||||||
|
ep_value = zcl_excel_common=>number_to_excel_string( ip_value = '0'
|
||||||
|
ip_currency = 'HUF' ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = ep_value
|
||||||
|
exp = '0'
|
||||||
|
msg = 'Wrong currency amount conversion'
|
||||||
|
level = if_aunit_constants=>critical ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD encrypt_password.
|
METHOD encrypt_password.
|
||||||
* ========================
|
* ========================
|
||||||
|
@ -1597,4 +1647,88 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
ENDMETHOD. "is_cell_in_range_lowerside_out.
|
ENDMETHOD. "is_cell_in_range_lowerside_out.
|
||||||
|
|
||||||
|
METHOD escape_string_hyphen.
|
||||||
|
DATA: name TYPE string,
|
||||||
|
escaped_name TYPE string.
|
||||||
|
|
||||||
|
name = `A-B`.
|
||||||
|
|
||||||
|
escaped_name = zcl_excel_common=>escape_string( name ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals( act = escaped_name
|
||||||
|
exp = `'A-B'`
|
||||||
|
msg = 'Escaping - failed' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD escape_string_quote.
|
||||||
|
DATA: name TYPE string,
|
||||||
|
escaped_name TYPE string.
|
||||||
|
|
||||||
|
name = `A'B`.
|
||||||
|
|
||||||
|
escaped_name = zcl_excel_common=>escape_string( name ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals( act = escaped_name
|
||||||
|
exp = `'A''B'`
|
||||||
|
msg = `Escaping ' failed` ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD escape_string_regular.
|
||||||
|
DATA: name TYPE string,
|
||||||
|
escaped_name TYPE string.
|
||||||
|
|
||||||
|
name = `Ab1`.
|
||||||
|
|
||||||
|
escaped_name = zcl_excel_common=>escape_string( name ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals( act = escaped_name
|
||||||
|
exp = `Ab1`
|
||||||
|
msg = 'Escaped for no reason' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD escape_string_whitespace1.
|
||||||
|
DATA: name TYPE string,
|
||||||
|
escaped_name TYPE string.
|
||||||
|
|
||||||
|
name = `A B`.
|
||||||
|
|
||||||
|
escaped_name = zcl_excel_common=>escape_string( name ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals( act = escaped_name
|
||||||
|
exp = `'A B'`
|
||||||
|
msg = `Escaping ' ' (space) failed` ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD escape_string_whitespace2.
|
||||||
|
DATA: name TYPE string,
|
||||||
|
escaped_name TYPE string.
|
||||||
|
|
||||||
|
name = `A` && cl_abap_char_utilities=>horizontal_tab && `B`.
|
||||||
|
|
||||||
|
escaped_name = zcl_excel_common=>escape_string( name ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals( act = escaped_name
|
||||||
|
exp = `'A` && cl_abap_char_utilities=>horizontal_tab && `B'`
|
||||||
|
msg = `Escaping TAB failed` ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD escape_string_whitespace3.
|
||||||
|
DATA: name TYPE string,
|
||||||
|
escaped_name TYPE string.
|
||||||
|
|
||||||
|
name = `A` && cl_abap_char_utilities=>newline && `B`.
|
||||||
|
|
||||||
|
escaped_name = zcl_excel_common=>escape_string( name ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals( act = escaped_name
|
||||||
|
exp = `'A` && cl_abap_char_utilities=>newline && `B'`
|
||||||
|
msg = `Escaping LF failed` ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
|
@ -2859,6 +2859,21 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
|
||||||
ls_odd_footer-left_value = lo_ixml_hf_value_elem->get_value( ).
|
ls_odd_footer-left_value = lo_ixml_hf_value_elem->get_value( ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
lo_ixml_hf_value_elem = lo_ixml_headerfooter_elem->find_from_name_ns( name = 'oddHeader' uri = namespace-main ).
|
||||||
|
IF lo_ixml_hf_value_elem IS NOT INITIAL.
|
||||||
|
ls_odd_header-left_value = lo_ixml_hf_value_elem->get_value( ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
lo_ixml_hf_value_elem = lo_ixml_headerfooter_elem->find_from_name_ns( name = 'evenFooter' uri = namespace-main ).
|
||||||
|
IF lo_ixml_hf_value_elem IS NOT INITIAL.
|
||||||
|
ls_even_footer-left_value = lo_ixml_hf_value_elem->get_value( ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
lo_ixml_hf_value_elem = lo_ixml_headerfooter_elem->find_from_name_ns( name = 'evenHeader' uri = namespace-main ).
|
||||||
|
IF lo_ixml_hf_value_elem IS NOT INITIAL.
|
||||||
|
ls_even_header-left_value = lo_ixml_hf_value_elem->get_value( ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
* 2do§1 Header/footer
|
* 2do§1 Header/footer
|
||||||
" TODO.. get the rest.
|
" TODO.. get the rest.
|
||||||
|
|
||||||
|
|
41
src/zcl_excel_style_changer.clas.testclasses.abap
Normal file
41
src/zcl_excel_style_changer.clas.testclasses.abap
Normal file
|
@ -0,0 +1,41 @@
|
||||||
|
CLASS ltcl_test DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS FINAL.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
DATA mi_cut TYPE REF TO zif_excel_style_changer.
|
||||||
|
DATA mo_excel TYPE REF TO zcl_excel.
|
||||||
|
DATA mo_worksheet TYPE REF TO zcl_excel_worksheet.
|
||||||
|
|
||||||
|
METHODS setup RAISING cx_static_check.
|
||||||
|
METHODS apply FOR TESTING RAISING cx_static_check.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
CLASS ltcl_test IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD setup.
|
||||||
|
CREATE OBJECT mo_excel.
|
||||||
|
mo_worksheet = mo_excel->get_active_worksheet( ).
|
||||||
|
mi_cut = zcl_excel_style_changer=>create( mo_excel ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD apply.
|
||||||
|
|
||||||
|
DATA lv_guid TYPE zexcel_cell_style.
|
||||||
|
|
||||||
|
mo_worksheet->set_cell(
|
||||||
|
ip_column = 'B'
|
||||||
|
ip_row = 2
|
||||||
|
ip_value = 'Hello' ).
|
||||||
|
|
||||||
|
mi_cut->set_font_bold( abap_true ).
|
||||||
|
|
||||||
|
lv_guid = mi_cut->apply(
|
||||||
|
ip_worksheet = mo_worksheet
|
||||||
|
ip_column = 'B'
|
||||||
|
ip_row = 2 ).
|
||||||
|
|
||||||
|
mo_excel->get_style_to_guid( lv_guid ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
|
@ -10,6 +10,7 @@
|
||||||
<CLSCCINCL>X</CLSCCINCL>
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
<FIXPT>X</FIXPT>
|
<FIXPT>X</FIXPT>
|
||||||
<UNICODE>X</UNICODE>
|
<UNICODE>X</UNICODE>
|
||||||
|
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||||
</VSEOCLASS>
|
</VSEOCLASS>
|
||||||
</asx:values>
|
</asx:values>
|
||||||
</asx:abap>
|
</asx:abap>
|
||||||
|
|
|
@ -100,7 +100,7 @@ CLASS zcl_excel_theme_color_scheme IMPLEMENTATION.
|
||||||
parent = lo_elements ).
|
parent = lo_elements ).
|
||||||
lo_scheme_element->set_attribute( name = c_name value = name ).
|
lo_scheme_element->set_attribute( name = c_name value = name ).
|
||||||
|
|
||||||
"! Adding colors to scheme
|
" Adding colors to scheme
|
||||||
lo_color ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix
|
lo_color ?= io_document->create_simple_element_ns( prefix = zcl_excel_theme=>c_theme_prefix
|
||||||
name = c_dark1
|
name = c_dark1
|
||||||
parent = lo_scheme_element ).
|
parent = lo_scheme_element ).
|
||||||
|
|
|
@ -174,6 +174,7 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
VALUE(iv_default_descr) TYPE c OPTIONAL
|
VALUE(iv_default_descr) TYPE c OPTIONAL
|
||||||
!iv_no_line_if_empty TYPE abap_bool DEFAULT abap_false
|
!iv_no_line_if_empty TYPE abap_bool DEFAULT abap_false
|
||||||
!ip_conv_exit_length TYPE abap_bool DEFAULT abap_false
|
!ip_conv_exit_length TYPE abap_bool DEFAULT abap_false
|
||||||
|
!ip_conv_curr_amt_ext TYPE abap_bool DEFAULT abap_false
|
||||||
EXPORTING
|
EXPORTING
|
||||||
!es_table_settings TYPE zexcel_s_table_settings
|
!es_table_settings TYPE zexcel_s_table_settings
|
||||||
RAISING
|
RAISING
|
||||||
|
@ -501,6 +502,7 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
!ip_hyperlink TYPE REF TO zcl_excel_hyperlink OPTIONAL
|
!ip_hyperlink TYPE REF TO zcl_excel_hyperlink OPTIONAL
|
||||||
!ip_data_type TYPE zexcel_cell_data_type OPTIONAL
|
!ip_data_type TYPE zexcel_cell_data_type OPTIONAL
|
||||||
!ip_abap_type TYPE abap_typekind OPTIONAL
|
!ip_abap_type TYPE abap_typekind OPTIONAL
|
||||||
|
!ip_currency TYPE waers_curc OPTIONAL
|
||||||
!it_rtf TYPE zexcel_t_rtf OPTIONAL
|
!it_rtf TYPE zexcel_t_rtf OPTIONAL
|
||||||
!ip_column_formula_id TYPE mty_s_column_formula-id OPTIONAL
|
!ip_column_formula_id TYPE mty_s_column_formula-id OPTIONAL
|
||||||
!ip_conv_exit_length TYPE abap_bool DEFAULT abap_false
|
!ip_conv_exit_length TYPE abap_bool DEFAULT abap_false
|
||||||
|
@ -675,6 +677,7 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!it_field_catalog TYPE zexcel_t_fieldcatalog OPTIONAL
|
!it_field_catalog TYPE zexcel_t_fieldcatalog OPTIONAL
|
||||||
!iv_begin_row TYPE int4 DEFAULT 2
|
!iv_begin_row TYPE int4 DEFAULT 2
|
||||||
|
!iv_end_row TYPE int4 DEFAULT 0
|
||||||
EXPORTING
|
EXPORTING
|
||||||
!et_data TYPE STANDARD TABLE
|
!et_data TYPE STANDARD TABLE
|
||||||
!er_data TYPE REF TO data
|
!er_data TYPE REF TO data
|
||||||
|
@ -976,7 +979,8 @@ CLASS ZCL_EXCEL_WORKSHEET IMPLEMENTATION.
|
||||||
|
|
||||||
CONSTANTS:
|
CONSTANTS:
|
||||||
lc_top_left_column TYPE zexcel_cell_column_alpha VALUE 'A',
|
lc_top_left_column TYPE zexcel_cell_column_alpha VALUE 'A',
|
||||||
lc_top_left_row TYPE zexcel_cell_row VALUE 1.
|
lc_top_left_row TYPE zexcel_cell_row VALUE 1,
|
||||||
|
lc_no_currency TYPE waers_curc VALUE IS INITIAL.
|
||||||
|
|
||||||
DATA:
|
DATA:
|
||||||
lv_row_int TYPE zexcel_cell_row,
|
lv_row_int TYPE zexcel_cell_row,
|
||||||
|
@ -1002,7 +1006,8 @@ CLASS ZCL_EXCEL_WORKSHEET IMPLEMENTATION.
|
||||||
<ls_field_catalog> TYPE zexcel_s_fieldcatalog,
|
<ls_field_catalog> TYPE zexcel_s_fieldcatalog,
|
||||||
<ls_field_catalog_custom> TYPE zexcel_s_fieldcatalog,
|
<ls_field_catalog_custom> TYPE zexcel_s_fieldcatalog,
|
||||||
<fs_table_line> TYPE any,
|
<fs_table_line> TYPE any,
|
||||||
<fs_fldval> TYPE any.
|
<fs_fldval> TYPE any,
|
||||||
|
<fs_fldval_currency> TYPE waers.
|
||||||
|
|
||||||
ls_settings = is_table_settings.
|
ls_settings = is_table_settings.
|
||||||
|
|
||||||
|
@ -1101,6 +1106,7 @@ CLASS ZCL_EXCEL_WORKSHEET IMPLEMENTATION.
|
||||||
LOOP AT ip_table ASSIGNING <fs_table_line>.
|
LOOP AT ip_table ASSIGNING <fs_table_line>.
|
||||||
|
|
||||||
ASSIGN COMPONENT <ls_field_catalog>-fieldname OF STRUCTURE <fs_table_line> TO <fs_fldval>.
|
ASSIGN COMPONENT <ls_field_catalog>-fieldname OF STRUCTURE <fs_table_line> TO <fs_fldval>.
|
||||||
|
|
||||||
" issue #290 Add formula support in table
|
" issue #290 Add formula support in table
|
||||||
IF <ls_field_catalog>-formula EQ abap_true.
|
IF <ls_field_catalog>-formula EQ abap_true.
|
||||||
IF <ls_field_catalog>-style IS NOT INITIAL.
|
IF <ls_field_catalog>-style IS NOT INITIAL.
|
||||||
|
@ -1152,18 +1158,26 @@ CLASS ZCL_EXCEL_WORKSHEET IMPLEMENTATION.
|
||||||
ip_column_formula_id = ls_column_formula-id ).
|
ip_column_formula_id = ls_column_formula-id ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ELSE.
|
ELSE.
|
||||||
|
IF <ls_field_catalog>-currency_column IS INITIAL OR ip_conv_curr_amt_ext = abap_false.
|
||||||
|
ASSIGN lc_no_currency TO <fs_fldval_currency>.
|
||||||
|
ELSE.
|
||||||
|
ASSIGN COMPONENT <ls_field_catalog>-currency_column OF STRUCTURE <fs_table_line> TO <fs_fldval_currency>.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
IF <ls_field_catalog>-style IS NOT INITIAL.
|
IF <ls_field_catalog>-style IS NOT INITIAL.
|
||||||
IF <ls_field_catalog>-abap_type IS NOT INITIAL.
|
IF <ls_field_catalog>-abap_type IS NOT INITIAL.
|
||||||
me->set_cell( ip_column = lv_column_alpha
|
me->set_cell( ip_column = lv_column_alpha
|
||||||
ip_row = lv_row_int
|
ip_row = lv_row_int
|
||||||
ip_value = <fs_fldval>
|
ip_value = <fs_fldval>
|
||||||
ip_abap_type = <ls_field_catalog>-abap_type
|
ip_abap_type = <ls_field_catalog>-abap_type
|
||||||
|
ip_currency = <fs_fldval_currency>
|
||||||
ip_style = <ls_field_catalog>-style
|
ip_style = <ls_field_catalog>-style
|
||||||
ip_conv_exit_length = ip_conv_exit_length ).
|
ip_conv_exit_length = ip_conv_exit_length ).
|
||||||
ELSE.
|
ELSE.
|
||||||
me->set_cell( ip_column = lv_column_alpha
|
me->set_cell( ip_column = lv_column_alpha
|
||||||
ip_row = lv_row_int
|
ip_row = lv_row_int
|
||||||
ip_value = <fs_fldval>
|
ip_value = <fs_fldval>
|
||||||
|
ip_currency = <fs_fldval_currency>
|
||||||
ip_style = <ls_field_catalog>-style
|
ip_style = <ls_field_catalog>-style
|
||||||
ip_conv_exit_length = ip_conv_exit_length ).
|
ip_conv_exit_length = ip_conv_exit_length ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -1172,11 +1186,13 @@ CLASS ZCL_EXCEL_WORKSHEET IMPLEMENTATION.
|
||||||
me->set_cell( ip_column = lv_column_alpha
|
me->set_cell( ip_column = lv_column_alpha
|
||||||
ip_row = lv_row_int
|
ip_row = lv_row_int
|
||||||
ip_abap_type = <ls_field_catalog>-abap_type
|
ip_abap_type = <ls_field_catalog>-abap_type
|
||||||
|
ip_currency = <fs_fldval_currency>
|
||||||
ip_value = <fs_fldval>
|
ip_value = <fs_fldval>
|
||||||
ip_conv_exit_length = ip_conv_exit_length ).
|
ip_conv_exit_length = ip_conv_exit_length ).
|
||||||
ELSE.
|
ELSE.
|
||||||
me->set_cell( ip_column = lv_column_alpha
|
me->set_cell( ip_column = lv_column_alpha
|
||||||
ip_row = lv_row_int
|
ip_row = lv_row_int
|
||||||
|
ip_currency = <fs_fldval_currency>
|
||||||
ip_value = <fs_fldval>
|
ip_value = <fs_fldval>
|
||||||
ip_conv_exit_length = ip_conv_exit_length ).
|
ip_conv_exit_length = ip_conv_exit_length ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
@ -2265,6 +2281,10 @@ CLASS ZCL_EXCEL_WORKSHEET IMPLEMENTATION.
|
||||||
|
|
||||||
LOOP AT me->sheet_content ASSIGNING <ls_sheet_content> FROM lv_index.
|
LOOP AT me->sheet_content ASSIGNING <ls_sheet_content> FROM lv_index.
|
||||||
AT NEW cell_row.
|
AT NEW cell_row.
|
||||||
|
IF iv_end_row <> 0
|
||||||
|
AND <ls_sheet_content>-cell_row > iv_end_row.
|
||||||
|
EXIT.
|
||||||
|
ENDIF.
|
||||||
" New line
|
" New line
|
||||||
APPEND INITIAL LINE TO <lt_data> ASSIGNING <ls_data>.
|
APPEND INITIAL LINE TO <lt_data> ASSIGNING <ls_data>.
|
||||||
lv_index = sy-tabix.
|
lv_index = sy-tabix.
|
||||||
|
@ -3902,6 +3922,11 @@ CLASS ZCL_EXCEL_WORKSHEET IMPLEMENTATION.
|
||||||
cl_abap_typedescr=>typekind_decfloat OR
|
cl_abap_typedescr=>typekind_decfloat OR
|
||||||
cl_abap_typedescr=>typekind_decfloat16 OR
|
cl_abap_typedescr=>typekind_decfloat16 OR
|
||||||
cl_abap_typedescr=>typekind_decfloat34.
|
cl_abap_typedescr=>typekind_decfloat34.
|
||||||
|
IF lv_value_type = cl_abap_typedescr=>typekind_packed
|
||||||
|
AND ip_currency IS NOT INITIAL.
|
||||||
|
lv_value = zcl_excel_common=>number_to_excel_string( ip_value = <fs_value>
|
||||||
|
ip_currency = ip_currency ).
|
||||||
|
ELSE.
|
||||||
lo_addit = cl_abap_elemdescr=>get_f( ).
|
lo_addit = cl_abap_elemdescr=>get_f( ).
|
||||||
CREATE DATA lo_value_new TYPE HANDLE lo_addit.
|
CREATE DATA lo_value_new TYPE HANDLE lo_addit.
|
||||||
ASSIGN lo_value_new->* TO <fs_numeric>.
|
ASSIGN lo_value_new->* TO <fs_numeric>.
|
||||||
|
@ -3909,6 +3934,7 @@ CLASS ZCL_EXCEL_WORKSHEET IMPLEMENTATION.
|
||||||
<fs_numeric> = <fs_value>.
|
<fs_numeric> = <fs_value>.
|
||||||
lv_value = zcl_excel_common=>number_to_excel_string( ip_value = <fs_numeric> ).
|
lv_value = zcl_excel_common=>number_to_excel_string( ip_value = <fs_numeric> ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
WHEN cl_abap_typedescr=>typekind_char OR cl_abap_typedescr=>typekind_string OR cl_abap_typedescr=>typekind_num OR
|
WHEN cl_abap_typedescr=>typekind_char OR cl_abap_typedescr=>typekind_string OR cl_abap_typedescr=>typekind_num OR
|
||||||
cl_abap_typedescr=>typekind_hex.
|
cl_abap_typedescr=>typekind_hex.
|
||||||
|
|
|
@ -30,9 +30,15 @@ CLASS lcl_excel_worksheet_test DEFINITION FOR TESTING
|
||||||
METHODS: setup.
|
METHODS: setup.
|
||||||
METHODS: teardown.
|
METHODS: teardown.
|
||||||
METHODS: set_merge FOR TESTING RAISING cx_static_check.
|
METHODS: set_merge FOR TESTING RAISING cx_static_check.
|
||||||
METHODS: delete_merge FOR TESTING RAISING cx_static_check.
|
METHODS delete_merge1 FOR TESTING RAISING cx_static_check.
|
||||||
METHODS: get_dimension_range FOR TESTING RAISING cx_static_check.
|
METHODS delete_merge2 FOR TESTING RAISING cx_static_check.
|
||||||
ENDCLASS. "lcl_Excel_Worksheet_Test
|
METHODS delete_merge3 FOR TESTING RAISING cx_static_check.
|
||||||
|
METHODS delete_merge4 FOR TESTING RAISING cx_static_check.
|
||||||
|
METHODS delete_merge5 FOR TESTING RAISING cx_static_check.
|
||||||
|
METHODS delete_merge6 FOR TESTING RAISING cx_static_check.
|
||||||
|
METHODS get_dimension_range FOR TESTING RAISING cx_static_check.
|
||||||
|
METHODS get_rows_iterator FOR TESTING RAISING cx_static_check.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
CLASS ltc_calculate_table_bottom_rig DEFINITION FOR TESTING
|
CLASS ltc_calculate_table_bottom_rig DEFINITION FOR TESTING
|
||||||
|
@ -465,12 +471,11 @@ CLASS lcl_excel_worksheet_test IMPLEMENTATION.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD delete_merge.
|
METHOD delete_merge1.
|
||||||
* ====================
|
* ====================
|
||||||
DATA lt_merge TYPE string_table.
|
DATA lt_merge TYPE string_table.
|
||||||
DATA lv_merge TYPE string.
|
DATA lv_merge TYPE string.
|
||||||
DATA lv_size TYPE i.
|
DATA lv_size TYPE i.
|
||||||
DATA lv_index TYPE i.
|
|
||||||
|
|
||||||
* Test 1. Simple test delete all merges
|
* Test 1. Simple test delete all merges
|
||||||
|
|
||||||
|
@ -491,6 +496,13 @@ CLASS lcl_excel_worksheet_test IMPLEMENTATION.
|
||||||
msg = 'Expect merge table with 1 line fully cleared'
|
msg = 'Expect merge table with 1 line fully cleared'
|
||||||
level = if_aunit_constants=>critical
|
level = if_aunit_constants=>critical
|
||||||
).
|
).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD delete_merge2.
|
||||||
|
* ====================
|
||||||
|
DATA lt_merge TYPE string_table.
|
||||||
|
DATA lv_merge TYPE string.
|
||||||
|
DATA lv_size TYPE i.
|
||||||
|
|
||||||
* Test 2. Simple test delete all merges
|
* Test 2. Simple test delete all merges
|
||||||
|
|
||||||
|
@ -513,7 +525,14 @@ CLASS lcl_excel_worksheet_test IMPLEMENTATION.
|
||||||
msg = 'Expect merge table with few lines fully cleared'
|
msg = 'Expect merge table with few lines fully cleared'
|
||||||
level = if_aunit_constants=>critical
|
level = if_aunit_constants=>critical
|
||||||
).
|
).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD delete_merge3.
|
||||||
|
* ====================
|
||||||
|
DATA lt_merge TYPE string_table.
|
||||||
|
DATA lv_merge TYPE string.
|
||||||
|
DATA lv_size TYPE i.
|
||||||
|
DATA lv_index TYPE i.
|
||||||
* Test 3. Delete concrete merge with success
|
* Test 3. Delete concrete merge with success
|
||||||
|
|
||||||
DO 4 TIMES.
|
DO 4 TIMES.
|
||||||
|
@ -529,10 +548,14 @@ CLASS lcl_excel_worksheet_test IMPLEMENTATION.
|
||||||
).
|
).
|
||||||
|
|
||||||
CASE lv_index.
|
CASE lv_index.
|
||||||
WHEN 1. f_cut->delete_merge( ip_cell_column = 2 ip_cell_row = 2 ).
|
WHEN 1.
|
||||||
WHEN 2. f_cut->delete_merge( ip_cell_column = 2 ip_cell_row = 3 ).
|
f_cut->delete_merge( ip_cell_column = 2 ip_cell_row = 2 ).
|
||||||
WHEN 3. f_cut->delete_merge( ip_cell_column = 3 ip_cell_row = 2 ).
|
WHEN 2.
|
||||||
WHEN 4. f_cut->delete_merge( ip_cell_column = 3 ip_cell_row = 3 ).
|
f_cut->delete_merge( ip_cell_column = 2 ip_cell_row = 3 ).
|
||||||
|
WHEN 3.
|
||||||
|
f_cut->delete_merge( ip_cell_column = 3 ip_cell_row = 2 ).
|
||||||
|
WHEN 4.
|
||||||
|
f_cut->delete_merge( ip_cell_column = 3 ip_cell_row = 3 ).
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
|
||||||
lt_merge = f_cut->get_merge( ).
|
lt_merge = f_cut->get_merge( ).
|
||||||
|
@ -545,7 +568,14 @@ CLASS lcl_excel_worksheet_test IMPLEMENTATION.
|
||||||
level = if_aunit_constants=>critical
|
level = if_aunit_constants=>critical
|
||||||
).
|
).
|
||||||
ENDDO.
|
ENDDO.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD delete_merge4.
|
||||||
|
* ====================
|
||||||
|
DATA lt_merge TYPE string_table.
|
||||||
|
DATA lv_merge TYPE string.
|
||||||
|
DATA lv_size TYPE i.
|
||||||
|
DATA lv_index TYPE i.
|
||||||
* Test 4. Delete concrete merge with fail
|
* Test 4. Delete concrete merge with fail
|
||||||
|
|
||||||
DO 4 TIMES.
|
DO 4 TIMES.
|
||||||
|
@ -561,10 +591,14 @@ CLASS lcl_excel_worksheet_test IMPLEMENTATION.
|
||||||
).
|
).
|
||||||
|
|
||||||
CASE lv_index.
|
CASE lv_index.
|
||||||
WHEN 1. f_cut->delete_merge( ip_cell_column = 1 ip_cell_row = 2 ).
|
WHEN 1.
|
||||||
WHEN 2. f_cut->delete_merge( ip_cell_column = 2 ip_cell_row = 1 ).
|
f_cut->delete_merge( ip_cell_column = 1 ip_cell_row = 2 ).
|
||||||
WHEN 3. f_cut->delete_merge( ip_cell_column = 4 ip_cell_row = 2 ).
|
WHEN 2.
|
||||||
WHEN 4. f_cut->delete_merge( ip_cell_column = 2 ip_cell_row = 4 ).
|
f_cut->delete_merge( ip_cell_column = 2 ip_cell_row = 1 ).
|
||||||
|
WHEN 3.
|
||||||
|
f_cut->delete_merge( ip_cell_column = 4 ip_cell_row = 2 ).
|
||||||
|
WHEN 4.
|
||||||
|
f_cut->delete_merge( ip_cell_column = 2 ip_cell_row = 4 ).
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
|
||||||
lt_merge = f_cut->get_merge( ).
|
lt_merge = f_cut->get_merge( ).
|
||||||
|
@ -577,6 +611,13 @@ CLASS lcl_excel_worksheet_test IMPLEMENTATION.
|
||||||
level = if_aunit_constants=>critical
|
level = if_aunit_constants=>critical
|
||||||
).
|
).
|
||||||
ENDDO.
|
ENDDO.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD delete_merge5.
|
||||||
|
* ====================
|
||||||
|
DATA lt_merge TYPE string_table.
|
||||||
|
DATA lv_merge TYPE string.
|
||||||
|
DATA lv_size TYPE i.
|
||||||
|
|
||||||
* Test 5. Delete concrete merge #1
|
* Test 5. Delete concrete merge #1
|
||||||
|
|
||||||
|
@ -614,6 +655,13 @@ CLASS lcl_excel_worksheet_test IMPLEMENTATION.
|
||||||
msg = 'Expect delete B2:C3 merge'
|
msg = 'Expect delete B2:C3 merge'
|
||||||
level = if_aunit_constants=>critical
|
level = if_aunit_constants=>critical
|
||||||
).
|
).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD delete_merge6.
|
||||||
|
* ====================
|
||||||
|
DATA lt_merge TYPE string_table.
|
||||||
|
DATA lv_merge TYPE string.
|
||||||
|
DATA lv_size TYPE i.
|
||||||
|
|
||||||
* Test 6. Delete concrete merge #2
|
* Test 6. Delete concrete merge #2
|
||||||
|
|
||||||
|
@ -682,6 +730,18 @@ CLASS lcl_excel_worksheet_test IMPLEMENTATION.
|
||||||
).
|
).
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
METHOD get_rows_iterator.
|
||||||
|
DATA lo_iterator TYPE REF TO zcl_excel_collection_iterator.
|
||||||
|
DATA lv_index TYPE i.
|
||||||
|
|
||||||
|
f_cut->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ).
|
||||||
|
lo_iterator = f_cut->get_rows_iterator( ).
|
||||||
|
lv_index = lo_iterator->get_index( ).
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lv_index
|
||||||
|
exp = 0 ).
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
ENDCLASS. "lcl_Excel_Worksheet_Test
|
ENDCLASS. "lcl_Excel_Worksheet_Test
|
||||||
|
|
||||||
|
|
||||||
|
|
|
@ -60,6 +60,10 @@ CLASS zcl_excel_writer_csv IMPLEMENTATION.
|
||||||
|
|
||||||
* .csv format with ; delimiter
|
* .csv format with ; delimiter
|
||||||
|
|
||||||
|
* Start of insertion # issue 1134 - Dateretention of cellstyles(issue #139)
|
||||||
|
me->excel->add_static_styles( ).
|
||||||
|
* End of insertion # issue 1134 - Dateretention of cellstyles(issue #139)
|
||||||
|
|
||||||
ep_excel = me->create_csv( ).
|
ep_excel = me->create_csv( ).
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -42,6 +42,14 @@
|
||||||
<LFD_NUM>0001</LFD_NUM>
|
<LFD_NUM>0001</LFD_NUM>
|
||||||
</SOTR_USE>
|
</SOTR_USE>
|
||||||
</SOTR_USE>
|
</SOTR_USE>
|
||||||
|
<SOTS_USE>
|
||||||
|
<SOTR_USEU>
|
||||||
|
<PGMID>LIMU</PGMID>
|
||||||
|
<OBJECT>CPUB</OBJECT>
|
||||||
|
<OBJ_NAME>ZCX_EXCEL</OBJ_NAME>
|
||||||
|
<LFD_NUM>0001</LFD_NUM>
|
||||||
|
</SOTR_USEU>
|
||||||
|
</SOTS_USE>
|
||||||
<DESCRIPTIONS>
|
<DESCRIPTIONS>
|
||||||
<SEOCOMPOTX>
|
<SEOCOMPOTX>
|
||||||
<CMPNAME>CONSTRUCTOR</CMPNAME>
|
<CMPNAME>CONSTRUCTOR</CMPNAME>
|
||||||
|
|
|
@ -117,7 +117,132 @@
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
<COMPTYPE>E</COMPTYPE>
|
<COMPTYPE>E</COMPTYPE>
|
||||||
</DD03P>
|
</DD03P>
|
||||||
|
<DD03P>
|
||||||
|
<FIELDNAME>CURRENCY_COLUMN</FIELDNAME>
|
||||||
|
<ROLLNAME>ZEXCEL_FIELDNAME</ROLLNAME>
|
||||||
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
|
<COMPTYPE>E</COMPTYPE>
|
||||||
|
</DD03P>
|
||||||
</DD03P_TABLE>
|
</DD03P_TABLE>
|
||||||
|
<I18N_LANGS>
|
||||||
|
<LANGU>1</LANGU>
|
||||||
|
<LANGU>4</LANGU>
|
||||||
|
<LANGU>5</LANGU>
|
||||||
|
<LANGU>6</LANGU>
|
||||||
|
<LANGU>8</LANGU>
|
||||||
|
<LANGU>B</LANGU>
|
||||||
|
<LANGU>C</LANGU>
|
||||||
|
<LANGU>F</LANGU>
|
||||||
|
<LANGU>G</LANGU>
|
||||||
|
<LANGU>H</LANGU>
|
||||||
|
<LANGU>K</LANGU>
|
||||||
|
<LANGU>L</LANGU>
|
||||||
|
<LANGU>N</LANGU>
|
||||||
|
<LANGU>O</LANGU>
|
||||||
|
<LANGU>Q</LANGU>
|
||||||
|
<LANGU>R</LANGU>
|
||||||
|
<LANGU>S</LANGU>
|
||||||
|
<LANGU>T</LANGU>
|
||||||
|
<LANGU>U</LANGU>
|
||||||
|
<LANGU>V</LANGU>
|
||||||
|
<LANGU>W</LANGU>
|
||||||
|
<LANGU>c</LANGU>
|
||||||
|
<LANGU>d</LANGU>
|
||||||
|
</I18N_LANGS>
|
||||||
|
<DD02_TEXTS>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>1</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>4</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>5</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>6</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>8</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>B</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>C</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>F</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>G</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>H</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>K</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>L</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>N</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>O</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>Q</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>R</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>S</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>T</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>U</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>V</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>W</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>c</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
<item>
|
||||||
|
<DDLANGUAGE>d</DDLANGUAGE>
|
||||||
|
<DDTEXT>Fieldcatalog for Table Binding</DDTEXT>
|
||||||
|
</item>
|
||||||
|
</DD02_TEXTS>
|
||||||
</asx:values>
|
</asx:values>
|
||||||
</asx:abap>
|
</asx:abap>
|
||||||
</abapGit>
|
</abapGit>
|
||||||
|
|
Loading…
Reference in New Issue
Block a user