diff --git a/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk b/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk
index afd3a61..5a1dd73 100644
--- a/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk
+++ b/ZA2X/CLAS/ZCL_EXCEL_COMMON.slnk
@@ -361,7 +361,7 @@ endmethod.
- method NUMBER_TO_EXCEL_STRING.
+ METHOD number_to_excel_string.
DATA: lv_value_c TYPE c LENGTH 100.
WRITE ip_value TO lv_value_c EXPONENT 0 NO-GROUPING NO-SIGN.
@@ -372,8 +372,10 @@ endmethod.
IF ip_value < 0.
CONCATENATE '-' ep_value INTO ep_value.
+ ELSEIF ip_value EQ 0.
+ ep_value = '0'.
ENDIF.
-endmethod.
+ENDMETHOD.
diff --git a/ZA2X/CLAS/ZCL_EXCEL_STYLE_CONDITIONAL.slnk b/ZA2X/CLAS/ZCL_EXCEL_STYLE_CONDITIONAL.slnk
index 930f037..c8c7650 100644
--- a/ZA2X/CLAS/ZCL_EXCEL_STYLE_CONDITIONAL.slnk
+++ b/ZA2X/CLAS/ZCL_EXCEL_STYLE_CONDITIONAL.slnk
@@ -10,7 +10,7 @@
public section.
constants C_CFVO_TYPE_FORMULA type ZEXCEL_CONDITIONAL_TYPE value 'formula'. "#EC NOTEXT
- constants C_CFVO_TYPE_NUMBER type ZEXCEL_CONDITIONAL_TYPE value 'number'. "#EC NOTEXT
+ constants C_CFVO_TYPE_NUMBER type ZEXCEL_CONDITIONAL_TYPE value 'num'. "#EC NOTEXT
constants C_CFVO_TYPE_PERCENT type ZEXCEL_CONDITIONAL_TYPE value 'percent'. "#EC NOTEXT
constants C_CFVO_TYPE_PERCENTILE type ZEXCEL_CONDITIONAL_TYPE value 'percentile'. "#EC NOTEXT
constants C_ICONSET_3ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '3Arrows'. "#EC NOTEXT
@@ -97,7 +97,7 @@ private section.
*"* use this source file for any macro definitions you need
*"* in the implementation part of the class
-
+
diff --git a/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk b/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk
index 776908a..a42c1b6 100644
--- a/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk
+++ b/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk
@@ -2276,6 +2276,28 @@ endmethod.
lo_element_root->append_child( new_child = lo_element ).
ENDIF.
+ " Merged cells
+ t_range_merge = io_worksheet->get_merge( ).
+ IF t_range_merge IS NOT INITIAL.
+ lo_element = lo_document->create_simple_element( name = lc_xml_node_mergecells
+ parent = lo_document ).
+ DESCRIBE TABLE t_range_merge LINES merge_count.
+ lv_value = merge_count.
+ CONDENSE lv_value.
+ lo_element->set_attribute_ns( name = lc_xml_attr_count
+ value = lv_value ).
+ LOOP AT t_range_merge ASSIGNING <fs_range_merge>.
+ lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_mergecell
+ parent = lo_document ).
+
+ lo_element_2->set_attribute_ns( name = lc_xml_attr_ref
+ value = <fs_range_merge> ).
+ lo_element->append_child( new_child = lo_element_2 ).
+ lo_element_root->append_child( new_child = lo_element ).
+ io_worksheet->delete_merge( ).
+ ENDLOOP.
+ ENDIF.
+
" Conditional formatting node
lo_iterator = io_worksheet->get_cond_styles_iterator( ).
WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true.
@@ -2419,28 +2441,6 @@ endmethod.
lo_element_root->append_child( new_child = lo_element ). " Conditional formatting node
ENDWHILE.
- " Merged cells
- t_range_merge = io_worksheet->get_merge( ).
- IF t_range_merge IS NOT INITIAL.
- lo_element = lo_document->create_simple_element( name = lc_xml_node_mergecells
- parent = lo_document ).
- DESCRIBE TABLE t_range_merge LINES merge_count.
- lv_value = merge_count.
- CONDENSE lv_value.
- lo_element->set_attribute_ns( name = lc_xml_attr_count
- value = lv_value ).
- LOOP AT t_range_merge ASSIGNING <fs_range_merge>.
- lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_mergecell
- parent = lo_document ).
-
- lo_element_2->set_attribute_ns( name = lc_xml_attr_ref
- value = <fs_range_merge> ).
- lo_element->append_child( new_child = lo_element_2 ).
- lo_element_root->append_child( new_child = lo_element ).
- io_worksheet->delete_merge( ).
- ENDLOOP.
- ENDIF.
-
IF io_worksheet->get_data_validations_size( ) GT 0.
" dataValidations node
lo_element = lo_document->create_simple_element( name = lc_xml_node_datavalidations