mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 13:46:17 +08:00
Merge branch 'abap2xlsx:main' into some-bugs-to-fix
This commit is contained in:
commit
1956ec3591
|
@ -2266,6 +2266,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
|
||||||
workbookviewid TYPE string,
|
workbookviewid TYPE string,
|
||||||
showrowcolheaders TYPE string,
|
showrowcolheaders TYPE string,
|
||||||
righttoleft TYPE string,
|
righttoleft TYPE string,
|
||||||
|
topleftcell TYPE string,
|
||||||
END OF lty_sheetview.
|
END OF lty_sheetview.
|
||||||
|
|
||||||
TYPES: BEGIN OF lty_mergecell,
|
TYPES: BEGIN OF lty_mergecell,
|
||||||
|
@ -2815,6 +2816,9 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
|
||||||
io_worksheet->zif_excel_sheet_properties~zoomscale_normal = ls_sheetview-zoomscalenormal.
|
io_worksheet->zif_excel_sheet_properties~zoomscale_normal = ls_sheetview-zoomscalenormal.
|
||||||
io_worksheet->zif_excel_sheet_properties~zoomscale_pagelayoutview = ls_sheetview-zoomscalepagelayoutview.
|
io_worksheet->zif_excel_sheet_properties~zoomscale_pagelayoutview = ls_sheetview-zoomscalepagelayoutview.
|
||||||
io_worksheet->zif_excel_sheet_properties~zoomscale_sheetlayoutview = ls_sheetview-zoomscalesheetlayoutview.
|
io_worksheet->zif_excel_sheet_properties~zoomscale_sheetlayoutview = ls_sheetview-zoomscalesheetlayoutview.
|
||||||
|
IF ls_sheetview-topleftcell IS NOT INITIAL.
|
||||||
|
io_worksheet->set_sheetview_top_left_cell( ls_sheetview-topleftcell ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
"Add merge cell information
|
"Add merge cell information
|
||||||
lo_ixml_mergecells = lo_ixml_worksheet->get_elements_by_tag_name_ns( name = 'mergeCell' uri = namespace-main ).
|
lo_ixml_mergecells = lo_ixml_worksheet->get_elements_by_tag_name_ns( name = 'mergeCell' uri = namespace-main ).
|
||||||
|
@ -2931,21 +2935,12 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
|
||||||
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
" Start fix 194 Read attributes HIDDEN, OUTLINELEVEL, COLLAPSED in ZCL_EXCEL_READER_2007
|
|
||||||
" Read pane
|
" Read pane
|
||||||
lo_ixml_pane_elem = lo_ixml_sheetview_elem->find_from_name_ns( name = 'pane' uri = namespace-main ).
|
lo_ixml_pane_elem = lo_ixml_sheetview_elem->find_from_name_ns( name = 'pane' uri = namespace-main ).
|
||||||
IF lo_ixml_pane_elem IS BOUND.
|
IF lo_ixml_pane_elem IS BOUND.
|
||||||
fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_pane_elem CHANGING cp_structure = ls_excel_pane ).
|
fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_pane_elem CHANGING cp_structure = ls_excel_pane ).
|
||||||
" Issue #194
|
lv_pane_cell_col = ls_excel_pane-xsplit.
|
||||||
" Replace REGEX with method from the common class
|
lv_pane_cell_row = ls_excel_pane-ysplit.
|
||||||
zcl_excel_common=>convert_columnrow2column_a_row( EXPORTING
|
|
||||||
i_columnrow = ls_excel_pane-topleftcell
|
|
||||||
IMPORTING
|
|
||||||
e_column = lv_pane_cell_col_a " Cell Column
|
|
||||||
e_row = lv_pane_cell_row ). " Natural number
|
|
||||||
lv_pane_cell_col = zcl_excel_common=>convert_column2int( lv_pane_cell_col_a ).
|
|
||||||
SUBTRACT 1 FROM: lv_pane_cell_col,
|
|
||||||
lv_pane_cell_row.
|
|
||||||
IF lv_pane_cell_col > 0
|
IF lv_pane_cell_col > 0
|
||||||
AND lv_pane_cell_row > 0.
|
AND lv_pane_cell_row > 0.
|
||||||
io_worksheet->freeze_panes( ip_num_rows = lv_pane_cell_row
|
io_worksheet->freeze_panes( ip_num_rows = lv_pane_cell_row
|
||||||
|
@ -2955,8 +2950,10 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
|
||||||
ELSE.
|
ELSE.
|
||||||
io_worksheet->freeze_panes( ip_num_columns = lv_pane_cell_col ).
|
io_worksheet->freeze_panes( ip_num_columns = lv_pane_cell_col ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
IF ls_excel_pane-topleftcell IS NOT INITIAL.
|
||||||
|
io_worksheet->set_pane_top_left_cell( ls_excel_pane-topleftcell ).
|
||||||
|
ENDIF.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
" End fix 194 Read attributes HIDDEN, OUTLINELEVEL, COLLAPSED in ZCL_EXCEL_READER_2007
|
|
||||||
|
|
||||||
" Start fix 276 Read data validations
|
" Start fix 276 Read data validations
|
||||||
lo_ixml_datavalidations = lo_ixml_worksheet->get_elements_by_tag_name_ns( name = 'dataValidation' uri = namespace-main ).
|
lo_ixml_datavalidations = lo_ixml_worksheet->get_elements_by_tag_name_ns( name = 'dataValidation' uri = namespace-main ).
|
||||||
|
|
|
@ -71,10 +71,7 @@ CLASS zcl_excel_theme DEFINITION
|
||||||
DATA extlst TYPE REF TO zcl_excel_theme_extlst .
|
DATA extlst TYPE REF TO zcl_excel_theme_extlst .
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
DATA theme_changed TYPE abap_bool .
|
|
||||||
DATA theme_read TYPE abap_bool .
|
|
||||||
DATA name TYPE string .
|
DATA name TYPE string .
|
||||||
DATA xmls_a TYPE string .
|
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
@ -100,7 +97,6 @@ CLASS zcl_excel_theme IMPLEMENTATION.
|
||||||
lo_node_theme = io_theme_xml->get_root_element( )." find_from_name( name = c_theme ).
|
lo_node_theme = io_theme_xml->get_root_element( )." find_from_name( name = c_theme ).
|
||||||
IF lo_node_theme IS BOUND.
|
IF lo_node_theme IS BOUND.
|
||||||
name = lo_node_theme->get_attribute( name = c_theme_name ).
|
name = lo_node_theme->get_attribute( name = c_theme_name ).
|
||||||
xmls_a = lo_node_theme->get_attribute( name = c_theme_xmlns ).
|
|
||||||
lo_theme_children = lo_node_theme->get_children( ).
|
lo_theme_children = lo_node_theme->get_children( ).
|
||||||
lo_theme_iterator = lo_theme_children->create_iterator( ).
|
lo_theme_iterator = lo_theme_children->create_iterator( ).
|
||||||
lo_theme_element ?= lo_theme_iterator->get_next( ).
|
lo_theme_element ?= lo_theme_iterator->get_next( ).
|
||||||
|
|
|
@ -102,6 +102,8 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
formula_in_other_column TYPE string,
|
formula_in_other_column TYPE string,
|
||||||
END OF c_messages .
|
END OF c_messages .
|
||||||
DATA mt_merged_cells TYPE mty_ts_merge READ-ONLY .
|
DATA mt_merged_cells TYPE mty_ts_merge READ-ONLY .
|
||||||
|
DATA pane_top_left_cell TYPE string READ-ONLY.
|
||||||
|
DATA sheetview_top_left_cell TYPE string READ-ONLY.
|
||||||
|
|
||||||
METHODS add_comment
|
METHODS add_comment
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
@ -549,6 +551,11 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
!ip_formula TYPE zexcel_cell_formula OPTIONAL "added parameter
|
!ip_formula TYPE zexcel_cell_formula OPTIONAL "added parameter
|
||||||
RAISING
|
RAISING
|
||||||
zcx_excel .
|
zcx_excel .
|
||||||
|
METHODS set_pane_top_left_cell
|
||||||
|
IMPORTING
|
||||||
|
!iv_columnrow TYPE csequence
|
||||||
|
RAISING
|
||||||
|
zcx_excel.
|
||||||
METHODS set_print_gridlines
|
METHODS set_print_gridlines
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!i_print_gridlines TYPE zexcel_print_gridlines .
|
!i_print_gridlines TYPE zexcel_print_gridlines .
|
||||||
|
@ -565,6 +572,11 @@ CLASS zcl_excel_worksheet DEFINITION
|
||||||
!iv_collapsed TYPE abap_bool
|
!iv_collapsed TYPE abap_bool
|
||||||
RAISING
|
RAISING
|
||||||
zcx_excel .
|
zcx_excel .
|
||||||
|
METHODS set_sheetview_top_left_cell
|
||||||
|
IMPORTING
|
||||||
|
!iv_columnrow TYPE csequence
|
||||||
|
RAISING
|
||||||
|
zcx_excel.
|
||||||
METHODS set_show_gridlines
|
METHODS set_show_gridlines
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!i_show_gridlines TYPE zexcel_show_gridlines .
|
!i_show_gridlines TYPE zexcel_show_gridlines .
|
||||||
|
@ -4302,6 +4314,25 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
|
||||||
ENDMETHOD. "set_merge_style
|
ENDMETHOD. "set_merge_style
|
||||||
|
|
||||||
|
|
||||||
|
METHOD set_pane_top_left_cell.
|
||||||
|
DATA lv_column_int TYPE zexcel_cell_column.
|
||||||
|
DATA lv_row TYPE zexcel_cell_row.
|
||||||
|
|
||||||
|
" Validate input value
|
||||||
|
zcl_excel_common=>convert_columnrow2column_a_row(
|
||||||
|
EXPORTING
|
||||||
|
i_columnrow = iv_columnrow
|
||||||
|
IMPORTING
|
||||||
|
e_column_int = lv_column_int
|
||||||
|
e_row = lv_row ).
|
||||||
|
IF lv_column_int NOT BETWEEN zcl_excel_common=>c_excel_sheet_min_col AND zcl_excel_common=>c_excel_sheet_max_col
|
||||||
|
OR lv_row NOT BETWEEN zcl_excel_common=>c_excel_sheet_min_row AND zcl_excel_common=>c_excel_sheet_max_row.
|
||||||
|
RAISE EXCEPTION TYPE zcx_excel EXPORTING error = 'Invalid column/row coordinates (valid values: A1 to XFD1048576)'.
|
||||||
|
ENDIF.
|
||||||
|
pane_top_left_cell = iv_columnrow.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD set_print_gridlines.
|
METHOD set_print_gridlines.
|
||||||
me->print_gridlines = i_print_gridlines.
|
me->print_gridlines = i_print_gridlines.
|
||||||
ENDMETHOD. "SET_PRINT_GRIDLINES
|
ENDMETHOD. "SET_PRINT_GRIDLINES
|
||||||
|
@ -4358,6 +4389,25 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
|
||||||
ENDMETHOD. "SET_ROW_OUTLINE
|
ENDMETHOD. "SET_ROW_OUTLINE
|
||||||
|
|
||||||
|
|
||||||
|
METHOD set_sheetview_top_left_cell.
|
||||||
|
DATA lv_column_int TYPE zexcel_cell_column.
|
||||||
|
DATA lv_row TYPE zexcel_cell_row.
|
||||||
|
|
||||||
|
" Validate input value
|
||||||
|
zcl_excel_common=>convert_columnrow2column_a_row(
|
||||||
|
EXPORTING
|
||||||
|
i_columnrow = iv_columnrow
|
||||||
|
IMPORTING
|
||||||
|
e_column_int = lv_column_int
|
||||||
|
e_row = lv_row ).
|
||||||
|
IF lv_column_int NOT BETWEEN zcl_excel_common=>c_excel_sheet_min_col AND zcl_excel_common=>c_excel_sheet_max_col
|
||||||
|
OR lv_row NOT BETWEEN zcl_excel_common=>c_excel_sheet_min_row AND zcl_excel_common=>c_excel_sheet_max_row.
|
||||||
|
RAISE EXCEPTION TYPE zcx_excel EXPORTING error = 'Invalid column/row coordinates (valid values: A1 to XFD1048576)'.
|
||||||
|
ENDIF.
|
||||||
|
sheetview_top_left_cell = iv_columnrow.
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
METHOD set_show_gridlines.
|
METHOD set_show_gridlines.
|
||||||
me->show_gridlines = i_show_gridlines.
|
me->show_gridlines = i_show_gridlines.
|
||||||
ENDMETHOD. "SET_SHOW_GRIDLINES
|
ENDMETHOD. "SET_SHOW_GRIDLINES
|
||||||
|
|
|
@ -395,6 +395,11 @@ CLASS lcl_create_xl_sheet IMPLEMENTATION.
|
||||||
value = '0' ).
|
value = '0' ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
IF o_worksheet->sheetview_top_left_cell IS NOT INITIAL.
|
||||||
|
lo_element_2->set_attribute_ns( name = 'topLeftCell'
|
||||||
|
value = o_worksheet->sheetview_top_left_cell ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
" freeze panes
|
" freeze panes
|
||||||
o_worksheet->get_freeze_cell( IMPORTING ep_row = lv_freeze_cell_row
|
o_worksheet->get_freeze_cell( IMPORTING ep_row = lv_freeze_cell_row
|
||||||
ep_column = lv_freeze_cell_column ).
|
ep_column = lv_freeze_cell_column ).
|
||||||
|
@ -417,11 +422,15 @@ CLASS lcl_create_xl_sheet IMPLEMENTATION.
|
||||||
value = lv_value ).
|
value = lv_value ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
lv_freeze_cell_column_alpha = zcl_excel_common=>convert_column2alpha( ip_column = lv_freeze_cell_column ).
|
IF o_worksheet->pane_top_left_cell IS NOT INITIAL.
|
||||||
lv_value = zcl_excel_common=>number_to_excel_string( ip_value = lv_freeze_cell_row ).
|
lo_element_3->set_attribute_ns( name = 'topLeftCell'
|
||||||
CONCATENATE lv_freeze_cell_column_alpha lv_value INTO lv_value.
|
value = o_worksheet->pane_top_left_cell ).
|
||||||
lo_element_3->set_attribute_ns( name = 'topLeftCell'
|
ELSE.
|
||||||
value = lv_value ).
|
lv_value = zcl_excel_common=>convert_column_a_row2columnrow( i_column = lv_freeze_cell_column
|
||||||
|
i_row = lv_freeze_cell_row ).
|
||||||
|
lo_element_3->set_attribute_ns( name = 'topLeftCell'
|
||||||
|
value = lv_value ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
lo_element_3->set_attribute_ns( name = 'activePane'
|
lo_element_3->set_attribute_ns( name = 'activePane'
|
||||||
value = 'bottomRight' ).
|
value = 'bottomRight' ).
|
||||||
|
|
Loading…
Reference in New Issue
Block a user