Fix zoom information in reader and writer (#1177)

Fix #1176
This commit is contained in:
sandraros 2024-01-19 21:37:06 +01:00 committed by GitHub
parent 6bb02920df
commit 5f784c8ed6
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
2 changed files with 23 additions and 15 deletions

View File

@ -2253,12 +2253,15 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
END OF lty_column.
TYPES: BEGIN OF lty_sheetview,
showgridlines TYPE zexcel_show_gridlines,
tabselected TYPE string,
zoomscalenormal TYPE string,
workbookviewid TYPE string,
showrowcolheaders TYPE string,
righttoleft TYPE string,
showgridlines TYPE zexcel_show_gridlines,
tabselected TYPE string,
zoomscale TYPE string,
zoomscalenormal TYPE string,
zoomscalepagelayoutview TYPE string,
zoomscalesheetlayoutview TYPE string,
workbookviewid TYPE string,
showrowcolheaders TYPE string,
righttoleft TYPE string,
END OF lty_sheetview.
TYPES: BEGIN OF lty_mergecell,
@ -2805,7 +2808,10 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
OR ls_sheetview-righttoleft = lc_xml_attr_true_int.
io_worksheet->zif_excel_sheet_properties~set_right_to_left( abap_true ).
ENDIF.
io_worksheet->zif_excel_sheet_properties~zoomscale = ls_sheetview-zoomscale.
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_sheetlayoutview = ls_sheetview-zoomscalesheetlayoutview.
"Add merge cell information
lo_ixml_mergecells = lo_ixml_worksheet->get_elements_by_tag_name_ns( name = 'mergeCell' uri = namespace-main ).

View File

@ -327,15 +327,17 @@ CLASS lcl_create_xl_sheet IMPLEMENTATION.
value = '0' ).
ENDIF.
" Zoom scale
IF o_worksheet->zif_excel_sheet_properties~zoomscale GT 400.
o_worksheet->zif_excel_sheet_properties~zoomscale = 400.
ELSEIF o_worksheet->zif_excel_sheet_properties~zoomscale LT 10.
o_worksheet->zif_excel_sheet_properties~zoomscale = 10.
IF o_worksheet->zif_excel_sheet_properties~zoomscale NE 0.
IF o_worksheet->zif_excel_sheet_properties~zoomscale GT 400.
o_worksheet->zif_excel_sheet_properties~zoomscale = 400.
ELSEIF o_worksheet->zif_excel_sheet_properties~zoomscale LT 10.
o_worksheet->zif_excel_sheet_properties~zoomscale = 10.
ENDIF.
lv_value = o_worksheet->zif_excel_sheet_properties~zoomscale.
CONDENSE lv_value.
lo_element_2->set_attribute_ns( name = lc_xml_attr_zoomscale
value = lv_value ).
ENDIF.
lv_value = o_worksheet->zif_excel_sheet_properties~zoomscale.
CONDENSE lv_value.
lo_element_2->set_attribute_ns( name = lc_xml_attr_zoomscale
value = lv_value ).
IF o_worksheet->zif_excel_sheet_properties~zoomscale_normal NE 0.
IF o_worksheet->zif_excel_sheet_properties~zoomscale_normal GT 400.
o_worksheet->zif_excel_sheet_properties~zoomscale_normal = 400.