+ worksheet columns right-to-left (#911)

fix #890

Co-authored-by: sandraros <sandra.rossi@gmail.com>
Co-authored-by: Lars Hvam <larshp@hotmail.com>
This commit is contained in:
sandraros 2021-12-12 09:14:17 +01:00 committed by GitHub
parent 41196fd58a
commit 6532e0e0b5
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
6 changed files with 34 additions and 0 deletions

View File

@ -2212,6 +2212,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
zoomscalenormal TYPE string,
workbookviewid TYPE string,
showrowcolheaders TYPE string,
righttoleft TYPE string,
END OF lty_sheetview.
TYPES: BEGIN OF lty_mergecell,
@ -2728,6 +2729,10 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
ls_sheetview-showgridlines = abap_false.
ENDIF.
io_worksheet->set_show_gridlines( ls_sheetview-showgridlines ).
IF ls_sheetview-righttoleft = lc_xml_attr_true
OR ls_sheetview-righttoleft = lc_xml_attr_true_int.
io_worksheet->zif_excel_sheet_properties~set_right_to_left( abap_true ).
ENDIF.
"Add merge cell information

View File

@ -667,6 +667,7 @@ CLASS zcl_excel_worksheet DEFINITION
DATA title TYPE zexcel_sheet_title VALUE 'Worksheet'. "#EC NOTEXT . . . . . . . . . . . . . . . . . . . . . . . . . . . . " .
DATA upper_cell TYPE zexcel_s_cell_data .
DATA mt_ignored_errors TYPE mty_th_ignored_errors.
DATA right_to_left TYPE abap_bool.
METHODS calculate_cell_width
IMPORTING
@ -4260,6 +4261,11 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
ENDMETHOD. "ZIF_EXCEL_SHEET_PRINTSETTINGS~SET_PRINT_REPEAT_ROWS
METHOD zif_excel_sheet_properties~get_right_to_left.
result = right_to_left.
ENDMETHOD.
METHOD zif_excel_sheet_properties~get_style.
IF zif_excel_sheet_properties~style IS NOT INITIAL.
ep_style = zif_excel_sheet_properties~style.
@ -4283,6 +4289,11 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
ENDMETHOD. "ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE
METHOD zif_excel_sheet_properties~set_right_to_left.
me->right_to_left = right_to_left.
ENDMETHOD.
METHOD zif_excel_sheet_properties~set_style.
zif_excel_sheet_properties~style = ip_style.
ENDMETHOD. "ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE

View File

@ -4088,6 +4088,10 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
lo_element_2->set_attribute_ns( name = lc_xml_attr_zoomscalesheetview
value = lv_value ).
ENDIF.
IF io_worksheet->zif_excel_sheet_properties~get_right_to_left( ) EQ abap_true.
lo_element_2->set_attribute_ns( name = 'rightToLeft'
value = '1' ).
ENDIF.
lo_element_2->set_attribute_ns( name = lc_xml_attr_workbookviewid
value = '0' ).
" showGridLines attribute

View File

@ -209,6 +209,7 @@ CLASS zcl_excel_writer_huge_file IMPLEMENTATION.
zoomscalenormal TYPE i,
zoomscalepageview TYPE i,
zoomscalesheetview TYPE i,
righttoleft TYPE i,
workbookviewid TYPE c,
showgridlines TYPE c,
showrowcolheaders TYPE c,
@ -380,6 +381,12 @@ CLASS zcl_excel_writer_huge_file IMPLEMENTATION.
l_worksheet-zoomscalesheetview = io_worksheet->zif_excel_sheet_properties~zoomscale_sheetlayoutview.
ENDIF.
IF io_worksheet->zif_excel_sheet_properties~get_right_to_left( ) EQ abap_true.
l_worksheet-righttoleft = lc_one.
ELSE.
l_worksheet-righttoleft = lc_zero.
ENDIF.
l_worksheet-workbookviewid = lc_zero.
IF io_worksheet->show_gridlines = abap_true.

View File

@ -48,6 +48,7 @@
<tt:attribute name="zoomScalePageLayoutView" value-ref="WORKSHEET.ZOOMSCALEPAGEVIEW" />
</tt:cond>
<tt:attribute name="zoomScaleSheetLayoutView" value-ref="WORKSHEET.ZOOMSCALESHEETVIEW" />
<tt:attribute name="rightToLeft" value-ref="WORKSHEET.RIGHTTOLEFT" />
<tt:attribute name="workbookViewId" value-ref="WORKSHEET.WORKBOOKVIEWID" />
<tt:attribute name="showGridLines" value-ref="WORKSHEET.SHOWGRIDLINES" />
<tt:attribute name="showRowColHeaders" value-ref="WORKSHEET.SHOWROWCOLHEADERS" />

View File

@ -25,9 +25,15 @@ INTERFACE zif_excel_sheet_properties
DATA hide_columns_from TYPE zexcel_cell_column_alpha .
METHODS initialize .
METHODS get_right_to_left
RETURNING
VALUE(result) TYPE abap_bool.
METHODS get_style
RETURNING
VALUE(ep_style) TYPE zexcel_cell_style .
METHODS set_right_to_left
IMPORTING
!right_to_left TYPE abap_bool .
METHODS set_style
IMPORTING
!ip_style TYPE zexcel_cell_style .