mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-05 05:16:16 +08:00
97 lines
4.2 KiB
ABAP
97 lines
4.2 KiB
ABAP
CLASS zcl_excel_style_font DEFINITION
|
|
PUBLIC
|
|
FINAL
|
|
CREATE PUBLIC .
|
|
|
|
PUBLIC SECTION.
|
|
*"* public components of class ZCL_EXCEL_STYLE_FONT
|
|
*"* do not include other source files here!!!
|
|
TYPE-POOLS abap .
|
|
|
|
DATA bold TYPE flag .
|
|
DATA color TYPE zexcel_s_style_color .
|
|
CONSTANTS c_family_decorative TYPE zexcel_style_font_family VALUE 5. "#EC NOTEXT
|
|
CONSTANTS c_family_modern TYPE zexcel_style_font_family VALUE 3. "#EC NOTEXT
|
|
CONSTANTS c_family_none TYPE zexcel_style_font_family VALUE 0. "#EC NOTEXT
|
|
CONSTANTS c_family_roman TYPE zexcel_style_font_family VALUE 1. "#EC NOTEXT
|
|
CONSTANTS c_family_script TYPE zexcel_style_font_family VALUE 4. "#EC NOTEXT
|
|
CONSTANTS c_family_swiss TYPE zexcel_style_font_family VALUE 2. "#EC NOTEXT
|
|
CONSTANTS c_name_arial TYPE zexcel_style_font_name VALUE 'Arial'. "#EC NOTEXT
|
|
CONSTANTS c_name_calibri TYPE zexcel_style_font_name VALUE 'Calibri'. "#EC NOTEXT
|
|
CONSTANTS c_name_cambria TYPE zexcel_style_font_name VALUE 'Cambria'. "#EC NOTEXT
|
|
CONSTANTS c_name_roman TYPE zexcel_style_font_name VALUE 'Times New Roman'. "#EC NOTEXT
|
|
CONSTANTS c_scheme_major TYPE zexcel_style_font_scheme VALUE 'major'. "#EC NOTEXT
|
|
CONSTANTS c_scheme_none TYPE zexcel_style_font_scheme VALUE ''. "#EC NOTEXT
|
|
CONSTANTS c_scheme_minor TYPE zexcel_style_font_scheme VALUE 'minor'. "#EC NOTEXT
|
|
CONSTANTS c_underline_double TYPE zexcel_style_font_underline VALUE 'double'. "#EC NOTEXT
|
|
CONSTANTS c_underline_doubleaccounting TYPE zexcel_style_font_underline VALUE 'doubleAccounting'. "#EC NOTEXT
|
|
CONSTANTS c_underline_none TYPE zexcel_style_font_underline VALUE 'none'. "#EC NOTEXT
|
|
CONSTANTS c_underline_single TYPE zexcel_style_font_underline VALUE 'single'. "#EC NOTEXT
|
|
CONSTANTS c_underline_singleaccounting TYPE zexcel_style_font_underline VALUE 'singleAccounting'. "#EC NOTEXT
|
|
DATA family TYPE zexcel_style_font_family VALUE 2. "#EC NOTEXT . . . . . . . . . . . . " .
|
|
DATA italic TYPE flag .
|
|
DATA name TYPE zexcel_style_font_name VALUE 'Calibri'. "#EC NOTEXT . . . . . . . . . . . . " .
|
|
DATA scheme TYPE zexcel_style_font_scheme VALUE 'minor'. "#EC NOTEXT . . . . . . . . . . . . " .
|
|
DATA size TYPE zexcel_style_font_size VALUE 11. "#EC NOTEXT . . . . . . . . . . . . " .
|
|
DATA strikethrough TYPE flag .
|
|
DATA underline TYPE flag .
|
|
DATA underline_mode TYPE zexcel_style_font_underline .
|
|
|
|
METHODS constructor .
|
|
METHODS get_structure
|
|
RETURNING
|
|
VALUE(es_font) TYPE zexcel_s_style_font .
|
|
METHODS calculate_text_width
|
|
IMPORTING
|
|
!i_text TYPE zexcel_cell_value
|
|
RETURNING
|
|
VALUE(r_width) TYPE i .
|
|
*"* protected components of class ZCL_EXCEL_STYLE_FONT
|
|
*"* do not include other source files here!!!
|
|
*"* protected components of class ZCL_EXCEL_STYLE_FONT
|
|
*"* do not include other source files here!!!
|
|
PROTECTED SECTION.
|
|
PRIVATE SECTION.
|
|
*"* private components of class ZCL_EXCEL_STYLE_FONT
|
|
*"* do not include other source files here!!!
|
|
ENDCLASS.
|
|
|
|
|
|
|
|
CLASS zcl_excel_style_font IMPLEMENTATION.
|
|
|
|
|
|
METHOD calculate_text_width.
|
|
" Addition to solve issue #120, contribution by Stefan Schmoecker
|
|
r_width = strlen( i_text ).
|
|
" use scale factor based on default 11
|
|
" ( don't know where defaultsetting is stored currently )
|
|
r_width = r_width * me->size / 11.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD constructor.
|
|
me->color-rgb = zcl_excel_style_color=>c_black.
|
|
me->color-theme = zcl_excel_style_color=>c_theme_not_set.
|
|
me->color-indexed = zcl_excel_style_color=>c_indexed_not_set.
|
|
me->scheme = zcl_excel_style_font=>c_scheme_minor.
|
|
me->underline_mode = zcl_excel_style_font=>c_underline_single.
|
|
ENDMETHOD.
|
|
|
|
|
|
METHOD get_structure.
|
|
|
|
es_font-bold = me->bold.
|
|
es_font-italic = me->italic.
|
|
es_font-underline = me->underline.
|
|
es_font-underline_mode = me->underline_mode.
|
|
es_font-strikethrough = me->strikethrough.
|
|
es_font-size = me->size.
|
|
es_font-color = me->color.
|
|
es_font-name = me->name.
|
|
es_font-family = me->family.
|
|
es_font-scheme = me->scheme.
|
|
|
|
ENDMETHOD.
|
|
ENDCLASS.
|