From 2e2a04dba5ecb75e82eb9e69e7aef6b4322197dd Mon Sep 17 00:00:00 2001 From: Ivan Femia Date: Thu, 5 May 2011 19:27:37 +0000 Subject: [PATCH] Fix issue #87 git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@172 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049 --- ZA2X/CLAS/ZCL_EXCEL.slnk | 96 +++++++------- ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk | 153 +++++++++++----------- ZA2X/DTEL/ZEXCEL_SHEET_HIDDEN.slnk | 4 + ZA2X/INTF/ZIF_EXCEL_SHEET_PROPERTIES.slnk | 17 ++- ZA2X/PROG/ZDEMO_EXCEL4.slnk | 10 +- 5 files changed, 149 insertions(+), 131 deletions(-) create mode 100644 ZA2X/DTEL/ZEXCEL_SHEET_HIDDEN.slnk diff --git a/ZA2X/CLAS/ZCL_EXCEL.slnk b/ZA2X/CLAS/ZCL_EXCEL.slnk index 56c1b83..f4f1edd 100644 --- a/ZA2X/CLAS/ZCL_EXCEL.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL.slnk @@ -1,6 +1,6 @@ - - + + class ZCL_EXCEL definition public final @@ -32,12 +32,18 @@ public section. returning value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET . methods CONSTRUCTOR . + methods GET_ACTIVE_SHEET_INDEX + returning + value(R_ACTIVE_WORKSHEET) type ZEXCEL_ACTIVE_WORKSHEET . methods GET_ACTIVE_WORKSHEET returning value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET . methods GET_DRAWINGS_ITERATOR returning value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods GET_NEXT_TABLE_ID + returning + value(EP_ID) type I . methods GET_RANGES_ITERATOR returning value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . @@ -53,18 +59,12 @@ public section. methods GET_WORKSHEETS_SIZE returning value(EP_SIZE) type I . - methods GET_NEXT_TABLE_ID - returning - value(EP_ID) type I . methods SET_ACTIVE_SHEET_INDEX importing !I_ACTIVE_WORKSHEET type ZEXCEL_ACTIVE_WORKSHEET . methods SET_ACTIVE_SHEET_INDEX_BY_NAME importing - !I_WORKSHEET_NAME type ZEXCEL_WORKSHEETS_NAME . - methods GET_ACTIVE_SHEET_INDEX - returning - value(R_ACTIVE_WORKSHEET) type ZEXCEL_ACTIVE_WORKSHEET . + !I_WORKSHEET_NAME type ZEXCEL_WORKSHEETS_NAME . *"* protected components of class ZCL_EXCEL *"* do not include other source files here!!! protected section. @@ -84,12 +84,12 @@ private section. *"* implementation or private method's signature *"* use this source file for any macro definitions you need *"* in the implementation part of the class - - - - - - + + + + + + method ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE. me->zif_excel_book_protection~protected = zif_excel_book_protection=>c_unprotected. @@ -100,9 +100,9 @@ private section. CLEAR me->zif_excel_book_protection~revisionspassword. endmethod. - - - + + + method ADD_NEW_DRAWING. DATA: lv_guid TYPE guid_16. * Create default blank worksheet @@ -112,16 +112,16 @@ endmethod. drawings->add( eo_drawing ). endmethod. - - + + method ADD_NEW_RANGE. * Create default blank range CREATE OBJECT eo_range. ranges->add( eo_range ). endmethod. - - + + method ADD_NEW_STYLE. * Create default style CREATE OBJECT eo_style. @@ -129,9 +129,9 @@ endmethod. endmethod. - - - + + + method ADD_NEW_WORKSHEET. DATA: lv_guid TYPE guid_16. * Create default blank worksheet @@ -143,7 +143,7 @@ endmethod. worksheets->active_worksheet = worksheets->size( ). endmethod. - + method CONSTRUCTOR. DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_style TYPE REF TO zcl_excel_style. @@ -164,30 +164,30 @@ endmethod. lo_style->fill->filltype = zcl_excel_style_fill=>c_fill_pattern_gray125. endmethod. - - + + method GET_ACTIVE_SHEET_INDEX. r_active_worksheet = me->worksheets->active_worksheet. endmethod. - - + + method GET_ACTIVE_WORKSHEET. eo_worksheet = me->worksheets->get( me->worksheets->active_worksheet ). endmethod. - - + + method GET_DRAWINGS_ITERATOR. eo_iterator = me->drawings->get_iterator( ). endmethod. - - + + method GET_NEXT_TABLE_ID. DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_iterator TYPE REF TO cl_object_collection_iterator, @@ -206,54 +206,54 @@ endmethod. endmethod. - - + + method GET_RANGES_ITERATOR. eo_iterator = me->ranges->get_iterator( ). endmethod. - - + + method GET_STYLES_ITERATOR. eo_iterator = me->styles->get_iterator( ). endmethod. - - + + method GET_WORKSHEETS_ITERATOR. eo_iterator = me->worksheets->get_iterator( ). endmethod. - - + + method GET_WORKSHEETS_NAME. ep_name = me->worksheets->name. endmethod. - - + + method GET_WORKSHEETS_SIZE. ep_size = me->worksheets->size( ). endmethod. - - + + method SET_ACTIVE_SHEET_INDEX. me->worksheets->active_worksheet = i_active_worksheet. endmethod. - - + + method SET_ACTIVE_SHEET_INDEX_BY_NAME. DATA: ws_it TYPE REF TO cl_object_collection_iterator, diff --git a/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk b/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk index 0462ce8..47f96ef 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk @@ -1,6 +1,6 @@ - - + + class ZCL_EXCEL_WRITER_2007 definition public final @@ -118,32 +118,32 @@ protected section. *"* implementation or private method's signature *"* use this source file for any macro definitions you need *"* in the implementation part of the class - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + method ZIF_EXCEL_WRITER~WRITE_FILE. me->excel = io_excel. ep_file = me->create( ). endmethod. - - + + method CREATE. @@ -313,8 +313,8 @@ endmethod. endmethod. - - + + method CREATE_CONTENT_TYPES. @@ -567,8 +567,8 @@ endmethod. endmethod. - - + + method CREATE_DOCPROPS_APP. @@ -788,8 +788,8 @@ endmethod. endmethod. - - + + method CREATE_DOCPROPS_CORE. @@ -904,8 +904,8 @@ endmethod. endmethod. - - + + method CREATE_RELATIONSHIPS. @@ -1003,9 +1003,9 @@ endmethod. endmethod. - - - + + + method CREATE_XL_DRAWINGS. @@ -1233,9 +1233,9 @@ endmethod. endmethod. - - - + + + method CREATE_XL_DRAWINGS_RELS. ** Constant node name @@ -1319,8 +1319,8 @@ endmethod. endmethod. - - + + method CREATE_XL_RELATIONSHIPS. @@ -1467,8 +1467,8 @@ endmethod. endmethod. - - + + method CREATE_XL_SHAREDSTRINGS. @@ -1584,10 +1584,10 @@ endmethod. endmethod. - - - - + + + + method CREATE_XL_SHEET. ** Constant node name @@ -2754,10 +2754,10 @@ endmethod. endmethod. - - - - + + + + method CREATE_XL_SHEET_RELS. @@ -2899,9 +2899,9 @@ endmethod. endmethod. - - - METHOD create_xl_styles. + + + method CREATE_XL_STYLES. ** Constant node name @@ -3615,14 +3615,14 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). -ENDMETHOD. +endmethod. - - - - - - METHOD create_xl_styles_color_node. + + + + + + method CREATE_XL_STYLES_COLOR_NODE. DATA: lo_sub_element TYPE REF TO if_ixml_element, lv_value TYPE string. @@ -3666,11 +3666,11 @@ ENDMETHOD. ENDIF. io_parent->append_child( new_child = lo_sub_element ). -ENDMETHOD. +endmethod. - - - + + + method CREATE_XL_TABLE. DATA: lc_xml_node_table TYPE string VALUE 'table', @@ -3839,8 +3839,8 @@ ENDMETHOD. endmethod. - - + + method CREATE_XL_THEME. @@ -3928,9 +3928,9 @@ endmethod. endmethod. - - - method CREATE_XL_WORKBOOK. + + + METHOD create_xl_workbook. ** Constant node name @@ -3958,6 +3958,7 @@ endmethod. lc_xml_attr_activetab TYPE string VALUE 'activeTab', lc_xml_attr_name TYPE string VALUE 'name', lc_xml_attr_sheetid TYPE string VALUE 'sheetId', + lc_xml_attr_state TYPE string VALUE 'state', lc_xml_attr_id TYPE string VALUE 'id', lc_xml_attr_calcid TYPE string VALUE 'calcId', lc_xml_attr_lockrevision TYPE string VALUE 'lockRevision', @@ -4108,6 +4109,10 @@ endmethod. value = lv_value ). lo_sub_element->set_attribute_ns( name = lc_xml_attr_sheetid value = lv_syindex ). + IF lo_worksheet->zif_excel_sheet_properties~hidden EQ abap_true. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_state + value = 'hidden' ). + ENDIF. lo_sub_element->set_attribute_ns( name = lc_xml_attr_id prefix = lc_r_ns value = lv_xml_node_ridx_id ). @@ -4149,11 +4154,11 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). -endmethod. +ENDMETHOD. - - - + + + method FLAG2BOOL. @@ -4164,9 +4169,9 @@ endmethod. ENDIF. endmethod. - - - + + + method GET_SHARED_STRING_INDEX. diff --git a/ZA2X/DTEL/ZEXCEL_SHEET_HIDDEN.slnk b/ZA2X/DTEL/ZEXCEL_SHEET_HIDDEN.slnk new file mode 100644 index 0000000..ac93825 --- /dev/null +++ b/ZA2X/DTEL/ZEXCEL_SHEET_HIDDEN.slnk @@ -0,0 +1,4 @@ + + + + diff --git a/ZA2X/INTF/ZIF_EXCEL_SHEET_PROPERTIES.slnk b/ZA2X/INTF/ZIF_EXCEL_SHEET_PROPERTIES.slnk index b285bfd..bbacd1e 100644 --- a/ZA2X/INTF/ZIF_EXCEL_SHEET_PROPERTIES.slnk +++ b/ZA2X/INTF/ZIF_EXCEL_SHEET_PROPERTIES.slnk @@ -1,11 +1,14 @@ - - - - + + + + + + + - - - + + + diff --git a/ZA2X/PROG/ZDEMO_EXCEL4.slnk b/ZA2X/PROG/ZDEMO_EXCEL4.slnk index 9a92f6f..42f18b7 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL4.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL4.slnk @@ -1,11 +1,10 @@ - + - *&---------------------------------------------------------------------* *& Report ZDEMO_EXCEL4 *& @@ -79,6 +78,13 @@ START-OF-SELECTION. lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'This is the second sheet' ). lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet1!B2' ). lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = 'This is link to first sheet' ip_hyperlink = lo_hyperlink ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 4 ip_value = 'Sheet3 is hidden' ). + + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'Hidden sheet' ). + lo_worksheet->zif_excel_sheet_properties~hidden = zif_excel_sheet_properties=>c_hidden. + + lo_excel->set_active_sheet_index_by_name( 'Sheet1' ). CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ).