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 section. private section. *"* private components of class ZCL_EXCEL_STYLE_FONT *"* do not include other source files here!!! *"* local class implementation for public class *"* use this source file for the implementation part of *"* local helper classes *"* use this source file for any type declarations (class *"* definitions, interfaces or data types) you need for method *"* implementation or private method's signature *"* use this source file for any macro definitions you need *"* in the implementation part of the class ABAP METHOD calculate_text_width. " Addition to solve issue #120, contribution by Stefan Schmöcker 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.