From 161134a92d3eebdf0b6f9f3b3fead5c40914aed5 Mon Sep 17 00:00:00 2001 From: Ivan Femia Date: Mon, 16 Jul 2012 20:51:35 +0000 Subject: [PATCH] Ready to test #195 git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@322 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049 --- ZA2X/CLAS/ZCL_EXCEL_READER_2007.slnk | 204 +++++++++++++++------------ 1 file changed, 112 insertions(+), 92 deletions(-) diff --git a/ZA2X/CLAS/ZCL_EXCEL_READER_2007.slnk b/ZA2X/CLAS/ZCL_EXCEL_READER_2007.slnk index 757c656..270236f 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_READER_2007.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_READER_2007.slnk @@ -1,62 +1,62 @@ - - + - - - - - - - - - - - - - + class ZCL_EXCEL_READER_2007 definition public create public . @@ -202,10 +202,10 @@ public section. *"* in the implementation part of the class IXML - - - - + + + + method ZIF_EXCEL_READER~LOAD. @@ -308,9 +308,9 @@ endmethod. r_excel = me->zif_excel_reader~load( excel_data ). endmethod. - - - + + + method FILL_STRUCT_FROM_ATTRIBUTES. DATA: name TYPE string, attributes TYPE REF TO if_ixml_named_node_map, @@ -335,10 +335,10 @@ endmethod. ENDWHILE. endmethod. - - - - + + + + method GET_FROM_ZIP_ARCHIVE. IF me->zip IS NOT BOUND. @@ -375,10 +375,10 @@ endmethod. endmethod. - - - - + + + + method GET_IXML_FROM_ZIP_ARCHIVE. TYPE-POOLS: ixml. @@ -403,8 +403,8 @@ endmethod. endmethod. - - + + method LOAD_SHARED_STRINGS. DATA: value TYPE string, shared_strings_xml TYPE REF TO if_ixml_document, @@ -429,9 +429,9 @@ endmethod. endmethod. - - - + + + method LOAD_STYLES. TYPES: BEGIN OF t_xf, applyalignment TYPE string, @@ -600,9 +600,9 @@ endmethod. endmethod. - - - + + + method LOAD_STYLE_BORDERS. DATA: node TYPE REF TO if_ixml_element, node2 TYPE REF TO if_ixml_element, @@ -672,9 +672,9 @@ endmethod. ENDWHILE. endmethod. - - - + + + method LOAD_STYLE_FILLS. DATA: value TYPE string, node TYPE REF TO if_ixml_element, @@ -741,9 +741,9 @@ endmethod. endmethod. - - - + + + method LOAD_STYLE_FONTS. DATA: value TYPE string, node TYPE REF TO if_ixml_element, @@ -819,9 +819,9 @@ endmethod. endmethod. - - - + + + method LOAD_STYLE_NUM_FORMATS. DATA: node TYPE REF TO if_ixml_element, num_format TYPE t_num_format. @@ -840,9 +840,9 @@ endmethod. endmethod. - - - + + + METHOD load_workbook. CONSTANTS: lc_shared_strings TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings', @@ -966,10 +966,10 @@ endmethod. ENDMETHOD. - - - - method LOAD_WORKSHEET. + + + + METHOD load_worksheet. TYPES: BEGIN OF t_cell, r TYPE string, t TYPE string, @@ -984,6 +984,16 @@ ENDMETHOD. style TYPE string, END OF t_column. + TYPES: BEGIN OF t_row, + r TYPE string, + customheight TYPE string, + ht TYPE float, + spans TYPE string, + thickbot TYPE string, + customformat TYPE string, + thicktop TYPE string, + END OF t_row. + TYPES: BEGIN OF t_sheetview, showgridlines TYPE zexcel_show_gridlines, tabselected TYPE string, @@ -1004,9 +1014,10 @@ ENDMETHOD. cells TYPE REF TO if_ixml_node_collection, iterator TYPE REF TO if_ixml_node_iterator, iterator2 TYPE REF TO if_ixml_node_iterator, - row TYPE REF TO if_ixml_element, cell_elem TYPE REF TO if_ixml_element, cell TYPE t_cell, + row_elem TYPE REF TO if_ixml_element, + row TYPE t_row, index TYPE i, value_elem TYPE REF TO if_ixml_element, formula_elem TYPE REF TO if_ixml_element, @@ -1027,19 +1038,28 @@ ENDMETHOD. merge_column_end TYPE zexcel_cell_column_alpha, merge_row_start TYPE zexcel_cell_row, merge_row_end TYPE zexcel_cell_row, + row_dimension TYPE REF TO ZCL_EXCEL_WORKSHEET_ROWDIMENSI, columns TYPE REF TO if_ixml_node_collection, column_elem TYPE REF TO if_ixml_element, column TYPE t_column, column_alpha TYPE zexcel_cell_column_alpha, - column_dimension TYPE REF TO ZCL_EXCEL_WORKSHEET_COLUMNDIME. + column_dimension TYPE REF TO zcl_excel_worksheet_columndime. worksheet = me->get_ixml_from_zip_archive( ip_path ). rows = worksheet->get_elements_by_tag_name( name = 'row' ). iterator = rows->create_iterator( ). - row ?= iterator->get_next( ). - WHILE row IS BOUND. - cells = row->get_elements_by_tag_name( name = 'c' ). + row_elem ?= iterator->get_next( ). + WHILE row_elem IS BOUND. + + fill_struct_from_attributes( EXPORTING ip_element = row_elem CHANGING cp_structure = row ). + cell_row = row-r. + IF row-customheight = '1'. + row_dimension = io_worksheet->get_row_dimension( cell_row ). + row_dimension->set_row_height( row-ht ). + ENDIF. + + cells = row_elem->get_elements_by_tag_name( name = 'c' ). iterator2 = cells->create_iterator( ). cell_elem ?= iterator2->get_next( ). WHILE cell_elem IS BOUND. @@ -1097,7 +1117,7 @@ ENDMETHOD. ENDIF. cell_elem ?= iterator2->get_next( ). ENDWHILE. - row ?= iterator->get_next( ). + row_elem ?= iterator->get_next( ). ENDWHILE. "Get the customized column width @@ -1112,7 +1132,7 @@ ENDMETHOD. index = column-min. WHILE index <= column-max. - column_alpha = zcl_excel_common=>CONVERT_COLUMN2ALPHA( index ). + column_alpha = zcl_excel_common=>convert_column2alpha( index ). column_dimension = io_worksheet->get_column_dimension( column_alpha ). column_dimension->set_width( column-width ). ADD 1 TO index. @@ -1161,6 +1181,6 @@ ENDMETHOD. ENDWHILE. -endmethod. +ENDMETHOD.