From 3481c02f35b1b109b608eafc16e37f155cccb35b Mon Sep 17 00:00:00 2001 From: Tomek Mackowski Date: Fri, 13 May 2011 21:49:35 +0000 Subject: [PATCH] Fix #93 Read PROTECTION style git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@181 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049 --- ZA2X/CLAS/ZCL_EXCEL_READER_2007.slnk | 28 ++++++++++++++++++++++++++++ 1 file changed, 28 insertions(+) diff --git a/ZA2X/CLAS/ZCL_EXCEL_READER_2007.slnk b/ZA2X/CLAS/ZCL_EXCEL_READER_2007.slnk index 8533511..0966de3 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_READER_2007.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_READER_2007.slnk @@ -371,6 +371,12 @@ ENDMETHOD. wraptext TYPE string, END OF t_alignment. + TYPES: BEGIN OF t_protection, + hidden TYPE string, + locked TYPE string, + END OF t_protection. + + DATA: styles_xml TYPE REF TO if_ixml_document, iterator TYPE REF TO if_ixml_node_iterator, nodes TYPE REF TO if_ixml_node_collection, @@ -387,6 +393,7 @@ ENDMETHOD. style TYPE REF TO zcl_excel_style, xf TYPE t_xf, alignment TYPE t_alignment, + protection TYPE t_protection, index TYPE i. styles_xml = me->get_ixml_from_zip_archive( ip_path ). @@ -472,6 +479,27 @@ ENDMETHOD. IF alignment-indent IS NOT INITIAL. style->alignment->indent = alignment-indent. ENDIF. + ENDIF. + + node2 ?= node->find_from_name( 'protection' ). + IF node2 IS BOUND. + fill_struct_from_attributes( + EXPORTING + ip_element = node2 + CHANGING + cp_structure = protection ). + + IF protection-locked = '1' OR protection-locked = 'true'. + style->protection->locked = zcl_excel_style_protection=>c_protection_locked. + ELSE. + style->protection->locked = zcl_excel_style_protection=>c_protection_unlocked. + ENDIF. + + IF protection-hidden = '1' OR protection-hidden = 'true'. + style->protection->hidden = zcl_excel_style_protection=>c_protection_hidden. + ELSE. + style->protection->hidden = zcl_excel_style_protection=>c_protection_unhidden. + ENDIF. ENDIF.