From 533e4c8de5465fe78dcbef043cd0c8f5b0ff7098 Mon Sep 17 00:00:00 2001 From: ivanfemia Date: Thu, 26 Dec 2013 15:10:43 -0600 Subject: [PATCH] Add TOOLS and BUILD directories to the repository --- build/6.20 patch/abap2xlsx6.20patch.nugg.zip | Bin 0 -> 17356 bytes build/ABAP2XLSX_V_7_0.nugg | 37840 ++++++++++++++++ build/ABAP2XLSX_V_7_0.zip | Bin 0 -> 288666 bytes build/LICENSE.txt | 202 + build/old_releases/ABAP2XLSX_V_2_0.zip | Bin 0 -> 570618 bytes build/old_releases/ABAP2XLSX_V_3_0.zip | Bin 0 -> 788093 bytes build/old_releases/ABAP2XLSX_V_4_0.zip | Bin 0 -> 914685 bytes build/old_releases/ABAP2XLSX_V_5_0.zip | Bin 0 -> 996142 bytes build/old_releases/ABAP2XLSX_V_6_0.zip | Bin 0 -> 1090232 bytes build/old_releases/NUGG_ABAP2XLSX_V_1_0.nugg | 11526 +++++ .../NUGG_ABAP2XLSX_V_1_0.nugg.zip | Bin 0 -> 86986 bytes build/old_releases/NUGG_ABAP2XLSX_V_1_1.nugg | 6764 +++ .../NUGG_ABAP2XLSX_V_1_1.nugg.zip | Bin 0 -> 49055 bytes ...EXCEL_STYLE_ALIGNMENT-CREATE_XL_THEME.html | 112 + ...EL_STYLE_ALIGNMENT-CREATE_XL_WORKBOOK.html | 112 + ..._STYLE_ALIGNMENT-DATE_TO_EXCEL_STRING.html | 121 + ...CL_EXCEL_STYLE_ALIGNMENT-DELETE_MERGE.html | 105 + ...XCEL_STYLE_ALIGNMENT-ENCRYPT_PASSWORD.html | 121 + ...L_EXCEL_STYLE_ALIGNMENT-ESCAPE_STRING.html | 121 + ..._STYLE_ALIGNMENT-EXCEL_STRING_TO_DATE.html | 121 + ..._STYLE_ALIGNMENT-EXCEL_STRING_TO_TIME.html | 121 + ...ALIGNMENT-FILL_STRUCT_FROM_ATTRIBUTES.html | 123 + .../ZCL_EXCEL_STYLE_ALIGNMENT-FLAG2BOOL.html | 121 + ...CL_EXCEL_STYLE_ALIGNMENT-FREEZE_PANES.html | 127 + .../APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET.html | 121 + ...EXCEL_STYLE_ALIGNMENT-GET_ACTIVE_CELL.html | 112 + ...TYLE_ALIGNMENT-GET_ACTIVE_SHEET_INDEX.html | 112 + ..._STYLE_ALIGNMENT-GET_ACTIVE_WORKSHEET.html | 112 + ...L_EXCEL_STYLE_ALIGNMENT-GET_AUTO_SIZE.html | 112 + .../ZCL_EXCEL_STYLE_ALIGNMENT-GET_CELL.html | 144 + ...L_EXCEL_STYLE_ALIGNMENT-GET_COLLAPSED.html | 112 + .../ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLOR.html | 125 + .../ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLORS.html | 112 + ..._STYLE_ALIGNMENT-GET_COLUMN_DIMENSION.html | 121 + ...STYLE_ALIGNMENT-GET_COLUMN_DIMENSIONS.html | 112 + ...XCEL_STYLE_ALIGNMENT-GET_COLUMN_INDEX.html | 112 + ...LE_ALIGNMENT-GET_COND_STYLES_ITERATOR.html | 112 + ...IGNMENT-GET_DATA_VALIDATIONS_ITERATOR.html | 112 + ...E_ALIGNMENT-GET_DATA_VALIDATIONS_SIZE.html | 112 + ...LIGNMENT-GET_DEFAULT_COLUMN_DIMENSION.html | 112 + ...IGNMENT-GET_DEFAULT_EXCEL_DATE_FORMAT.html | 112 + ...E_ALIGNMENT-GET_DEFAULT_ROW_DIMENSION.html | 112 + ...L_STYLE_ALIGNMENT-GET_DIMENSION_RANGE.html | 112 + ...CL_EXCEL_STYLE_ALIGNMENT-GET_DRAWINGS.html | 112 + ...STYLE_ALIGNMENT-GET_DRAWINGS_ITERATOR.html | 112 + ...XCEL_STYLE_ALIGNMENT-GET_FIELDCATALOG.html | 121 + ...EXCEL_STYLE_ALIGNMENT-GET_FREEZE_CELL.html | 119 + ...CL_EXCEL_STYLE_ALIGNMENT-GET_FROM_COL.html | 112 + ...CL_EXCEL_STYLE_ALIGNMENT-GET_FROM_ROW.html | 112 + ..._STYLE_ALIGNMENT-GET_FROM_ZIP_ARCHIVE.html | 125 + .../ZCL_EXCEL_STYLE_ALIGNMENT-GET_GUID.html | 112 + ...EL_STYLE_ALIGNMENT-GET_HEIGHT_EMU_STR.html | 112 + ...EL_STYLE_ALIGNMENT-GET_HIGHEST_COLUMN.html | 112 + ...EXCEL_STYLE_ALIGNMENT-GET_HIGHEST_ROW.html | 112 + ...YLE_ALIGNMENT-GET_HYPERLINKS_ITERATOR.html | 112 + ...L_STYLE_ALIGNMENT-GET_HYPERLINKS_SIZE.html | 112 + .../ZCL_EXCEL_STYLE_ALIGNMENT-GET_ID.html | 112 + ...CL_EXCEL_STYLE_ALIGNMENT-GET_ITERATOR.html | 112 + ...E_ALIGNMENT-GET_IXML_FROM_ZIP_ARCHIVE.html | 125 + .../ZCL_EXCEL_STYLE_ALIGNMENT-GET_MEDIA.html | 112 + ..._EXCEL_STYLE_ALIGNMENT-GET_MEDIA_NAME.html | 112 + ..._EXCEL_STYLE_ALIGNMENT-GET_MEDIA_TYPE.html | 112 + .../ZCL_EXCEL_STYLE_ALIGNMENT-GET_MERGE.html | 112 + .../ZCL_EXCEL_STYLE_ALIGNMENT-GET_NAME.html | 112 + ...CEL_STYLE_ALIGNMENT-GET_NEXT_TABLE_ID.html | 112 + ...CEL_STYLE_ALIGNMENT-GET_OUTLINE_LEVEL.html | 112 + ...L_STYLE_ALIGNMENT-GET_RANGES_ITERATOR.html | 112 + .../ZCL_EXCEL_STYLE_ALIGNMENT-GET_REF.html | 112 + ...L_EXCEL_STYLE_ALIGNMENT-GET_REFERENCE.html | 121 + ...CEL_STYLE_ALIGNMENT-GET_ROW_DIMENSION.html | 121 + ...EL_STYLE_ALIGNMENT-GET_ROW_DIMENSIONS.html | 112 + ..._EXCEL_STYLE_ALIGNMENT-GET_ROW_HEIGHT.html | 112 + ...L_EXCEL_STYLE_ALIGNMENT-GET_ROW_INDEX.html | 112 + ...YLE_ALIGNMENT-GET_SHARED_STRING_INDEX.html | 121 + ...L_EXCEL_STYLE_ALIGNMENT-GET_STRUCTURE.html | 112 + ...L_STYLE_ALIGNMENT-GET_STYLES_ITERATOR.html | 112 + ...L_STYLE_ALIGNMENT-GET_TABLES_ITERATOR.html | 112 + ...EXCEL_STYLE_ALIGNMENT-GET_TABLES_SIZE.html | 112 + .../ZCL_EXCEL_STYLE_ALIGNMENT-GET_TITLE.html | 121 + ...EL_STYLE_ALIGNMENT-GET_TOTALS_FORMULA.html | 130 + .../ZCL_EXCEL_STYLE_ALIGNMENT-GET_TO_COL.html | 112 + .../ZCL_EXCEL_STYLE_ALIGNMENT-GET_TO_ROW.html | 112 + .../ZCL_EXCEL_STYLE_ALIGNMENT-GET_URL.html | 112 + .../ZCL_EXCEL_STYLE_ALIGNMENT-GET_VALUE.html | 112 + ...ZCL_EXCEL_STYLE_ALIGNMENT-GET_VISIBLE.html | 112 + .../ZCL_EXCEL_STYLE_ALIGNMENT-GET_WIDTH.html | 112 + ...CEL_STYLE_ALIGNMENT-GET_WIDTH_EMU_STR.html | 112 + ...YLE_ALIGNMENT-GET_WORKSHEETS_ITERATOR.html | 112 + ...L_STYLE_ALIGNMENT-GET_WORKSHEETS_NAME.html | 112 + ...L_STYLE_ALIGNMENT-GET_WORKSHEETS_SIZE.html | 112 + ...CL_EXCEL_STYLE_ALIGNMENT-GET_XF_INDEX.html | 112 + .../ZCL_EXCEL_STYLE_ALIGNMENT-HAS_TOTALS.html | 112 + .../ZCL_EXCEL_STYLE_ALIGNMENT-IS_EMPTY.html | 112 + ...ZCL_EXCEL_STYLE_ALIGNMENT-IS_INTERNAL.html | 112 + ...ZCL_EXCEL_STYLE_ALIGNMENT-IS_MODIFIED.html | 112 + ...L_STYLE_ALIGNMENT-IS_SECURITY_ENABLED.html | 112 + ...L_STYLE_ALIGNMENT-LOAD_SHARED_STRINGS.html | 114 + ...ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLES.html | 123 + ...EL_STYLE_ALIGNMENT-LOAD_STYLE_BORDERS.html | 121 + ...XCEL_STYLE_ALIGNMENT-LOAD_STYLE_FILLS.html | 121 + ...XCEL_STYLE_ALIGNMENT-LOAD_STYLE_FONTS.html | 121 + ...TYLE_ALIGNMENT-LOAD_STYLE_NUM_FORMATS.html | 121 + ...EXCEL_STYLE_ALIGNMENT-LOAD_VBAPROJECT.html | 123 + ...L_EXCEL_STYLE_ALIGNMENT-LOAD_WORKBOOK.html | 123 + ..._EXCEL_STYLE_ALIGNMENT-LOAD_WORKSHEET.html | 123 + ...TYLE_ALIGNMENT-NUMBER_TO_EXCEL_STRING.html | 121 + .../ZCL_EXCEL_STYLE_ALIGNMENT-PIXEL2EMU.html | 130 + ...EL_STYLE_ALIGNMENT-REGISTER_NEW_STYLE.html | 121 + .../ZCL_EXCEL_STYLE_ALIGNMENT-REMOVE.html | 114 + ...TYLE_ALIGNMENT-SET_ACTIVE_SHEET_INDEX.html | 114 + ...GNMENT-SET_ACTIVE_SHEET_INDEX_BY_NAME.html | 114 + ...L_EXCEL_STYLE_ALIGNMENT-SET_AUTO_SIZE.html | 121 + .../ZCL_EXCEL_STYLE_ALIGNMENT-SET_CELL.html | 177 + ...EL_STYLE_ALIGNMENT-SET_CELL_REFERENCE.html | 123 + ..._EXCEL_STYLE_ALIGNMENT-SET_CELL_STYLE.html | 136 + ...L_EXCEL_STYLE_ALIGNMENT-SET_COLLAPSED.html | 114 + .../ZCL_EXCEL_STYLE_ALIGNMENT-SET_COLOR.html | 123 + ...XCEL_STYLE_ALIGNMENT-SET_COLUMN_INDEX.html | 121 + .../ZCL_EXCEL_STYLE_ALIGNMENT-SET_DATA.html | 114 + ...IGNMENT-SET_DEFAULT_EXCEL_DATE_FORMAT.html | 114 + ...L_EXCEL_STYLE_ALIGNMENT-SET_DELIMITER.html | 114 + ...L_EXCEL_STYLE_ALIGNMENT-SET_ENCLOSURE.html | 114 + ...L_EXCEL_STYLE_ALIGNMENT-SET_ENDOFLINE.html | 114 + .../ZCL_EXCEL_STYLE_ALIGNMENT-SET_ID.html | 114 + .../ZCL_EXCEL_STYLE_ALIGNMENT-SET_MEDIA.html | 141 + ..._EXCEL_STYLE_ALIGNMENT-SET_MEDIA_MIME.html | 132 + ...L_EXCEL_STYLE_ALIGNMENT-SET_MEDIA_WWW.html | 132 + .../ZCL_EXCEL_STYLE_ALIGNMENT-SET_MERGE.html | 141 + ...CEL_STYLE_ALIGNMENT-SET_OUTLINE_LEVEL.html | 118 + ...XCEL_STYLE_ALIGNMENT-SET_PAGE_MARGINS.html | 168 + ...CL_EXCEL_STYLE_ALIGNMENT-SET_POSITION.html | 123 + ...L_STYLE_ALIGNMENT-SET_PRINT_GRIDLINES.html | 114 + .../ZCL_EXCEL_STYLE_ALIGNMENT-SET_RANGE.html | 141 + ...EXCEL_STYLE_ALIGNMENT-SET_RANGE_VALUE.html | 114 + ..._EXCEL_STYLE_ALIGNMENT-SET_ROW_HEIGHT.html | 114 + ...L_EXCEL_STYLE_ALIGNMENT-SET_ROW_INDEX.html | 114 + ...EL_STYLE_ALIGNMENT-SET_SHOW_GRIDLINES.html | 114 + ...TYLE_ALIGNMENT-SET_SHOW_ROWCOLHEADERS.html | 114 + .../ZCL_EXCEL_STYLE_ALIGNMENT-SET_TABLE.html | 159 + .../ZCL_EXCEL_STYLE_ALIGNMENT-SET_TITLE.html | 114 + .../ZCL_EXCEL_STYLE_ALIGNMENT-SET_VALUE.html | 150 + ...ZCL_EXCEL_STYLE_ALIGNMENT-SET_VISIBLE.html | 114 + .../ZCL_EXCEL_STYLE_ALIGNMENT-SET_WIDTH.html | 121 + ...CL_EXCEL_STYLE_ALIGNMENT-SET_XF_INDEX.html | 114 + .../ZCL_EXCEL_STYLE_ALIGNMENT-SHL01.html | 121 + .../ZCL_EXCEL_STYLE_ALIGNMENT-SHR14.html | 121 + .../ZCL_EXCEL_STYLE_ALIGNMENT-SIZE.html | 112 + ..._STYLE_ALIGNMENT-TIME_TO_EXCEL_STRING.html | 121 + ...TYLE_ALIGNMENT-UPDATE_DIMENSION_RANGE.html | 105 + ...-ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE.html | 105 + ...-ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE.html | 105 + ...F_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME.html | 114 + ...XCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR.html | 114 + ...EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT.html | 114 + ...STYLE_ALIGNMENT-ZIF_EXCEL_READER~LOAD.html | 125 + ..._ALIGNMENT-ZIF_EXCEL_READER~LOAD_FILE.html | 125 + ...-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html | 112 + ...ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html | 105 + ...-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html | 114 + ...ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html | 105 + ..._EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html | 114 + ...CEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html | 114 + ...ALIGNMENT-ZIF_EXCEL_WRITER~WRITE_FILE.html | 121 + tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT.html | 195 + tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ADD.html | 114 + .../ZCL_EXCEL_STYLE_BORDER-ADD_DRAWING.html | 114 + ...TYLE_BORDER-ADD_NEW_CONDITIONAL_STYLE.html | 112 + ..._STYLE_BORDER-ADD_NEW_DATA_VALIDATION.html | 112 + .../ZCL_EXCEL_STYLE_BORDER-BIND_ALV.html | 241 + .../ZCL_EXCEL_STYLE_BORDER-BIND_TABLE.html | 139 + ..._STYLE_BORDER-CALCULATE_COLUMN_WIDTHS.html | 105 + ...CEL_STYLE_BORDER-CALCULATE_TEXT_WIDTH.html | 121 + .../APIDoc/ZCL_EXCEL_STYLE_BORDER-CLEAR.html | 105 + .../ZCL_EXCEL_STYLE_BORDER-CONSTRUCTOR.html | 105 + .../APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE.html | 112 + ...CEL_STYLE_BORDER-CREATE_CONTENT_TYPES.html | 112 + .../ZCL_EXCEL_STYLE_BORDER-CREATE_CSV.html | 112 + ...XCEL_STYLE_BORDER-CREATE_DOCPROPS_APP.html | 112 + ...CEL_STYLE_BORDER-CREATE_DOCPROPS_CORE.html | 112 + ...CL_EXCEL_STYLE_BORDER-CREATE_NEW_ARGB.html | 139 + ...CEL_STYLE_BORDER-CREATE_RELATIONSHIPS.html | 112 + ...EXCEL_STYLE_BORDER-CREATE_XL_DRAWINGS.html | 121 + ..._STYLE_BORDER-CREATE_XL_DRAWINGS_RELS.html | 121 + ..._STYLE_BORDER-CREATE_XL_RELATIONSHIPS.html | 112 + ..._STYLE_BORDER-CREATE_XL_SHAREDSTRINGS.html | 112 + ...CL_EXCEL_STYLE_BORDER-CREATE_XL_SHEET.html | 130 + ...CEL_STYLE_BORDER-CREATE_XL_SHEET_RELS.html | 130 + ...L_EXCEL_STYLE_BORDER-CREATE_XL_STYLES.html | 112 + ...LE_BORDER-CREATE_XL_STYLES_COLOR_NODE.html | 141 + ...CL_EXCEL_STYLE_BORDER-CREATE_XL_TABLE.html | 121 + ...CL_EXCEL_STYLE_BORDER-CREATE_XL_THEME.html | 112 + ...EXCEL_STYLE_BORDER-CREATE_XL_WORKBOOK.html | 112 + .../ZCL_EXCEL_STYLE_BORDER-DELETE_MERGE.html | 105 + ...LE_BORDER-FILL_STRUCT_FROM_ATTRIBUTES.html | 123 + .../ZCL_EXCEL_STYLE_BORDER-FLAG2BOOL.html | 121 + .../ZCL_EXCEL_STYLE_BORDER-FREEZE_PANES.html | 127 + tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET.html | 121 + ...CL_EXCEL_STYLE_BORDER-GET_ACTIVE_CELL.html | 112 + .../ZCL_EXCEL_STYLE_BORDER-GET_AUTO_SIZE.html | 112 + .../ZCL_EXCEL_STYLE_BORDER-GET_CELL.html | 144 + .../ZCL_EXCEL_STYLE_BORDER-GET_COLLAPSED.html | 112 + .../ZCL_EXCEL_STYLE_BORDER-GET_COLOR.html | 125 + .../ZCL_EXCEL_STYLE_BORDER-GET_COLORS.html | 112 + ...CEL_STYLE_BORDER-GET_COLUMN_DIMENSION.html | 121 + ...EL_STYLE_BORDER-GET_COLUMN_DIMENSIONS.html | 112 + ...L_EXCEL_STYLE_BORDER-GET_COLUMN_INDEX.html | 112 + ...STYLE_BORDER-GET_COND_STYLES_ITERATOR.html | 112 + ..._BORDER-GET_DATA_VALIDATIONS_ITERATOR.html | 112 + ...TYLE_BORDER-GET_DATA_VALIDATIONS_SIZE.html | 112 + ...E_BORDER-GET_DEFAULT_COLUMN_DIMENSION.html | 112 + ..._BORDER-GET_DEFAULT_EXCEL_DATE_FORMAT.html | 112 + ...TYLE_BORDER-GET_DEFAULT_ROW_DIMENSION.html | 112 + ...XCEL_STYLE_BORDER-GET_DIMENSION_RANGE.html | 112 + .../ZCL_EXCEL_STYLE_BORDER-GET_DRAWINGS.html | 112 + ...EL_STYLE_BORDER-GET_DRAWINGS_ITERATOR.html | 112 + ...CL_EXCEL_STYLE_BORDER-GET_FREEZE_CELL.html | 119 + ...CEL_STYLE_BORDER-GET_FROM_ZIP_ARCHIVE.html | 125 + .../ZCL_EXCEL_STYLE_BORDER-GET_GUID.html | 112 + ...EXCEL_STYLE_BORDER-GET_HIGHEST_COLUMN.html | 112 + ...CL_EXCEL_STYLE_BORDER-GET_HIGHEST_ROW.html | 112 + ..._STYLE_BORDER-GET_HYPERLINKS_ITERATOR.html | 112 + ...XCEL_STYLE_BORDER-GET_HYPERLINKS_SIZE.html | 112 + .../APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ID.html | 112 + .../ZCL_EXCEL_STYLE_BORDER-GET_ITERATOR.html | 112 + ...TYLE_BORDER-GET_IXML_FROM_ZIP_ARCHIVE.html | 125 + .../ZCL_EXCEL_STYLE_BORDER-GET_MERGE.html | 112 + .../ZCL_EXCEL_STYLE_BORDER-GET_NAME.html | 112 + ..._EXCEL_STYLE_BORDER-GET_OUTLINE_LEVEL.html | 112 + .../ZCL_EXCEL_STYLE_BORDER-GET_REFERENCE.html | 121 + ..._EXCEL_STYLE_BORDER-GET_ROW_DIMENSION.html | 121 + ...EXCEL_STYLE_BORDER-GET_ROW_DIMENSIONS.html | 112 + ...ZCL_EXCEL_STYLE_BORDER-GET_ROW_HEIGHT.html | 112 + .../ZCL_EXCEL_STYLE_BORDER-GET_ROW_INDEX.html | 112 + ..._STYLE_BORDER-GET_SHARED_STRING_INDEX.html | 121 + .../ZCL_EXCEL_STYLE_BORDER-GET_STRUCTURE.html | 112 + ...XCEL_STYLE_BORDER-GET_TABLES_ITERATOR.html | 112 + ...CL_EXCEL_STYLE_BORDER-GET_TABLES_SIZE.html | 112 + .../ZCL_EXCEL_STYLE_BORDER-GET_TITLE.html | 121 + ...EXCEL_STYLE_BORDER-GET_TOTALS_FORMULA.html | 130 + .../ZCL_EXCEL_STYLE_BORDER-GET_VISIBLE.html | 112 + .../ZCL_EXCEL_STYLE_BORDER-GET_WIDTH.html | 112 + .../ZCL_EXCEL_STYLE_BORDER-GET_XF_INDEX.html | 112 + .../ZCL_EXCEL_STYLE_BORDER-HAS_TOTALS.html | 112 + .../ZCL_EXCEL_STYLE_BORDER-IS_EMPTY.html | 112 + .../ZCL_EXCEL_STYLE_BORDER-IS_MODIFIED.html | 112 + ...XCEL_STYLE_BORDER-LOAD_SHARED_STRINGS.html | 114 + .../ZCL_EXCEL_STYLE_BORDER-LOAD_STYLES.html | 123 + ...EXCEL_STYLE_BORDER-LOAD_STYLE_BORDERS.html | 121 + ...L_EXCEL_STYLE_BORDER-LOAD_STYLE_FILLS.html | 121 + ...L_EXCEL_STYLE_BORDER-LOAD_STYLE_FONTS.html | 121 + ...L_STYLE_BORDER-LOAD_STYLE_NUM_FORMATS.html | 121 + ...CL_EXCEL_STYLE_BORDER-LOAD_VBAPROJECT.html | 123 + .../ZCL_EXCEL_STYLE_BORDER-LOAD_WORKBOOK.html | 123 + ...ZCL_EXCEL_STYLE_BORDER-LOAD_WORKSHEET.html | 123 + .../APIDoc/ZCL_EXCEL_STYLE_BORDER-REMOVE.html | 114 + ...L_STYLE_BORDER-SET_ACTIVE_SHEET_INDEX.html | 114 + ...BORDER-SET_ACTIVE_SHEET_INDEX_BY_NAME.html | 114 + .../ZCL_EXCEL_STYLE_BORDER-SET_AUTO_SIZE.html | 121 + .../ZCL_EXCEL_STYLE_BORDER-SET_CELL.html | 177 + ...ZCL_EXCEL_STYLE_BORDER-SET_CELL_STYLE.html | 136 + .../ZCL_EXCEL_STYLE_BORDER-SET_COLLAPSED.html | 114 + .../ZCL_EXCEL_STYLE_BORDER-SET_COLOR.html | 123 + ...L_EXCEL_STYLE_BORDER-SET_COLUMN_INDEX.html | 121 + .../ZCL_EXCEL_STYLE_BORDER-SET_DATA.html | 114 + ..._BORDER-SET_DEFAULT_EXCEL_DATE_FORMAT.html | 114 + .../ZCL_EXCEL_STYLE_BORDER-SET_DELIMITER.html | 114 + .../ZCL_EXCEL_STYLE_BORDER-SET_ENCLOSURE.html | 114 + .../ZCL_EXCEL_STYLE_BORDER-SET_ENDOFLINE.html | 114 + .../APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ID.html | 114 + .../ZCL_EXCEL_STYLE_BORDER-SET_MERGE.html | 141 + ..._EXCEL_STYLE_BORDER-SET_OUTLINE_LEVEL.html | 118 + ...XCEL_STYLE_BORDER-SET_PRINT_GRIDLINES.html | 114 + .../ZCL_EXCEL_STYLE_BORDER-SET_RANGE.html | 141 + ...ZCL_EXCEL_STYLE_BORDER-SET_ROW_HEIGHT.html | 114 + .../ZCL_EXCEL_STYLE_BORDER-SET_ROW_INDEX.html | 114 + ...EXCEL_STYLE_BORDER-SET_SHOW_GRIDLINES.html | 114 + ...L_STYLE_BORDER-SET_SHOW_ROWCOLHEADERS.html | 114 + .../ZCL_EXCEL_STYLE_BORDER-SET_TABLE.html | 159 + .../ZCL_EXCEL_STYLE_BORDER-SET_TITLE.html | 114 + .../ZCL_EXCEL_STYLE_BORDER-SET_VISIBLE.html | 114 + .../ZCL_EXCEL_STYLE_BORDER-SET_WIDTH.html | 121 + .../ZCL_EXCEL_STYLE_BORDER-SET_XF_INDEX.html | 114 + tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SIZE.html | 112 + ...L_STYLE_BORDER-UPDATE_DIMENSION_RANGE.html | 105 + ...EL_STYLE_BORDER-ZIF_EXCEL_READER~LOAD.html | 125 + ...YLE_BORDER-ZIF_EXCEL_READER~LOAD_FILE.html | 125 + ...-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html | 112 + ...ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html | 105 + ...-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html | 114 + ...ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html | 105 + ..._EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html | 114 + ...CEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html | 114 + ...LE_BORDER-ZIF_EXCEL_WRITER~WRITE_FILE.html | 121 + tools/APIDoc/ZCL_EXCEL_STYLE_BORDER.html | 195 + .../ZCL_EXCEL_STYLE_BORDERS-CONSTRUCTOR.html | 105 + .../ZCL_EXCEL_STYLE_BORDERS-GET_COLOR.html | 125 + .../ZCL_EXCEL_STYLE_BORDERS-GET_COLORS.html | 112 + ...ZCL_EXCEL_STYLE_BORDERS-GET_STRUCTURE.html | 112 + .../ZCL_EXCEL_STYLE_BORDERS-IS_MODIFIED.html | 112 + ...L_EXCEL_STYLE_BORDERS-LOAD_VBAPROJECT.html | 123 + ...ZCL_EXCEL_STYLE_BORDERS-LOAD_WORKBOOK.html | 123 + ...CL_EXCEL_STYLE_BORDERS-LOAD_WORKSHEET.html | 123 + .../ZCL_EXCEL_STYLE_BORDERS-SET_COLOR.html | 123 + tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS.html | 145 + .../ZCL_EXCEL_STYLE_COLOR-CONSTRUCTOR.html | 105 + ...ZCL_EXCEL_STYLE_COLOR-CREATE_NEW_ARGB.html | 139 + .../ZCL_EXCEL_STYLE_COLOR-GET_COLOR.html | 125 + .../ZCL_EXCEL_STYLE_COLOR-GET_COLORS.html | 112 + .../ZCL_EXCEL_STYLE_COLOR-GET_STRUCTURE.html | 112 + .../ZCL_EXCEL_STYLE_COLOR-IS_MODIFIED.html | 112 + ...ZCL_EXCEL_STYLE_COLOR-LOAD_VBAPROJECT.html | 123 + .../ZCL_EXCEL_STYLE_COLOR-LOAD_WORKBOOK.html | 123 + .../ZCL_EXCEL_STYLE_COLOR-LOAD_WORKSHEET.html | 123 + .../ZCL_EXCEL_STYLE_COLOR-SET_COLOR.html | 123 + tools/APIDoc/ZCL_EXCEL_STYLE_COLOR.html | 305 + ...L_EXCEL_STYLE_CONDITIONAL-CONSTRUCTOR.html | 105 + ...CEL_STYLE_CONDITIONAL-CREATE_NEW_ARGB.html | 139 + ...ZCL_EXCEL_STYLE_CONDITIONAL-GET_COLOR.html | 125 + ...CL_EXCEL_STYLE_CONDITIONAL-GET_COLORS.html | 112 + ...STYLE_CONDITIONAL-GET_DIMENSION_RANGE.html | 112 + ...EXCEL_STYLE_CONDITIONAL-GET_STRUCTURE.html | 112 + ...L_EXCEL_STYLE_CONDITIONAL-IS_MODIFIED.html | 112 + ...CEL_STYLE_CONDITIONAL-LOAD_VBAPROJECT.html | 123 + ...EXCEL_STYLE_CONDITIONAL-LOAD_WORKBOOK.html | 123 + ...XCEL_STYLE_CONDITIONAL-LOAD_WORKSHEET.html | 123 + ...ZCL_EXCEL_STYLE_CONDITIONAL-SET_COLOR.html | 123 + ...ZCL_EXCEL_STYLE_CONDITIONAL-SET_RANGE.html | 141 + tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL.html | 505 + .../ZCL_EXCEL_STYLE_FILL-CONSTRUCTOR.html | 105 + .../ZCL_EXCEL_STYLE_FILL-CREATE_NEW_ARGB.html | 139 + .../ZCL_EXCEL_STYLE_FILL-GET_COLOR.html | 125 + .../ZCL_EXCEL_STYLE_FILL-GET_COLORS.html | 112 + ..._EXCEL_STYLE_FILL-GET_DIMENSION_RANGE.html | 112 + .../ZCL_EXCEL_STYLE_FILL-GET_STRUCTURE.html | 112 + .../ZCL_EXCEL_STYLE_FILL-IS_MODIFIED.html | 112 + .../ZCL_EXCEL_STYLE_FILL-LOAD_VBAPROJECT.html | 123 + .../ZCL_EXCEL_STYLE_FILL-LOAD_WORKBOOK.html | 123 + .../ZCL_EXCEL_STYLE_FILL-LOAD_WORKSHEET.html | 123 + .../ZCL_EXCEL_STYLE_FILL-SET_COLOR.html | 123 + .../ZCL_EXCEL_STYLE_FILL-SET_RANGE.html | 141 + tools/APIDoc/ZCL_EXCEL_STYLE_FILL.html | 285 + ...EXCEL_STYLE_FONT-CALCULATE_TEXT_WIDTH.html | 121 + .../ZCL_EXCEL_STYLE_FONT-CONSTRUCTOR.html | 105 + .../ZCL_EXCEL_STYLE_FONT-CREATE_NEW_ARGB.html | 139 + .../ZCL_EXCEL_STYLE_FONT-GET_COLOR.html | 125 + .../ZCL_EXCEL_STYLE_FONT-GET_COLORS.html | 112 + ..._EXCEL_STYLE_FONT-GET_DIMENSION_RANGE.html | 112 + .../ZCL_EXCEL_STYLE_FONT-GET_STRUCTURE.html | 112 + .../ZCL_EXCEL_STYLE_FONT-IS_MODIFIED.html | 112 + .../ZCL_EXCEL_STYLE_FONT-LOAD_VBAPROJECT.html | 123 + .../ZCL_EXCEL_STYLE_FONT-LOAD_WORKBOOK.html | 123 + .../ZCL_EXCEL_STYLE_FONT-LOAD_WORKSHEET.html | 123 + .../ZCL_EXCEL_STYLE_FONT-SET_COLOR.html | 123 + .../ZCL_EXCEL_STYLE_FONT-SET_RANGE.html | 141 + tools/APIDoc/ZCL_EXCEL_STYLE_FONT.html | 315 + ...LE_NUMBER_FORMAT-CALCULATE_TEXT_WIDTH.html | 121 + ...EXCEL_STYLE_NUMBER_FORMAT-CONSTRUCTOR.html | 105 + ...L_STYLE_NUMBER_FORMAT-CREATE_NEW_ARGB.html | 139 + ...L_EXCEL_STYLE_NUMBER_FORMAT-GET_COLOR.html | 125 + ..._EXCEL_STYLE_NUMBER_FORMAT-GET_COLORS.html | 112 + ...YLE_NUMBER_FORMAT-GET_DIMENSION_RANGE.html | 112 + ...CEL_STYLE_NUMBER_FORMAT-GET_STRUCTURE.html | 112 + ...EXCEL_STYLE_NUMBER_FORMAT-IS_MODIFIED.html | 112 + ...L_STYLE_NUMBER_FORMAT-LOAD_VBAPROJECT.html | 123 + ...CEL_STYLE_NUMBER_FORMAT-LOAD_WORKBOOK.html | 123 + ...EL_STYLE_NUMBER_FORMAT-LOAD_WORKSHEET.html | 123 + ...L_EXCEL_STYLE_NUMBER_FORMAT-SET_COLOR.html | 123 + ...L_EXCEL_STYLE_NUMBER_FORMAT-SET_RANGE.html | 141 + .../APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT.html | 415 + ...STYLE_PROTECTION-CALCULATE_TEXT_WIDTH.html | 121 + ...CL_EXCEL_STYLE_PROTECTION-CONSTRUCTOR.html | 105 + ...XCEL_STYLE_PROTECTION-CREATE_NEW_ARGB.html | 139 + .../ZCL_EXCEL_STYLE_PROTECTION-GET_COLOR.html | 125 + ...ZCL_EXCEL_STYLE_PROTECTION-GET_COLORS.html | 112 + ..._STYLE_PROTECTION-GET_DIMENSION_RANGE.html | 112 + ..._EXCEL_STYLE_PROTECTION-GET_STRUCTURE.html | 112 + ...CL_EXCEL_STYLE_PROTECTION-IS_MODIFIED.html | 112 + ...XCEL_STYLE_PROTECTION-LOAD_VBAPROJECT.html | 123 + ..._EXCEL_STYLE_PROTECTION-LOAD_WORKBOOK.html | 123 + ...EXCEL_STYLE_PROTECTION-LOAD_WORKSHEET.html | 123 + .../ZCL_EXCEL_STYLE_PROTECTION-SET_COLOR.html | 123 + .../ZCL_EXCEL_STYLE_PROTECTION-SET_RANGE.html | 141 + tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION.html | 95 + .../ZCL_EXCEL_TABLE-CALCULATE_TEXT_WIDTH.html | 121 + tools/APIDoc/ZCL_EXCEL_TABLE-CONSTRUCTOR.html | 105 + .../ZCL_EXCEL_TABLE-CREATE_NEW_ARGB.html | 139 + tools/APIDoc/ZCL_EXCEL_TABLE-GET_COLOR.html | 125 + tools/APIDoc/ZCL_EXCEL_TABLE-GET_COLORS.html | 112 + .../ZCL_EXCEL_TABLE-GET_DIMENSION_RANGE.html | 112 + tools/APIDoc/ZCL_EXCEL_TABLE-GET_ID.html | 112 + tools/APIDoc/ZCL_EXCEL_TABLE-GET_NAME.html | 112 + .../APIDoc/ZCL_EXCEL_TABLE-GET_REFERENCE.html | 121 + .../APIDoc/ZCL_EXCEL_TABLE-GET_STRUCTURE.html | 112 + .../ZCL_EXCEL_TABLE-GET_TOTALS_FORMULA.html | 130 + tools/APIDoc/ZCL_EXCEL_TABLE-HAS_TOTALS.html | 112 + tools/APIDoc/ZCL_EXCEL_TABLE-IS_MODIFIED.html | 112 + .../ZCL_EXCEL_TABLE-LOAD_VBAPROJECT.html | 123 + .../APIDoc/ZCL_EXCEL_TABLE-LOAD_WORKBOOK.html | 123 + .../ZCL_EXCEL_TABLE-LOAD_WORKSHEET.html | 123 + tools/APIDoc/ZCL_EXCEL_TABLE-SET_COLOR.html | 123 + tools/APIDoc/ZCL_EXCEL_TABLE-SET_DATA.html | 114 + tools/APIDoc/ZCL_EXCEL_TABLE-SET_ID.html | 114 + tools/APIDoc/ZCL_EXCEL_TABLE-SET_RANGE.html | 141 + tools/APIDoc/ZCL_EXCEL_TABLE.html | 315 + .../ZCL_EXCEL_WORKSHEET-ADD_DRAWING.html | 114 + ...L_WORKSHEET-ADD_NEW_CONDITIONAL_STYLE.html | 112 + ...CEL_WORKSHEET-ADD_NEW_DATA_VALIDATION.html | 112 + .../APIDoc/ZCL_EXCEL_WORKSHEET-BIND_ALV.html | 241 + .../ZCL_EXCEL_WORKSHEET-BIND_TABLE.html | 139 + ...CEL_WORKSHEET-CALCULATE_COLUMN_WIDTHS.html | 105 + ..._EXCEL_WORKSHEET-CALCULATE_TEXT_WIDTH.html | 121 + .../ZCL_EXCEL_WORKSHEET-CONSTRUCTOR.html | 123 + .../ZCL_EXCEL_WORKSHEET-CREATE_NEW_ARGB.html | 139 + .../ZCL_EXCEL_WORKSHEET-DELETE_MERGE.html | 105 + .../ZCL_EXCEL_WORKSHEET-FREEZE_PANES.html | 127 + .../ZCL_EXCEL_WORKSHEET-GET_ACTIVE_CELL.html | 112 + .../APIDoc/ZCL_EXCEL_WORKSHEET-GET_CELL.html | 144 + .../APIDoc/ZCL_EXCEL_WORKSHEET-GET_COLOR.html | 125 + .../ZCL_EXCEL_WORKSHEET-GET_COLORS.html | 112 + ..._EXCEL_WORKSHEET-GET_COLUMN_DIMENSION.html | 121 + ...EXCEL_WORKSHEET-GET_COLUMN_DIMENSIONS.html | 112 + ...EL_WORKSHEET-GET_COND_STYLES_ITERATOR.html | 112 + ...RKSHEET-GET_DATA_VALIDATIONS_ITERATOR.html | 112 + ...L_WORKSHEET-GET_DATA_VALIDATIONS_SIZE.html | 112 + ...ORKSHEET-GET_DEFAULT_COLUMN_DIMENSION.html | 112 + ...RKSHEET-GET_DEFAULT_EXCEL_DATE_FORMAT.html | 112 + ...L_WORKSHEET-GET_DEFAULT_ROW_DIMENSION.html | 112 + ...L_EXCEL_WORKSHEET-GET_DIMENSION_RANGE.html | 112 + .../ZCL_EXCEL_WORKSHEET-GET_DRAWINGS.html | 112 + ...EXCEL_WORKSHEET-GET_DRAWINGS_ITERATOR.html | 112 + .../ZCL_EXCEL_WORKSHEET-GET_FREEZE_CELL.html | 119 + .../APIDoc/ZCL_EXCEL_WORKSHEET-GET_GUID.html | 112 + ...CL_EXCEL_WORKSHEET-GET_HIGHEST_COLUMN.html | 112 + .../ZCL_EXCEL_WORKSHEET-GET_HIGHEST_ROW.html | 112 + ...CEL_WORKSHEET-GET_HYPERLINKS_ITERATOR.html | 112 + ...L_EXCEL_WORKSHEET-GET_HYPERLINKS_SIZE.html | 112 + tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_ID.html | 112 + .../APIDoc/ZCL_EXCEL_WORKSHEET-GET_MERGE.html | 112 + .../APIDoc/ZCL_EXCEL_WORKSHEET-GET_NAME.html | 112 + .../ZCL_EXCEL_WORKSHEET-GET_REFERENCE.html | 121 + ...ZCL_EXCEL_WORKSHEET-GET_ROW_DIMENSION.html | 121 + ...CL_EXCEL_WORKSHEET-GET_ROW_DIMENSIONS.html | 112 + .../ZCL_EXCEL_WORKSHEET-GET_STRUCTURE.html | 112 + ...L_EXCEL_WORKSHEET-GET_TABLES_ITERATOR.html | 112 + .../ZCL_EXCEL_WORKSHEET-GET_TABLES_SIZE.html | 112 + .../APIDoc/ZCL_EXCEL_WORKSHEET-GET_TITLE.html | 121 + ...CL_EXCEL_WORKSHEET-GET_TOTALS_FORMULA.html | 130 + .../ZCL_EXCEL_WORKSHEET-HAS_TOTALS.html | 112 + .../ZCL_EXCEL_WORKSHEET-IS_MODIFIED.html | 112 + .../ZCL_EXCEL_WORKSHEET-LOAD_VBAPROJECT.html | 123 + .../ZCL_EXCEL_WORKSHEET-LOAD_WORKBOOK.html | 123 + .../ZCL_EXCEL_WORKSHEET-LOAD_WORKSHEET.html | 123 + .../APIDoc/ZCL_EXCEL_WORKSHEET-SET_CELL.html | 177 + .../ZCL_EXCEL_WORKSHEET-SET_CELL_STYLE.html | 136 + .../APIDoc/ZCL_EXCEL_WORKSHEET-SET_COLOR.html | 123 + .../APIDoc/ZCL_EXCEL_WORKSHEET-SET_DATA.html | 114 + ...RKSHEET-SET_DEFAULT_EXCEL_DATE_FORMAT.html | 114 + tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_ID.html | 114 + .../APIDoc/ZCL_EXCEL_WORKSHEET-SET_MERGE.html | 141 + ...L_EXCEL_WORKSHEET-SET_PRINT_GRIDLINES.html | 114 + .../APIDoc/ZCL_EXCEL_WORKSHEET-SET_RANGE.html | 141 + ...CL_EXCEL_WORKSHEET-SET_SHOW_GRIDLINES.html | 114 + ...XCEL_WORKSHEET-SET_SHOW_ROWCOLHEADERS.html | 114 + .../APIDoc/ZCL_EXCEL_WORKSHEET-SET_TABLE.html | 159 + .../APIDoc/ZCL_EXCEL_WORKSHEET-SET_TITLE.html | 114 + ...XCEL_WORKSHEET-UPDATE_DIMENSION_RANGE.html | 105 + ...-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html | 112 + ...ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html | 105 + ...-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html | 114 + ...ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html | 105 + ..._EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html | 114 + ...CEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html | 114 + tools/APIDoc/ZCL_EXCEL_WORKSHEET.html | 355 + tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ADD.html | 114 + .../ZCL_EXCEL_WORKSHEETS-ADD_DRAWING.html | 114 + ..._WORKSHEETS-ADD_NEW_CONDITIONAL_STYLE.html | 112 + ...EL_WORKSHEETS-ADD_NEW_DATA_VALIDATION.html | 112 + .../APIDoc/ZCL_EXCEL_WORKSHEETS-BIND_ALV.html | 241 + .../ZCL_EXCEL_WORKSHEETS-BIND_TABLE.html | 139 + ...EL_WORKSHEETS-CALCULATE_COLUMN_WIDTHS.html | 105 + ...EXCEL_WORKSHEETS-CALCULATE_TEXT_WIDTH.html | 121 + tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CLEAR.html | 105 + .../ZCL_EXCEL_WORKSHEETS-CONSTRUCTOR.html | 105 + .../ZCL_EXCEL_WORKSHEETS-CREATE_NEW_ARGB.html | 139 + .../ZCL_EXCEL_WORKSHEETS-DELETE_MERGE.html | 105 + .../ZCL_EXCEL_WORKSHEETS-FREEZE_PANES.html | 127 + tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET.html | 121 + .../ZCL_EXCEL_WORKSHEETS-GET_ACTIVE_CELL.html | 112 + .../APIDoc/ZCL_EXCEL_WORKSHEETS-GET_CELL.html | 144 + .../ZCL_EXCEL_WORKSHEETS-GET_COLOR.html | 125 + .../ZCL_EXCEL_WORKSHEETS-GET_COLORS.html | 112 + ...EXCEL_WORKSHEETS-GET_COLUMN_DIMENSION.html | 121 + ...XCEL_WORKSHEETS-GET_COLUMN_DIMENSIONS.html | 112 + ...L_WORKSHEETS-GET_COND_STYLES_ITERATOR.html | 112 + ...KSHEETS-GET_DATA_VALIDATIONS_ITERATOR.html | 112 + ..._WORKSHEETS-GET_DATA_VALIDATIONS_SIZE.html | 112 + ...RKSHEETS-GET_DEFAULT_COLUMN_DIMENSION.html | 112 + ...KSHEETS-GET_DEFAULT_EXCEL_DATE_FORMAT.html | 112 + ..._WORKSHEETS-GET_DEFAULT_ROW_DIMENSION.html | 112 + ..._EXCEL_WORKSHEETS-GET_DIMENSION_RANGE.html | 112 + .../ZCL_EXCEL_WORKSHEETS-GET_DRAWINGS.html | 112 + ...XCEL_WORKSHEETS-GET_DRAWINGS_ITERATOR.html | 112 + .../ZCL_EXCEL_WORKSHEETS-GET_FREEZE_CELL.html | 119 + .../APIDoc/ZCL_EXCEL_WORKSHEETS-GET_GUID.html | 112 + ...L_EXCEL_WORKSHEETS-GET_HIGHEST_COLUMN.html | 112 + .../ZCL_EXCEL_WORKSHEETS-GET_HIGHEST_ROW.html | 112 + ...EL_WORKSHEETS-GET_HYPERLINKS_ITERATOR.html | 112 + ..._EXCEL_WORKSHEETS-GET_HYPERLINKS_SIZE.html | 112 + tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ID.html | 112 + .../ZCL_EXCEL_WORKSHEETS-GET_ITERATOR.html | 112 + .../ZCL_EXCEL_WORKSHEETS-GET_MERGE.html | 112 + .../APIDoc/ZCL_EXCEL_WORKSHEETS-GET_NAME.html | 112 + .../ZCL_EXCEL_WORKSHEETS-GET_REFERENCE.html | 121 + ...CL_EXCEL_WORKSHEETS-GET_ROW_DIMENSION.html | 121 + ...L_EXCEL_WORKSHEETS-GET_ROW_DIMENSIONS.html | 112 + .../ZCL_EXCEL_WORKSHEETS-GET_STRUCTURE.html | 112 + ..._EXCEL_WORKSHEETS-GET_TABLES_ITERATOR.html | 112 + .../ZCL_EXCEL_WORKSHEETS-GET_TABLES_SIZE.html | 112 + .../ZCL_EXCEL_WORKSHEETS-GET_TITLE.html | 121 + ...L_EXCEL_WORKSHEETS-GET_TOTALS_FORMULA.html | 130 + .../ZCL_EXCEL_WORKSHEETS-HAS_TOTALS.html | 112 + .../APIDoc/ZCL_EXCEL_WORKSHEETS-IS_EMPTY.html | 112 + .../ZCL_EXCEL_WORKSHEETS-IS_MODIFIED.html | 112 + .../ZCL_EXCEL_WORKSHEETS-LOAD_VBAPROJECT.html | 123 + .../ZCL_EXCEL_WORKSHEETS-LOAD_WORKBOOK.html | 123 + .../ZCL_EXCEL_WORKSHEETS-LOAD_WORKSHEET.html | 123 + tools/APIDoc/ZCL_EXCEL_WORKSHEETS-REMOVE.html | 114 + .../APIDoc/ZCL_EXCEL_WORKSHEETS-SET_CELL.html | 177 + .../ZCL_EXCEL_WORKSHEETS-SET_CELL_STYLE.html | 136 + .../ZCL_EXCEL_WORKSHEETS-SET_COLOR.html | 123 + .../APIDoc/ZCL_EXCEL_WORKSHEETS-SET_DATA.html | 114 + ...KSHEETS-SET_DEFAULT_EXCEL_DATE_FORMAT.html | 114 + tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_ID.html | 114 + .../ZCL_EXCEL_WORKSHEETS-SET_MERGE.html | 141 + ..._EXCEL_WORKSHEETS-SET_PRINT_GRIDLINES.html | 114 + .../ZCL_EXCEL_WORKSHEETS-SET_RANGE.html | 141 + ...L_EXCEL_WORKSHEETS-SET_SHOW_GRIDLINES.html | 114 + ...CEL_WORKSHEETS-SET_SHOW_ROWCOLHEADERS.html | 114 + .../ZCL_EXCEL_WORKSHEETS-SET_TABLE.html | 159 + .../ZCL_EXCEL_WORKSHEETS-SET_TITLE.html | 114 + tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SIZE.html | 112 + ...CEL_WORKSHEETS-UPDATE_DIMENSION_RANGE.html | 105 + ...-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html | 112 + ...ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html | 105 + ...-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html | 114 + ...ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html | 105 + ..._EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html | 114 + ...CEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html | 114 + tools/APIDoc/ZCL_EXCEL_WORKSHEETS.html | 65 + .../ZCL_EXCEL_WORKSHEET_COLUMNDIME-ADD.html | 114 + ...XCEL_WORKSHEET_COLUMNDIME-ADD_DRAWING.html | 114 + ..._COLUMNDIME-ADD_NEW_CONDITIONAL_STYLE.html | 112 + ...ET_COLUMNDIME-ADD_NEW_DATA_VALIDATION.html | 112 + ...L_EXCEL_WORKSHEET_COLUMNDIME-BIND_ALV.html | 241 + ...EXCEL_WORKSHEET_COLUMNDIME-BIND_TABLE.html | 139 + ...ET_COLUMNDIME-CALCULATE_COLUMN_WIDTHS.html | 105 + ...SHEET_COLUMNDIME-CALCULATE_TEXT_WIDTH.html | 121 + .../ZCL_EXCEL_WORKSHEET_COLUMNDIME-CLEAR.html | 105 + ...XCEL_WORKSHEET_COLUMNDIME-CONSTRUCTOR.html | 114 + ..._WORKSHEET_COLUMNDIME-CREATE_NEW_ARGB.html | 139 + ...CEL_WORKSHEET_COLUMNDIME-DELETE_MERGE.html | 105 + ...CEL_WORKSHEET_COLUMNDIME-FREEZE_PANES.html | 127 + .../ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET.html | 121 + ..._WORKSHEET_COLUMNDIME-GET_ACTIVE_CELL.html | 112 + ...EL_WORKSHEET_COLUMNDIME-GET_AUTO_SIZE.html | 112 + ...L_EXCEL_WORKSHEET_COLUMNDIME-GET_CELL.html | 144 + ...EL_WORKSHEET_COLUMNDIME-GET_COLLAPSED.html | 112 + ..._EXCEL_WORKSHEET_COLUMNDIME-GET_COLOR.html | 125 + ...EXCEL_WORKSHEET_COLUMNDIME-GET_COLORS.html | 112 + ...SHEET_COLUMNDIME-GET_COLUMN_DIMENSION.html | 121 + ...HEET_COLUMNDIME-GET_COLUMN_DIMENSIONS.html | 112 + ...WORKSHEET_COLUMNDIME-GET_COLUMN_INDEX.html | 112 + ...T_COLUMNDIME-GET_COND_STYLES_ITERATOR.html | 112 + ...UMNDIME-GET_DATA_VALIDATIONS_ITERATOR.html | 112 + ..._COLUMNDIME-GET_DATA_VALIDATIONS_SIZE.html | 112 + ...LUMNDIME-GET_DEFAULT_COLUMN_DIMENSION.html | 112 + ...UMNDIME-GET_DEFAULT_EXCEL_DATE_FORMAT.html | 112 + ..._COLUMNDIME-GET_DEFAULT_ROW_DIMENSION.html | 112 + ...KSHEET_COLUMNDIME-GET_DIMENSION_RANGE.html | 112 + ...CEL_WORKSHEET_COLUMNDIME-GET_DRAWINGS.html | 112 + ...HEET_COLUMNDIME-GET_DRAWINGS_ITERATOR.html | 112 + ..._WORKSHEET_COLUMNDIME-GET_FREEZE_CELL.html | 119 + ...L_EXCEL_WORKSHEET_COLUMNDIME-GET_GUID.html | 112 + ...RKSHEET_COLUMNDIME-GET_HIGHEST_COLUMN.html | 112 + ..._WORKSHEET_COLUMNDIME-GET_HIGHEST_ROW.html | 112 + ...ET_COLUMNDIME-GET_HYPERLINKS_ITERATOR.html | 112 + ...KSHEET_COLUMNDIME-GET_HYPERLINKS_SIZE.html | 112 + ...ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ID.html | 112 + ...CEL_WORKSHEET_COLUMNDIME-GET_ITERATOR.html | 112 + ..._EXCEL_WORKSHEET_COLUMNDIME-GET_MERGE.html | 112 + ...L_EXCEL_WORKSHEET_COLUMNDIME-GET_NAME.html | 112 + ...ORKSHEET_COLUMNDIME-GET_OUTLINE_LEVEL.html | 112 + ...EL_WORKSHEET_COLUMNDIME-GET_REFERENCE.html | 121 + ...ORKSHEET_COLUMNDIME-GET_ROW_DIMENSION.html | 121 + ...RKSHEET_COLUMNDIME-GET_ROW_DIMENSIONS.html | 112 + ...EL_WORKSHEET_COLUMNDIME-GET_STRUCTURE.html | 112 + ...KSHEET_COLUMNDIME-GET_TABLES_ITERATOR.html | 112 + ..._WORKSHEET_COLUMNDIME-GET_TABLES_SIZE.html | 112 + ..._EXCEL_WORKSHEET_COLUMNDIME-GET_TITLE.html | 121 + ...RKSHEET_COLUMNDIME-GET_TOTALS_FORMULA.html | 130 + ...XCEL_WORKSHEET_COLUMNDIME-GET_VISIBLE.html | 112 + ..._EXCEL_WORKSHEET_COLUMNDIME-GET_WIDTH.html | 112 + ...CEL_WORKSHEET_COLUMNDIME-GET_XF_INDEX.html | 112 + ...EXCEL_WORKSHEET_COLUMNDIME-HAS_TOTALS.html | 112 + ...L_EXCEL_WORKSHEET_COLUMNDIME-IS_EMPTY.html | 112 + ...XCEL_WORKSHEET_COLUMNDIME-IS_MODIFIED.html | 112 + ..._WORKSHEET_COLUMNDIME-LOAD_VBAPROJECT.html | 123 + ...EL_WORKSHEET_COLUMNDIME-LOAD_WORKBOOK.html | 123 + ...L_WORKSHEET_COLUMNDIME-LOAD_WORKSHEET.html | 123 + ...ZCL_EXCEL_WORKSHEET_COLUMNDIME-REMOVE.html | 114 + ...EL_WORKSHEET_COLUMNDIME-SET_AUTO_SIZE.html | 121 + ...L_EXCEL_WORKSHEET_COLUMNDIME-SET_CELL.html | 177 + ...L_WORKSHEET_COLUMNDIME-SET_CELL_STYLE.html | 136 + ...EL_WORKSHEET_COLUMNDIME-SET_COLLAPSED.html | 121 + ..._EXCEL_WORKSHEET_COLUMNDIME-SET_COLOR.html | 123 + ...WORKSHEET_COLUMNDIME-SET_COLUMN_INDEX.html | 121 + ...L_EXCEL_WORKSHEET_COLUMNDIME-SET_DATA.html | 114 + ...UMNDIME-SET_DEFAULT_EXCEL_DATE_FORMAT.html | 114 + ...ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_ID.html | 114 + ..._EXCEL_WORKSHEET_COLUMNDIME-SET_MERGE.html | 141 + ...ORKSHEET_COLUMNDIME-SET_OUTLINE_LEVEL.html | 114 + ...KSHEET_COLUMNDIME-SET_PRINT_GRIDLINES.html | 114 + ..._EXCEL_WORKSHEET_COLUMNDIME-SET_RANGE.html | 141 + ...RKSHEET_COLUMNDIME-SET_SHOW_GRIDLINES.html | 114 + ...EET_COLUMNDIME-SET_SHOW_ROWCOLHEADERS.html | 114 + ..._EXCEL_WORKSHEET_COLUMNDIME-SET_TABLE.html | 159 + ..._EXCEL_WORKSHEET_COLUMNDIME-SET_TITLE.html | 114 + ...XCEL_WORKSHEET_COLUMNDIME-SET_VISIBLE.html | 121 + ..._EXCEL_WORKSHEET_COLUMNDIME-SET_WIDTH.html | 121 + ...CEL_WORKSHEET_COLUMNDIME-SET_XF_INDEX.html | 121 + .../ZCL_EXCEL_WORKSHEET_COLUMNDIME-SIZE.html | 112 + ...EET_COLUMNDIME-UPDATE_DIMENSION_RANGE.html | 105 + ...-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html | 112 + ...ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html | 105 + ...-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html | 114 + ...ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html | 105 + ..._EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html | 114 + ...CEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html | 114 + .../ZCL_EXCEL_WORKSHEET_COLUMNDIME.html | 105 + .../ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ADD.html | 114 + ...XCEL_WORKSHEET_ROWDIMENSI-ADD_DRAWING.html | 114 + ..._ROWDIMENSI-ADD_NEW_CONDITIONAL_STYLE.html | 112 + ...ET_ROWDIMENSI-ADD_NEW_DATA_VALIDATION.html | 112 + ...L_EXCEL_WORKSHEET_ROWDIMENSI-BIND_ALV.html | 241 + ...EXCEL_WORKSHEET_ROWDIMENSI-BIND_TABLE.html | 139 + ...ET_ROWDIMENSI-CALCULATE_COLUMN_WIDTHS.html | 105 + ...SHEET_ROWDIMENSI-CALCULATE_TEXT_WIDTH.html | 121 + .../ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CLEAR.html | 105 + ...XCEL_WORKSHEET_ROWDIMENSI-CONSTRUCTOR.html | 114 + ..._WORKSHEET_ROWDIMENSI-CREATE_NEW_ARGB.html | 139 + ...CEL_WORKSHEET_ROWDIMENSI-DELETE_MERGE.html | 105 + ...CEL_WORKSHEET_ROWDIMENSI-FREEZE_PANES.html | 127 + .../ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET.html | 121 + ..._WORKSHEET_ROWDIMENSI-GET_ACTIVE_CELL.html | 112 + ...EL_WORKSHEET_ROWDIMENSI-GET_AUTO_SIZE.html | 112 + ...L_EXCEL_WORKSHEET_ROWDIMENSI-GET_CELL.html | 144 + ...EL_WORKSHEET_ROWDIMENSI-GET_COLLAPSED.html | 112 + ..._EXCEL_WORKSHEET_ROWDIMENSI-GET_COLOR.html | 125 + ...EXCEL_WORKSHEET_ROWDIMENSI-GET_COLORS.html | 112 + ...SHEET_ROWDIMENSI-GET_COLUMN_DIMENSION.html | 121 + ...HEET_ROWDIMENSI-GET_COLUMN_DIMENSIONS.html | 112 + ...WORKSHEET_ROWDIMENSI-GET_COLUMN_INDEX.html | 112 + ...T_ROWDIMENSI-GET_COND_STYLES_ITERATOR.html | 112 + ...DIMENSI-GET_DATA_VALIDATIONS_ITERATOR.html | 112 + ..._ROWDIMENSI-GET_DATA_VALIDATIONS_SIZE.html | 112 + ...WDIMENSI-GET_DEFAULT_COLUMN_DIMENSION.html | 112 + ...DIMENSI-GET_DEFAULT_EXCEL_DATE_FORMAT.html | 112 + ..._ROWDIMENSI-GET_DEFAULT_ROW_DIMENSION.html | 112 + ...KSHEET_ROWDIMENSI-GET_DIMENSION_RANGE.html | 112 + ...CEL_WORKSHEET_ROWDIMENSI-GET_DRAWINGS.html | 112 + ...HEET_ROWDIMENSI-GET_DRAWINGS_ITERATOR.html | 112 + ..._WORKSHEET_ROWDIMENSI-GET_FREEZE_CELL.html | 119 + ...L_EXCEL_WORKSHEET_ROWDIMENSI-GET_GUID.html | 112 + ...RKSHEET_ROWDIMENSI-GET_HIGHEST_COLUMN.html | 112 + ..._WORKSHEET_ROWDIMENSI-GET_HIGHEST_ROW.html | 112 + ...ET_ROWDIMENSI-GET_HYPERLINKS_ITERATOR.html | 112 + ...KSHEET_ROWDIMENSI-GET_HYPERLINKS_SIZE.html | 112 + ...ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ID.html | 112 + ...CEL_WORKSHEET_ROWDIMENSI-GET_ITERATOR.html | 112 + ..._EXCEL_WORKSHEET_ROWDIMENSI-GET_MERGE.html | 112 + ...L_EXCEL_WORKSHEET_ROWDIMENSI-GET_NAME.html | 112 + ...ORKSHEET_ROWDIMENSI-GET_OUTLINE_LEVEL.html | 112 + ...EL_WORKSHEET_ROWDIMENSI-GET_REFERENCE.html | 121 + ...ORKSHEET_ROWDIMENSI-GET_ROW_DIMENSION.html | 121 + ...RKSHEET_ROWDIMENSI-GET_ROW_DIMENSIONS.html | 112 + ...L_WORKSHEET_ROWDIMENSI-GET_ROW_HEIGHT.html | 112 + ...EL_WORKSHEET_ROWDIMENSI-GET_ROW_INDEX.html | 112 + ...EL_WORKSHEET_ROWDIMENSI-GET_STRUCTURE.html | 112 + ...KSHEET_ROWDIMENSI-GET_TABLES_ITERATOR.html | 112 + ..._WORKSHEET_ROWDIMENSI-GET_TABLES_SIZE.html | 112 + ..._EXCEL_WORKSHEET_ROWDIMENSI-GET_TITLE.html | 121 + ...RKSHEET_ROWDIMENSI-GET_TOTALS_FORMULA.html | 130 + ...XCEL_WORKSHEET_ROWDIMENSI-GET_VISIBLE.html | 112 + ..._EXCEL_WORKSHEET_ROWDIMENSI-GET_WIDTH.html | 112 + ...CEL_WORKSHEET_ROWDIMENSI-GET_XF_INDEX.html | 112 + ...EXCEL_WORKSHEET_ROWDIMENSI-HAS_TOTALS.html | 112 + ...L_EXCEL_WORKSHEET_ROWDIMENSI-IS_EMPTY.html | 112 + ...XCEL_WORKSHEET_ROWDIMENSI-IS_MODIFIED.html | 112 + ..._WORKSHEET_ROWDIMENSI-LOAD_VBAPROJECT.html | 123 + ...EL_WORKSHEET_ROWDIMENSI-LOAD_WORKBOOK.html | 123 + ...L_WORKSHEET_ROWDIMENSI-LOAD_WORKSHEET.html | 123 + ...ZCL_EXCEL_WORKSHEET_ROWDIMENSI-REMOVE.html | 114 + ...EL_WORKSHEET_ROWDIMENSI-SET_AUTO_SIZE.html | 121 + ...L_EXCEL_WORKSHEET_ROWDIMENSI-SET_CELL.html | 177 + ...L_WORKSHEET_ROWDIMENSI-SET_CELL_STYLE.html | 136 + ...EL_WORKSHEET_ROWDIMENSI-SET_COLLAPSED.html | 114 + ..._EXCEL_WORKSHEET_ROWDIMENSI-SET_COLOR.html | 123 + ...WORKSHEET_ROWDIMENSI-SET_COLUMN_INDEX.html | 121 + ...L_EXCEL_WORKSHEET_ROWDIMENSI-SET_DATA.html | 114 + ...DIMENSI-SET_DEFAULT_EXCEL_DATE_FORMAT.html | 114 + ...ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_ID.html | 114 + ..._EXCEL_WORKSHEET_ROWDIMENSI-SET_MERGE.html | 141 + ...ORKSHEET_ROWDIMENSI-SET_OUTLINE_LEVEL.html | 118 + ...KSHEET_ROWDIMENSI-SET_PRINT_GRIDLINES.html | 114 + ..._EXCEL_WORKSHEET_ROWDIMENSI-SET_RANGE.html | 141 + ...L_WORKSHEET_ROWDIMENSI-SET_ROW_HEIGHT.html | 114 + ...EL_WORKSHEET_ROWDIMENSI-SET_ROW_INDEX.html | 114 + ...RKSHEET_ROWDIMENSI-SET_SHOW_GRIDLINES.html | 114 + ...EET_ROWDIMENSI-SET_SHOW_ROWCOLHEADERS.html | 114 + ..._EXCEL_WORKSHEET_ROWDIMENSI-SET_TABLE.html | 159 + ..._EXCEL_WORKSHEET_ROWDIMENSI-SET_TITLE.html | 114 + ...XCEL_WORKSHEET_ROWDIMENSI-SET_VISIBLE.html | 114 + ..._EXCEL_WORKSHEET_ROWDIMENSI-SET_WIDTH.html | 121 + ...CEL_WORKSHEET_ROWDIMENSI-SET_XF_INDEX.html | 114 + .../ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SIZE.html | 112 + ...EET_ROWDIMENSI-UPDATE_DIMENSION_RANGE.html | 105 + ...-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html | 112 + ...ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html | 105 + ...-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html | 114 + ...ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html | 105 + ..._EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html | 114 + ...CEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html | 114 + .../ZCL_EXCEL_WORKSHEET_ROWDIMENSI.html | 95 + tools/APIDoc/ZCL_EXCEL_WRITER_2007-ADD.html | 114 + .../ZCL_EXCEL_WRITER_2007-ADD_DRAWING.html | 114 + ...WRITER_2007-ADD_NEW_CONDITIONAL_STYLE.html | 112 + ...L_WRITER_2007-ADD_NEW_DATA_VALIDATION.html | 112 + .../ZCL_EXCEL_WRITER_2007-BIND_ALV.html | 241 + .../ZCL_EXCEL_WRITER_2007-BIND_TABLE.html | 139 + ...L_WRITER_2007-CALCULATE_COLUMN_WIDTHS.html | 105 + ...XCEL_WRITER_2007-CALCULATE_TEXT_WIDTH.html | 121 + tools/APIDoc/ZCL_EXCEL_WRITER_2007-CLEAR.html | 105 + .../ZCL_EXCEL_WRITER_2007-CONSTRUCTOR.html | 114 + .../APIDoc/ZCL_EXCEL_WRITER_2007-CREATE.html | 112 + ...XCEL_WRITER_2007-CREATE_CONTENT_TYPES.html | 112 + ...EXCEL_WRITER_2007-CREATE_DOCPROPS_APP.html | 112 + ...XCEL_WRITER_2007-CREATE_DOCPROPS_CORE.html | 112 + ...ZCL_EXCEL_WRITER_2007-CREATE_NEW_ARGB.html | 139 + ...XCEL_WRITER_2007-CREATE_RELATIONSHIPS.html | 112 + ..._EXCEL_WRITER_2007-CREATE_XL_DRAWINGS.html | 121 + ...L_WRITER_2007-CREATE_XL_DRAWINGS_RELS.html | 121 + ...L_WRITER_2007-CREATE_XL_RELATIONSHIPS.html | 112 + ...L_WRITER_2007-CREATE_XL_SHAREDSTRINGS.html | 112 + ...ZCL_EXCEL_WRITER_2007-CREATE_XL_SHEET.html | 130 + ...XCEL_WRITER_2007-CREATE_XL_SHEET_RELS.html | 130 + ...CL_EXCEL_WRITER_2007-CREATE_XL_STYLES.html | 112 + ...ITER_2007-CREATE_XL_STYLES_COLOR_NODE.html | 141 + ...ZCL_EXCEL_WRITER_2007-CREATE_XL_TABLE.html | 121 + ...ZCL_EXCEL_WRITER_2007-CREATE_XL_THEME.html | 112 + ..._EXCEL_WRITER_2007-CREATE_XL_WORKBOOK.html | 112 + .../ZCL_EXCEL_WRITER_2007-DELETE_MERGE.html | 105 + .../ZCL_EXCEL_WRITER_2007-FLAG2BOOL.html | 121 + .../ZCL_EXCEL_WRITER_2007-FREEZE_PANES.html | 127 + tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET.html | 121 + ...ZCL_EXCEL_WRITER_2007-GET_ACTIVE_CELL.html | 112 + .../ZCL_EXCEL_WRITER_2007-GET_AUTO_SIZE.html | 112 + .../ZCL_EXCEL_WRITER_2007-GET_CELL.html | 144 + .../ZCL_EXCEL_WRITER_2007-GET_COLLAPSED.html | 112 + .../ZCL_EXCEL_WRITER_2007-GET_COLOR.html | 125 + .../ZCL_EXCEL_WRITER_2007-GET_COLORS.html | 112 + ...XCEL_WRITER_2007-GET_COLUMN_DIMENSION.html | 121 + ...CEL_WRITER_2007-GET_COLUMN_DIMENSIONS.html | 112 + ...CL_EXCEL_WRITER_2007-GET_COLUMN_INDEX.html | 112 + ..._WRITER_2007-GET_COND_STYLES_ITERATOR.html | 112 + ...ER_2007-GET_DATA_VALIDATIONS_ITERATOR.html | 112 + ...WRITER_2007-GET_DATA_VALIDATIONS_SIZE.html | 112 + ...TER_2007-GET_DEFAULT_COLUMN_DIMENSION.html | 112 + ...ER_2007-GET_DEFAULT_EXCEL_DATE_FORMAT.html | 112 + ...WRITER_2007-GET_DEFAULT_ROW_DIMENSION.html | 112 + ...EXCEL_WRITER_2007-GET_DIMENSION_RANGE.html | 112 + .../ZCL_EXCEL_WRITER_2007-GET_DRAWINGS.html | 112 + ...CEL_WRITER_2007-GET_DRAWINGS_ITERATOR.html | 112 + ...ZCL_EXCEL_WRITER_2007-GET_FREEZE_CELL.html | 119 + .../ZCL_EXCEL_WRITER_2007-GET_GUID.html | 112 + ..._EXCEL_WRITER_2007-GET_HIGHEST_COLUMN.html | 112 + ...ZCL_EXCEL_WRITER_2007-GET_HIGHEST_ROW.html | 112 + ...L_WRITER_2007-GET_HYPERLINKS_ITERATOR.html | 112 + ...EXCEL_WRITER_2007-GET_HYPERLINKS_SIZE.html | 112 + .../APIDoc/ZCL_EXCEL_WRITER_2007-GET_ID.html | 112 + .../ZCL_EXCEL_WRITER_2007-GET_ITERATOR.html | 112 + .../ZCL_EXCEL_WRITER_2007-GET_MERGE.html | 112 + .../ZCL_EXCEL_WRITER_2007-GET_NAME.html | 112 + ...L_EXCEL_WRITER_2007-GET_OUTLINE_LEVEL.html | 112 + .../ZCL_EXCEL_WRITER_2007-GET_REFERENCE.html | 121 + ...L_EXCEL_WRITER_2007-GET_ROW_DIMENSION.html | 121 + ..._EXCEL_WRITER_2007-GET_ROW_DIMENSIONS.html | 112 + .../ZCL_EXCEL_WRITER_2007-GET_ROW_HEIGHT.html | 112 + .../ZCL_EXCEL_WRITER_2007-GET_ROW_INDEX.html | 112 + ...L_WRITER_2007-GET_SHARED_STRING_INDEX.html | 121 + .../ZCL_EXCEL_WRITER_2007-GET_STRUCTURE.html | 112 + ...EXCEL_WRITER_2007-GET_TABLES_ITERATOR.html | 112 + ...ZCL_EXCEL_WRITER_2007-GET_TABLES_SIZE.html | 112 + .../ZCL_EXCEL_WRITER_2007-GET_TITLE.html | 121 + ..._EXCEL_WRITER_2007-GET_TOTALS_FORMULA.html | 130 + .../ZCL_EXCEL_WRITER_2007-GET_VISIBLE.html | 112 + .../ZCL_EXCEL_WRITER_2007-GET_WIDTH.html | 112 + .../ZCL_EXCEL_WRITER_2007-GET_XF_INDEX.html | 112 + .../ZCL_EXCEL_WRITER_2007-HAS_TOTALS.html | 112 + .../ZCL_EXCEL_WRITER_2007-IS_EMPTY.html | 112 + .../ZCL_EXCEL_WRITER_2007-IS_MODIFIED.html | 112 + ...ZCL_EXCEL_WRITER_2007-LOAD_VBAPROJECT.html | 123 + .../ZCL_EXCEL_WRITER_2007-LOAD_WORKBOOK.html | 123 + .../ZCL_EXCEL_WRITER_2007-LOAD_WORKSHEET.html | 123 + .../APIDoc/ZCL_EXCEL_WRITER_2007-REMOVE.html | 114 + .../ZCL_EXCEL_WRITER_2007-SET_AUTO_SIZE.html | 121 + .../ZCL_EXCEL_WRITER_2007-SET_CELL.html | 177 + .../ZCL_EXCEL_WRITER_2007-SET_CELL_STYLE.html | 136 + .../ZCL_EXCEL_WRITER_2007-SET_COLLAPSED.html | 114 + .../ZCL_EXCEL_WRITER_2007-SET_COLOR.html | 123 + ...CL_EXCEL_WRITER_2007-SET_COLUMN_INDEX.html | 121 + .../ZCL_EXCEL_WRITER_2007-SET_DATA.html | 114 + ...ER_2007-SET_DEFAULT_EXCEL_DATE_FORMAT.html | 114 + .../APIDoc/ZCL_EXCEL_WRITER_2007-SET_ID.html | 114 + .../ZCL_EXCEL_WRITER_2007-SET_MERGE.html | 141 + ...L_EXCEL_WRITER_2007-SET_OUTLINE_LEVEL.html | 118 + ...EXCEL_WRITER_2007-SET_PRINT_GRIDLINES.html | 114 + .../ZCL_EXCEL_WRITER_2007-SET_RANGE.html | 141 + .../ZCL_EXCEL_WRITER_2007-SET_ROW_HEIGHT.html | 114 + .../ZCL_EXCEL_WRITER_2007-SET_ROW_INDEX.html | 114 + ..._EXCEL_WRITER_2007-SET_SHOW_GRIDLINES.html | 114 + ...EL_WRITER_2007-SET_SHOW_ROWCOLHEADERS.html | 114 + .../ZCL_EXCEL_WRITER_2007-SET_TABLE.html | 159 + .../ZCL_EXCEL_WRITER_2007-SET_TITLE.html | 114 + .../ZCL_EXCEL_WRITER_2007-SET_VISIBLE.html | 114 + .../ZCL_EXCEL_WRITER_2007-SET_WIDTH.html | 121 + .../ZCL_EXCEL_WRITER_2007-SET_XF_INDEX.html | 114 + tools/APIDoc/ZCL_EXCEL_WRITER_2007-SIZE.html | 112 + ...EL_WRITER_2007-UPDATE_DIMENSION_RANGE.html | 105 + ...-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html | 112 + ...ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html | 105 + ...-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html | 114 + ...ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html | 105 + ..._EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html | 114 + ...CEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html | 114 + ...ITER_2007-ZIF_EXCEL_WRITER~WRITE_FILE.html | 121 + tools/APIDoc/ZCL_EXCEL_WRITER_2007.html | 225 + tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ADD.html | 114 + .../ZCL_EXCEL_WRITER_CSV-ADD_DRAWING.html | 114 + ..._WRITER_CSV-ADD_NEW_CONDITIONAL_STYLE.html | 112 + ...EL_WRITER_CSV-ADD_NEW_DATA_VALIDATION.html | 112 + .../APIDoc/ZCL_EXCEL_WRITER_CSV-BIND_ALV.html | 241 + .../ZCL_EXCEL_WRITER_CSV-BIND_TABLE.html | 139 + ...EL_WRITER_CSV-CALCULATE_COLUMN_WIDTHS.html | 105 + ...EXCEL_WRITER_CSV-CALCULATE_TEXT_WIDTH.html | 121 + tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CLEAR.html | 105 + .../ZCL_EXCEL_WRITER_CSV-CONSTRUCTOR.html | 114 + tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE.html | 112 + ...EXCEL_WRITER_CSV-CREATE_CONTENT_TYPES.html | 112 + .../ZCL_EXCEL_WRITER_CSV-CREATE_CSV.html | 112 + ..._EXCEL_WRITER_CSV-CREATE_DOCPROPS_APP.html | 112 + ...EXCEL_WRITER_CSV-CREATE_DOCPROPS_CORE.html | 112 + .../ZCL_EXCEL_WRITER_CSV-CREATE_NEW_ARGB.html | 139 + ...EXCEL_WRITER_CSV-CREATE_RELATIONSHIPS.html | 112 + ...L_EXCEL_WRITER_CSV-CREATE_XL_DRAWINGS.html | 121 + ...EL_WRITER_CSV-CREATE_XL_DRAWINGS_RELS.html | 121 + ...EL_WRITER_CSV-CREATE_XL_RELATIONSHIPS.html | 112 + ...EL_WRITER_CSV-CREATE_XL_SHAREDSTRINGS.html | 112 + .../ZCL_EXCEL_WRITER_CSV-CREATE_XL_SHEET.html | 130 + ...EXCEL_WRITER_CSV-CREATE_XL_SHEET_RELS.html | 130 + ...ZCL_EXCEL_WRITER_CSV-CREATE_XL_STYLES.html | 112 + ...RITER_CSV-CREATE_XL_STYLES_COLOR_NODE.html | 141 + .../ZCL_EXCEL_WRITER_CSV-CREATE_XL_TABLE.html | 121 + .../ZCL_EXCEL_WRITER_CSV-CREATE_XL_THEME.html | 112 + ...L_EXCEL_WRITER_CSV-CREATE_XL_WORKBOOK.html | 112 + .../ZCL_EXCEL_WRITER_CSV-DELETE_MERGE.html | 105 + .../ZCL_EXCEL_WRITER_CSV-FLAG2BOOL.html | 121 + .../ZCL_EXCEL_WRITER_CSV-FREEZE_PANES.html | 127 + tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET.html | 121 + .../ZCL_EXCEL_WRITER_CSV-GET_ACTIVE_CELL.html | 112 + .../ZCL_EXCEL_WRITER_CSV-GET_AUTO_SIZE.html | 112 + .../APIDoc/ZCL_EXCEL_WRITER_CSV-GET_CELL.html | 144 + .../ZCL_EXCEL_WRITER_CSV-GET_COLLAPSED.html | 112 + .../ZCL_EXCEL_WRITER_CSV-GET_COLOR.html | 125 + .../ZCL_EXCEL_WRITER_CSV-GET_COLORS.html | 112 + ...EXCEL_WRITER_CSV-GET_COLUMN_DIMENSION.html | 121 + ...XCEL_WRITER_CSV-GET_COLUMN_DIMENSIONS.html | 112 + ...ZCL_EXCEL_WRITER_CSV-GET_COLUMN_INDEX.html | 112 + ...L_WRITER_CSV-GET_COND_STYLES_ITERATOR.html | 112 + ...TER_CSV-GET_DATA_VALIDATIONS_ITERATOR.html | 112 + ..._WRITER_CSV-GET_DATA_VALIDATIONS_SIZE.html | 112 + ...ITER_CSV-GET_DEFAULT_COLUMN_DIMENSION.html | 112 + ...TER_CSV-GET_DEFAULT_EXCEL_DATE_FORMAT.html | 112 + ..._WRITER_CSV-GET_DEFAULT_ROW_DIMENSION.html | 112 + ..._EXCEL_WRITER_CSV-GET_DIMENSION_RANGE.html | 112 + .../ZCL_EXCEL_WRITER_CSV-GET_DRAWINGS.html | 112 + ...XCEL_WRITER_CSV-GET_DRAWINGS_ITERATOR.html | 112 + .../ZCL_EXCEL_WRITER_CSV-GET_FREEZE_CELL.html | 119 + .../APIDoc/ZCL_EXCEL_WRITER_CSV-GET_GUID.html | 112 + ...L_EXCEL_WRITER_CSV-GET_HIGHEST_COLUMN.html | 112 + .../ZCL_EXCEL_WRITER_CSV-GET_HIGHEST_ROW.html | 112 + ...EL_WRITER_CSV-GET_HYPERLINKS_ITERATOR.html | 112 + ..._EXCEL_WRITER_CSV-GET_HYPERLINKS_SIZE.html | 112 + tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ID.html | 112 + .../ZCL_EXCEL_WRITER_CSV-GET_ITERATOR.html | 112 + .../ZCL_EXCEL_WRITER_CSV-GET_MERGE.html | 112 + .../APIDoc/ZCL_EXCEL_WRITER_CSV-GET_NAME.html | 112 + ...CL_EXCEL_WRITER_CSV-GET_OUTLINE_LEVEL.html | 112 + .../ZCL_EXCEL_WRITER_CSV-GET_REFERENCE.html | 121 + ...CL_EXCEL_WRITER_CSV-GET_ROW_DIMENSION.html | 121 + ...L_EXCEL_WRITER_CSV-GET_ROW_DIMENSIONS.html | 112 + .../ZCL_EXCEL_WRITER_CSV-GET_ROW_HEIGHT.html | 112 + .../ZCL_EXCEL_WRITER_CSV-GET_ROW_INDEX.html | 112 + ...EL_WRITER_CSV-GET_SHARED_STRING_INDEX.html | 121 + .../ZCL_EXCEL_WRITER_CSV-GET_STRUCTURE.html | 112 + ..._EXCEL_WRITER_CSV-GET_TABLES_ITERATOR.html | 112 + .../ZCL_EXCEL_WRITER_CSV-GET_TABLES_SIZE.html | 112 + .../ZCL_EXCEL_WRITER_CSV-GET_TITLE.html | 121 + ...L_EXCEL_WRITER_CSV-GET_TOTALS_FORMULA.html | 130 + .../ZCL_EXCEL_WRITER_CSV-GET_VISIBLE.html | 112 + .../ZCL_EXCEL_WRITER_CSV-GET_WIDTH.html | 112 + .../ZCL_EXCEL_WRITER_CSV-GET_XF_INDEX.html | 112 + .../ZCL_EXCEL_WRITER_CSV-HAS_TOTALS.html | 112 + .../APIDoc/ZCL_EXCEL_WRITER_CSV-IS_EMPTY.html | 112 + .../ZCL_EXCEL_WRITER_CSV-IS_MODIFIED.html | 112 + .../ZCL_EXCEL_WRITER_CSV-LOAD_VBAPROJECT.html | 123 + .../ZCL_EXCEL_WRITER_CSV-LOAD_WORKBOOK.html | 123 + .../ZCL_EXCEL_WRITER_CSV-LOAD_WORKSHEET.html | 123 + tools/APIDoc/ZCL_EXCEL_WRITER_CSV-REMOVE.html | 114 + ...CEL_WRITER_CSV-SET_ACTIVE_SHEET_INDEX.html | 114 + ...ER_CSV-SET_ACTIVE_SHEET_INDEX_BY_NAME.html | 114 + .../ZCL_EXCEL_WRITER_CSV-SET_AUTO_SIZE.html | 121 + .../APIDoc/ZCL_EXCEL_WRITER_CSV-SET_CELL.html | 177 + .../ZCL_EXCEL_WRITER_CSV-SET_CELL_STYLE.html | 136 + .../ZCL_EXCEL_WRITER_CSV-SET_COLLAPSED.html | 114 + .../ZCL_EXCEL_WRITER_CSV-SET_COLOR.html | 123 + ...ZCL_EXCEL_WRITER_CSV-SET_COLUMN_INDEX.html | 121 + .../APIDoc/ZCL_EXCEL_WRITER_CSV-SET_DATA.html | 114 + ...TER_CSV-SET_DEFAULT_EXCEL_DATE_FORMAT.html | 114 + .../ZCL_EXCEL_WRITER_CSV-SET_DELIMITER.html | 114 + .../ZCL_EXCEL_WRITER_CSV-SET_ENCLOSURE.html | 114 + .../ZCL_EXCEL_WRITER_CSV-SET_ENDOFLINE.html | 114 + tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ID.html | 114 + .../ZCL_EXCEL_WRITER_CSV-SET_MERGE.html | 141 + ...CL_EXCEL_WRITER_CSV-SET_OUTLINE_LEVEL.html | 118 + ..._EXCEL_WRITER_CSV-SET_PRINT_GRIDLINES.html | 114 + .../ZCL_EXCEL_WRITER_CSV-SET_RANGE.html | 141 + .../ZCL_EXCEL_WRITER_CSV-SET_ROW_HEIGHT.html | 114 + .../ZCL_EXCEL_WRITER_CSV-SET_ROW_INDEX.html | 114 + ...L_EXCEL_WRITER_CSV-SET_SHOW_GRIDLINES.html | 114 + ...CEL_WRITER_CSV-SET_SHOW_ROWCOLHEADERS.html | 114 + .../ZCL_EXCEL_WRITER_CSV-SET_TABLE.html | 159 + .../ZCL_EXCEL_WRITER_CSV-SET_TITLE.html | 114 + .../ZCL_EXCEL_WRITER_CSV-SET_VISIBLE.html | 114 + .../ZCL_EXCEL_WRITER_CSV-SET_WIDTH.html | 121 + .../ZCL_EXCEL_WRITER_CSV-SET_XF_INDEX.html | 114 + tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SIZE.html | 112 + ...CEL_WRITER_CSV-UPDATE_DIMENSION_RANGE.html | 105 + ...-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html | 112 + ...ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html | 105 + ...-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html | 114 + ...ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html | 105 + ..._EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html | 114 + ...CEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html | 114 + ...RITER_CSV-ZIF_EXCEL_WRITER~WRITE_FILE.html | 121 + tools/APIDoc/ZCL_EXCEL_WRITER_CSV.html | 95 + tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD.html | 114 + .../ZCL_EXCEL_WRITER_XLSM-ADD_DRAWING.html | 114 + ...WRITER_XLSM-ADD_NEW_CONDITIONAL_STYLE.html | 112 + ...L_WRITER_XLSM-ADD_NEW_DATA_VALIDATION.html | 112 + ...ZCL_EXCEL_WRITER_XLSM-ADD_NEW_DRAWING.html | 121 + .../ZCL_EXCEL_WRITER_XLSM-ADD_NEW_RANGE.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-ADD_NEW_STYLE.html | 112 + ...L_EXCEL_WRITER_XLSM-ADD_NEW_WORKSHEET.html | 121 + .../ZCL_EXCEL_WRITER_XLSM-BIND_ALV.html | 241 + .../ZCL_EXCEL_WRITER_XLSM-BIND_TABLE.html | 139 + ...L_WRITER_XLSM-CALCULATE_COLUMN_WIDTHS.html | 105 + ...XCEL_WRITER_XLSM-CALCULATE_TEXT_WIDTH.html | 121 + .../ZCL_EXCEL_WRITER_XLSM-CHAR2HEX.html | 121 + tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CLEAR.html | 105 + .../ZCL_EXCEL_WRITER_XLSM-CONSTRUCTOR.html | 105 + ...XCEL_WRITER_XLSM-CONVERT_COLUMN2ALPHA.html | 121 + ..._EXCEL_WRITER_XLSM-CONVERT_COLUMN2INT.html | 121 + ...R_XLSM-CONVERT_COLUMNROW2COLUMN_A_ROW.html | 128 + ...RITER_XLSM-CONVERT_RANGE2COLUMN_A_ROW.html | 149 + .../APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE.html | 112 + ...XCEL_WRITER_XLSM-CREATE_CONTENT_TYPES.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-CREATE_CSV.html | 112 + ...EXCEL_WRITER_XLSM-CREATE_DOCPROPS_APP.html | 112 + ...XCEL_WRITER_XLSM-CREATE_DOCPROPS_CORE.html | 112 + ...XCEL_WRITER_XLSM-CREATE_EXTERNAL_LINK.html | 121 + ...XCEL_WRITER_XLSM-CREATE_INTERNAL_LINK.html | 121 + ...L_EXCEL_WRITER_XLSM-CREATE_MEDIA_NAME.html | 114 + ...ZCL_EXCEL_WRITER_XLSM-CREATE_NEW_ARGB.html | 139 + ...XCEL_WRITER_XLSM-CREATE_RELATIONSHIPS.html | 112 + ..._EXCEL_WRITER_XLSM-CREATE_XL_DRAWINGS.html | 121 + ...L_WRITER_XLSM-CREATE_XL_DRAWINGS_RELS.html | 121 + ...L_WRITER_XLSM-CREATE_XL_RELATIONSHIPS.html | 112 + ...L_WRITER_XLSM-CREATE_XL_SHAREDSTRINGS.html | 112 + ...ZCL_EXCEL_WRITER_XLSM-CREATE_XL_SHEET.html | 130 + ...XCEL_WRITER_XLSM-CREATE_XL_SHEET_RELS.html | 130 + ...CL_EXCEL_WRITER_XLSM-CREATE_XL_STYLES.html | 112 + ...ITER_XLSM-CREATE_XL_STYLES_COLOR_NODE.html | 141 + ...ZCL_EXCEL_WRITER_XLSM-CREATE_XL_TABLE.html | 121 + ...ZCL_EXCEL_WRITER_XLSM-CREATE_XL_THEME.html | 112 + ..._EXCEL_WRITER_XLSM-CREATE_XL_WORKBOOK.html | 112 + ...XCEL_WRITER_XLSM-DATE_TO_EXCEL_STRING.html | 121 + .../ZCL_EXCEL_WRITER_XLSM-DELETE_MERGE.html | 105 + ...CL_EXCEL_WRITER_XLSM-ENCRYPT_PASSWORD.html | 121 + .../ZCL_EXCEL_WRITER_XLSM-ESCAPE_STRING.html | 121 + ...XCEL_WRITER_XLSM-EXCEL_STRING_TO_DATE.html | 121 + ...XCEL_WRITER_XLSM-EXCEL_STRING_TO_TIME.html | 121 + ...ITER_XLSM-FILL_STRUCT_FROM_ATTRIBUTES.html | 123 + .../ZCL_EXCEL_WRITER_XLSM-FLAG2BOOL.html | 121 + .../ZCL_EXCEL_WRITER_XLSM-FREEZE_PANES.html | 127 + tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET.html | 121 + ...ZCL_EXCEL_WRITER_XLSM-GET_ACTIVE_CELL.html | 112 + ...EL_WRITER_XLSM-GET_ACTIVE_SHEET_INDEX.html | 112 + ...XCEL_WRITER_XLSM-GET_ACTIVE_WORKSHEET.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_AUTO_SIZE.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_CELL.html | 144 + .../ZCL_EXCEL_WRITER_XLSM-GET_COLLAPSED.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_COLOR.html | 125 + .../ZCL_EXCEL_WRITER_XLSM-GET_COLORS.html | 112 + ...XCEL_WRITER_XLSM-GET_COLUMN_DIMENSION.html | 121 + ...CEL_WRITER_XLSM-GET_COLUMN_DIMENSIONS.html | 112 + ...CL_EXCEL_WRITER_XLSM-GET_COLUMN_INDEX.html | 112 + ..._WRITER_XLSM-GET_COND_STYLES_ITERATOR.html | 112 + ...ER_XLSM-GET_DATA_VALIDATIONS_ITERATOR.html | 112 + ...WRITER_XLSM-GET_DATA_VALIDATIONS_SIZE.html | 112 + ...TER_XLSM-GET_DEFAULT_COLUMN_DIMENSION.html | 112 + ...ER_XLSM-GET_DEFAULT_EXCEL_DATE_FORMAT.html | 112 + ...WRITER_XLSM-GET_DEFAULT_ROW_DIMENSION.html | 112 + ...EXCEL_WRITER_XLSM-GET_DIMENSION_RANGE.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_DRAWINGS.html | 112 + ...CEL_WRITER_XLSM-GET_DRAWINGS_ITERATOR.html | 112 + ...CL_EXCEL_WRITER_XLSM-GET_FIELDCATALOG.html | 121 + ...ZCL_EXCEL_WRITER_XLSM-GET_FREEZE_CELL.html | 119 + .../ZCL_EXCEL_WRITER_XLSM-GET_FROM_COL.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_FROM_ROW.html | 112 + ...XCEL_WRITER_XLSM-GET_FROM_ZIP_ARCHIVE.html | 125 + .../ZCL_EXCEL_WRITER_XLSM-GET_GUID.html | 112 + ..._EXCEL_WRITER_XLSM-GET_HEIGHT_EMU_STR.html | 112 + ..._EXCEL_WRITER_XLSM-GET_HIGHEST_COLUMN.html | 112 + ...ZCL_EXCEL_WRITER_XLSM-GET_HIGHEST_ROW.html | 112 + ...L_WRITER_XLSM-GET_HYPERLINKS_ITERATOR.html | 112 + ...EXCEL_WRITER_XLSM-GET_HYPERLINKS_SIZE.html | 112 + .../APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ID.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_ITERATOR.html | 112 + ...WRITER_XLSM-GET_IXML_FROM_ZIP_ARCHIVE.html | 125 + .../ZCL_EXCEL_WRITER_XLSM-GET_MEDIA.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_MEDIA_NAME.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_MEDIA_TYPE.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_MERGE.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_NAME.html | 112 + ...L_EXCEL_WRITER_XLSM-GET_NEXT_TABLE_ID.html | 112 + ...L_EXCEL_WRITER_XLSM-GET_OUTLINE_LEVEL.html | 112 + ...EXCEL_WRITER_XLSM-GET_RANGES_ITERATOR.html | 112 + .../APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_REF.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_REFERENCE.html | 121 + ...L_EXCEL_WRITER_XLSM-GET_ROW_DIMENSION.html | 121 + ..._EXCEL_WRITER_XLSM-GET_ROW_DIMENSIONS.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_ROW_HEIGHT.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_ROW_INDEX.html | 112 + ...L_WRITER_XLSM-GET_SHARED_STRING_INDEX.html | 121 + .../ZCL_EXCEL_WRITER_XLSM-GET_STRUCTURE.html | 112 + ...EXCEL_WRITER_XLSM-GET_STYLES_ITERATOR.html | 112 + ...EXCEL_WRITER_XLSM-GET_TABLES_ITERATOR.html | 112 + ...ZCL_EXCEL_WRITER_XLSM-GET_TABLES_SIZE.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_TITLE.html | 121 + ..._EXCEL_WRITER_XLSM-GET_TOTALS_FORMULA.html | 130 + .../ZCL_EXCEL_WRITER_XLSM-GET_TO_COL.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_TO_ROW.html | 112 + .../APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_URL.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_VALUE.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_VISIBLE.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_WIDTH.html | 112 + ...L_EXCEL_WRITER_XLSM-GET_WIDTH_EMU_STR.html | 112 + ...L_WRITER_XLSM-GET_WORKSHEETS_ITERATOR.html | 112 + ...EXCEL_WRITER_XLSM-GET_WORKSHEETS_NAME.html | 112 + ...EXCEL_WRITER_XLSM-GET_WORKSHEETS_SIZE.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-GET_XF_INDEX.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-HAS_TOTALS.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-IS_EMPTY.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-IS_INTERNAL.html | 112 + .../ZCL_EXCEL_WRITER_XLSM-IS_MODIFIED.html | 112 + ...EXCEL_WRITER_XLSM-IS_SECURITY_ENABLED.html | 112 + ...EXCEL_WRITER_XLSM-LOAD_SHARED_STRINGS.html | 114 + .../ZCL_EXCEL_WRITER_XLSM-LOAD_STYLES.html | 123 + ..._EXCEL_WRITER_XLSM-LOAD_STYLE_BORDERS.html | 121 + ...CL_EXCEL_WRITER_XLSM-LOAD_STYLE_FILLS.html | 121 + ...CL_EXCEL_WRITER_XLSM-LOAD_STYLE_FONTS.html | 121 + ...EL_WRITER_XLSM-LOAD_STYLE_NUM_FORMATS.html | 121 + ...ZCL_EXCEL_WRITER_XLSM-LOAD_VBAPROJECT.html | 123 + .../ZCL_EXCEL_WRITER_XLSM-LOAD_WORKBOOK.html | 123 + .../ZCL_EXCEL_WRITER_XLSM-LOAD_WORKSHEET.html | 123 + ...EL_WRITER_XLSM-NUMBER_TO_EXCEL_STRING.html | 121 + .../ZCL_EXCEL_WRITER_XLSM-PIXEL2EMU.html | 130 + ..._EXCEL_WRITER_XLSM-REGISTER_NEW_STYLE.html | 121 + .../APIDoc/ZCL_EXCEL_WRITER_XLSM-REMOVE.html | 114 + ...EL_WRITER_XLSM-SET_ACTIVE_SHEET_INDEX.html | 114 + ...R_XLSM-SET_ACTIVE_SHEET_INDEX_BY_NAME.html | 114 + .../ZCL_EXCEL_WRITER_XLSM-SET_AUTO_SIZE.html | 121 + .../ZCL_EXCEL_WRITER_XLSM-SET_CELL.html | 177 + ..._EXCEL_WRITER_XLSM-SET_CELL_REFERENCE.html | 123 + .../ZCL_EXCEL_WRITER_XLSM-SET_CELL_STYLE.html | 136 + .../ZCL_EXCEL_WRITER_XLSM-SET_COLLAPSED.html | 114 + .../ZCL_EXCEL_WRITER_XLSM-SET_COLOR.html | 123 + ...CL_EXCEL_WRITER_XLSM-SET_COLUMN_INDEX.html | 121 + .../ZCL_EXCEL_WRITER_XLSM-SET_DATA.html | 114 + ...ER_XLSM-SET_DEFAULT_EXCEL_DATE_FORMAT.html | 114 + .../ZCL_EXCEL_WRITER_XLSM-SET_DELIMITER.html | 114 + .../ZCL_EXCEL_WRITER_XLSM-SET_ENCLOSURE.html | 114 + .../ZCL_EXCEL_WRITER_XLSM-SET_ENDOFLINE.html | 114 + .../APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ID.html | 114 + .../ZCL_EXCEL_WRITER_XLSM-SET_MEDIA.html | 141 + .../ZCL_EXCEL_WRITER_XLSM-SET_MEDIA_MIME.html | 132 + .../ZCL_EXCEL_WRITER_XLSM-SET_MEDIA_WWW.html | 132 + .../ZCL_EXCEL_WRITER_XLSM-SET_MERGE.html | 141 + ...L_EXCEL_WRITER_XLSM-SET_OUTLINE_LEVEL.html | 118 + ...CL_EXCEL_WRITER_XLSM-SET_PAGE_MARGINS.html | 168 + .../ZCL_EXCEL_WRITER_XLSM-SET_POSITION.html | 123 + ...EXCEL_WRITER_XLSM-SET_PRINT_GRIDLINES.html | 114 + .../ZCL_EXCEL_WRITER_XLSM-SET_RANGE.html | 141 + ...ZCL_EXCEL_WRITER_XLSM-SET_RANGE_VALUE.html | 114 + .../ZCL_EXCEL_WRITER_XLSM-SET_ROW_HEIGHT.html | 114 + .../ZCL_EXCEL_WRITER_XLSM-SET_ROW_INDEX.html | 114 + ..._EXCEL_WRITER_XLSM-SET_SHOW_GRIDLINES.html | 114 + ...EL_WRITER_XLSM-SET_SHOW_ROWCOLHEADERS.html | 114 + .../ZCL_EXCEL_WRITER_XLSM-SET_TABLE.html | 159 + .../ZCL_EXCEL_WRITER_XLSM-SET_TITLE.html | 114 + .../ZCL_EXCEL_WRITER_XLSM-SET_VALUE.html | 150 + .../ZCL_EXCEL_WRITER_XLSM-SET_VISIBLE.html | 114 + .../ZCL_EXCEL_WRITER_XLSM-SET_WIDTH.html | 121 + .../ZCL_EXCEL_WRITER_XLSM-SET_XF_INDEX.html | 114 + tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SHL01.html | 121 + tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SHR14.html | 121 + tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SIZE.html | 112 + ...XCEL_WRITER_XLSM-TIME_TO_EXCEL_STRING.html | 121 + ...EL_WRITER_XLSM-UPDATE_DIMENSION_RANGE.html | 105 + ...-ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE.html | 105 + ...-ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE.html | 105 + ...F_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME.html | 114 + ...XCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR.html | 114 + ...EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT.html | 114 + ...CEL_WRITER_XLSM-ZIF_EXCEL_READER~LOAD.html | 125 + ...RITER_XLSM-ZIF_EXCEL_READER~LOAD_FILE.html | 125 + ...-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html | 112 + ...ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html | 105 + ...-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html | 114 + ...ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html | 105 + ..._EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html | 114 + ...CEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html | 114 + ...ITER_XLSM-ZIF_EXCEL_WRITER~WRITE_FILE.html | 121 + tools/APIDoc/ZCL_EXCEL_WRITER_XLSM.html | 45 + tools/APIDoc/ZCX_EXCEL-CONSTRUCTOR.html | 132 + tools/APIDoc/ZCX_EXCEL-GET_COLOR.html | 125 + tools/APIDoc/ZCX_EXCEL-GET_COLORS.html | 112 + tools/APIDoc/ZCX_EXCEL-IS_MODIFIED.html | 112 + tools/APIDoc/ZCX_EXCEL-LOAD_VBAPROJECT.html | 123 + tools/APIDoc/ZCX_EXCEL-LOAD_WORKBOOK.html | 123 + tools/APIDoc/ZCX_EXCEL-LOAD_WORKSHEET.html | 123 + tools/APIDoc/ZCX_EXCEL-SET_COLOR.html | 123 + tools/APIDoc/ZCX_EXCEL.html | 55 + tools/APIDoc/css/style_class.css | 40 + tools/APIDoc/css/style_function_groups.css | 25 + tools/APIDoc/css/style_object_list.css | 4 + .../Binaries/OpenXMLValidator.exe | Bin 0 -> 11264 bytes .../Binaries/OpenXMLValidator.exe.config | 3 + .../Binaries/OpenXMLValidator.pdb | Bin 0 -> 19968 bytes tools/OpenXMLValidator/src/CommandLineArgs.cs | 77 + .../src/OpenXMLValidator.csproj | 74 + tools/OpenXMLValidator/src/Program.cs | 148 + .../src/Properties/AssemblyInfo.cs | 36 + .../src/Resources.Designer.cs | 89 + tools/OpenXMLValidator/src/Resources.resx | 124 + .../OpenXMLValidator/src/Resources/usage.txt | 20 + tools/OpenXMLValidator/src/app.config | 3 + tools/OpenXMLValidator/src/readme.txt | 2 + 1178 files changed, 195087 insertions(+) create mode 100644 build/6.20 patch/abap2xlsx6.20patch.nugg.zip create mode 100644 build/ABAP2XLSX_V_7_0.nugg create mode 100644 build/ABAP2XLSX_V_7_0.zip create mode 100644 build/LICENSE.txt create mode 100644 build/old_releases/ABAP2XLSX_V_2_0.zip create mode 100644 build/old_releases/ABAP2XLSX_V_3_0.zip create mode 100644 build/old_releases/ABAP2XLSX_V_4_0.zip create mode 100644 build/old_releases/ABAP2XLSX_V_5_0.zip create mode 100644 build/old_releases/ABAP2XLSX_V_6_0.zip create mode 100644 build/old_releases/NUGG_ABAP2XLSX_V_1_0.nugg create mode 100644 build/old_releases/NUGG_ABAP2XLSX_V_1_0.nugg.zip create mode 100644 build/old_releases/NUGG_ABAP2XLSX_V_1_1.nugg create mode 100644 build/old_releases/NUGG_ABAP2XLSX_V_1_1.nugg.zip create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-CREATE_XL_THEME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-CREATE_XL_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-DATE_TO_EXCEL_STRING.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-DELETE_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ENCRYPT_PASSWORD.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ESCAPE_STRING.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-EXCEL_STRING_TO_DATE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-EXCEL_STRING_TO_TIME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-FILL_STRUCT_FROM_ATTRIBUTES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-FLAG2BOOL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-FREEZE_PANES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ACTIVE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ACTIVE_SHEET_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ACTIVE_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_AUTO_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLLAPSED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLORS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLUMN_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLUMN_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COND_STYLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DATA_VALIDATIONS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DATA_VALIDATIONS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DEFAULT_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DEFAULT_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DRAWINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DRAWINGS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FIELDCATALOG.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FREEZE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FROM_COL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FROM_ROW.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FROM_ZIP_ARCHIVE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_GUID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HEIGHT_EMU_STR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HIGHEST_COLUMN.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HIGHEST_ROW.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HYPERLINKS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HYPERLINKS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_IXML_FROM_ZIP_ARCHIVE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_MEDIA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_MEDIA_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_MEDIA_TYPE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_NEXT_TABLE_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_OUTLINE_LEVEL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_RANGES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_REF.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_REFERENCE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ROW_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ROW_HEIGHT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ROW_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_SHARED_STRING_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_STRUCTURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_STYLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TABLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TABLES_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TOTALS_FORMULA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TO_COL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TO_ROW.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_URL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_VALUE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_VISIBLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WIDTH_EMU_STR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WORKSHEETS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WORKSHEETS_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WORKSHEETS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_XF_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-HAS_TOTALS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-IS_EMPTY.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-IS_INTERNAL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-IS_SECURITY_ENABLED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_SHARED_STRINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLE_BORDERS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLE_FILLS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLE_FONTS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLE_NUM_FORMATS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-NUMBER_TO_EXCEL_STRING.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-PIXEL2EMU.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-REGISTER_NEW_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-REMOVE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ACTIVE_SHEET_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ACTIVE_SHEET_INDEX_BY_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_AUTO_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_CELL_REFERENCE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_CELL_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_COLLAPSED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_COLUMN_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_DATA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_DELIMITER.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ENCLOSURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ENDOFLINE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_MEDIA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_MEDIA_MIME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_MEDIA_WWW.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_OUTLINE_LEVEL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_PAGE_MARGINS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_POSITION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_PRINT_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_RANGE_VALUE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ROW_HEIGHT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ROW_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_SHOW_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_SHOW_ROWCOLHEADERS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_VALUE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_VISIBLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_XF_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SHL01.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SHR14.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-TIME_TO_EXCEL_STRING.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-UPDATE_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_READER~LOAD.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_READER~LOAD_FILE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_WRITER~WRITE_FILE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ADD.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ADD_DRAWING.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ADD_NEW_CONDITIONAL_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ADD_NEW_DATA_VALIDATION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-BIND_ALV.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-BIND_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CALCULATE_COLUMN_WIDTHS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CALCULATE_TEXT_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CLEAR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CONSTRUCTOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_CONTENT_TYPES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_CSV.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_DOCPROPS_APP.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_DOCPROPS_CORE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_NEW_ARGB.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_RELATIONSHIPS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_DRAWINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_DRAWINGS_RELS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_RELATIONSHIPS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_SHAREDSTRINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_SHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_SHEET_RELS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_STYLES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_STYLES_COLOR_NODE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_THEME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-DELETE_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-FILL_STRUCT_FROM_ATTRIBUTES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-FLAG2BOOL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-FREEZE_PANES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ACTIVE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_AUTO_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLLAPSED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLORS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLUMN_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLUMN_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COND_STYLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DATA_VALIDATIONS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DATA_VALIDATIONS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DEFAULT_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DEFAULT_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DRAWINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DRAWINGS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_FREEZE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_FROM_ZIP_ARCHIVE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_GUID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_HIGHEST_COLUMN.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_HIGHEST_ROW.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_HYPERLINKS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_HYPERLINKS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_IXML_FROM_ZIP_ARCHIVE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_OUTLINE_LEVEL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_REFERENCE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ROW_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ROW_HEIGHT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ROW_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_SHARED_STRING_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_STRUCTURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_TABLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_TABLES_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_TOTALS_FORMULA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_VISIBLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_XF_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-HAS_TOTALS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-IS_EMPTY.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_SHARED_STRINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLE_BORDERS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLE_FILLS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLE_FONTS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLE_NUM_FORMATS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-REMOVE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ACTIVE_SHEET_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ACTIVE_SHEET_INDEX_BY_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_AUTO_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_CELL_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_COLLAPSED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_COLUMN_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_DATA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_DELIMITER.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ENCLOSURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ENDOFLINE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_OUTLINE_LEVEL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_PRINT_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ROW_HEIGHT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ROW_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_SHOW_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_SHOW_ROWCOLHEADERS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_VISIBLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_XF_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-UPDATE_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_READER~LOAD.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_READER~LOAD_FILE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_WRITER~WRITE_FILE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDER.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-CONSTRUCTOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-GET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-GET_COLORS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-GET_STRUCTURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-SET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-CONSTRUCTOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-CREATE_NEW_ARGB.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-GET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-GET_COLORS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-GET_STRUCTURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-SET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-CONSTRUCTOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-CREATE_NEW_ARGB.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-GET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-GET_COLORS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-GET_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-GET_STRUCTURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-SET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-SET_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FILL-CONSTRUCTOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FILL-CREATE_NEW_ARGB.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FILL-GET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FILL-GET_COLORS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FILL-GET_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FILL-GET_STRUCTURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FILL-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FILL-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FILL-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FILL-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FILL-SET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FILL-SET_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FILL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FONT-CALCULATE_TEXT_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FONT-CONSTRUCTOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FONT-CREATE_NEW_ARGB.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FONT-GET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FONT-GET_COLORS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FONT-GET_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FONT-GET_STRUCTURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FONT-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FONT-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FONT-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FONT-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FONT-SET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FONT-SET_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_FONT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-CALCULATE_TEXT_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-CONSTRUCTOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-CREATE_NEW_ARGB.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-GET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-GET_COLORS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-GET_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-GET_STRUCTURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-SET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-SET_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-CALCULATE_TEXT_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-CONSTRUCTOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-CREATE_NEW_ARGB.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-GET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-GET_COLORS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-GET_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-GET_STRUCTURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-SET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-SET_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-CALCULATE_TEXT_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-CONSTRUCTOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-CREATE_NEW_ARGB.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-GET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-GET_COLORS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-GET_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-GET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-GET_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-GET_REFERENCE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-GET_STRUCTURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-GET_TOTALS_FORMULA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-HAS_TOTALS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-SET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-SET_DATA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-SET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE-SET_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-ADD_DRAWING.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-ADD_NEW_CONDITIONAL_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-ADD_NEW_DATA_VALIDATION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-BIND_ALV.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-BIND_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-CALCULATE_COLUMN_WIDTHS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-CALCULATE_TEXT_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-CONSTRUCTOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-CREATE_NEW_ARGB.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-DELETE_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-FREEZE_PANES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_ACTIVE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COLORS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COLUMN_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COND_STYLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DATA_VALIDATIONS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DATA_VALIDATIONS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DEFAULT_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DEFAULT_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DRAWINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DRAWINGS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_FREEZE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_GUID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_HIGHEST_COLUMN.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_HIGHEST_ROW.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_HYPERLINKS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_HYPERLINKS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_REFERENCE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_ROW_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_STRUCTURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_TABLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_TABLES_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_TOTALS_FORMULA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-HAS_TOTALS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_CELL_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_DATA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_PRINT_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_SHOW_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_SHOW_ROWCOLHEADERS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-UPDATE_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ADD.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ADD_DRAWING.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ADD_NEW_CONDITIONAL_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ADD_NEW_DATA_VALIDATION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-BIND_ALV.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-BIND_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CALCULATE_COLUMN_WIDTHS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CALCULATE_TEXT_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CLEAR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CONSTRUCTOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CREATE_NEW_ARGB.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-DELETE_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-FREEZE_PANES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ACTIVE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COLORS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COLUMN_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COND_STYLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DATA_VALIDATIONS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DATA_VALIDATIONS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DEFAULT_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DEFAULT_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DRAWINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DRAWINGS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_FREEZE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_GUID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_HIGHEST_COLUMN.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_HIGHEST_ROW.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_HYPERLINKS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_HYPERLINKS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_REFERENCE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ROW_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_STRUCTURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_TABLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_TABLES_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_TOTALS_FORMULA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-HAS_TOTALS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-IS_EMPTY.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-REMOVE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_CELL_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_DATA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_PRINT_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_SHOW_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_SHOW_ROWCOLHEADERS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-UPDATE_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEETS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ADD.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ADD_DRAWING.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ADD_NEW_CONDITIONAL_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ADD_NEW_DATA_VALIDATION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-BIND_ALV.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-BIND_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CALCULATE_COLUMN_WIDTHS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CALCULATE_TEXT_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CLEAR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CONSTRUCTOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CREATE_NEW_ARGB.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-DELETE_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-FREEZE_PANES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ACTIVE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_AUTO_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLLAPSED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLORS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLUMN_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLUMN_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COND_STYLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DATA_VALIDATIONS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DATA_VALIDATIONS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DEFAULT_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DEFAULT_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DRAWINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DRAWINGS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_FREEZE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_GUID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_HIGHEST_COLUMN.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_HIGHEST_ROW.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_HYPERLINKS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_HYPERLINKS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_OUTLINE_LEVEL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_REFERENCE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ROW_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_STRUCTURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_TABLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_TABLES_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_TOTALS_FORMULA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_VISIBLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_XF_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-HAS_TOTALS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-IS_EMPTY.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-REMOVE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_AUTO_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_CELL_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_COLLAPSED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_COLUMN_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_DATA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_OUTLINE_LEVEL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_PRINT_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_SHOW_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_SHOW_ROWCOLHEADERS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_VISIBLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_XF_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-UPDATE_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ADD.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ADD_DRAWING.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ADD_NEW_CONDITIONAL_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ADD_NEW_DATA_VALIDATION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-BIND_ALV.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-BIND_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CALCULATE_COLUMN_WIDTHS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CALCULATE_TEXT_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CLEAR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CONSTRUCTOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CREATE_NEW_ARGB.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-DELETE_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-FREEZE_PANES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ACTIVE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_AUTO_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLLAPSED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLORS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLUMN_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLUMN_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COND_STYLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DATA_VALIDATIONS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DATA_VALIDATIONS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DEFAULT_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DEFAULT_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DRAWINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DRAWINGS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_FREEZE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_GUID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_HIGHEST_COLUMN.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_HIGHEST_ROW.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_HYPERLINKS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_HYPERLINKS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_OUTLINE_LEVEL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_REFERENCE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ROW_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ROW_HEIGHT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ROW_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_STRUCTURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_TABLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_TABLES_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_TOTALS_FORMULA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_VISIBLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_XF_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-HAS_TOTALS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-IS_EMPTY.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-REMOVE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_AUTO_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_CELL_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_COLLAPSED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_COLUMN_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_DATA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_OUTLINE_LEVEL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_PRINT_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_ROW_HEIGHT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_ROW_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_SHOW_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_SHOW_ROWCOLHEADERS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_VISIBLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_XF_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-UPDATE_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-ADD.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-ADD_DRAWING.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-ADD_NEW_CONDITIONAL_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-ADD_NEW_DATA_VALIDATION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-BIND_ALV.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-BIND_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CALCULATE_COLUMN_WIDTHS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CALCULATE_TEXT_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CLEAR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CONSTRUCTOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_CONTENT_TYPES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_DOCPROPS_APP.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_DOCPROPS_CORE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_NEW_ARGB.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_RELATIONSHIPS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_DRAWINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_DRAWINGS_RELS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_RELATIONSHIPS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_SHAREDSTRINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_SHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_SHEET_RELS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_STYLES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_STYLES_COLOR_NODE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_THEME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-DELETE_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-FLAG2BOOL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-FREEZE_PANES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ACTIVE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_AUTO_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLLAPSED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLORS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLUMN_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLUMN_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COND_STYLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DATA_VALIDATIONS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DATA_VALIDATIONS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DEFAULT_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DEFAULT_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DRAWINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DRAWINGS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_FREEZE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_GUID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_HIGHEST_COLUMN.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_HIGHEST_ROW.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_HYPERLINKS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_HYPERLINKS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_OUTLINE_LEVEL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_REFERENCE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ROW_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ROW_HEIGHT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ROW_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_SHARED_STRING_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_STRUCTURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_TABLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_TABLES_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_TOTALS_FORMULA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_VISIBLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_XF_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-HAS_TOTALS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-IS_EMPTY.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-REMOVE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_AUTO_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_CELL_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_COLLAPSED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_COLUMN_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_DATA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_OUTLINE_LEVEL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_PRINT_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_ROW_HEIGHT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_ROW_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_SHOW_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_SHOW_ROWCOLHEADERS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_VISIBLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_XF_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-UPDATE_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_WRITER~WRITE_FILE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_2007.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ADD.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ADD_DRAWING.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ADD_NEW_CONDITIONAL_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ADD_NEW_DATA_VALIDATION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-BIND_ALV.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-BIND_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CALCULATE_COLUMN_WIDTHS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CALCULATE_TEXT_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CLEAR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CONSTRUCTOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_CONTENT_TYPES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_CSV.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_DOCPROPS_APP.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_DOCPROPS_CORE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_NEW_ARGB.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_RELATIONSHIPS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_DRAWINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_DRAWINGS_RELS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_RELATIONSHIPS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_SHAREDSTRINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_SHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_SHEET_RELS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_STYLES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_STYLES_COLOR_NODE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_THEME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-DELETE_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-FLAG2BOOL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-FREEZE_PANES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ACTIVE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_AUTO_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLLAPSED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLORS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLUMN_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLUMN_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COND_STYLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DATA_VALIDATIONS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DATA_VALIDATIONS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DEFAULT_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DEFAULT_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DRAWINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DRAWINGS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_FREEZE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_GUID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_HIGHEST_COLUMN.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_HIGHEST_ROW.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_HYPERLINKS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_HYPERLINKS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_OUTLINE_LEVEL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_REFERENCE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ROW_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ROW_HEIGHT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ROW_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_SHARED_STRING_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_STRUCTURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_TABLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_TABLES_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_TOTALS_FORMULA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_VISIBLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_XF_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-HAS_TOTALS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-IS_EMPTY.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-REMOVE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ACTIVE_SHEET_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ACTIVE_SHEET_INDEX_BY_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_AUTO_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_CELL_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_COLLAPSED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_COLUMN_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_DATA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_DELIMITER.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ENCLOSURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ENDOFLINE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_OUTLINE_LEVEL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_PRINT_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ROW_HEIGHT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ROW_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_SHOW_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_SHOW_ROWCOLHEADERS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_VISIBLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_XF_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-UPDATE_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_WRITER~WRITE_FILE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_CSV.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_DRAWING.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_CONDITIONAL_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_DATA_VALIDATION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_DRAWING.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-BIND_ALV.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-BIND_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CALCULATE_COLUMN_WIDTHS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CALCULATE_TEXT_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CHAR2HEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CLEAR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONSTRUCTOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONVERT_COLUMN2ALPHA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONVERT_COLUMN2INT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONVERT_COLUMNROW2COLUMN_A_ROW.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONVERT_RANGE2COLUMN_A_ROW.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_CONTENT_TYPES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_CSV.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_DOCPROPS_APP.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_DOCPROPS_CORE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_EXTERNAL_LINK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_INTERNAL_LINK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_MEDIA_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_NEW_ARGB.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_RELATIONSHIPS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_DRAWINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_DRAWINGS_RELS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_RELATIONSHIPS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_SHAREDSTRINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_SHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_SHEET_RELS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_STYLES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_STYLES_COLOR_NODE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_THEME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-DATE_TO_EXCEL_STRING.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-DELETE_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ENCRYPT_PASSWORD.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ESCAPE_STRING.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-EXCEL_STRING_TO_DATE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-EXCEL_STRING_TO_TIME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-FILL_STRUCT_FROM_ATTRIBUTES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-FLAG2BOOL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-FREEZE_PANES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ACTIVE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ACTIVE_SHEET_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ACTIVE_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_AUTO_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLLAPSED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLORS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLUMN_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLUMN_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COND_STYLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DATA_VALIDATIONS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DATA_VALIDATIONS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DEFAULT_COLUMN_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DEFAULT_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DRAWINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DRAWINGS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FIELDCATALOG.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FREEZE_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FROM_COL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FROM_ROW.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FROM_ZIP_ARCHIVE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_GUID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HEIGHT_EMU_STR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HIGHEST_COLUMN.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HIGHEST_ROW.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HYPERLINKS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HYPERLINKS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_IXML_FROM_ZIP_ARCHIVE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_MEDIA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_MEDIA_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_MEDIA_TYPE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_NEXT_TABLE_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_OUTLINE_LEVEL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_RANGES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_REF.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_REFERENCE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ROW_DIMENSION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ROW_DIMENSIONS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ROW_HEIGHT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ROW_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_SHARED_STRING_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_STRUCTURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_STYLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TABLES_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TABLES_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TOTALS_FORMULA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TO_COL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TO_ROW.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_URL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_VALUE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_VISIBLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WIDTH_EMU_STR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WORKSHEETS_ITERATOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WORKSHEETS_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WORKSHEETS_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_XF_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-HAS_TOTALS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-IS_EMPTY.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-IS_INTERNAL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-IS_SECURITY_ENABLED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_SHARED_STRINGS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLE_BORDERS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLE_FILLS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLE_FONTS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLE_NUM_FORMATS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-NUMBER_TO_EXCEL_STRING.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-PIXEL2EMU.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-REGISTER_NEW_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-REMOVE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ACTIVE_SHEET_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ACTIVE_SHEET_INDEX_BY_NAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_AUTO_SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_CELL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_CELL_REFERENCE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_CELL_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_COLLAPSED.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_COLOR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_COLUMN_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_DATA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_DEFAULT_EXCEL_DATE_FORMAT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_DELIMITER.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ENCLOSURE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ENDOFLINE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ID.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_MEDIA.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_MEDIA_MIME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_MEDIA_WWW.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_MERGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_OUTLINE_LEVEL.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_PAGE_MARGINS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_POSITION.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_PRINT_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_RANGE_VALUE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ROW_HEIGHT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ROW_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_SHOW_GRIDLINES.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_SHOW_ROWCOLHEADERS.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_TABLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_TITLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_VALUE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_VISIBLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_WIDTH.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_XF_INDEX.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SHL01.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SHR14.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-TIME_TO_EXCEL_STRING.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-UPDATE_DIMENSION_RANGE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_READER~LOAD.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_READER~LOAD_FILE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_WRITER~WRITE_FILE.html create mode 100644 tools/APIDoc/ZCL_EXCEL_WRITER_XLSM.html create mode 100644 tools/APIDoc/ZCX_EXCEL-CONSTRUCTOR.html create mode 100644 tools/APIDoc/ZCX_EXCEL-GET_COLOR.html create mode 100644 tools/APIDoc/ZCX_EXCEL-GET_COLORS.html create mode 100644 tools/APIDoc/ZCX_EXCEL-IS_MODIFIED.html create mode 100644 tools/APIDoc/ZCX_EXCEL-LOAD_VBAPROJECT.html create mode 100644 tools/APIDoc/ZCX_EXCEL-LOAD_WORKBOOK.html create mode 100644 tools/APIDoc/ZCX_EXCEL-LOAD_WORKSHEET.html create mode 100644 tools/APIDoc/ZCX_EXCEL-SET_COLOR.html create mode 100644 tools/APIDoc/ZCX_EXCEL.html create mode 100644 tools/APIDoc/css/style_class.css create mode 100644 tools/APIDoc/css/style_function_groups.css create mode 100644 tools/APIDoc/css/style_object_list.css create mode 100644 tools/OpenXMLValidator/Binaries/OpenXMLValidator.exe create mode 100644 tools/OpenXMLValidator/Binaries/OpenXMLValidator.exe.config create mode 100644 tools/OpenXMLValidator/Binaries/OpenXMLValidator.pdb create mode 100644 tools/OpenXMLValidator/src/CommandLineArgs.cs create mode 100644 tools/OpenXMLValidator/src/OpenXMLValidator.csproj create mode 100644 tools/OpenXMLValidator/src/Program.cs create mode 100644 tools/OpenXMLValidator/src/Properties/AssemblyInfo.cs create mode 100644 tools/OpenXMLValidator/src/Resources.Designer.cs create mode 100644 tools/OpenXMLValidator/src/Resources.resx create mode 100644 tools/OpenXMLValidator/src/Resources/usage.txt create mode 100644 tools/OpenXMLValidator/src/app.config create mode 100644 tools/OpenXMLValidator/src/readme.txt diff --git a/build/6.20 patch/abap2xlsx6.20patch.nugg.zip b/build/6.20 patch/abap2xlsx6.20patch.nugg.zip new file mode 100644 index 0000000000000000000000000000000000000000..96f0f3e8985421ce1ed74aee12b54469b2ee1ae5 GIT binary patch literal 17356 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 + + + + *"* 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 + + + + + + + + + + + + + + + + + + + + + + + method ZIF_EXCEL_WRITER~WRITE_FILE. + me->excel = io_excel. + + ep_file = me->create( ). +endmethod. + + + + method CREATE. + +* Office 2007 file format is a cab of several xml files with extension .xlsx + + DATA: lo_zip TYPE REF TO cl_abap_zip, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_active_worksheet TYPE REF TO zcl_excel_worksheet, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_nested_iterator TYPE REF TO cl_object_collection_iterator, + lo_table TYPE REF TO zcl_excel_table, + lo_drawing TYPE REF TO zcl_excel_drawing, + lo_drawings TYPE REF TO zcl_excel_drawings. + + DATA: lv_content TYPE xstring, + lv_active TYPE flag, + lv_xl_sheet TYPE string, + lv_xl_sheet_rels TYPE string, + lv_xl_drawing TYPE string, + lv_xl_drawing_rels TYPE string, + lv_syindex TYPE string, + lv_value TYPE string, + lv_drawing_index TYPE i. + +********************************************************************** +* Start of insertion # issue 139 - Dateretention of cellstyles + me->excel->add_static_styles( ). +* End of insertion # issue 139 - Dateretention of cellstyles + +********************************************************************** +* STEP 1: Create archive object file (ZIP) + CREATE OBJECT lo_zip. + +********************************************************************** +* STEP 2: Add [Content_Types].xml to zip + lv_content = me->create_content_types( ). + lo_zip->add( name = me->c_content_types + content = lv_content ). + +********************************************************************** +* STEP 3: Add _rels/.rels to zip + lv_content = me->create_relationships( ). + lo_zip->add( name = me->c_relationships + content = lv_content ). + +********************************************************************** +* STEP 4: Add docProps/app.xml to zip + lv_content = me->create_docprops_app( ). + lo_zip->add( name = me->c_docprops_app + content = lv_content ). + +********************************************************************** +* STEP 5: Add docProps/core.xml to zip + lv_content = me->create_docprops_core( ). + lo_zip->add( name = me->c_docprops_core + content = lv_content ). + +********************************************************************** +* STEP 6: Add xl/_rels/workbook.xml.rels to zip + lv_content = me->create_xl_relationships( ). + lo_zip->add( name = me->c_xl_relationships + content = lv_content ). + +********************************************************************** +* STEP 6: Add xl/_rels/workbook.xml.rels to zip + lv_content = me->create_xl_theme( ). + lo_zip->add( name = me->c_xl_theme + content = lv_content ). + +********************************************************************** +* STEP 7: Add xl/workbook.xml to zip + lv_content = me->create_xl_workbook( ). + lo_zip->add( name = me->c_xl_workbook + content = lv_content ). + +********************************************************************** +* STEP 8: Add xl/workbook.xml to zip +* lv_content = me->create_xl_styles_static( ). + lv_content = me->create_xl_styles( ). + lo_zip->add( name = me->c_xl_styles + content = lv_content ). + +********************************************************************** +* STEP 9: Add sharedStrings.xml to zip + lv_content = me->create_xl_sharedstrings( ). + lo_zip->add( name = me->c_xl_sharedstrings + content = lv_content ). + +********************************************************************** +* STEP 10: Add sheet#.xml and drawing#.xml to zip + lo_iterator = me->excel->get_worksheets_iterator( ). + lo_active_worksheet = me->excel->get_active_worksheet( ). + lv_drawing_index = 1. + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + IF lo_active_worksheet->get_guid( ) EQ lo_worksheet->get_guid( ). + lv_active = abap_true. + ELSE. + lv_active = abap_false. + ENDIF. + lv_content = me->create_xl_sheet( io_worksheet = lo_worksheet + iv_active = lv_active ). + lv_xl_sheet = me->c_xl_sheet. + MOVE sy-index TO lv_syindex. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + REPLACE ALL OCCURRENCES OF '#' IN lv_xl_sheet WITH lv_syindex. + lo_zip->add( name = lv_xl_sheet + content = lv_content ). + + lv_xl_sheet_rels = me->c_xl_sheet_rels. + lv_content = me->create_xl_sheet_rels( io_worksheet = lo_worksheet + iv_drawing_index = lv_drawing_index ). + REPLACE ALL OCCURRENCES OF '#' IN lv_xl_sheet_rels WITH lv_syindex. + lo_zip->add( name = lv_xl_sheet_rels + content = lv_content ). + + lo_nested_iterator = lo_worksheet->get_tables_iterator( ). + + WHILE lo_nested_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_table ?= lo_nested_iterator->if_object_collection_iterator~get_next( ). + lv_content = me->create_xl_table( lo_table ). + + lv_value = lo_table->get_name( ). + CONCATENATE 'xl/tables/' lv_value '.xml' INTO lv_value. + lo_zip->add( name = lv_value + content = lv_content ). + ENDWHILE. + +* Add drawings ********************************** + lo_drawings = lo_worksheet->get_drawings( ). + IF lo_drawings->is_empty( ) = abap_false. + MOVE lv_drawing_index TO lv_syindex. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + + lv_content = me->create_xl_drawings( lo_worksheet ). + lv_xl_drawing = me->c_xl_drawings. + REPLACE ALL OCCURRENCES OF '#' IN lv_xl_drawing WITH lv_syindex. + lo_zip->add( name = lv_xl_drawing + content = lv_content ). + + lv_content = me->create_xl_drawings_rels( lo_worksheet ). + lv_xl_drawing_rels = me->c_xl_drawings_rels. + REPLACE ALL OCCURRENCES OF '#' IN lv_xl_drawing_rels WITH lv_syindex. + lo_zip->add( name = lv_xl_drawing_rels + content = lv_content ). + ADD 1 TO lv_drawing_index. + ENDIF. + + ENDWHILE. + +********************************************************************** +* STEP 11: Add media + lo_iterator = me->excel->get_drawings_iterator( zcl_excel_drawing=>type_image ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_drawing ?= lo_iterator->if_object_collection_iterator~get_next( ). + + lv_content = lo_drawing->get_media( ). + lv_value = lo_drawing->get_media_name( ). + CONCATENATE 'xl/media/' lv_value INTO lv_value. + lo_zip->add( name = lv_value + content = lv_content ). + ENDWHILE. + +********************************************************************** +* STEP 12: Add charts + lo_iterator = me->excel->get_drawings_iterator( zcl_excel_drawing=>type_chart ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_drawing ?= lo_iterator->if_object_collection_iterator~get_next( ). + + lv_content = lo_drawing->get_media( ). + + "-------------Added by Alessandro Iannacci - Only if template exist + IF lv_content IS NOT INITIAL AND me->excel->use_template EQ abap_true. + lv_value = lo_drawing->get_media_name( ). + CONCATENATE 'xl/charts/' lv_value INTO lv_value. + lo_zip->add( name = lv_value + content = lv_content ). + ELSE. "ADD CUSTOM CHART!!!! + lv_content = me->create_xl_charts( lo_drawing ). + lv_value = lo_drawing->get_media_name( ). + CONCATENATE 'xl/charts/' lv_value INTO lv_value. + lo_zip->add( name = lv_value + content = lv_content ). + ENDIF. + "------------------------------------------------- + ENDWHILE. + +********************************************************************** +* STEP 12: Create the final zip + ep_excel = lo_zip->save( ). + +endmethod. + + + + method CREATE_CONTENT_TYPES. + + +** Constant node name + DATA: lc_xml_node_types TYPE string VALUE 'Types', + lc_xml_node_override TYPE string VALUE 'Override', + lc_xml_node_default TYPE string VALUE 'Default', + " Node attributes + lc_xml_attr_partname TYPE string VALUE 'PartName', + lc_xml_attr_extension TYPE string VALUE 'Extension', + lc_xml_attr_contenttype TYPE string VALUE 'ContentType', + " Node namespace + lc_xml_node_types_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/content-types', + " Node extension + lc_xml_node_rels_ext TYPE string VALUE 'rels', + lc_xml_node_xml_ext TYPE string VALUE 'xml', + " Node partnumber + lc_xml_node_theme_pn TYPE string VALUE '/xl/theme/theme1.xml', + lc_xml_node_styles_pn TYPE string VALUE '/xl/styles.xml', + lc_xml_node_workb_pn TYPE string VALUE '/xl/workbook.xml', + lc_xml_node_props_pn TYPE string VALUE '/docProps/app.xml', + lc_xml_node_worksheet_pn TYPE string VALUE '/xl/worksheets/sheet#.xml', + lc_xml_node_strings_pn TYPE string VALUE '/xl/sharedStrings.xml', + lc_xml_node_core_pn TYPE string VALUE '/docProps/core.xml', + lc_xml_node_chart_pn TYPE string VALUE '/xl/charts/chart#.xml', + " Node contentType + lc_xml_node_theme_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.theme+xml', + lc_xml_node_styles_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml', + lc_xml_node_workb_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml', + lc_xml_node_rels_ct TYPE string VALUE 'application/vnd.openxmlformats-package.relationships+xml', + lc_xml_node_xml_ct TYPE string VALUE 'application/xml', + lc_xml_node_props_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.extended-properties+xml', + lc_xml_node_worksheet_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml', + lc_xml_node_strings_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml', + lc_xml_node_core_ct TYPE string VALUE 'application/vnd.openxmlformats-package.core-properties+xml', + lc_xml_node_table_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.spreadsheetml.table+xml', + lc_xml_node_drawings_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.drawing+xml', + lc_xml_node_chart_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.drawingml.chart+xml'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_nested_iterator TYPE REF TO cl_object_collection_iterator, + lo_table TYPE REF TO zcl_excel_table. + + DATA: lv_worksheets_num TYPE i, + lv_worksheets_numc TYPE numc3, + lv_xml_node_worksheet_pn TYPE string, + lv_xml_size TYPE i, + lv_value TYPE string, + lv_drawing_index TYPE i VALUE 1, + lv_index_str TYPE string. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'UTF-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node types + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_types + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_types_ns ). + +********************************************************************** +* STEP 4: Create subnodes + + " rels node + lo_element = lo_document->create_simple_element( name = lc_xml_node_default + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_extension + value = lc_xml_node_rels_ext ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_rels_ct ). + lo_element_root->append_child( new_child = lo_element ). + + " extension node + lo_element = lo_document->create_simple_element( name = lc_xml_node_default + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_extension + value = lc_xml_node_xml_ext ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_xml_ct ). + lo_element_root->append_child( new_child = lo_element ). + + " Theme node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_theme_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_theme_ct ). + lo_element_root->append_child( new_child = lo_element ). + + " Styles node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_styles_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_styles_ct ). + lo_element_root->append_child( new_child = lo_element ). + + " Workbook node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_workb_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_workb_ct ). + lo_element_root->append_child( new_child = lo_element ). + + " Properties node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_props_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_props_ct ). + lo_element_root->append_child( new_child = lo_element ). + + " Worksheet node + lv_worksheets_num = excel->get_worksheets_size( ). + DO lv_worksheets_num TIMES. + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + + MOVE sy-index TO lv_worksheets_numc. + SHIFT lv_worksheets_numc LEFT DELETING LEADING '0'. + lv_xml_node_worksheet_pn = lc_xml_node_worksheet_pn. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_worksheet_pn WITH lv_worksheets_numc. + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lv_xml_node_worksheet_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_worksheet_ct ). + lo_element_root->append_child( new_child = lo_element ). + ENDDO. + + lo_iterator = me->excel->get_worksheets_iterator( ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + + lo_nested_iterator = lo_worksheet->get_tables_iterator( ). + + WHILE lo_nested_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_table ?= lo_nested_iterator->if_object_collection_iterator~get_next( ). + + lv_value = lo_table->get_name( ). + CONCATENATE '/xl/tables/' lv_value '.xml' INTO lv_value. + + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lv_value ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_table_ct ). + lo_element_root->append_child( new_child = lo_element ). + ENDWHILE. + + " Drawings + DATA: lo_drawings TYPE REF TO zcl_excel_drawings. + + lo_drawings = lo_worksheet->get_drawings( ). + IF lo_drawings->is_empty( ) = abap_false. + lv_index_str = lv_drawing_index. + CONDENSE lv_index_str NO-GAPS. + CONCATENATE '/' me->c_xl_drawings INTO lv_value. + REPLACE '#' WITH lv_index_str INTO lv_value. + + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lv_value ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_drawings_ct ). + lo_element_root->append_child( new_child = lo_element ). + + ADD 1 TO lv_drawing_index. + ENDIF. + ENDWHILE. + + " media mimes + DATA: lo_drawing TYPE REF TO zcl_excel_drawing, + lt_media_type TYPE TABLE OF mimetypes-extension, + lv_media_type TYPE mimetypes-extension, + lv_mime_type TYPE mimetypes-type. + + lo_iterator = me->excel->get_drawings_iterator( zcl_excel_drawing=>type_image ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) = abap_true. + lo_drawing ?= lo_iterator->if_object_collection_iterator~get_next( ). + + lv_media_type = lo_drawing->get_media_type( ). + COLLECT lv_media_type INTO lt_media_type. + ENDWHILE. + + LOOP AT lt_media_type INTO lv_media_type. + CALL FUNCTION 'SDOK_MIMETYPE_GET' + EXPORTING + extension = lv_media_type + IMPORTING + mimetype = lv_mime_type. + + lo_element = lo_document->create_simple_element( name = lc_xml_node_default + parent = lo_document ). + lv_value = lv_media_type. + lo_element->set_attribute_ns( name = lc_xml_attr_extension + value = lv_value ). + lv_value = lv_mime_type. + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + ENDLOOP. + + " Charts + lo_iterator = me->excel->get_drawings_iterator( zcl_excel_drawing=>type_chart ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) = abap_true. + lo_drawing ?= lo_iterator->if_object_collection_iterator~get_next( ). + + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lv_index_str = lo_drawing->get_index( ). + CONDENSE lv_index_str. + lv_value = lc_xml_node_chart_pn. + REPLACE ALL OCCURRENCES OF '#' IN lv_value WITH lv_index_str. + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lv_value ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_chart_ct ). + lo_element_root->append_child( new_child = lo_element ). + ENDWHILE. + + " Strings node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_strings_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_strings_ct ). + lo_element_root->append_child( new_child = lo_element ). + + " Strings node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_core_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_core_ct ). + lo_element_root->append_child( new_child = lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + method CREATE_DOCPROPS_APP. + + +** Constant node name + DATA: lc_xml_node_properties TYPE string VALUE 'Properties', + lc_xml_node_application TYPE string VALUE 'Application', + lc_xml_node_docsecurity TYPE string VALUE 'DocSecurity', + lc_xml_node_scalecrop TYPE string VALUE 'ScaleCrop', + lc_xml_node_headingpairs TYPE string VALUE 'HeadingPairs', + lc_xml_node_vector TYPE string VALUE 'vector', + lc_xml_node_variant TYPE string VALUE 'variant', + lc_xml_node_lpstr TYPE string VALUE 'lpstr', + lc_xml_node_i4 TYPE string VALUE 'i4', + lc_xml_node_titlesofparts TYPE string VALUE 'TitlesOfParts', + lc_xml_node_company TYPE string VALUE 'Company', + lc_xml_node_linksuptodate TYPE string VALUE 'LinksUpToDate', + lc_xml_node_shareddoc TYPE string VALUE 'SharedDoc', + lc_xml_node_hyperlinkschanged TYPE string VALUE 'HyperlinksChanged', + lc_xml_node_appversion TYPE string VALUE 'AppVersion', + " Namespace prefix + lc_vt_ns TYPE string VALUE 'vt', + lc_xml_node_props_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties', + lc_xml_node_props_vt_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes', + " Node attributes + lc_xml_attr_size TYPE string VALUE 'size', + lc_xml_attr_basetype TYPE string VALUE 'baseType'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_sub_element_vector TYPE REF TO if_ixml_element, + lo_sub_element_variant TYPE REF TO if_ixml_element, + lo_sub_element_lpstr TYPE REF TO if_ixml_element, + lo_sub_element_i4 TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + + DATA: lv_value TYPE string. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node properties + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_properties + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_props_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:vt' + value = lc_xml_node_props_vt_ns ). + +********************************************************************** +* STEP 4: Create subnodes + " Application + lo_element = lo_document->create_simple_element( name = lc_xml_node_application + parent = lo_document ). + lv_value = excel->zif_excel_book_properties~application. + lo_element->set_value( value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + + " DocSecurity + lo_element = lo_document->create_simple_element( name = lc_xml_node_docsecurity + parent = lo_document ). + lv_value = excel->zif_excel_book_properties~docsecurity. + lo_element->set_value( value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + + " ScaleCrop + lo_element = lo_document->create_simple_element( name = lc_xml_node_scalecrop + parent = lo_document ). + lv_value = me->flag2bool( excel->zif_excel_book_properties~scalecrop ). + lo_element->set_value( value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + + " HeadingPairs + lo_element = lo_document->create_simple_element( name = lc_xml_node_headingpairs + parent = lo_document ). + + + " * vector node + lo_sub_element_vector = lo_document->create_simple_element_ns( name = lc_xml_node_vector + prefix = lc_vt_ns + parent = lo_document ). + lo_sub_element_vector->set_attribute_ns( name = lc_xml_attr_size + value = '2' ). + lo_sub_element_vector->set_attribute_ns( name = lc_xml_attr_basetype + value = lc_xml_node_variant ). + + " ** variant node + lo_sub_element_variant = lo_document->create_simple_element_ns( name = lc_xml_node_variant + prefix = lc_vt_ns + parent = lo_document ). + + " *** lpstr node + lo_sub_element_lpstr = lo_document->create_simple_element_ns( name = lc_xml_node_lpstr + prefix = lc_vt_ns + parent = lo_document ). + lv_value = excel->get_worksheets_name( ). + lo_sub_element_lpstr->set_value( value = lv_value ). + lo_sub_element_variant->append_child( new_child = lo_sub_element_lpstr ). " lpstr node + + lo_sub_element_vector->append_child( new_child = lo_sub_element_variant ). " variant node + + " ** variant node + lo_sub_element_variant = lo_document->create_simple_element_ns( name = lc_xml_node_variant + prefix = lc_vt_ns + parent = lo_document ). + + " *** i4 node + lo_sub_element_i4 = lo_document->create_simple_element_ns( name = lc_xml_node_i4 + prefix = lc_vt_ns + parent = lo_document ). + lv_value = excel->get_worksheets_size( ). + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element_i4->set_value( value = lv_value ). + lo_sub_element_variant->append_child( new_child = lo_sub_element_i4 ). " lpstr node + + lo_sub_element_vector->append_child( new_child = lo_sub_element_variant ). " variant node + + lo_element->append_child( new_child = lo_sub_element_vector ). " vector node + + lo_element_root->append_child( new_child = lo_element ). " HeadingPairs + + + " TitlesOfParts + lo_element = lo_document->create_simple_element( name = lc_xml_node_titlesofparts + parent = lo_document ). + + + " * vector node + lo_sub_element_vector = lo_document->create_simple_element_ns( name = lc_xml_node_vector + prefix = lc_vt_ns + parent = lo_document ). + lv_value = excel->get_worksheets_size( ). + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element_vector->set_attribute_ns( name = lc_xml_attr_size + value = lv_value ). + lo_sub_element_vector->set_attribute_ns( name = lc_xml_attr_basetype + value = lc_xml_node_lpstr ). + + lo_iterator = excel->get_worksheets_iterator( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + " ** lpstr node + lo_sub_element_lpstr = lo_document->create_simple_element_ns( name = lc_xml_node_lpstr + prefix = lc_vt_ns + parent = lo_document ). + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + lv_value = lo_worksheet->get_title( ). + lo_sub_element_lpstr->set_value( value = lv_value ). + lo_sub_element_vector->append_child( new_child = lo_sub_element_lpstr ). " lpstr node + ENDWHILE. + + lo_element->append_child( new_child = lo_sub_element_vector ). " vector node + + lo_element_root->append_child( new_child = lo_element ). " TitlesOfParts + + + + " Company + IF excel->zif_excel_book_properties~company IS NOT INITIAL. + lo_element = lo_document->create_simple_element( name = lc_xml_node_company + parent = lo_document ). + lv_value = excel->zif_excel_book_properties~company. + lo_element->set_value( value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + ENDIF. + + " LinksUpToDate + lo_element = lo_document->create_simple_element( name = lc_xml_node_linksuptodate + parent = lo_document ). + lv_value = me->flag2bool( excel->zif_excel_book_properties~linksuptodate ). + lo_element->set_value( value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + + " SharedDoc + lo_element = lo_document->create_simple_element( name = lc_xml_node_shareddoc + parent = lo_document ). + lv_value = me->flag2bool( excel->zif_excel_book_properties~shareddoc ). + lo_element->set_value( value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + + " HyperlinksChanged + lo_element = lo_document->create_simple_element( name = lc_xml_node_hyperlinkschanged + parent = lo_document ). + lv_value = me->flag2bool( excel->zif_excel_book_properties~hyperlinkschanged ). + lo_element->set_value( value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + + " AppVersion + lo_element = lo_document->create_simple_element( name = lc_xml_node_appversion + parent = lo_document ). + lv_value = excel->zif_excel_book_properties~appversion. + lo_element->set_value( value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + method CREATE_DOCPROPS_CORE. + + +** Constant node name + DATA: lc_xml_node_coreproperties TYPE string VALUE 'coreProperties', + lc_xml_node_creator TYPE string VALUE 'creator', + lc_xml_node_lastmodifiedby TYPE string VALUE 'lastModifiedBy', + lc_xml_node_created TYPE string VALUE 'created', + lc_xml_node_modified TYPE string VALUE 'modified', + " Node attributes + lc_xml_attr_type TYPE string VALUE 'type', + lc_xml_attr_target TYPE string VALUE 'dcterms:W3CDTF', + " Node namespace + lc_cp_ns TYPE string VALUE 'cp', + lc_dc_ns TYPE string VALUE 'dc', + lc_dcterms_ns TYPE string VALUE 'dcterms', +* lc_dcmitype_ns TYPE string VALUE 'dcmitype', + lc_xsi_ns TYPE string VALUE 'xsi', + lc_xml_node_cp_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties', + lc_xml_node_dc_ns TYPE string VALUE 'http://purl.org/dc/elements/1.1/', + lc_xml_node_dcterms_ns TYPE string VALUE 'http://purl.org/dc/terms/', + lc_xml_node_dcmitype_ns TYPE string VALUE 'http://purl.org/dc/dcmitype/', + lc_xml_node_xsi_ns TYPE string VALUE 'http://www.w3.org/2001/XMLSchema-instance'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + + DATA: lv_value TYPE string, + lv_date TYPE sydatum, + lv_time TYPE syuzeit. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node coreProperties + lo_element_root = lo_document->create_simple_element_ns( name = lc_xml_node_coreproperties + prefix = lc_cp_ns + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns:cp' + value = lc_xml_node_cp_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:dc' + value = lc_xml_node_dc_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:dcterms' + value = lc_xml_node_dcterms_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:dcmitype' + value = lc_xml_node_dcmitype_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:xsi' + value = lc_xml_node_xsi_ns ). + +********************************************************************** +* STEP 4: Create subnodes + " Creator node + lo_element = lo_document->create_simple_element_ns( name = lc_xml_node_creator + prefix = lc_dc_ns + parent = lo_document ). + lv_value = excel->zif_excel_book_properties~creator. + lo_element->set_value( value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + + " lastModifiedBy node + lo_element = lo_document->create_simple_element_ns( name = lc_xml_node_lastmodifiedby + prefix = lc_cp_ns + parent = lo_document ). + lv_value = excel->zif_excel_book_properties~lastmodifiedby. + lo_element->set_value( value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + + " Created node + lo_element = lo_document->create_simple_element_ns( name = lc_xml_node_created + prefix = lc_dcterms_ns + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + prefix = lc_xsi_ns + value = lc_xml_attr_target ). + + CONVERT TIME STAMP excel->zif_excel_book_properties~created TIME ZONE sy-zonlo INTO DATE lv_date TIME lv_time. + CONCATENATE lv_date lv_time INTO lv_value RESPECTING BLANKS. + REPLACE ALL OCCURRENCES OF REGEX '([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})' IN lv_value WITH '$1-$2-$3T$4:$5:$6Z'. +* lv_value = excel->zif_excel_book_properties~created. +* lv_value = '2010-07-04T14:58:53Z'. + lo_element->set_value( value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + + " Modified node + lo_element = lo_document->create_simple_element_ns( name = lc_xml_node_modified + prefix = lc_dcterms_ns + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + prefix = lc_xsi_ns + value = lc_xml_attr_target ). + CONVERT TIME STAMP excel->zif_excel_book_properties~modified TIME ZONE sy-zonlo INTO DATE lv_date TIME lv_time. + CONCATENATE lv_date lv_time INTO lv_value RESPECTING BLANKS. + REPLACE ALL OCCURRENCES OF REGEX '([0-9]{4})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})([0-9]{2})' IN lv_value WITH '$1-$2-$3T$4:$5:$6Z'. +* lv_value = excel->zif_excel_book_properties~modified. +* lv_value = '2010-07-04T14:58:53Z'. + lo_element->set_value( value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + method CREATE_RELATIONSHIPS. + + +** Constant node name + DATA: lc_xml_node_relationships TYPE string VALUE 'Relationships', + lc_xml_node_relationship TYPE string VALUE 'Relationship', + " Node attributes + lc_xml_attr_id TYPE string VALUE 'Id', + lc_xml_attr_type TYPE string VALUE 'Type', + lc_xml_attr_target TYPE string VALUE 'Target', + " Node namespace + lc_xml_node_rels_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships', + " Node id + lc_xml_node_rId1_id TYPE string VALUE 'rId1', + lc_xml_node_rId2_id TYPE string VALUE 'rId2', + lc_xml_node_rId3_id TYPE string VALUE 'rId3', + " Node type + lc_xml_node_rId1_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument', + lc_xml_node_rId2_tp TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties', + lc_xml_node_rId3_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties', + " Node target + lc_xml_node_rId1_tg TYPE string VALUE 'xl/workbook.xml', + lc_xml_node_rId2_tg TYPE string VALUE 'docProps/core.xml', + lc_xml_node_rId3_tg TYPE string VALUE 'docProps/app.xml'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_relationships + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_rels_ns ). + +********************************************************************** +* STEP 4: Create subnodes + " Theme node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lc_xml_node_rId3_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rId3_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rId3_tg ). + lo_element_root->append_child( new_child = lo_element ). + + " Styles node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lc_xml_node_rId2_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rId2_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rId2_tg ). + lo_element_root->append_child( new_child = lo_element ). + + " rels node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lc_xml_node_rId1_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rId1_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rId1_tg ). + lo_element_root->append_child( new_child = lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + + METHOD create_xl_charts. + + +** Constant node name + CONSTANTS: lc_xml_node_chartspace TYPE string VALUE 'c:chartSpace', + lc_xml_node_ns_c TYPE string VALUE 'http://schemas.openxmlformats.org/drawingml/2006/chart', + lc_xml_node_ns_a TYPE string VALUE 'http://schemas.openxmlformats.org/drawingml/2006/main', + lc_xml_node_ns_r TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships', + lc_xml_node_date1904 TYPE string VALUE 'c:date1904', + lc_xml_node_lang TYPE string VALUE 'c:lang', + lc_xml_node_roundedcorners TYPE string VALUE 'c:roundedCorners', + lc_xml_node_altcont TYPE string VALUE 'mc:AlternateContent', + lc_xml_node_altcont_ns_mc TYPE string VALUE 'http://schemas.openxmlformats.org/markup-compatibility/2006', + lc_xml_node_choice TYPE string VALUE 'mc:Choice', + lc_xml_node_choice_ns_requires TYPE string VALUE 'c14', + lc_xml_node_choice_ns_c14 TYPE string VALUE 'http://schemas.microsoft.com/office/drawing/2007/8/2/chart', + lc_xml_node_style TYPE string VALUE 'c14:style', + lc_xml_node_fallback TYPE string VALUE 'mc:Fallback', + lc_xml_node_style2 TYPE string VALUE 'c:style', + + "---------------------------CHART + lc_xml_node_chart TYPE string VALUE 'c:chart', + lc_xml_node_autotitledeleted TYPE string VALUE 'c:autoTitleDeleted', + "plotArea + lc_xml_node_plotarea TYPE string VALUE 'c:plotArea', + lc_xml_node_layout TYPE string VALUE 'c:layout', + lc_xml_node_varycolors TYPE string VALUE 'c:varyColors', + lc_xml_node_ser TYPE string VALUE 'c:ser', + lc_xml_node_idx TYPE string VALUE 'c:idx', + lc_xml_node_order TYPE string VALUE 'c:order', + lc_xml_node_tx TYPE string VALUE 'c:tx', + lc_xml_node_v TYPE string VALUE 'c:v', + lc_xml_node_val TYPE string VALUE 'c:val', + lc_xml_node_cat TYPE string VALUE 'c:cat', + lc_xml_node_numref TYPE string VALUE 'c:numRef', + lc_xml_node_strref TYPE string VALUE 'c:strRef', + lc_xml_node_f TYPE string VALUE 'c:f', "this is the range + "note: numcache avoided + lc_xml_node_dlbls TYPE string VALUE 'c:dLbls', + lc_xml_node_showlegendkey TYPE string VALUE 'c:showLegendKey', + lc_xml_node_showval TYPE string VALUE 'c:showVal', + lc_xml_node_showcatname TYPE string VALUE 'c:showCatName', + lc_xml_node_showsername TYPE string VALUE 'c:showSerName', + lc_xml_node_showpercent TYPE string VALUE 'c:showPercent', + lc_xml_node_showbubblesize TYPE string VALUE 'c:showBubbleSize', + "plotArea->pie + lc_xml_node_piechart TYPE string VALUE 'c:pieChart', + lc_xml_node_showleaderlines TYPE string VALUE 'c:showLeaderLines', + lc_xml_node_firstsliceang TYPE string VALUE 'c:firstSliceAng', + "plotArea->line + lc_xml_node_linechart TYPE string VALUE 'c:lineChart', + lc_xml_node_symbol TYPE string VALUE 'c:symbol', + lc_xml_node_marker TYPE string VALUE 'c:marker', + lc_xml_node_smooth TYPE string VALUE 'c:smooth', + "plotArea->bar + lc_xml_node_invertifnegative TYPE string VALUE 'c:invertIfNegative', + lc_xml_node_barchart TYPE string VALUE 'c:barChart', + lc_xml_node_bardir TYPE string VALUE 'c:barDir', + lc_xml_node_gapwidth TYPE string VALUE 'c:gapWidth', + "plotArea->line + plotArea->bar + lc_xml_node_grouping TYPE string VALUE 'c:grouping', + lc_xml_node_axid TYPE string VALUE 'c:axId', + lc_xml_node_catax TYPE string VALUE 'c:catAx', + lc_xml_node_valax TYPE string VALUE 'c:valAx', + lc_xml_node_scaling TYPE string VALUE 'c:scaling', + lc_xml_node_orientation TYPE string VALUE 'c:orientation', + lc_xml_node_delete TYPE string VALUE 'c:delete', + lc_xml_node_axpos TYPE string VALUE 'c:axPos', + lc_xml_node_numfmt TYPE string VALUE 'c:numFmt', + lc_xml_node_majorgridlines TYPE string VALUE 'c:majorGridlines', + lc_xml_node_majortickmark TYPE string VALUE 'c:majorTickMark', + lc_xml_node_minortickmark TYPE string VALUE 'c:minorTickMark', + lc_xml_node_ticklblpos TYPE string VALUE 'c:tickLblPos', + lc_xml_node_crossax TYPE string VALUE 'c:crossAx', + lc_xml_node_crosses TYPE string VALUE 'c:crosses', + lc_xml_node_auto TYPE string VALUE 'c:auto', + lc_xml_node_lblalgn TYPE string VALUE 'c:lblAlgn', + lc_xml_node_lbloffset TYPE string VALUE 'c:lblOffset', + lc_xml_node_nomultilvllbl TYPE string VALUE 'c:noMultiLvlLbl', + lc_xml_node_crossbetween TYPE string VALUE 'c:crossBetween', + "legend + lc_xml_node_legend TYPE string VALUE 'c:legend', + "legend->pie + lc_xml_node_legendpos TYPE string VALUE 'c:legendPos', +* lc_xml_node_layout TYPE string VALUE 'c:layout', "already exist + lc_xml_node_overlay TYPE string VALUE 'c:overlay', + lc_xml_node_txpr TYPE string VALUE 'c:txPr', + lc_xml_node_bodypr TYPE string VALUE 'a:bodyPr', + lc_xml_node_lststyle TYPE string VALUE 'a:lstStyle', + lc_xml_node_p TYPE string VALUE 'a:p', + lc_xml_node_ppr TYPE string VALUE 'a:pPr', + lc_xml_node_defrpr TYPE string VALUE 'a:defRPr', + lc_xml_node_endpararpr TYPE string VALUE 'a:endParaRPr', + "legend->bar + legend->line + lc_xml_node_plotvisonly TYPE string VALUE 'c:plotVisOnly', + lc_xml_node_dispblanksas TYPE string VALUE 'c:dispBlanksAs', + lc_xml_node_showdlblsovermax TYPE string VALUE 'c:showDLblsOverMax', + "---------------------------END OF CHART + + lc_xml_node_printsettings TYPE string VALUE 'c:printSettings', + lc_xml_node_headerfooter TYPE string VALUE 'c:headerFooter', + lc_xml_node_pagemargins TYPE string VALUE 'c:pageMargins', + lc_xml_node_pagesetup TYPE string VALUE 'c:pageSetup'. + + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element_cellanchor TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + DATA: lv_rel_id TYPE i. + + DATA lo_element TYPE REF TO if_ixml_element. + DATA lo_element2 TYPE REF TO if_ixml_element. + DATA lo_element3 TYPE REF TO if_ixml_element. + DATA lo_el_rootchart TYPE REF TO if_ixml_element. + DATA lo_element4 TYPE REF TO if_ixml_element. + DATA lo_element5 TYPE REF TO if_ixml_element. + DATA lo_element6 TYPE REF TO if_ixml_element. + DATA lo_element7 TYPE REF TO if_ixml_element. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +*********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_chartspace + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns:c' + value = lc_xml_node_ns_c ). + lo_element_root->set_attribute_ns( name = 'xmlns:a' + value = lc_xml_node_ns_a ). + lo_element_root->set_attribute_ns( name = 'xmlns:r' + value = lc_xml_node_ns_r ). + +********************************************************************** +* STEP 4: Create chart + + DATA lo_chartb TYPE REF TO zcl_excel_graph_bars. + DATA lo_chartp TYPE REF TO zcl_excel_graph_pie. + DATA lo_chartl TYPE REF TO zcl_excel_graph_line. + DATA lo_chart TYPE REF TO zcl_excel_graph. + + DATA ls_serie TYPE zcl_excel_graph=>s_series. + DATA ls_ax TYPE zcl_excel_graph_bars=>s_ax. + DATA lv_str TYPE string. + + "Identify chart type + CASE io_drawing->graph_type. + WHEN zcl_excel_drawing=>c_graph_bars. + lo_chartb ?= io_drawing->graph. + WHEN zcl_excel_drawing=>c_graph_pie. + lo_chartp ?= io_drawing->graph. + WHEN zcl_excel_drawing=>c_graph_line. + lo_chartl ?= io_drawing->graph. + WHEN OTHERS. + ENDCASE. + + + lo_chart = io_drawing->graph. + + lo_element = lo_document->create_simple_element( name = lc_xml_node_date1904 + parent = lo_element_root ). + lo_element->set_attribute_ns( name = 'val' + value = lo_chart->ns_1904val ). + + lo_element = lo_document->create_simple_element( name = lc_xml_node_lang + parent = lo_element_root ). + lo_element->set_attribute_ns( name = 'val' + value = lo_chart->ns_langval ). + + lo_element = lo_document->create_simple_element( name = lc_xml_node_roundedcorners + parent = lo_element_root ). + lo_element->set_attribute_ns( name = 'val' + value = lo_chart->ns_roundedcornersval ). + + lo_element = lo_document->create_simple_element( name = lc_xml_node_altcont + parent = lo_element_root ). + lo_element->set_attribute_ns( name = 'xmlns:mc' + value = lc_xml_node_altcont_ns_mc ). + + "Choice + lo_element2 = lo_document->create_simple_element( name = lc_xml_node_choice + parent = lo_element ). + lo_element2->set_attribute_ns( name = 'Requires' + value = lc_xml_node_choice_ns_requires ). + lo_element2->set_attribute_ns( name = 'xmlns:c14' + value = lc_xml_node_choice_ns_c14 ). + + "C14:style + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_style + parent = lo_element2 ). + lo_element3->set_attribute_ns( name = 'val' + value = lo_chart->ns_c14styleval ). + + "Fallback + lo_element2 = lo_document->create_simple_element( name = lc_xml_node_fallback + parent = lo_element ). + + "C:style + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_style2 + parent = lo_element2 ). + lo_element3->set_attribute_ns( name = 'val' + value = lo_chart->ns_styleval ). + + "---------------------------CHART + lo_element = lo_document->create_simple_element( name = lc_xml_node_chart + parent = lo_element_root ). + lo_element2 = lo_document->create_simple_element( name = lc_xml_node_autotitledeleted + parent = lo_element ). + lo_element2->set_attribute_ns( name = 'val' + value = lo_chart->ns_autotitledeletedval ). + + "plotArea + lo_element2 = lo_document->create_simple_element( name = lc_xml_node_plotarea + parent = lo_element ). + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_layout + parent = lo_element2 ). + CASE io_drawing->graph_type. + WHEN zcl_excel_drawing=>c_graph_bars. + "----bar + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_barchart + parent = lo_element2 ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_bardir + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = lo_chartb->ns_bardirval ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_grouping + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = lo_chartb->ns_groupingval ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_varycolors + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = lo_chartb->ns_varycolorsval ). + + "series + LOOP AT lo_chartb->series INTO ls_serie. + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_ser + parent = lo_element3 ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_idx + parent = lo_element4 ). + IF ls_serie-idx IS NOT INITIAL. + lv_str = ls_serie-idx. + ELSE. + lv_str = sy-tabix - 1. + ENDIF. + CONDENSE lv_str. + lo_element5->set_attribute_ns( name = 'val' + value = lv_str ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_order + parent = lo_element4 ). + lv_str = ls_serie-order. + CONDENSE lv_str. + lo_element5->set_attribute_ns( name = 'val' + value = lv_str ). + IF ls_serie-sername IS NOT INITIAL. + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_tx + parent = lo_element4 ). + lo_element6 = lo_document->create_simple_element( name = lc_xml_node_v + parent = lo_element5 ). + lo_element6->set_value( value = ls_serie-sername ). + ENDIF. + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_invertifnegative + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = ls_serie-invertifnegative ). + IF ls_serie-lbl IS NOT INITIAL. + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_cat + parent = lo_element4 ). + lo_element6 = lo_document->create_simple_element( name = lc_xml_node_strref + parent = lo_element5 ). + lo_element7 = lo_document->create_simple_element( name = lc_xml_node_f + parent = lo_element6 ). + lo_element7->set_value( value = ls_serie-lbl ). + ENDIF. + IF ls_serie-ref IS NOT INITIAL. + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_val + parent = lo_element4 ). + lo_element6 = lo_document->create_simple_element( name = lc_xml_node_numref + parent = lo_element5 ). + lo_element7 = lo_document->create_simple_element( name = lc_xml_node_f + parent = lo_element6 ). + lo_element7->set_value( value = ls_serie-ref ). + ENDIF. + ENDLOOP. + "endseries + + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_dlbls + parent = lo_element3 ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showlegendkey + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartb->ns_showlegendkeyval ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showval + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartb->ns_showvalval ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showcatname + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartb->ns_showcatnameval ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showsername + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartb->ns_showsernameval ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showpercent + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartb->ns_showpercentval ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showbubblesize + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartb->ns_showbubblesizeval ). + + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_gapwidth + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = lo_chartb->ns_gapwidthval ). + + "axes + lo_el_rootchart = lo_element3. + LOOP AT lo_chartb->axes INTO ls_ax. + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_axid + parent = lo_el_rootchart ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-axid ). + CASE ls_ax-type. + WHEN zcl_excel_graph_bars=>c_catax. + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_catax + parent = lo_element2 ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_axid + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-axid ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_scaling + parent = lo_element3 ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_orientation + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = ls_ax-orientation ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_delete + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-delete ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_axpos + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-axpos ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_numfmt + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'formatCode' + value = ls_ax-formatcode ). + lo_element4->set_attribute_ns( name = 'sourceLinked' + value = ls_ax-sourcelinked ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_majortickmark + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-majortickmark ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_minortickmark + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-minortickmark ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_ticklblpos + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-ticklblpos ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_crossax + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-crossax ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_crosses + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-crosses ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_auto + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-auto ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_lblalgn + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-lblalgn ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_lbloffset + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-lbloffset ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_nomultilvllbl + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-nomultilvllbl ). + WHEN zcl_excel_graph_bars=>c_valax. + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_valax + parent = lo_element2 ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_axid + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-axid ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_scaling + parent = lo_element3 ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_orientation + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = ls_ax-orientation ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_delete + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-delete ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_axpos + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-axpos ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_majorgridlines + parent = lo_element3 ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_numfmt + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'formatCode' + value = ls_ax-formatcode ). + lo_element4->set_attribute_ns( name = 'sourceLinked' + value = ls_ax-sourcelinked ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_majortickmark + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-majortickmark ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_minortickmark + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-minortickmark ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_ticklblpos + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-ticklblpos ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_crossax + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-crossax ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_crosses + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-crosses ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_crossbetween + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-crossbetween ). + WHEN OTHERS. + ENDCASE. + ENDLOOP. + "endaxes + + WHEN zcl_excel_drawing=>c_graph_pie. + "----pie + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_piechart + parent = lo_element2 ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_varycolors + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = lo_chartp->ns_varycolorsval ). + + "series + LOOP AT lo_chartp->series INTO ls_serie. + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_ser + parent = lo_element3 ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_idx + parent = lo_element4 ). + IF ls_serie-idx IS NOT INITIAL. + lv_str = ls_serie-idx. + ELSE. + lv_str = sy-tabix - 1. + ENDIF. + CONDENSE lv_str. + lo_element5->set_attribute_ns( name = 'val' + value = lv_str ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_order + parent = lo_element4 ). + lv_str = ls_serie-order. + CONDENSE lv_str. + lo_element5->set_attribute_ns( name = 'val' + value = lv_str ). + IF ls_serie-sername IS NOT INITIAL. + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_tx + parent = lo_element4 ). + lo_element6 = lo_document->create_simple_element( name = lc_xml_node_v + parent = lo_element5 ). + lo_element6->set_value( value = ls_serie-sername ). + ENDIF. + IF ls_serie-lbl IS NOT INITIAL. + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_cat + parent = lo_element4 ). + lo_element6 = lo_document->create_simple_element( name = lc_xml_node_strref + parent = lo_element5 ). + lo_element7 = lo_document->create_simple_element( name = lc_xml_node_f + parent = lo_element6 ). + lo_element7->set_value( value = ls_serie-lbl ). + ENDIF. + IF ls_serie-ref IS NOT INITIAL. + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_val + parent = lo_element4 ). + lo_element6 = lo_document->create_simple_element( name = lc_xml_node_numref + parent = lo_element5 ). + lo_element7 = lo_document->create_simple_element( name = lc_xml_node_f + parent = lo_element6 ). + lo_element7->set_value( value = ls_serie-ref ). + ENDIF. + ENDLOOP. + "endseries + + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_dlbls + parent = lo_element3 ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showlegendkey + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartp->ns_showlegendkeyval ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showval + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartp->ns_showvalval ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showcatname + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartp->ns_showcatnameval ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showsername + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartp->ns_showsernameval ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showpercent + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartp->ns_showpercentval ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showbubblesize + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartp->ns_showbubblesizeval ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showleaderlines + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartp->ns_showleaderlinesval ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_firstsliceang + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = lo_chartp->ns_firstsliceangval ). + WHEN zcl_excel_drawing=>c_graph_line. + "----line + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_linechart + parent = lo_element2 ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_grouping + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = lo_chartl->ns_groupingval ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_varycolors + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = lo_chartl->ns_varycolorsval ). + + "series + LOOP AT lo_chartl->series INTO ls_serie. + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_ser + parent = lo_element3 ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_idx + parent = lo_element4 ). + IF ls_serie-idx IS NOT INITIAL. + lv_str = ls_serie-idx. + ELSE. + lv_str = sy-tabix - 1. + ENDIF. + CONDENSE lv_str. + lo_element5->set_attribute_ns( name = 'val' + value = lv_str ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_order + parent = lo_element4 ). + lv_str = ls_serie-order. + CONDENSE lv_str. + lo_element5->set_attribute_ns( name = 'val' + value = lv_str ). + IF ls_serie-sername IS NOT INITIAL. + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_tx + parent = lo_element4 ). + lo_element6 = lo_document->create_simple_element( name = lc_xml_node_v + parent = lo_element5 ). + lo_element6->set_value( value = ls_serie-sername ). + ENDIF. + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_marker + parent = lo_element4 ). + lo_element6 = lo_document->create_simple_element( name = lc_xml_node_symbol + parent = lo_element5 ). + lo_element6->set_attribute_ns( name = 'val' + value = ls_serie-symbol ). + IF ls_serie-lbl IS NOT INITIAL. + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_cat + parent = lo_element4 ). + lo_element6 = lo_document->create_simple_element( name = lc_xml_node_strref + parent = lo_element5 ). + lo_element7 = lo_document->create_simple_element( name = lc_xml_node_f + parent = lo_element6 ). + lo_element7->set_value( value = ls_serie-lbl ). + ENDIF. + IF ls_serie-ref IS NOT INITIAL. + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_val + parent = lo_element4 ). + lo_element6 = lo_document->create_simple_element( name = lc_xml_node_numref + parent = lo_element5 ). + lo_element7 = lo_document->create_simple_element( name = lc_xml_node_f + parent = lo_element6 ). + lo_element7->set_value( value = ls_serie-ref ). + ENDIF. + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_smooth + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = ls_serie-smooth ). + ENDLOOP. + "endseries + + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_dlbls + parent = lo_element3 ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showlegendkey + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartl->ns_showlegendkeyval ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showval + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartl->ns_showvalval ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showcatname + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartl->ns_showcatnameval ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showsername + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartl->ns_showsernameval ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showpercent + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartl->ns_showpercentval ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_showbubblesize + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = lo_chartl->ns_showbubblesizeval ). + + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_marker + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = lo_chartl->NS_MARKERVAL ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_smooth + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = lo_chartl->NS_SMOOTHVAL ). + + "axes + lo_el_rootchart = lo_element3. + LOOP AT lo_chartl->axes INTO ls_ax. + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_axid + parent = lo_el_rootchart ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-axid ). + CASE ls_ax-type. + WHEN zcl_excel_graph_line=>c_catax. + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_catax + parent = lo_element2 ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_axid + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-axid ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_scaling + parent = lo_element3 ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_orientation + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = ls_ax-orientation ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_delete + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-delete ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_axpos + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-axpos ). +* lo_element4 = lo_document->create_simple_element( name = lc_xml_node_numfmt +* parent = lo_element3 ). +* lo_element4->set_attribute_ns( name = 'formatCode' +* value = ls_ax-formatcode ). +* lo_element4->set_attribute_ns( name = 'sourceLinked' +* value = ls_ax-sourcelinked ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_majortickmark + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-majortickmark ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_minortickmark + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-minortickmark ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_ticklblpos + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-ticklblpos ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_crossax + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-crossax ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_crosses + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-crosses ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_auto + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-auto ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_lblalgn + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-lblalgn ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_lbloffset + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-lbloffset ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_nomultilvllbl + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-nomultilvllbl ). + WHEN zcl_excel_graph_line=>c_valax. + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_valax + parent = lo_element2 ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_axid + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-axid ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_scaling + parent = lo_element3 ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_orientation + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'val' + value = ls_ax-orientation ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_delete + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-delete ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_axpos + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-axpos ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_majorgridlines + parent = lo_element3 ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_numfmt + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'formatCode' + value = ls_ax-formatcode ). + lo_element4->set_attribute_ns( name = 'sourceLinked' + value = ls_ax-sourcelinked ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_majortickmark + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-majortickmark ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_minortickmark + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-minortickmark ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_ticklblpos + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-ticklblpos ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_crossax + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-crossax ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_crosses + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-crosses ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_crossbetween + parent = lo_element3 ). + lo_element4->set_attribute_ns( name = 'val' + value = ls_ax-crossbetween ). + WHEN OTHERS. + ENDCASE. + ENDLOOP. + "endaxes + + WHEN OTHERS. + ENDCASE. + + "legend + IF lo_chart->print_label EQ abap_true. + lo_element2 = lo_document->create_simple_element( name = lc_xml_node_legend + parent = lo_element ). + CASE io_drawing->graph_type. + WHEN zcl_excel_drawing=>c_graph_bars. + "----bar + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_legendpos + parent = lo_element2 ). + lo_element3->set_attribute_ns( name = 'val' + value = lo_chartb->ns_legendposval ). + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_layout + parent = lo_element2 ). + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_overlay + parent = lo_element2 ). + lo_element3->set_attribute_ns( name = 'val' + value = lo_chartb->ns_overlayval ). + WHEN zcl_excel_drawing=>c_graph_line. + "----line + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_legendpos + parent = lo_element2 ). + lo_element3->set_attribute_ns( name = 'val' + value = lo_chartl->ns_legendposval ). + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_layout + parent = lo_element2 ). + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_overlay + parent = lo_element2 ). + lo_element3->set_attribute_ns( name = 'val' + value = lo_chartl->ns_overlayval ). + WHEN zcl_excel_drawing=>c_graph_pie. + "----pie + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_legendpos + parent = lo_element2 ). + lo_element3->set_attribute_ns( name = 'val' + value = lo_chartp->ns_legendposval ). + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_layout + parent = lo_element2 ). + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_overlay + parent = lo_element2 ). + lo_element3->set_attribute_ns( name = 'val' + value = lo_chartp->ns_overlayval ). + lo_element3 = lo_document->create_simple_element( name = lc_xml_node_txpr + parent = lo_element2 ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_bodypr + parent = lo_element3 ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_lststyle + parent = lo_element3 ). + lo_element4 = lo_document->create_simple_element( name = lc_xml_node_p + parent = lo_element3 ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_ppr + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'rtl' + value = lo_chartp->ns_pprrtl ). + lo_element6 = lo_document->create_simple_element( name = lc_xml_node_defrpr + parent = lo_element5 ). + lo_element5 = lo_document->create_simple_element( name = lc_xml_node_endpararpr + parent = lo_element4 ). + lo_element5->set_attribute_ns( name = 'lang' + value = lo_chartp->ns_endpararprlang ). + WHEN OTHERS. + ENDCASE. + ENDIF. + + lo_element2 = lo_document->create_simple_element( name = lc_xml_node_plotvisonly + parent = lo_element ). + lo_element2->set_attribute_ns( name = 'val' + value = lo_chart->ns_plotvisonlyval ). + lo_element2 = lo_document->create_simple_element( name = lc_xml_node_dispblanksas + parent = lo_element ). + lo_element2->set_attribute_ns( name = 'val' + value = lo_chart->ns_dispblanksasval ). + lo_element2 = lo_document->create_simple_element( name = lc_xml_node_showdlblsovermax + parent = lo_element ). + lo_element2->set_attribute_ns( name = 'val' + value = lo_chart->ns_showdlblsovermaxval ). + "---------------------------END OF CHART + + "printSettings + lo_element = lo_document->create_simple_element( name = lc_xml_node_printsettings + parent = lo_element_root ). + "headerFooter + lo_element2 = lo_document->create_simple_element( name = lc_xml_node_headerfooter + parent = lo_element ). + "pageMargins + lo_element2 = lo_document->create_simple_element( name = lc_xml_node_pagemargins + parent = lo_element ). + lo_element2->set_attribute_ns( name = 'b' + value = lo_chart->pagemargins-b ). + lo_element2->set_attribute_ns( name = 'l' + value = lo_chart->pagemargins-l ). + lo_element2->set_attribute_ns( name = 'r' + value = lo_chart->pagemargins-r ). + lo_element2->set_attribute_ns( name = 't' + value = lo_chart->pagemargins-t ). + lo_element2->set_attribute_ns( name = 'header' + value = lo_chart->pagemargins-header ). + lo_element2->set_attribute_ns( name = 'footer' + value = lo_chart->pagemargins-footer ). + "pageSetup + lo_element2 = lo_document->create_simple_element( name = lc_xml_node_pagesetup + parent = lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + + method CREATE_XL_DRAWINGS. + + +** Constant node name + CONSTANTS: lc_xml_node_wsdr TYPE string VALUE 'xdr:wsDr', + lc_xml_node_ns_xdr TYPE string VALUE 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing', + lc_xml_node_ns_a TYPE string VALUE 'http://schemas.openxmlformats.org/drawingml/2006/main'. + + CONSTANTS: lc_on TYPE string VALUE '1', + lc_off TYPE string VALUE '0'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element_cellanchor TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_drawings TYPE REF TO zcl_excel_drawings, + lo_drawing TYPE REF TO zcl_excel_drawing. + DATA: lv_rel_id TYPE i. + + + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +*********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_wsdr + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns:xdr' + value = lc_xml_node_ns_xdr ). + lo_element_root->set_attribute_ns( name = 'xmlns:a' + value = lc_xml_node_ns_a ). + +********************************************************************** +* STEP 4: Create drawings + + CLEAR: lv_rel_id. + + lo_drawings = io_worksheet->get_drawings( ). + + lo_iterator = lo_drawings->get_iterator( ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_drawing ?= lo_iterator->if_object_collection_iterator~get_next( ). + + ADD 1 TO lv_rel_id. + lo_element_cellanchor = me->create_xl_drawing_anchor( + io_drawing = lo_drawing + io_document = lo_document + ip_index = lv_rel_id ). + + lo_element_root->append_child( new_child = lo_element_cellanchor ). + + ENDWHILE. + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + + method CREATE_XL_DRAWINGS_RELS. + +** Constant node name + DATA: lc_xml_node_relationships TYPE string VALUE 'Relationships', + lc_xml_node_relationship TYPE string VALUE 'Relationship', + " Node attributes + lc_xml_attr_id TYPE string VALUE 'Id', + lc_xml_attr_type TYPE string VALUE 'Type', + lc_xml_attr_target TYPE string VALUE 'Target', + " Node namespace + lc_xml_node_rels_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships', + lc_xml_node_rid_image_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image', + lc_xml_node_rid_chart_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_drawings TYPE REF TO zcl_excel_drawings, + lo_drawing TYPE REF TO zcl_excel_drawing. + + DATA: lv_value TYPE string, + lv_counter TYPE i. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_relationships + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_rels_ns ). + +********************************************************************** +* STEP 4: Create subnodes + + " Add sheet Relationship nodes here + lv_counter = 0. + lo_drawings = io_worksheet->get_drawings( ). + lo_iterator = lo_drawings->get_iterator( ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_drawing ?= lo_iterator->if_object_collection_iterator~get_next( ). + ADD 1 TO lv_counter. + + lv_value = lv_counter. + CONDENSE lv_value. + CONCATENATE 'rId' lv_value INTO lv_value. + + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_value ). + + lv_value = lo_drawing->get_media_name( ). + CASE lo_drawing->get_type( ). + WHEN zcl_excel_drawing=>type_image. + CONCATENATE '../media/' lv_value INTO lv_value. + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_image_tp ). + + WHEN zcl_excel_drawing=>type_chart. + CONCATENATE '../charts/' lv_value INTO lv_value. + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_chart_tp ). + + ENDCASE. + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + ENDWHILE. + + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + + + + method CREATE_XL_DRAWING_ANCHOR. + +** Constant node name + CONSTANTS: lc_xml_node_onecellanchor TYPE string VALUE 'xdr:oneCellAnchor', + lc_xml_node_twocellanchor TYPE string VALUE 'xdr:twoCellAnchor', + lc_xml_node_from TYPE string VALUE 'xdr:from', + lc_xml_node_to TYPE string VALUE 'xdr:to', + lc_xml_node_pic TYPE string VALUE 'xdr:pic', + lc_xml_node_ext TYPE string VALUE 'xdr:ext', + lc_xml_node_clientdata TYPE string VALUE 'xdr:clientData', + + lc_xml_node_col TYPE string VALUE 'xdr:col', + lc_xml_node_coloff TYPE string VALUE 'xdr:colOff', + lc_xml_node_row TYPE string VALUE 'xdr:row', + lc_xml_node_rowoff TYPE string VALUE 'xdr:rowOff', + + lc_xml_node_nvpicpr TYPE string VALUE 'xdr:nvPicPr', + lc_xml_node_cnvpr TYPE string VALUE 'xdr:cNvPr', + lc_xml_node_cnvpicpr TYPE string VALUE 'xdr:cNvPicPr', + lc_xml_node_piclocks TYPE string VALUE 'a:picLocks', + + lc_xml_node_sppr TYPE string VALUE 'xdr:spPr', + lc_xml_node_apgeom TYPE string VALUE 'a:prstGeom', + lc_xml_node_aavlst TYPE string VALUE 'a:avLst', + + lc_xml_node_graphicframe TYPE string VALUE 'xdr:graphicFrame', + lc_xml_node_nvgraphicframepr TYPE string VALUE 'xdr:nvGraphicFramePr', + lc_xml_node_cnvgraphicframepr TYPE string VALUE 'xdr:cNvGraphicFramePr', + lc_xml_node_graphicframelocks TYPE string VALUE 'a:graphicFrameLocks', + lc_xml_node_xfrm TYPE string VALUE 'xdr:xfrm', + lc_xml_node_aoff TYPE string VALUE 'a:off', + lc_xml_node_aext TYPE string VALUE 'a:ext', + lc_xml_node_agraphic TYPE string VALUE 'a:graphic', + lc_xml_node_agraphicdata TYPE string VALUE 'a:graphicData', + + lc_xml_node_ns_c TYPE string VALUE 'http://schemas.openxmlformats.org/drawingml/2006/chart', + lc_xml_node_cchart TYPE string VALUE 'c:chart', + + lc_xml_node_blipfill TYPE string VALUE 'xdr:blipFill', + lc_xml_node_ablip TYPE string VALUE 'a:blip', + lc_xml_node_astretch TYPE string VALUE 'a:stretch', + lc_xml_node_ns_r TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'. + + + CONSTANTS: lc_on TYPE string VALUE '1', + lc_off TYPE string VALUE '0'. + + DATA: lo_element_graphicframe TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_element2 TYPE REF TO if_ixml_element, + lo_element3 TYPE REF TO if_ixml_element, + lo_element_from TYPE REF TO if_ixml_element, + lo_element_to TYPE REF TO if_ixml_element, + lo_element_ext TYPE REF TO if_ixml_element, + lo_element_pic TYPE REF TO if_ixml_element, + lo_element_clientdata TYPE REF TO if_ixml_element, + + ls_position TYPE zexcel_drawing_position, + + lv_col TYPE string, " zexcel_cell_column, + lv_row TYPE string, " zexcel_cell_row. + lv_col_offset TYPE string, + lv_row_offset TYPE string, + lv_value TYPE string. + + ls_position = io_drawing->get_position( ). + + IF ls_position-anchor = 'ONE'. + ep_anchor = io_document->create_simple_element( name = lc_xml_node_onecellanchor + parent = io_document ). + ELSE. + ep_anchor = io_document->create_simple_element( name = lc_xml_node_twocellanchor + parent = io_document ). + ENDIF. + +* from cell ****************************** + lo_element_from = io_document->create_simple_element( name = lc_xml_node_from + parent = io_document ). + + lv_col = ls_position-from-col. + lv_row = ls_position-from-row. + lv_col_offset = ls_position-from-col_offset. + lv_row_offset = ls_position-from-row_offset. + CONDENSE lv_col NO-GAPS. + CONDENSE lv_row NO-GAPS. + CONDENSE lv_col_offset NO-GAPS. + CONDENSE lv_row_offset NO-GAPS. + + lo_element = io_document->create_simple_element( name = lc_xml_node_col + parent = io_document ). + lo_element->set_value( value = lv_col ). + lo_element_from->append_child( new_child = lo_element ). + + lo_element = io_document->create_simple_element( name = lc_xml_node_coloff + parent = io_document ). + lo_element->set_value( value = lv_col_offset ). + lo_element_from->append_child( new_child = lo_element ). + + lo_element = io_document->create_simple_element( name = lc_xml_node_row + parent = io_document ). + lo_element->set_value( value = lv_row ). + lo_element_from->append_child( new_child = lo_element ). + + lo_element = io_document->create_simple_element( name = lc_xml_node_rowoff + parent = io_document ). + lo_element->set_value( value = lv_row_offset ). + lo_element_from->append_child( new_child = lo_element ). + ep_anchor->append_child( new_child = lo_element_from ). + + IF ls_position-anchor = 'ONE'. + +* ext ****************************** + lo_element_ext = io_document->create_simple_element( name = lc_xml_node_ext + parent = io_document ). + + lv_value = io_drawing->get_width_emu_str( ). + lo_element_ext->set_attribute_ns( name = 'cx' + value = lv_value ). + lv_value = io_drawing->get_height_emu_str( ). + lo_element_ext->set_attribute_ns( name = 'cy' + value = lv_value ). + ep_anchor->append_child( new_child = lo_element_ext ). + + ELSEIF ls_position-anchor = 'TWO'. + +* to cell ****************************** + lo_element_to = io_document->create_simple_element( name = lc_xml_node_to + parent = io_document ). + + lv_col = ls_position-to-col. + lv_row = ls_position-to-row. + lv_col_offset = ls_position-to-col_offset. + lv_row_offset = ls_position-to-row_offset. + CONDENSE lv_col NO-GAPS. + CONDENSE lv_row NO-GAPS. + CONDENSE lv_col_offset NO-GAPS. + CONDENSE lv_row_offset NO-GAPS. + + lo_element = io_document->create_simple_element( name = lc_xml_node_col + parent = io_document ). + lo_element->set_value( value = lv_col ). + lo_element_to->append_child( new_child = lo_element ). + + lo_element = io_document->create_simple_element( name = lc_xml_node_coloff + parent = io_document ). + lo_element->set_value( value = lv_col_offset ). + lo_element_to->append_child( new_child = lo_element ). + + lo_element = io_document->create_simple_element( name = lc_xml_node_row + parent = io_document ). + lo_element->set_value( value = lv_row ). + lo_element_to->append_child( new_child = lo_element ). + + lo_element = io_document->create_simple_element( name = lc_xml_node_rowoff + parent = io_document ). + lo_element->set_value( value = lv_row_offset ). + lo_element_to->append_child( new_child = lo_element ). + ep_anchor->append_child( new_child = lo_element_to ). + + ENDIF. + + CASE io_drawing->get_type( ). + WHEN zcl_excel_drawing=>type_image. +* pic ********************************** + lo_element_pic = io_document->create_simple_element( name = lc_xml_node_pic + parent = io_document ). +* nvPicPr + lo_element = io_document->create_simple_element( name = lc_xml_node_nvpicpr + parent = io_document ). +* cNvPr + lo_element2 = io_document->create_simple_element( name = lc_xml_node_cnvpr + parent = io_document ). + lv_value = sy-index. + CONDENSE lv_value. + lo_element2->set_attribute_ns( name = 'id' + value = lv_value ). + lo_element2->set_attribute_ns( name = 'name' + value = io_drawing->title ). + lo_element->append_child( new_child = lo_element2 ). + +* cNvPicPr + lo_element2 = io_document->create_simple_element( name = lc_xml_node_cnvpicpr + parent = io_document ). + +* picLocks + lo_element3 = io_document->create_simple_element( name = lc_xml_node_piclocks + parent = io_document ). + lo_element3->set_attribute_ns( name = 'noChangeAspect' + value = '1' ). + + lo_element2->append_child( new_child = lo_element3 ). + lo_element->append_child( new_child = lo_element2 ). + lo_element_pic->append_child( new_child = lo_element ). + +* blipFill + lv_value = ip_index. + CONDENSE lv_value. + CONCATENATE 'rId' lv_value INTO lv_value. + + lo_element = io_document->create_simple_element( name = lc_xml_node_blipfill + parent = io_document ). + lo_element2 = io_document->create_simple_element( name = lc_xml_node_ablip + parent = io_document ). + lo_element2->set_attribute_ns( name = 'xmlns:r' + value = lc_xml_node_ns_r ). + lo_element2->set_attribute_ns( name = 'r:embed' + value = lv_value ). + lo_element->append_child( new_child = lo_element2 ). + + lo_element2 = io_document->create_simple_element( name = lc_xml_node_astretch + parent = io_document ). + lo_element->append_child( new_child = lo_element2 ). + + lo_element_pic->append_child( new_child = lo_element ). + +* spPr + lo_element = io_document->create_simple_element( name = lc_xml_node_sppr + parent = io_document ). + + lo_element2 = io_document->create_simple_element( name = lc_xml_node_apgeom + parent = io_document ). + lo_element2->set_attribute_ns( name = 'prst' + value = 'rect' ). + lo_element3 = io_document->create_simple_element( name = lc_xml_node_aavlst + parent = io_document ). + lo_element2->append_child( new_child = lo_element3 ). + lo_element->append_child( new_child = lo_element2 ). + + lo_element_pic->append_child( new_child = lo_element ). + ep_anchor->append_child( new_child = lo_element_pic ). + WHEN zcl_excel_drawing=>type_chart. +* graphicFrame ********************************** + lo_element_graphicframe = io_document->create_simple_element( name = lc_xml_node_graphicframe + parent = io_document ). +* nvGraphicFramePr + lo_element = io_document->create_simple_element( name = lc_xml_node_nvgraphicframepr + parent = io_document ). +* cNvPr + lo_element2 = io_document->create_simple_element( name = lc_xml_node_cnvpr + parent = io_document ). + lv_value = sy-index. + CONDENSE lv_value. + lo_element2->set_attribute_ns( name = 'id' + value = lv_value ). + lo_element2->set_attribute_ns( name = 'name' + value = io_drawing->title ). + lo_element->append_child( new_child = lo_element2 ). +* cNvGraphicFramePr + lo_element2 = io_document->create_simple_element( name = lc_xml_node_cnvgraphicframepr + parent = io_document ). + lo_element3 = io_document->create_simple_element( name = lc_xml_node_graphicframelocks + parent = io_document ). + lo_element2->append_child( new_child = lo_element3 ). + lo_element->append_child( new_child = lo_element2 ). + lo_element_graphicframe->append_child( new_child = lo_element ). + +* xfrm + lo_element = io_document->create_simple_element( name = lc_xml_node_xfrm + parent = io_document ). +* off + lo_element2 = io_document->create_simple_element( name = lc_xml_node_aoff + parent = io_document ). + lo_element2->set_attribute_ns( name = 'y' value = '0' ). + lo_element2->set_attribute_ns( name = 'x' value = '0' ). + lo_element->append_child( new_child = lo_element2 ). +* ext + lo_element2 = io_document->create_simple_element( name = lc_xml_node_aext + parent = io_document ). + lo_element2->set_attribute_ns( name = 'cy' value = '0' ). + lo_element2->set_attribute_ns( name = 'cx' value = '0' ). + lo_element->append_child( new_child = lo_element2 ). + lo_element_graphicframe->append_child( new_child = lo_element ). + +* graphic + lo_element = io_document->create_simple_element( name = lc_xml_node_agraphic + parent = io_document ). +* graphicData + lo_element2 = io_document->create_simple_element( name = lc_xml_node_agraphicdata + parent = io_document ). + lo_element2->set_attribute_ns( name = 'uri' value = lc_xml_node_ns_c ). + +* chart + lo_element3 = io_document->create_simple_element( name = lc_xml_node_cchart + parent = io_document ). + + lo_element3->set_attribute_ns( name = 'xmlns:r' + value = lc_xml_node_ns_r ). + lo_element3->set_attribute_ns( name = 'xmlns:c' + value = lc_xml_node_ns_c ). + + lv_value = ip_index. + CONDENSE lv_value. + CONCATENATE 'rId' lv_value INTO lv_value. + lo_element3->set_attribute_ns( name = 'r:id' + value = lv_value ). + lo_element2->append_child( new_child = lo_element3 ). + lo_element->append_child( new_child = lo_element2 ). + lo_element_graphicframe->append_child( new_child = lo_element ). + ep_anchor->append_child( new_child = lo_element_graphicframe ). + + ENDCASE. + +* client data *************************** + lo_element_clientdata = io_document->create_simple_element( name = lc_xml_node_clientdata + parent = io_document ). + ep_anchor->append_child( new_child = lo_element_clientdata ). + +endmethod. + + + + method CREATE_XL_RELATIONSHIPS. + + +** Constant node name + DATA: lc_xml_node_relationships TYPE string VALUE 'Relationships', + lc_xml_node_relationship TYPE string VALUE 'Relationship', + " Node attributes + lc_xml_attr_id TYPE string VALUE 'Id', + lc_xml_attr_type TYPE string VALUE 'Type', + lc_xml_attr_target TYPE string VALUE 'Target', + " Node namespace + lc_xml_node_rels_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships', + " Node id + lc_xml_node_ridx_id TYPE string VALUE 'rId#', + " Node type + lc_xml_node_rid_sheet_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet', + lc_xml_node_rid_theme_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme', + lc_xml_node_rid_styles_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles', + lc_xml_node_rid_shared_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings', + " Node target + lc_xml_node_ridx_tg TYPE string VALUE 'worksheets/sheet#.xml', + lc_xml_node_rid_shared_tg TYPE string VALUE 'sharedStrings.xml', + lc_xml_node_rid_styles_tg TYPE string VALUE 'styles.xml', + lc_xml_node_rid_theme_tg TYPE string VALUE 'theme/theme1.xml'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + + DATA: lv_xml_node_ridx_tg TYPE string, + lv_xml_node_ridx_id TYPE string, + lv_size TYPE i, + lv_syindex(3) TYPE c. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_relationships + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_rels_ns ). + +********************************************************************** +* STEP 4: Create subnodes + + lv_size = excel->get_worksheets_size( ). + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lv_size = lv_size + 2. + lv_syindex = lv_size. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_styles_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_styles_tg ). + lo_element_root->append_child( new_child = lo_element ). + + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lv_size = lv_size - 1. + lv_syindex = lv_size. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_theme_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_theme_tg ). + lo_element_root->append_child( new_child = lo_element ). + + lv_size = excel->get_worksheets_size( ). + + DO lv_size TIMES. + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + lv_xml_node_ridx_tg = lc_xml_node_ridx_tg. + lv_syindex = sy-index. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_tg WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_sheet_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lv_xml_node_ridx_tg ). + lo_element_root->append_child( new_child = lo_element ). + ENDDO. + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + ADD 3 TO lv_size. + lv_syindex = lv_size. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_shared_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_shared_tg ). + lo_element_root->append_child( new_child = lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + method CREATE_XL_SHAREDSTRINGS. + + +** Constant node name + DATA: lc_xml_node_sst TYPE string VALUE 'sst', + lc_xml_node_si TYPE string VALUE 'si', + lc_xml_node_t TYPE string VALUE 't', + " Node attributes + lc_xml_attr_count TYPE string VALUE 'count', + lc_xml_attr_uniquecount TYPE string VALUE 'uniqueCount', + " Node namespace + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_sub_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + + DATA: lt_cell_data TYPE zexcel_t_cell_data_unsorted, + ls_shared_string TYPE zexcel_s_shared_string, + lv_value TYPE string, + lv_count_str TYPE string, + lv_uniquecount_str TYPE string, + lv_sytabix TYPE sytabix, + lv_count TYPE i, + lv_uniquecount TYPE i. + + FIELD-SYMBOLS: <fs_sheet_content> TYPE zexcel_s_cell_data, + <fs_sheet_string> TYPE zexcel_s_shared_string. + +********************************************************************** +* STEP 1: Collect strings from each worksheet + lo_iterator = excel->get_worksheets_iterator( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + APPEND LINES OF lo_worksheet->sheet_content TO lt_cell_data. + ENDWHILE. + + DELETE lt_cell_data WHERE cell_formula IS NOT INITIAL. " delete formula content + + DESCRIBE TABLE lt_cell_data LINES lv_count. + MOVE lv_count TO lv_count_str. + + SHIFT lv_count_str RIGHT DELETING TRAILING space. + SHIFT lv_count_str LEFT DELETING LEADING space. + + SORT lt_cell_data BY cell_value. + DELETE ADJACENT DUPLICATES FROM lt_cell_data COMPARING cell_value. + + DESCRIBE TABLE lt_cell_data LINES lv_uniquecount. + MOVE lv_uniquecount TO lv_uniquecount_str. + + SHIFT lv_uniquecount_str RIGHT DELETING TRAILING space. + SHIFT lv_uniquecount_str LEFT DELETING LEADING space. + + LOOP AT lt_cell_data ASSIGNING <fs_sheet_content>. + lv_sytabix = sy-tabix - 1. + MOVE lv_sytabix TO ls_shared_string-string_no. + MOVE <fs_sheet_content>-cell_value TO ls_shared_string-string_value. + APPEND ls_shared_string TO shared_strings. + ENDLOOP. + + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_sst + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + lo_element_root->set_attribute_ns( name = lc_xml_attr_count + value = lv_count_str ). + lo_element_root->set_attribute_ns( name = lc_xml_attr_uniquecount + value = lv_uniquecount_str ). + +********************************************************************** +* STEP 4: Create subnode + LOOP AT shared_strings ASSIGNING <fs_sheet_string>. + lo_element = lo_document->create_simple_element( name = lc_xml_node_si + parent = lo_document ). + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_t + parent = lo_document ). + lo_sub_element->set_value( value = <fs_sheet_string>-string_value ). + lo_element->append_child( new_child = lo_sub_element ). + lo_element_root->append_child( new_child = lo_element ). + ENDLOOP. + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + + + + METHOD create_xl_sheet. +*--------------------------------------------------------------------* +* issue #237 - Error writing column-style +* - Stefan Schmöcker, 2012-11-01 +*--------------------------------------------------------------------* + + TYPES: BEGIN OF cfvo, + value TYPE zexcel_conditional_value, + type TYPE zexcel_conditional_type, + END OF cfvo. + +*--------------------------------------------------------------------* +* issue #220 - If cell in tables-area don't use default from row or column or sheet - Declarations 1 - start +*--------------------------------------------------------------------* + TYPES: BEGIN OF lty_table_area, + left TYPE i, + right TYPE i, + top TYPE i, + bottom TYPE i, + END OF lty_table_area. +*--------------------------------------------------------------------* +* issue #220 - If cell in tables-area don't use default from row or column or sheet - Declarations 1 - end +*--------------------------------------------------------------------* + + +** Constant node name + DATA: lc_xml_node_worksheet TYPE string VALUE 'worksheet', + lc_xml_node_sheetpr TYPE string VALUE 'sheetPr', + lc_xml_node_tabcolor TYPE string VALUE 'tabColor', + lc_xml_node_outlinepr TYPE string VALUE 'outlinePr', + lc_xml_node_dimension TYPE string VALUE 'dimension', + lc_xml_node_sheetviews TYPE string VALUE 'sheetViews', + lc_xml_node_sheetview TYPE string VALUE 'sheetView', + lc_xml_node_selection TYPE string VALUE 'selection', + lc_xml_node_pane TYPE string VALUE 'pane', + lc_xml_node_sheetformatpr TYPE string VALUE 'sheetFormatPr', + lc_xml_node_cols TYPE string VALUE 'cols', + lc_xml_node_col TYPE string VALUE 'col', + lc_xml_node_sheetdata TYPE string VALUE 'sheetData', + lc_xml_node_row TYPE string VALUE 'row', + lc_xml_node_c TYPE string VALUE 'c', + lc_xml_node_v TYPE string VALUE 'v', + lc_xml_node_f TYPE string VALUE 'f', + lc_xml_node_sheetprotection TYPE string VALUE 'sheetProtection', + lc_xml_node_pagemargins TYPE string VALUE 'pageMargins', + lc_xml_node_pagesetup TYPE string VALUE 'pageSetup', + lc_xml_node_pagesetuppr TYPE string VALUE 'pageSetUpPr', + lc_xml_node_condformatting TYPE string VALUE 'conditionalFormatting', + lc_xml_node_cfrule TYPE string VALUE 'cfRule', + lc_xml_node_color TYPE string VALUE 'color', " Databar by Albert Lladanosa + lc_xml_node_databar TYPE string VALUE 'dataBar', " Databar by Albert Lladanosa + lc_xml_node_iconset TYPE string VALUE 'iconSet', + lc_xml_node_cfvo TYPE string VALUE 'cfvo', + lc_xml_node_formula TYPE string VALUE 'formula', + lc_xml_node_datavalidations TYPE string VALUE 'dataValidations', + lc_xml_node_datavalidation TYPE string VALUE 'dataValidation', + lc_xml_node_formula1 TYPE string VALUE 'formula1', + lc_xml_node_formula2 TYPE string VALUE 'formula2', + lc_xml_node_mergecell TYPE string VALUE 'mergeCell', + lc_xml_node_mergecells TYPE string VALUE 'mergeCells', + lc_xml_node_drawing TYPE string VALUE 'drawing', + lc_xml_node_headerfooter TYPE string VALUE 'headerFooter', + lc_xml_node_oddheader TYPE string VALUE 'oddHeader', + lc_xml_node_oddfooter TYPE string VALUE 'oddFooter', + lc_xml_node_evenheader TYPE string VALUE 'evenHeader', + lc_xml_node_evenfooter TYPE string VALUE 'evenFooter', + lc_xml_node_autofilter TYPE string VALUE 'autoFilter', + lc_xml_node_filtercolumn TYPE string VALUE 'filterColumn', + lc_xml_node_filters TYPE string VALUE 'filters', + lc_xml_node_filter TYPE string VALUE 'filter', + " Node attributes + lc_xml_attr_ref TYPE string VALUE 'ref', + lc_xml_attr_summarybelow TYPE string VALUE 'summaryBelow', + lc_xml_attr_summaryright TYPE string VALUE 'summaryRight', + lc_xml_attr_tabselected TYPE string VALUE 'tabSelected', + lc_xml_attr_showzeros TYPE string VALUE 'showZeros', + lc_xml_attr_zoomscale TYPE string VALUE 'zoomScale', + lc_xml_attr_zoomscalenormal TYPE string VALUE 'zoomScaleNormal', + lc_xml_attr_zoomscalepageview TYPE string VALUE 'zoomScalePageLayoutView', + lc_xml_attr_zoomscalesheetview TYPE string VALUE 'zoomScaleSheetLayoutView', + lc_xml_attr_workbookviewid TYPE string VALUE 'workbookViewId', + lc_xml_attr_showgridlines TYPE string VALUE 'showGridLines', + lc_xml_attr_gridlines TYPE string VALUE 'gridLines', + lc_xml_attr_showrowcolheaders TYPE string VALUE 'showRowColHeaders', + lc_xml_attr_activecell TYPE string VALUE 'activeCell', + lc_xml_attr_sqref TYPE string VALUE 'sqref', + lc_xml_attr_min TYPE string VALUE 'min', + lc_xml_attr_max TYPE string VALUE 'max', + lc_xml_attr_hidden TYPE string VALUE 'hidden', + lc_xml_attr_width TYPE string VALUE 'width', + lc_xml_attr_defaultwidth TYPE string VALUE '9.10', + lc_xml_attr_style TYPE string VALUE 'style', + lc_xml_attr_true TYPE string VALUE 'true', + lc_xml_attr_bestfit TYPE string VALUE 'bestFit', + lc_xml_attr_customheight TYPE string VALUE 'customHeight', + lc_xml_attr_customwidth TYPE string VALUE 'customWidth', + lc_xml_attr_collapsed TYPE string VALUE 'collapsed', + lc_xml_attr_defaultrowheight TYPE string VALUE 'defaultRowHeight', + lc_xml_attr_defaultcolwidth TYPE string VALUE 'defaultColWidth', + lc_xml_attr_outlinelevelrow TYPE string VALUE 'x14ac:outlineLevelRow', + lc_xml_attr_outlinelevelcol TYPE string VALUE 'x14ac:outlineLevelCol', + lc_xml_attr_outlinelevel TYPE string VALUE 'outlineLevel', + lc_xml_attr_r TYPE string VALUE 'r', + lc_xml_attr_s TYPE string VALUE 's', + lc_xml_attr_spans TYPE string VALUE 'spans', + lc_xml_attr_t TYPE string VALUE 't', + lc_xml_attr_password TYPE string VALUE 'password', + lc_xml_attr_sheet TYPE string VALUE 'sheet', + lc_xml_attr_objects TYPE string VALUE 'objects', + lc_xml_attr_scenarios TYPE string VALUE 'scenarios', + lc_xml_attr_autofilter TYPE string VALUE 'autoFilter', + lc_xml_attr_deletecolumns TYPE string VALUE 'deleteColumns', + lc_xml_attr_deleterows TYPE string VALUE 'deleteRows', + lc_xml_attr_formatcells TYPE string VALUE 'formatCells', + lc_xml_attr_formatcolumns TYPE string VALUE 'formatColumns', + lc_xml_attr_formatrows TYPE string VALUE 'formatRows', + lc_xml_attr_insertcolumns TYPE string VALUE 'insertColumns', + lc_xml_attr_inserthyperlinks TYPE string VALUE 'insertHyperlinks', + lc_xml_attr_insertrows TYPE string VALUE 'insertRows', + lc_xml_attr_pivottables TYPE string VALUE 'pivotTables', + lc_xml_attr_selectlockedcells TYPE string VALUE 'selectLockedCells', + lc_xml_attr_selectunlockedcell TYPE string VALUE 'selectUnlockedCells', + lc_xml_attr_sort TYPE string VALUE 'sort', + lc_xml_attr_left TYPE string VALUE 'left', + lc_xml_attr_right TYPE string VALUE 'right', + lc_xml_attr_top TYPE string VALUE 'top', + lc_xml_attr_bottom TYPE string VALUE 'bottom', + lc_xml_attr_header TYPE string VALUE 'header', + lc_xml_attr_footer TYPE string VALUE 'footer', + lc_xml_attr_type TYPE string VALUE 'type', + lc_xml_attr_iconset TYPE string VALUE 'iconSet', + lc_xml_attr_showvalue TYPE string VALUE 'showValue', + lc_xml_attr_val TYPE string VALUE 'val', + lc_xml_attr_dxfid TYPE string VALUE 'dxfId', + lc_xml_attr_priority TYPE string VALUE 'priority', + lc_xml_attr_operator TYPE string VALUE 'operator', + lc_xml_attr_allowblank TYPE string VALUE 'allowBlank', + lc_xml_attr_showinputmessage TYPE string VALUE 'showInputMessage', + lc_xml_attr_showerrormessage TYPE string VALUE 'showErrorMessage', + lc_xml_attr_errortitle TYPE string VALUE 'errorTitle', + lc_xml_attr_error TYPE string VALUE 'error', + lc_xml_attr_prompttitle TYPE string VALUE 'promptTitle', + lc_xml_attr_prompt TYPE string VALUE 'prompt', + lc_xml_attr_count TYPE string VALUE 'count', + lc_xml_attr_blackandwhite TYPE string VALUE 'blackAndWhite', + lc_xml_attr_cellcomments TYPE string VALUE 'cellComments', + lc_xml_attr_copies TYPE string VALUE 'copies', + lc_xml_attr_draft TYPE string VALUE 'draft', + lc_xml_attr_errors TYPE string VALUE 'errors', + lc_xml_attr_firstpagenumber TYPE string VALUE 'firstPageNumber', + lc_xml_attr_fittopage TYPE string VALUE 'fitToPage', + lc_xml_attr_fittoheight TYPE string VALUE 'fitToHeight', + lc_xml_attr_fittowidth TYPE string VALUE 'fitToWidth', + lc_xml_attr_horizontaldpi TYPE string VALUE 'horizontalDpi', + lc_xml_attr_orientation TYPE string VALUE 'orientation', + lc_xml_attr_pageorder TYPE string VALUE 'pageOrder', + lc_xml_attr_paperheight TYPE string VALUE 'paperHeight', + lc_xml_attr_papersize TYPE string VALUE 'paperSize', + lc_xml_attr_paperwidth TYPE string VALUE 'paperWidth', + lc_xml_attr_scale TYPE string VALUE 'scale', + lc_xml_attr_usefirstpagenumber TYPE string VALUE 'useFirstPageNumber', + lc_xml_attr_useprinterdefaults TYPE string VALUE 'usePrinterDefaults', + lc_xml_attr_verticaldpi TYPE string VALUE 'verticalDpi', + lc_xml_attr_differentoddeven TYPE string VALUE 'differentOddEven', + lc_xml_attr_colid TYPE string VALUE 'colId', + lc_xml_attr_filtermode TYPE string VALUE 'filterMode', + lc_xml_attr_tabcolor_rgb TYPE string VALUE 'rgb', + lc_xml_attr_tabcolor_theme TYPE string VALUE 'theme', + " Node namespace + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main', + lc_xml_node_r_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships', + lc_xml_node_comp_ns TYPE string VALUE 'http://schemas.openxmlformats.org/markup-compatibility/2006', + lc_xml_node_comp_pref TYPE string VALUE 'x14ac', + lc_xml_node_ig_ns TYPE string VALUE 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_element_2 TYPE REF TO if_ixml_element, + lo_element_3 TYPE REF TO if_ixml_element, + lo_element_4 TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_style_conditional TYPE REF TO zcl_excel_style_conditional, + lo_data_validation TYPE REF TO zcl_excel_data_validation, + lo_table TYPE REF TO zcl_excel_table, + row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, + default_col_dimension TYPE REF TO zcl_excel_worksheet_columndime, + default_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. + + DATA: lv_value TYPE string, + lt_range_merge TYPE string_table, + lv_merge TYPE string, + lv_column_p TYPE zexcel_cell_column_alpha, + lv_column TYPE zexcel_cell_column, + lv_cell_value TYPE zexcel_cell_value, + lv_style_guid TYPE zexcel_cell_style, + lv_flag TYPE c, + ls_databar TYPE zexcel_conditional_databar, " Databar by Albert Lladanosa + ls_iconset TYPE zexcel_conditional_iconset, + ls_cellis TYPE zexcel_conditional_cellis, + ls_expression TYPE zexcel_conditional_expression, + lt_cfvo TYPE TABLE OF cfvo, + ls_cfvo TYPE cfvo, + lv_cell_row_s TYPE string, + ls_last_row TYPE zexcel_s_cell_data, + ls_style_mapping TYPE zexcel_s_styles_mapping, + lv_freeze_cell_row TYPE zexcel_cell_row, + lv_freeze_cell_column TYPE zexcel_cell_column, + lv_freeze_cell_column_alpha TYPE zexcel_cell_column_alpha, + column_dimensions TYPE zexcel_t_worksheet_columndime, + row_dimensions TYPE zexcel_t_worksheet_rowdimensio, + ls_style_cond_mapping TYPE zexcel_s_styles_cond_mapping, + lv_relation_id TYPE i VALUE 0, + outline_level_row TYPE i VALUE 0, + outline_level_col TYPE i VALUE 0, + col_count TYPE int4, + merge_count TYPE int4, + write_current_row TYPE boolean, + lt_values TYPE zexcel_t_autofilter_values, + ls_values TYPE zexcel_s_autofilter_values, + lv_guid TYPE uuid, + lo_autofilters TYPE REF TO zcl_excel_autofilters, + lo_autofilter TYPE REF TO zcl_excel_autofilter, + l_autofilter_hidden TYPE flag, + ls_area TYPE zexcel_s_autofilter_area, + lv_ref TYPE string, + lv_style_index TYPE i. " issue #237 + + + FIELD-SYMBOLS: <ls_sheet_content> TYPE zexcel_s_cell_data, + <fs_range_merge> LIKE LINE OF lt_range_merge, + <column_dimension> TYPE zexcel_s_worksheet_columndime, + <row_dimension> TYPE zexcel_s_worksheet_rowdimensio. + +*--------------------------------------------------------------------* +* issue #220 - If cell in tables-area don't use default from row or column or sheet - Declarations 2 - start +*--------------------------------------------------------------------* + DATA: lt_table_areas TYPE SORTED TABLE OF lty_table_area WITH NON-UNIQUE KEY left right top bottom, + ls_table_area LIKE LINE OF lt_table_areas. +*--------------------------------------------------------------------* +* issue #220 - If cell in tables-area don't use default from row or column or sheet - Declarations 2 - end +*--------------------------------------------------------------------* + + + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +*********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_worksheet + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:r' + value = lc_xml_node_r_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:mc' + value = lc_xml_node_comp_ns ). + lo_element_root->set_attribute_ns( name = 'mc:Ignorable' + value = lc_xml_node_comp_pref ). + lo_element_root->set_attribute_ns( name = 'xmlns:x14ac' + value = lc_xml_node_ig_ns ). + + +********************************************************************** +* STEP 4: Create subnodes + " sheetPr + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetpr + parent = lo_document ). + " TODO tabColor + IF io_worksheet->tabcolor IS NOT INITIAL. + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_tabcolor + parent = lo_element ). +* Theme not supported yet - start with RGB + lv_value = io_worksheet->tabcolor-rgb. + lo_element_2->set_attribute_ns( name = lc_xml_attr_tabcolor_rgb + value = lv_value ). + ENDIF. + + " outlinePr + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_outlinepr + parent = lo_document ). + + lv_value = io_worksheet->zif_excel_sheet_properties~summarybelow. + CONDENSE lv_value. + lo_element_2->set_attribute_ns( name = lc_xml_attr_summarybelow + value = lv_value ). + + lv_value = io_worksheet->zif_excel_sheet_properties~summaryright. + CONDENSE lv_value. + lo_element_2->set_attribute_ns( name = lc_xml_attr_summaryright + value = lv_value ). + + lo_element->append_child( new_child = lo_element_2 ). + + IF io_worksheet->sheet_setup->fit_to_page IS NOT INITIAL. + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_pagesetuppr + parent = lo_document ). + lo_element_2->set_attribute_ns( name = lc_xml_attr_fittopage + value = `1` ). + lo_element->append_child( new_child = lo_element_2 ). " pageSetupPr node + ENDIF. + + lo_element_root->append_child( new_child = lo_element ). + + " dimension node + lo_element = lo_document->create_simple_element( name = lc_xml_node_dimension + parent = lo_document ). + lv_value = io_worksheet->get_dimension_range( ). + lo_element->set_attribute_ns( name = lc_xml_attr_ref + value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + + " sheetViews node + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetviews + parent = lo_document ). + " sheetView node + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_sheetview + parent = lo_document ). + IF io_worksheet->zif_excel_sheet_properties~show_zeros EQ abap_false. + lo_element_2->set_attribute_ns( name = lc_xml_attr_showzeros + value = '0' ). + ENDIF. + IF iv_active = abap_true + OR io_worksheet->zif_excel_sheet_properties~selected EQ abap_true. + lo_element_2->set_attribute_ns( name = lc_xml_attr_tabselected + value = '1' ). + ELSE. + lo_element_2->set_attribute_ns( name = lc_xml_attr_tabselected + value = '0' ). + ENDIF. + " Zoom scale + IF io_worksheet->zif_excel_sheet_properties~zoomscale GT 400. + io_worksheet->zif_excel_sheet_properties~zoomscale = 400. + ELSEIF io_worksheet->zif_excel_sheet_properties~zoomscale LT 10. + io_worksheet->zif_excel_sheet_properties~zoomscale = 10. + ENDIF. + lv_value = io_worksheet->zif_excel_sheet_properties~zoomscale. + CONDENSE lv_value. + lo_element_2->set_attribute_ns( name = lc_xml_attr_zoomscale + value = lv_value ). + IF io_worksheet->zif_excel_sheet_properties~zoomscale_normal NE 0. + IF io_worksheet->zif_excel_sheet_properties~zoomscale_normal GT 400. + io_worksheet->zif_excel_sheet_properties~zoomscale_normal = 400. + ELSEIF io_worksheet->zif_excel_sheet_properties~zoomscale_normal LT 10. + io_worksheet->zif_excel_sheet_properties~zoomscale_normal = 10. + ENDIF. + lv_value = io_worksheet->zif_excel_sheet_properties~zoomscale_normal. + CONDENSE lv_value. + lo_element_2->set_attribute_ns( name = lc_xml_attr_zoomscalenormal + value = lv_value ). + ENDIF. + IF io_worksheet->zif_excel_sheet_properties~zoomscale_pagelayoutview NE 0. + IF io_worksheet->zif_excel_sheet_properties~zoomscale_pagelayoutview GT 400. + io_worksheet->zif_excel_sheet_properties~zoomscale_pagelayoutview = 400. + ELSEIF io_worksheet->zif_excel_sheet_properties~zoomscale_pagelayoutview LT 10. + io_worksheet->zif_excel_sheet_properties~zoomscale_pagelayoutview = 10. + ENDIF. + lv_value = io_worksheet->zif_excel_sheet_properties~zoomscale_pagelayoutview. + CONDENSE lv_value. + lo_element_2->set_attribute_ns( name = lc_xml_attr_zoomscalepageview + value = lv_value ). + ENDIF. + IF io_worksheet->zif_excel_sheet_properties~zoomscale_sheetlayoutview NE 0. + IF io_worksheet->zif_excel_sheet_properties~zoomscale_sheetlayoutview GT 400. + io_worksheet->zif_excel_sheet_properties~zoomscale_sheetlayoutview = 400. + ELSEIF io_worksheet->zif_excel_sheet_properties~zoomscale_sheetlayoutview LT 10. + io_worksheet->zif_excel_sheet_properties~zoomscale_sheetlayoutview = 10. + ENDIF. + lv_value = io_worksheet->zif_excel_sheet_properties~zoomscale_sheetlayoutview. + CONDENSE lv_value. + lo_element_2->set_attribute_ns( name = lc_xml_attr_zoomscalesheetview + value = lv_value ). + ENDIF. + lo_element_2->set_attribute_ns( name = lc_xml_attr_workbookviewid + value = '0' ). + " showGridLines attribute + IF io_worksheet->show_gridlines = abap_true. + lo_element_2->set_attribute_ns( name = lc_xml_attr_showgridlines + value = '1' ). + ELSE. + lo_element_2->set_attribute_ns( name = lc_xml_attr_showgridlines + value = '0' ). + ENDIF. + + " showRowColHeaders attribute + IF io_worksheet->show_rowcolheaders = abap_true. + lo_element_2->set_attribute_ns( name = lc_xml_attr_showrowcolheaders + value = '1' ). + ELSE. + lo_element_2->set_attribute_ns( name = lc_xml_attr_showrowcolheaders + value = '0' ). + ENDIF. + + + " freeze panes + io_worksheet->get_freeze_cell( IMPORTING ep_row = lv_freeze_cell_row + ep_column = lv_freeze_cell_column ). + + IF lv_freeze_cell_row IS NOT INITIAL AND lv_freeze_cell_column IS NOT INITIAL. + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_pane + parent = lo_element_2 ). + + IF lv_freeze_cell_row > 1. + lv_value = lv_freeze_cell_row - 1. + CONDENSE lv_value. + lo_element_3->set_attribute_ns( name = 'ySplit' + value = lv_value ). + ENDIF. + + IF lv_freeze_cell_column > 1. + lv_value = lv_freeze_cell_column - 1. + CONDENSE lv_value. + lo_element_3->set_attribute_ns( name = 'xSplit' + value = lv_value ). + ENDIF. + + lv_freeze_cell_column_alpha = zcl_excel_common=>convert_column2alpha( ip_column = lv_freeze_cell_column ). + lv_value = zcl_excel_common=>number_to_excel_string( ip_value = lv_freeze_cell_row ). + CONCATENATE lv_freeze_cell_column_alpha lv_value INTO lv_value. + lo_element_3->set_attribute_ns( name = 'topLeftCell' + value = lv_value ). + + lo_element_3->set_attribute_ns( name = 'activePane' + value = 'bottomRight' ). + + lo_element_3->set_attribute_ns( name = 'state' + value = 'frozen' ). + + lo_element_2->append_child( new_child = lo_element_3 ). + ENDIF. + " selection node + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_selection + parent = lo_document ). + lv_value = io_worksheet->get_active_cell( ). + lo_element_3->set_attribute_ns( name = lc_xml_attr_activecell + value = lv_value ). + + lo_element_3->set_attribute_ns( name = lc_xml_attr_sqref + value = lv_value ). + + lo_element_2->append_child( new_child = lo_element_3 ). " sheetView node + + lo_element->append_child( new_child = lo_element_2 ). " sheetView node + + lo_element_root->append_child( new_child = lo_element ). " sheetViews node + + + column_dimensions[] = io_worksheet->get_column_dimensions( ). + " Calculate col + IF NOT column_dimensions IS INITIAL. + io_worksheet->calculate_column_widths( ). + column_dimensions[] = io_worksheet->get_column_dimensions( ). + ENDIF. + row_dimensions[] = io_worksheet->get_row_dimensions( ). + " sheetFormatPr node + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetformatpr + parent = lo_document ). + " defaultRowHeight + default_row_dimension = io_worksheet->get_default_row_dimension( ). + IF default_row_dimension IS BOUND. + IF default_row_dimension->get_row_height( ) >= 0. + lo_element->set_attribute_ns( name = lc_xml_attr_customheight + value = lc_xml_attr_true ). + lv_value = default_row_dimension->get_row_height( ). + ELSE. + lv_value = '12.75'. + ENDIF. + ELSE. + lv_value = '12.75'. + ENDIF. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_defaultrowheight + value = lv_value ). + " defaultColWidth + default_col_dimension = io_worksheet->get_default_column_dimension( ). + IF default_col_dimension IS BOUND. + IF default_col_dimension->get_width( ) >= 0. + lv_value = default_col_dimension->get_width( ). + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_defaultcolwidth + value = lv_value ). + ENDIF. + ENDIF. + " outlineLevelRow + LOOP AT row_dimensions ASSIGNING <row_dimension>. + IF <row_dimension>-row_dimension->get_outline_level( ) > outline_level_row. + outline_level_row = <row_dimension>-row_dimension->get_outline_level( ). + ENDIF. + ENDLOOP. + lv_value = outline_level_row. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_outlinelevelrow + value = lv_value ). + " outlineLevelCol + LOOP AT column_dimensions ASSIGNING <column_dimension>. + IF <column_dimension>-column_dimension->get_outline_level( ) > outline_level_col. + outline_level_col = <column_dimension>-column_dimension->get_outline_level( ). + ENDIF. + ENDLOOP. + lv_value = outline_level_col. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_outlinelevelcol + value = lv_value ). +* lv_value = 0. +* SHIFT lv_value RIGHT DELETING TRAILING space. +* SHIFT lv_value LEFT DELETING LEADING space. +* lo_element->set_attribute_ns( name = lc_xml_attr_dydescent +* value = lv_value ). + + lo_element_root->append_child( new_child = lo_element ). " sheetFormatPr node + + IF io_worksheet->zif_excel_sheet_properties~get_style( ) IS NOT INITIAL OR NOT column_dimensions IS INITIAL. + " cols node + lo_element = lo_document->create_simple_element( name = lc_xml_node_cols + parent = lo_document ). + " This code have to be enhanced in order to manage also column style properties + " Now it is an out/out + IF NOT column_dimensions IS INITIAL. + LOOP AT column_dimensions ASSIGNING <column_dimension>. + " col node + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_col + parent = lo_document ). + lv_value = <column_dimension>-column_dimension->get_column_index( ). + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_2->set_attribute_ns( name = lc_xml_attr_min + value = lv_value ). + lo_element_2->set_attribute_ns( name = lc_xml_attr_max + value = lv_value ). + " Width + IF <column_dimension>-column_dimension->get_width( ) < 0. + lo_element_2->set_attribute_ns( name = lc_xml_attr_width + value = lc_xml_attr_defaultwidth ). + ELSE. + lv_value = <column_dimension>-column_dimension->get_width( ). + lo_element_2->set_attribute_ns( name = lc_xml_attr_width + value = lv_value ). + ENDIF. + " Column visibility + IF <column_dimension>-column_dimension->get_visible( ) = abap_false. + lo_element_2->set_attribute_ns( name = lc_xml_attr_hidden + value = lc_xml_attr_true ). + ENDIF. + " Auto size? + IF <column_dimension>-column_dimension->get_auto_size( ) = abap_true. + lo_element_2->set_attribute_ns( name = lc_xml_attr_bestfit + value = lc_xml_attr_true ). + ENDIF. + " Custom width? + IF default_col_dimension IS BOUND. + IF <column_dimension>-column_dimension->get_width( ) + <> default_col_dimension->get_width( ). + lo_element_2->set_attribute_ns( name = lc_xml_attr_customwidth + value = lc_xml_attr_true ). + + ENDIF. + ELSE. + lo_element_2->set_attribute_ns( name = lc_xml_attr_customwidth + value = lc_xml_attr_true ). + ENDIF. + " Collapsed + IF <column_dimension>-column_dimension->get_collapsed( ) = abap_true. + lo_element_2->set_attribute_ns( name = lc_xml_attr_collapsed + value = lc_xml_attr_true ). + ENDIF. + " outlineLevel + IF <column_dimension>-column_dimension->get_outline_level( ) > 0. + lv_value = <column_dimension>-column_dimension->get_outline_level( ). + + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_2->set_attribute_ns( name = lc_xml_attr_outlinelevel + value = lv_value ). + ENDIF. + " Style +* lv_value = <column_dimension>-column_dimension->get_xf_index( ). "del issue #157 - set column style + lv_style_guid = <column_dimension>-column_dimension->get_column_style_guid( ). "ins issue #157 - set column style +* lv_value = me->excel->get_style_index_in_styles( lv_style_guid ). "del issue #237 + lv_style_index = me->excel->get_style_index_in_styles( lv_style_guid ). "ins issue #237 + IF lv_style_index > 0. "ins issue #237 + lv_value = lv_style_index - 1. "ins issue #237 + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_2->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. "ins issue #237 + + lo_element->append_child( new_child = lo_element_2 ). " col node + ENDLOOP. +* ELSE. "del issue #157 - set sheet style ( add missing columns +* IF io_worksheet->zif_excel_sheet_properties~get_style( ) IS NOT INITIAL. "del issue #157 - set sheet style ( add missing columns +* Begin of insertion issue #157 - set sheet style ( add missing columns + ENDIF. +* Always pass through this coding + IF io_worksheet->zif_excel_sheet_properties~get_style( ) IS NOT INITIAL. + DATA: lts_sorted_columns TYPE SORTED TABLE OF zexcel_cell_column WITH UNIQUE KEY table_line. + TYPES: BEGIN OF ty_missing_columns, + first_column TYPE zexcel_cell_column, + last_column TYPE zexcel_cell_column, + END OF ty_missing_columns. + DATA: t_missing_columns TYPE STANDARD TABLE OF ty_missing_columns WITH NON-UNIQUE DEFAULT KEY, + missing_column LIKE LINE OF t_missing_columns. + +* First collect columns that were already handled before. The rest has to be inserted now + LOOP AT column_dimensions ASSIGNING <column_dimension>. + lv_column = zcl_excel_common=>convert_column2int( <column_dimension>-column ). + INSERT lv_column INTO TABLE lts_sorted_columns. + ENDLOOP. + +* Now find all columns that were missing so far + missing_column-first_column = 1. + LOOP AT lts_sorted_columns INTO lv_column. + IF lv_column > missing_column-first_column. + missing_column-last_column = lv_column - 1. + APPEND missing_column TO t_missing_columns. + ENDIF. + missing_column-first_column = lv_column + 1. + ENDLOOP. + missing_column-last_column = zcl_excel_common=>c_excel_sheet_max_col. + APPEND missing_column TO t_missing_columns. +* Now apply stylesetting ( and other defaults - I copy it from above. Whoever programmed that seems to know what to do :o) + LOOP AT t_missing_columns INTO missing_column. +* End of insertion issue #157 - set column style + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_col + parent = lo_document ). +* lv_value = zcl_excel_common=>c_excel_sheet_min_col."del issue #157 - set sheet style ( add missing columns + lv_value = missing_column-first_column. "ins issue #157 - set sheet style ( add missing columns + CONDENSE lv_value. + lo_element_2->set_attribute_ns( name = lc_xml_attr_min + value = lv_value ). +* lv_value = zcl_excel_common=>c_excel_sheet_max_col."del issue #157 - set sheet style ( add missing columns + lv_value = missing_column-last_column. "ins issue #157 - set sheet style ( add missing columns + CONDENSE lv_value. + lo_element_2->set_attribute_ns( name = lc_xml_attr_max + value = lv_value ). + lo_element_2->set_attribute_ns( name = lc_xml_attr_width + value = lc_xml_attr_defaultwidth ). + lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ). + READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = lv_style_guid. + lv_value = ls_style_mapping-style. + CONDENSE lv_value. + lo_element_2->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + lo_element->append_child( new_child = lo_element_2 ). " col node + ENDLOOP. "ins issue #157 - set sheet style ( add missing columns + + ENDIF. + lo_element_root->append_child( new_child = lo_element ). " cols node + ENDIF. + " sheetData node + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetdata + parent = lo_document ). + " Get column count + col_count = io_worksheet->get_highest_column( ). + " Get autofilter + lv_guid = io_worksheet->get_guid( ) . + lo_autofilters = excel->get_autofilters_reference( ). + lo_autofilter = lo_autofilters->get( i_sheet_guid = lv_guid ) . + IF lo_autofilter IS BOUND. + lt_values = lo_autofilter->get_values( ) . + ls_area = lo_autofilter->get_filter_area( ) . + l_autofilter_hidden = abap_true. " First defautl is not showing + ENDIF. +*--------------------------------------------------------------------* +* issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 1 - start +*--------------------------------------------------------------------* +* Build table to hold all table-areas attached to this sheet + lo_iterator = io_worksheet->get_tables_iterator( ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_table ?= lo_iterator->if_object_collection_iterator~get_next( ). + ls_table_area-left = zcl_excel_common=>convert_column2int( lo_table->settings-top_left_column ). + ls_table_area-right = lo_table->get_right_column_integer( ). + ls_table_area-top = lo_table->settings-top_left_row. + ls_table_area-bottom = lo_table->get_bottom_row_integer( ). + INSERT ls_table_area INTO TABLE lt_table_areas. + ENDWHILE. +*--------------------------------------------------------------------* +* issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 1 - end +*--------------------------------------------------------------------* + + LOOP AT io_worksheet->sheet_content ASSIGNING <ls_sheet_content>. + READ TABLE lt_values INTO ls_values WITH KEY column = ls_last_row-cell_column. + IF sy-subrc = 0 AND ls_values-value = ls_last_row-cell_value. + CLEAR l_autofilter_hidden. + ENDIF. + CLEAR ls_style_mapping. + IF ls_last_row-cell_row NE <ls_sheet_content>-cell_row. + IF lo_autofilter IS BOUND. + IF ls_area-row_start >= ls_last_row-cell_row OR " One less for header + ls_area-row_end < ls_last_row-cell_row . + CLEAR l_autofilter_hidden. + ENDIF. + ELSE. + CLEAR l_autofilter_hidden. + ENDIF. + IF ls_last_row-cell_row IS NOT INITIAL. + " Row visibility of previos row. + IF row_dimension->get_visible( ) = abap_false OR + l_autofilter_hidden = abap_true. + lo_element_2->set_attribute_ns( name = 'hidden' value = 'true'). + ENDIF. + lo_element->append_child( new_child = lo_element_2 ). " row node + ENDIF. + " Add new row + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_row + parent = lo_document ). + " r + lv_value = <ls_sheet_content>-cell_row. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + + lo_element_2->set_attribute_ns( name = lc_xml_attr_r + value = lv_value ). + " Spans + lv_value = col_count. + CONCATENATE '1:' lv_value INTO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_2->set_attribute_ns( name = lc_xml_attr_spans + value = lv_value ). + row_dimension = io_worksheet->get_row_dimension( <ls_sheet_content>-cell_row ). + " Do we need the row dimension attributes? + IF row_dimension->get_row_height( ) >= 0 OR + row_dimension->get_collapsed( ) = abap_true OR + row_dimension->get_outline_level( ) > 0 OR + row_dimension->get_xf_index( ) <> 0 OR + l_autofilter_hidden = abap_true. + " Row dimensions + IF row_dimension->get_row_height( ) >= 0. + lo_element_2->set_attribute_ns( name = 'customHeight' value = '1'). + lv_value = row_dimension->get_row_height( ). + lo_element_2->set_attribute_ns( name = 'ht' value = lv_value ). + ENDIF. + " Collapsed + IF row_dimension->get_collapsed( ) = abap_true. + lo_element_2->set_attribute_ns( name = 'collapsed' value = 'true'). + ENDIF. + " Outline level + IF row_dimension->get_outline_level( ) > 0. + lv_value = row_dimension->get_outline_level( ). + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_2->set_attribute_ns( name = 'outlineLevel' value = lv_value ). + ENDIF. + " Style + IF row_dimension->get_xf_index( ) <> 0. + lv_value = row_dimension->get_xf_index( ). + lo_element_2->set_attribute_ns( name = 's' value = lv_value ). + lo_element_2->set_attribute_ns( name = 'customFormat' value = '1'). + ENDIF. + ENDIF. + l_autofilter_hidden = abap_true. " First default is not showing + ENDIF. + + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_c + parent = lo_document ). + + lo_element_3->set_attribute_ns( name = lc_xml_attr_r + value = <ls_sheet_content>-cell_coords ). + +* begin of change issue #157 - allow column cellstyle +* if no cellstyle is set, look into column, then into sheet + IF <ls_sheet_content>-cell_style IS NOT INITIAL. + lv_style_guid = <ls_sheet_content>-cell_style. + ELSE. +*--------------------------------------------------------------------* +* issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 2 - start +*--------------------------------------------------------------------* +* Check if cell in any of the table areas + LOOP AT lt_table_areas TRANSPORTING NO FIELDS WHERE top <= <ls_sheet_content>-cell_row + AND bottom >= <ls_sheet_content>-cell_row + AND left <= <ls_sheet_content>-cell_column + AND right >= <ls_sheet_content>-cell_column. + EXIT. + ENDLOOP. + IF sy-subrc = 0. + CLEAR lv_style_guid. " No style --> EXCEL will use built-in-styles as declared in the tables-section + ELSE. +*--------------------------------------------------------------------* +* issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 2 - end +*--------------------------------------------------------------------* + lv_column_p = zcl_excel_common=>convert_column2alpha( <ls_sheet_content>-cell_column ). + READ TABLE column_dimensions WITH KEY column = lv_column_p ASSIGNING <column_dimension>. + IF sy-subrc = 0. + lv_style_guid = <column_dimension>-column_dimension->get_column_style_guid( ). + IF lv_style_guid IS INITIAL. + lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ). + ENDIF. + ELSE. + lv_style_guid = io_worksheet->zif_excel_sheet_properties~get_style( ). + ENDIF. +*--------------------------------------------------------------------* +* issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 3 - start +*--------------------------------------------------------------------* + ENDIF. +*--------------------------------------------------------------------* +* issue #220 - If cell in tables-area don't use default from row or column or sheet - Coding 3 - end +*--------------------------------------------------------------------* + ENDIF. +* IF <ls_sheet_content>-cell_style IS NOT INITIAL. +* READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = <ls_sheet_content>-cell_style. + IF lv_style_guid IS NOT INITIAL. + READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = lv_style_guid. +* end of change issue #157 - allow column cellstyles + lv_value = ls_style_mapping-style. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_3->set_attribute_ns( name = lc_xml_attr_s + value = lv_value ). + ENDIF. + + " For cells with formula ignore the value - Excel will calculate it + IF <ls_sheet_content>-cell_formula IS NOT INITIAL. + " fomula node + lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_f + parent = lo_document ). + lv_value = <ls_sheet_content>-cell_formula. + CONDENSE lv_value. + lo_element_4->set_value( value = lv_value ). + lo_element_3->append_child( new_child = lo_element_4 ). " fomula node + ELSEIF <ls_sheet_content>-cell_value IS NOT INITIAL. "cell can have just style or formula + IF <ls_sheet_content>-data_type IS NOT INITIAL. + lo_element_3->set_attribute_ns( name = lc_xml_attr_t + value = <ls_sheet_content>-data_type ). + ENDIF. + + " value node + lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_v + parent = lo_document ). + + IF <ls_sheet_content>-data_type EQ 's'. + lv_value = me->get_shared_string_index( <ls_sheet_content>-cell_value ). + CONDENSE lv_value. + lo_element_4->set_value( value = lv_value ). + ELSE. + lv_value = <ls_sheet_content>-cell_value. + CONDENSE lv_value. + lo_element_4->set_value( value = lv_value ). + ENDIF. + + lo_element_3->append_child( new_child = lo_element_4 ). " value node + ENDIF. + + lo_element_2->append_child( new_child = lo_element_3 ). " column node + ls_last_row = <ls_sheet_content>. + ENDLOOP. + IF sy-subrc = 0. + READ TABLE lt_values INTO ls_values WITH KEY column = ls_last_row-cell_column. + IF sy-subrc = 0 AND ls_values-value = ls_last_row-cell_value. + CLEAR l_autofilter_hidden. + ENDIF. + IF lo_autofilter IS BOUND. + IF ls_area-row_start >= ls_last_row-cell_row OR " One less for header + ls_area-row_end < ls_last_row-cell_row . + CLEAR l_autofilter_hidden. + ENDIF. + ELSE. + CLEAR l_autofilter_hidden. + ENDIF. + " Row visibility of previos row. + IF row_dimension->get_visible( ) = abap_false OR + l_autofilter_hidden = abap_true. + lo_element_2->set_attribute_ns( name = 'hidden' value = 'true'). + ENDIF. + lo_element->append_child( new_child = lo_element_2 ). " row node + ENDIF. + + lo_element_root->append_child( new_child = lo_element ). " sheetData node + + IF lo_autofilter IS BOUND. +* Create node autofilter + lo_element = lo_document->create_simple_element( name = lc_xml_node_autofilter + parent = lo_document ). + lv_ref = lo_autofilter->get_filter_range( ) . + CONDENSE lv_ref NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_ref + value = lv_ref ). + lt_values = lo_autofilter->get_values( ) . + IF lt_values IS NOT INITIAL. +* If we filter we need to set the filter mode to 1. + lo_element_2 = lo_document->find_from_name( name = lc_xml_node_sheetpr ). + lo_element_2->set_attribute_ns( name = lc_xml_attr_filtermode + value = '1' ). +* Create node filtercolumn + CLEAR lv_column. + LOOP AT lt_values INTO ls_values. + IF ls_values-column <> lv_column. + IF lv_column IS NOT INITIAL. + lo_element_2->append_child( new_child = lo_element_3 ). + lo_element->append_child( new_child = lo_element_2 ). + ENDIF. + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_filtercolumn + parent = lo_element ). + lv_column = ls_values-column - lo_autofilter->filter_area-col_start. + lv_value = lv_column. + CONDENSE lv_value NO-GAPS. + lo_element_2->set_attribute_ns( name = lc_xml_attr_colid + value = lv_value ). + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_filters + parent = lo_element_2 ). + lv_column = ls_values-column. + ENDIF. + lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_filter + parent = lo_element_3 ). + lo_element_4->set_attribute_ns( name = lc_xml_attr_val + value = ls_values-value ). + lo_element_3->append_child( new_child = lo_element_4 ). " value node + ENDLOOP. + lo_element_2->append_child( new_child = lo_element_3 ). + lo_element->append_child( new_child = lo_element_2 ). + ENDIF. + lo_element_root->append_child( new_child = lo_element ). + ENDIF. + + IF io_worksheet->zif_excel_sheet_protection~protected EQ abap_true. + " sheetProtection node + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetprotection + parent = lo_document ). + MOVE io_worksheet->zif_excel_sheet_protection~password TO lv_value. + IF lv_value IS NOT INITIAL. + lo_element->set_attribute_ns( name = lc_xml_attr_password + value = lv_value ). + ENDIF. + lv_value = io_worksheet->zif_excel_sheet_protection~auto_filter. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_autofilter + value = lv_value ). + lv_value = io_worksheet->zif_excel_sheet_protection~delete_columns. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_deletecolumns + value = lv_value ). + lv_value = io_worksheet->zif_excel_sheet_protection~delete_rows. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_deleterows + value = lv_value ). + lv_value = io_worksheet->zif_excel_sheet_protection~format_cells. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_formatcells + value = lv_value ). + lv_value = io_worksheet->zif_excel_sheet_protection~format_columns. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_formatcolumns + value = lv_value ). + lv_value = io_worksheet->zif_excel_sheet_protection~format_rows. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_formatrows + value = lv_value ). + lv_value = io_worksheet->zif_excel_sheet_protection~insert_columns. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_insertcolumns + value = lv_value ). + lv_value = io_worksheet->zif_excel_sheet_protection~insert_hyperlinks. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_inserthyperlinks + value = lv_value ). + lv_value = io_worksheet->zif_excel_sheet_protection~insert_rows. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_insertrows + value = lv_value ). + lv_value = io_worksheet->zif_excel_sheet_protection~objects. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_objects + value = lv_value ). + lv_value = io_worksheet->zif_excel_sheet_protection~pivot_tables. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_pivottables + value = lv_value ). + lv_value = io_worksheet->zif_excel_sheet_protection~scenarios. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_scenarios + value = lv_value ). + lv_value = io_worksheet->zif_excel_sheet_protection~select_locked_cells. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_selectlockedcells + value = lv_value ). + lv_value = io_worksheet->zif_excel_sheet_protection~select_unlocked_cells. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_selectunlockedcell + value = lv_value ). + lv_value = io_worksheet->zif_excel_sheet_protection~sheet. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_sheet + value = lv_value ). + lv_value = io_worksheet->zif_excel_sheet_protection~sort. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_sort + value = lv_value ). + + lo_element_root->append_child( new_child = lo_element ). + ENDIF. + + " Merged cells + lt_range_merge = io_worksheet->get_merge( ). + IF lt_range_merge IS NOT INITIAL. + lo_element = lo_document->create_simple_element( name = lc_xml_node_mergecells + parent = lo_document ). + DESCRIBE TABLE lt_range_merge LINES merge_count. + lv_value = merge_count. + CONDENSE lv_value. + lo_element->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + LOOP AT lt_range_merge ASSIGNING <fs_range_merge>. + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_mergecell + parent = lo_document ). + + lo_element_2->set_attribute_ns( name = lc_xml_attr_ref + value = <fs_range_merge> ). + lo_element->append_child( new_child = lo_element_2 ). + lo_element_root->append_child( new_child = lo_element ). + io_worksheet->delete_merge( ). + ENDLOOP. + ENDIF. + + " Conditional formatting node + lo_iterator = io_worksheet->get_cond_styles_iterator( ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_style_conditional ?= lo_iterator->if_object_collection_iterator~get_next( ). + IF lo_style_conditional->rule IS INITIAL. + CONTINUE. + ENDIF. + lo_element = lo_document->create_simple_element( name = lc_xml_node_condformatting + parent = lo_document ). + lv_value = lo_style_conditional->get_dimension_range( ) . + lo_element->set_attribute_ns( name = lc_xml_attr_sqref + value = lv_value ). + + " cfRule node + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_cfrule + parent = lo_document ). + lv_value = lo_style_conditional->rule. + lo_element_2->set_attribute_ns( name = lc_xml_attr_type + value = lv_value ). + lv_value = lo_style_conditional->priority. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_2->set_attribute_ns( name = lc_xml_attr_priority + value = lv_value ). + + CASE lo_style_conditional->rule. + " Start >> Databar by Albert Lladanosa + WHEN zcl_excel_style_conditional=>c_rule_databar. + + ls_databar = lo_style_conditional->mode_databar. + + CLEAR lt_cfvo. + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_databar + parent = lo_document ). + + MOVE ls_databar-cfvo1_value TO ls_cfvo-value. + MOVE ls_databar-cfvo1_type TO ls_cfvo-type. + APPEND ls_cfvo TO lt_cfvo. + + MOVE ls_databar-cfvo2_value TO ls_cfvo-value. + MOVE ls_databar-cfvo2_type TO ls_cfvo-type. + APPEND ls_cfvo TO lt_cfvo. + + LOOP AT lt_cfvo INTO ls_cfvo. + " cfvo node + lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_cfvo + parent = lo_document ). + lv_value = ls_cfvo-type. + lo_element_4->set_attribute_ns( name = lc_xml_attr_type + value = lv_value ). + lv_value = ls_cfvo-value. + lo_element_4->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_3->append_child( new_child = lo_element_4 ). " cfvo node + ENDLOOP. + + lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_databar-colorrgb. + lo_element_4->set_attribute_ns( name = lc_xml_attr_tabcolor_rgb + value = lv_value ). + + lo_element_3->append_child( new_child = lo_element_4 ). " color node + + lo_element_2->append_child( new_child = lo_element_3 ). " databar node + " End << Databar by Albert Lladanosa + WHEN zcl_excel_style_conditional=>c_rule_iconset. + + ls_iconset = lo_style_conditional->mode_iconset. + + CLEAR lt_cfvo. + " iconset node + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_iconset + parent = lo_document ). + IF ls_iconset-iconset NE zcl_excel_style_conditional=>c_iconset_3trafficlights. + lv_value = ls_iconset-iconset. + lo_element_3->set_attribute_ns( name = lc_xml_attr_iconset + value = lv_value ). + ENDIF. + + " Set the showValue attribute + lv_value = ls_iconset-showvalue. + lo_element_3->set_attribute_ns( name = lc_xml_attr_showvalue + value = lv_value ). + + CASE ls_iconset-iconset. + WHEN zcl_excel_style_conditional=>c_iconset_3trafficlights2 OR + zcl_excel_style_conditional=>c_iconset_3arrows OR + zcl_excel_style_conditional=>c_iconset_3arrowsgray OR + zcl_excel_style_conditional=>c_iconset_3flags OR + zcl_excel_style_conditional=>c_iconset_3signs OR + zcl_excel_style_conditional=>c_iconset_3symbols OR + zcl_excel_style_conditional=>c_iconset_3symbols2 OR + zcl_excel_style_conditional=>c_iconset_3trafficlights OR + zcl_excel_style_conditional=>c_iconset_3trafficlights2. + MOVE ls_iconset-cfvo1_value TO ls_cfvo-value. + MOVE ls_iconset-cfvo1_type TO ls_cfvo-type. + APPEND ls_cfvo TO lt_cfvo. + MOVE ls_iconset-cfvo2_value TO ls_cfvo-value. + MOVE ls_iconset-cfvo2_type TO ls_cfvo-type. + APPEND ls_cfvo TO lt_cfvo. + MOVE ls_iconset-cfvo3_value TO ls_cfvo-value. + MOVE ls_iconset-cfvo3_type TO ls_cfvo-type. + APPEND ls_cfvo TO lt_cfvo. + WHEN zcl_excel_style_conditional=>c_iconset_4arrows OR + zcl_excel_style_conditional=>c_iconset_4arrowsgray OR + zcl_excel_style_conditional=>c_iconset_4rating OR + zcl_excel_style_conditional=>c_iconset_4redtoblack OR + zcl_excel_style_conditional=>c_iconset_4trafficlights. + MOVE ls_iconset-cfvo1_value TO ls_cfvo-value. + MOVE ls_iconset-cfvo1_type TO ls_cfvo-type. + APPEND ls_cfvo TO lt_cfvo. + MOVE ls_iconset-cfvo2_value TO ls_cfvo-value. + MOVE ls_iconset-cfvo2_type TO ls_cfvo-type. + APPEND ls_cfvo TO lt_cfvo. + MOVE ls_iconset-cfvo3_value TO ls_cfvo-value. + MOVE ls_iconset-cfvo3_type TO ls_cfvo-type. + APPEND ls_cfvo TO lt_cfvo. + MOVE ls_iconset-cfvo4_value TO ls_cfvo-value. + MOVE ls_iconset-cfvo4_type TO ls_cfvo-type. + APPEND ls_cfvo TO lt_cfvo. + WHEN zcl_excel_style_conditional=>c_iconset_5arrows OR + zcl_excel_style_conditional=>c_iconset_5arrowsgray OR + zcl_excel_style_conditional=>c_iconset_5quarters OR + zcl_excel_style_conditional=>c_iconset_5rating. + MOVE ls_iconset-cfvo1_value TO ls_cfvo-value. + MOVE ls_iconset-cfvo1_type TO ls_cfvo-type. + APPEND ls_cfvo TO lt_cfvo. + MOVE ls_iconset-cfvo2_value TO ls_cfvo-value. + MOVE ls_iconset-cfvo2_type TO ls_cfvo-type. + APPEND ls_cfvo TO lt_cfvo. + MOVE ls_iconset-cfvo3_value TO ls_cfvo-value. + MOVE ls_iconset-cfvo3_type TO ls_cfvo-type. + APPEND ls_cfvo TO lt_cfvo. + MOVE ls_iconset-cfvo4_value TO ls_cfvo-value. + MOVE ls_iconset-cfvo4_type TO ls_cfvo-type. + APPEND ls_cfvo TO lt_cfvo. + MOVE ls_iconset-cfvo5_value TO ls_cfvo-value. + MOVE ls_iconset-cfvo5_type TO ls_cfvo-type. + APPEND ls_cfvo TO lt_cfvo. + WHEN OTHERS. + CLEAR lt_cfvo. + ENDCASE. + + LOOP AT lt_cfvo INTO ls_cfvo. + " cfvo node + lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_cfvo + parent = lo_document ). + lv_value = ls_cfvo-type. + lo_element_4->set_attribute_ns( name = lc_xml_attr_type + value = lv_value ). + lv_value = ls_cfvo-value. + lo_element_4->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_3->append_child( new_child = lo_element_4 ). " cfvo node + ENDLOOP. + + + lo_element_2->append_child( new_child = lo_element_3 ). " iconset node + WHEN zcl_excel_style_conditional=>c_rule_cellis. + ls_cellis = lo_style_conditional->mode_cellis. + READ TABLE me->styles_cond_mapping INTO ls_style_cond_mapping WITH KEY guid = ls_cellis-cell_style. + lv_value = ls_style_cond_mapping-dxf. + CONDENSE lv_value. + lo_element_2->set_attribute_ns( name = lc_xml_attr_dxfid + value = lv_value ). + lv_value = ls_cellis-operator. + lo_element_2->set_attribute_ns( name = lc_xml_attr_operator + value = lv_value ). + " formula node + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_formula + parent = lo_document ). + lv_value = ls_cellis-formula. + lo_element_3->set_value( value = lv_value ). + lo_element_2->append_child( new_child = lo_element_3 ). " formula node + WHEN zcl_excel_style_conditional=>c_rule_expression. + ls_expression = lo_style_conditional->mode_expression. + READ TABLE me->styles_cond_mapping INTO ls_style_cond_mapping WITH KEY guid = ls_expression-cell_style. + lv_value = ls_style_cond_mapping-dxf. + CONDENSE lv_value. + lo_element_2->set_attribute_ns( name = lc_xml_attr_dxfid + value = lv_value ). + " formula node + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_formula + parent = lo_document ). + lv_value = ls_expression-formula. + lo_element_3->set_value( value = lv_value ). + lo_element_2->append_child( new_child = lo_element_3 ). " formula node + ENDCASE. + + lo_element->append_child( new_child = lo_element_2 ). " cfRule node + + lo_element_root->append_child( new_child = lo_element ). " Conditional formatting node + ENDWHILE. + + IF io_worksheet->get_data_validations_size( ) GT 0. + " dataValidations node + lo_element = lo_document->create_simple_element( name = lc_xml_node_datavalidations + parent = lo_document ). + " Conditional formatting node + lo_iterator = io_worksheet->get_data_validations_iterator( ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_data_validation ?= lo_iterator->if_object_collection_iterator~get_next( ). + " dataValidation node + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_datavalidation + parent = lo_document ). + lv_value = lo_data_validation->type. + lo_element_2->set_attribute_ns( name = lc_xml_attr_type + value = lv_value ). + IF NOT lo_data_validation->operator IS INITIAL. + lv_value = lo_data_validation->operator. + lo_element_2->set_attribute_ns( name = lc_xml_attr_operator + value = lv_value ). + ENDIF. + IF lo_data_validation->allowblank EQ abap_true. + lv_value = '1'. + ELSE. + lv_value = '0'. + ENDIF. + lo_element_2->set_attribute_ns( name = lc_xml_attr_allowblank + value = lv_value ). + IF lo_data_validation->showinputmessage EQ abap_true. + lv_value = '1'. + ELSE. + lv_value = '0'. + ENDIF. + lo_element_2->set_attribute_ns( name = lc_xml_attr_showinputmessage + value = lv_value ). + IF lo_data_validation->showerrormessage EQ abap_true. + lv_value = '1'. + ELSE. + lv_value = '0'. + ENDIF. + lo_element_2->set_attribute_ns( name = lc_xml_attr_showerrormessage + value = lv_value ). + IF NOT lo_data_validation->errortitle IS INITIAL. + lv_value = lo_data_validation->errortitle. + lo_element_2->set_attribute_ns( name = lc_xml_attr_errortitle + value = lv_value ). + ENDIF. + IF NOT lo_data_validation->error IS INITIAL. + lv_value = lo_data_validation->error. + lo_element_2->set_attribute_ns( name = lc_xml_attr_error + value = lv_value ). + ENDIF. + IF NOT lo_data_validation->prompttitle IS INITIAL. + lv_value = lo_data_validation->prompttitle. + lo_element_2->set_attribute_ns( name = lc_xml_attr_prompttitle + value = lv_value ). + ENDIF. + IF NOT lo_data_validation->prompt IS INITIAL. + lv_value = lo_data_validation->prompt. + lo_element_2->set_attribute_ns( name = lc_xml_attr_prompt + value = lv_value ). + ENDIF. + lv_cell_row_s = lo_data_validation->cell_row. + CONDENSE lv_cell_row_s. + CONCATENATE lo_data_validation->cell_column lv_cell_row_s INTO lv_value. + IF lo_data_validation->cell_row_to IS NOT INITIAL. + lv_cell_row_s = lo_data_validation->cell_row_to. + CONDENSE lv_cell_row_s. + CONCATENATE lv_value ':' lo_data_validation->cell_column_to lv_cell_row_s INTO lv_value. + ENDIF. + lo_element_2->set_attribute_ns( name = lc_xml_attr_sqref + value = lv_value ). + " formula1 node + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_formula1 + parent = lo_document ). + lv_value = lo_data_validation->formula1. + lo_element_3->set_value( value = lv_value ). + + lo_element_2->append_child( new_child = lo_element_3 ). " formula1 node + " formula2 node + IF NOT lo_data_validation->formula2 IS INITIAL. + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_formula2 + parent = lo_document ). + lv_value = lo_data_validation->formula2. + lo_element_3->set_value( value = lv_value ). + + lo_element_2->append_child( new_child = lo_element_3 ). " formula2 node + ENDIF. + + lo_element->append_child( new_child = lo_element_2 ). " dataValidation node + ENDWHILE. + lo_element_root->append_child( new_child = lo_element ). " dataValidations node + ENDIF. + + " Hyperlinks + DATA: lv_hyperlinks_count TYPE i, + lo_link TYPE REF TO zcl_excel_hyperlink. + + lv_hyperlinks_count = io_worksheet->get_hyperlinks_size( ). + IF lv_hyperlinks_count > 0. + lo_element = lo_document->create_simple_element( name = 'hyperlinks' + parent = lo_document ). + + lo_iterator = io_worksheet->get_hyperlinks_iterator( ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_link ?= lo_iterator->if_object_collection_iterator~get_next( ). + + lo_element_2 = lo_document->create_simple_element( name = 'hyperlink' + parent = lo_element ). + + lv_value = lo_link->get_ref( ). + lo_element_2->set_attribute_ns( name = 'ref' + value = lv_value ). + + IF lo_link->is_internal( ) = abap_true. + lv_value = lo_link->get_url( ). + lo_element_2->set_attribute_ns( name = 'location' + value = lv_value ). + ELSE. + ADD 1 TO lv_relation_id. + + lv_value = lv_relation_id. + CONDENSE lv_value. + CONCATENATE 'rId' lv_value INTO lv_value. + + lo_element_2->set_attribute_ns( name = 'r:id' + value = lv_value ). + + ENDIF. + + lo_element->append_child( new_child = lo_element_2 ). + ENDWHILE. + + lo_element_root->append_child( new_child = lo_element ). + ENDIF. + + + " PrintOptions + IF io_worksheet->print_gridlines = abap_true OR + io_worksheet->sheet_setup->vertical_centered = abap_true OR + io_worksheet->sheet_setup->horizontal_centered = abap_true. + lo_element = lo_document->create_simple_element( name = 'printOptions' + parent = lo_document ). + + IF io_worksheet->print_gridlines = abap_true. + lo_element->set_attribute_ns( name = lc_xml_attr_gridlines + value = 'true' ). + ENDIF. + + IF io_worksheet->sheet_setup->horizontal_centered = abap_true. + lo_element->set_attribute_ns( name = 'horizontalCentered' + value = 'true' ). + ENDIF. + + IF io_worksheet->sheet_setup->vertical_centered = abap_true. + lo_element->set_attribute_ns( name = 'verticalCentered' + value = 'true' ). + ENDIF. + + lo_element_root->append_child( new_child = lo_element ). + ENDIF. + " pageMargins node + lo_element = lo_document->create_simple_element( name = lc_xml_node_pagemargins + parent = lo_document ). + + lv_value = io_worksheet->sheet_setup->margin_left. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_left + value = lv_value ). + lv_value = io_worksheet->sheet_setup->margin_right. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_right + value = lv_value ). + lv_value = io_worksheet->sheet_setup->margin_top. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_top + value = lv_value ). + lv_value = io_worksheet->sheet_setup->margin_bottom. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_bottom + value = lv_value ). + lv_value = io_worksheet->sheet_setup->margin_header. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_header + value = lv_value ). + lv_value = io_worksheet->sheet_setup->margin_footer. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_footer + value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). " pageMargins node + +* pageSetup node + lo_element = lo_document->create_simple_element( name = lc_xml_node_pagesetup + parent = lo_document ). + + IF io_worksheet->sheet_setup->black_and_white IS NOT INITIAL. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_blackandwhite + value = `1` ). + ENDIF. + + IF io_worksheet->sheet_setup->cell_comments IS NOT INITIAL. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_cellcomments + value = io_worksheet->sheet_setup->cell_comments ). + ENDIF. + + IF io_worksheet->sheet_setup->copies IS NOT INITIAL. + lv_value = io_worksheet->sheet_setup->copies. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_copies + value = lv_value ). + ENDIF. + + IF io_worksheet->sheet_setup->draft IS NOT INITIAL. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_draft + value = `1` ). + ENDIF. + + IF io_worksheet->sheet_setup->errors IS NOT INITIAL. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_errors + value = io_worksheet->sheet_setup->errors ). + ENDIF. + + IF io_worksheet->sheet_setup->first_page_number IS NOT INITIAL. + lv_value = io_worksheet->sheet_setup->first_page_number. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_firstpagenumber + value = lv_value ). + ENDIF. + + IF io_worksheet->sheet_setup->fit_to_page IS NOT INITIAL. + lv_value = io_worksheet->sheet_setup->fit_to_height. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_fittoheight + value = lv_value ). + lv_value = io_worksheet->sheet_setup->fit_to_width. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_fittowidth + value = lv_value ). + ENDIF. + + IF io_worksheet->sheet_setup->horizontal_dpi IS NOT INITIAL. + lv_value = io_worksheet->sheet_setup->horizontal_dpi. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_horizontaldpi + value = lv_value ). + ENDIF. + + IF io_worksheet->sheet_setup->orientation IS NOT INITIAL. + lv_value = io_worksheet->sheet_setup->orientation. + lo_element->set_attribute_ns( name = lc_xml_attr_orientation + value = lv_value ). + ENDIF. + + IF io_worksheet->sheet_setup->page_order IS NOT INITIAL. + lo_element->set_attribute_ns( name = lc_xml_attr_pageorder + value = io_worksheet->sheet_setup->page_order ). + ENDIF. + + IF io_worksheet->sheet_setup->paper_height IS NOT INITIAL. + lv_value = io_worksheet->sheet_setup->paper_height. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_paperheight + value = lv_value ). + ENDIF. + + IF io_worksheet->sheet_setup->paper_size IS NOT INITIAL. + lv_value = io_worksheet->sheet_setup->paper_size. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_papersize + value = lv_value ). + ENDIF. + + IF io_worksheet->sheet_setup->paper_width IS NOT INITIAL. + lv_value = io_worksheet->sheet_setup->paper_width. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_paperwidth + value = lv_value ). + ENDIF. + + IF io_worksheet->sheet_setup->scale IS NOT INITIAL. + lv_value = io_worksheet->sheet_setup->scale. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_scale + value = lv_value ). + ENDIF. + + IF io_worksheet->sheet_setup->use_first_page_num IS NOT INITIAL. + lo_element->set_attribute_ns( name = lc_xml_attr_usefirstpagenumber + value = `1` ). + ENDIF. + + IF io_worksheet->sheet_setup->use_printer_defaults IS NOT INITIAL. + lo_element->set_attribute_ns( name = lc_xml_attr_useprinterdefaults + value = `1` ). + ENDIF. + + IF io_worksheet->sheet_setup->vertical_dpi IS NOT INITIAL. + lv_value = io_worksheet->sheet_setup->vertical_dpi. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_verticaldpi + value = lv_value ). + ENDIF. + + lo_element_root->append_child( new_child = lo_element ). " pageSetup node + +* { headerFooter necessary? > + IF io_worksheet->sheet_setup->odd_header IS NOT INITIAL + OR io_worksheet->sheet_setup->odd_footer IS NOT INITIAL + OR io_worksheet->sheet_setup->diff_oddeven_headerfooter = abap_true. + + lo_element = lo_document->create_simple_element( name = lc_xml_node_headerfooter + parent = lo_document ). + + " Different header/footer for odd/even pages? + IF io_worksheet->sheet_setup->diff_oddeven_headerfooter = abap_true. + lo_element->set_attribute_ns( name = lc_xml_attr_differentoddeven + value = '1' ). + ENDIF. + + " OddHeader + CLEAR: lv_value. + io_worksheet->sheet_setup->get_header_footer_string( IMPORTING ep_odd_header = lv_value ) . + IF lv_value IS NOT INITIAL. + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_oddheader + parent = lo_document ). + lo_element_2->set_value( value = lv_value ). + lo_element->append_child( new_child = lo_element_2 ). + ENDIF. + + " OddFooter + CLEAR: lv_value. + io_worksheet->sheet_setup->get_header_footer_string( IMPORTING ep_odd_footer = lv_value ) . + IF lv_value IS NOT INITIAL. + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_oddfooter + parent = lo_document ). + lo_element_2->set_value( value = lv_value ). + lo_element->append_child( new_child = lo_element_2 ). + ENDIF. + + " evenHeader + CLEAR: lv_value. + io_worksheet->sheet_setup->get_header_footer_string( IMPORTING ep_even_header = lv_value ) . + IF lv_value IS NOT INITIAL. + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_evenheader + parent = lo_document ). + lo_element_2->set_value( value = lv_value ). + lo_element->append_child( new_child = lo_element_2 ). + ENDIF. + + " evenFooter + CLEAR: lv_value. + io_worksheet->sheet_setup->get_header_footer_string( IMPORTING ep_even_footer = lv_value ) . + IF lv_value IS NOT INITIAL. + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_evenfooter + parent = lo_document ). + lo_element_2->set_value( value = lv_value ). + lo_element->append_child( new_child = lo_element_2 ). + ENDIF. + + + lo_element_root->append_child( new_child = lo_element ). " headerFooter + + ENDIF. + +* drawing + DATA: lo_drawings TYPE REF TO zcl_excel_drawings. + + lo_drawings = io_worksheet->get_drawings( ). + IF lo_drawings->is_empty( ) = abap_false. + lo_element = lo_document->create_simple_element( name = lc_xml_node_drawing + parent = lo_document ). + ADD 1 TO lv_relation_id. + + lv_value = lv_relation_id. + CONDENSE lv_value. + CONCATENATE 'rId' lv_value INTO lv_value. + lo_element->set_attribute( name = 'r:id' + value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + ENDIF. + +* tables + DATA lv_table_count TYPE i. + + lv_table_count = io_worksheet->get_tables_size( ). + IF lv_table_count > 0. + lo_element = lo_document->create_simple_element( name = 'tableParts' + parent = lo_document ). + lv_value = lv_table_count. + CONDENSE lv_value. + lo_element->set_attribute_ns( name = 'count' + value = lv_value ). + + lo_iterator = io_worksheet->get_tables_iterator( ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_table ?= lo_iterator->if_object_collection_iterator~get_next( ). + ADD 1 TO lv_relation_id. + + lv_value = lv_relation_id. + CONDENSE lv_value. + CONCATENATE 'rId' lv_value INTO lv_value. + lo_element_2 = lo_document->create_simple_element( name = 'tablePart' + parent = lo_element ). + lo_element_2->set_attribute_ns( name = 'r:id' + value = lv_value ). + lo_element->append_child( new_child = lo_element_2 ). + + ENDWHILE. + + lo_element_root->append_child( new_child = lo_element ). + + ENDIF. + + + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + + + method CREATE_XL_SHEET_RELS. + + +** Constant node name + DATA: lc_xml_node_relationships TYPE string VALUE 'Relationships', + lc_xml_node_relationship TYPE string VALUE 'Relationship', + " Node attributes + lc_xml_attr_id TYPE string VALUE 'Id', + lc_xml_attr_type TYPE string VALUE 'Type', + lc_xml_attr_target TYPE string VALUE 'Target', + lc_xml_attr_target_mode TYPE string VALUE 'TargetMode', + lc_xml_val_external TYPE string VALUE 'External', + " Node namespace + lc_xml_node_rels_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships', + lc_xml_node_rid_table_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/table', + lc_xml_node_rid_printer_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings', + lc_xml_node_rid_drawing_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing', + lc_xml_node_rid_link_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_table TYPE REF TO zcl_excel_table, + lo_link TYPE REF TO zcl_excel_hyperlink. + + DATA: lv_value TYPE string, + lv_relation_id TYPE i, + lv_index_str TYPE string. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_relationships + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_rels_ns ). + +********************************************************************** +* STEP 4: Create subnodes + + " Add sheet Relationship nodes here + lv_relation_id = 0. + lo_iterator = io_worksheet->get_hyperlinks_iterator( ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_link ?= lo_iterator->if_object_collection_iterator~get_next( ). + ADD 1 TO lv_relation_id. + + lv_value = lv_relation_id. + CONDENSE lv_value. + CONCATENATE 'rId' lv_value INTO lv_value. + + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_value ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_link_tp ). + + lv_value = lo_link->get_url( ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lv_value ). + lo_element->set_attribute_ns( name = lc_xml_attr_target_mode + value = lc_xml_val_external ). + lo_element_root->append_child( new_child = lo_element ). + ENDWHILE. + +* drawing + DATA: lo_drawings TYPE REF TO zcl_excel_drawings. + + lo_drawings = io_worksheet->get_drawings( ). + IF lo_drawings->is_empty( ) = abap_false. + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + ADD 1 TO lv_relation_id. + + lv_value = lv_relation_id. + CONDENSE lv_value. + CONCATENATE 'rId' lv_value INTO lv_value. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_value ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_drawing_tp ). + + lv_index_str = iv_drawing_index. + CONDENSE lv_index_str NO-GAPS. + MOVE me->c_xl_drawings TO lv_value. + REPLACE 'xl' WITH '..' INTO lv_value. + REPLACE '#' WITH lv_index_str INTO lv_value. + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + ENDIF. + + lo_iterator = io_worksheet->get_tables_iterator( ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_table ?= lo_iterator->if_object_collection_iterator~get_next( ). + ADD 1 TO lv_relation_id. + + lv_value = lv_relation_id. + CONDENSE lv_value. + CONCATENATE 'rId' lv_value INTO lv_value. + + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_value ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_table_tp ). + + lv_value = lo_table->get_name( ). + CONCATENATE '../tables/' lv_value '.xml' INTO lv_value. + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + ENDWHILE. + +* IF io_worksheet->get_print_settings( )->is_empty( ) = abap_false. +* ADD 1 TO lv_relation_id. +* lv_value = lv_relation_id. +* CONDENSE lv_value. +* CONCATENATE 'rId' lv_value INTO lv_value. +* +* lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship +* parent = lo_document ). +* lo_element->set_attribute_ns( name = lc_xml_attr_id +* value = lv_value ). +* lo_element->set_attribute_ns( name = lc_xml_attr_type +* value = lc_xml_node_rid_printer_tp ). +* +* lv_index_str = iv_printer_index. +* CONDENSE lv_index_str NO-GAPS. +* MOVE me->c_xl_printersettings TO lv_value. +* REPLACE 'xl' WITH '..' INTO lv_value. +* REPLACE '#' WITH lv_index_str INTO lv_value. +* lo_element->set_attribute_ns( name = lc_xml_attr_target +* value = lv_value ). +* +* lo_element_root->append_child( new_child = lo_element ). +* ENDIF. + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + method CREATE_XL_STYLES. + + +** Constant node name + CONSTANTS: lc_xml_node_stylesheet TYPE string VALUE 'styleSheet', + " font + lc_xml_node_fonts TYPE string VALUE 'fonts', + lc_xml_node_font TYPE string VALUE 'font', + lc_xml_node_b TYPE string VALUE 'b', "bold + lc_xml_node_i TYPE string VALUE 'i', "italic + lc_xml_node_u TYPE string VALUE 'u', "underline + lc_xml_node_strike TYPE string VALUE 'strike', "strikethrough + lc_xml_node_sz TYPE string VALUE 'sz', + lc_xml_node_color TYPE string VALUE 'color', + lc_xml_node_name TYPE string VALUE 'name', + lc_xml_node_family TYPE string VALUE 'family', + lc_xml_node_scheme TYPE string VALUE 'scheme', + " fill + lc_xml_node_fills TYPE string VALUE 'fills', + lc_xml_node_fill TYPE string VALUE 'fill', + lc_xml_node_patternfill TYPE string VALUE 'patternFill', + lc_xml_node_fgcolor TYPE string VALUE 'fgColor', + lc_xml_node_bgcolor TYPE string VALUE 'bgColor', + lc_xml_node_gradientfill TYPE string VALUE 'gradientFill', + lc_xml_node_stop TYPE string VALUE 'stop', + " borders + lc_xml_node_borders TYPE string VALUE 'borders', + lc_xml_node_border TYPE string VALUE 'border', + lc_xml_node_left TYPE string VALUE 'left', + lc_xml_node_right TYPE string VALUE 'right', + lc_xml_node_top TYPE string VALUE 'top', + lc_xml_node_bottom TYPE string VALUE 'bottom', + lc_xml_node_diagonal TYPE string VALUE 'diagonal', + " numfmt + lc_xml_node_numfmts TYPE string VALUE 'numFmts', + lc_xml_node_numfmt TYPE string VALUE 'numFmt', + " Styles + lc_xml_node_cellstylexfs TYPE string VALUE 'cellStyleXfs', + lc_xml_node_xf TYPE string VALUE 'xf', + lc_xml_node_cellxfs TYPE string VALUE 'cellXfs', + lc_xml_node_cellstyles TYPE string VALUE 'cellStyles', + lc_xml_node_cellstyle TYPE string VALUE 'cellStyle', + lc_xml_node_dxfs TYPE string VALUE 'dxfs', + lc_xml_node_dxf TYPE string VALUE 'dxf', + lc_xml_node_tablestyles TYPE string VALUE 'tableStyles', + " Colors + lc_xml_node_colors TYPE string VALUE 'colors', + lc_xml_node_indexedcolors TYPE string VALUE 'indexedColors', + lc_xml_node_rgbcolor TYPE string VALUE 'rgbColor', + lc_xml_node_mrucolors TYPE string VALUE 'mruColors', + " Alignment + lc_xml_node_alignment TYPE string VALUE 'alignment', + " Protection + lc_xml_node_protection TYPE string VALUE 'protection', + " Node attributes + lc_xml_attr_count TYPE string VALUE 'count', + lc_xml_attr_val TYPE string VALUE 'val', + lc_xml_attr_theme TYPE string VALUE 'theme', + lc_xml_attr_rgb TYPE string VALUE 'rgb', + lc_xml_attr_indexed TYPE string VALUE 'indexed', + lc_xml_attr_tint TYPE string VALUE 'tint', + lc_xml_attr_style TYPE string VALUE 'style', + lc_xml_attr_position TYPE string VALUE 'position', + lc_xml_attr_degree TYPE string VALUE 'degree', + lc_xml_attr_patterntype TYPE string VALUE 'patternType', + lc_xml_attr_numfmtid TYPE string VALUE 'numFmtId', + lc_xml_attr_fontid TYPE string VALUE 'fontId', + lc_xml_attr_fillid TYPE string VALUE 'fillId', + lc_xml_attr_borderid TYPE string VALUE 'borderId', + lc_xml_attr_xfid TYPE string VALUE 'xfId', + lc_xml_attr_applynumberformat TYPE string VALUE 'applyNumberFormat', + lc_xml_attr_applyprotection TYPE string VALUE 'applyProtection', + lc_xml_attr_applyfont TYPE string VALUE 'applyFont', + lc_xml_attr_applyfill TYPE string VALUE 'applyFill', + lc_xml_attr_applyborder TYPE string VALUE 'applyBorder', + lc_xml_attr_name TYPE string VALUE 'name', + lc_xml_attr_builtinid TYPE string VALUE 'builtinId', + lc_xml_attr_defaulttablestyle TYPE string VALUE 'defaultTableStyle', + lc_xml_attr_defaultpivotstyle TYPE string VALUE 'defaultPivotStyle', + lc_xml_attr_applyalignment TYPE string VALUE 'applyAlignment', + lc_xml_attr_horizontal TYPE string VALUE 'horizontal', + lc_xml_attr_formatcode TYPE string VALUE 'formatCode', + lc_xml_attr_vertical TYPE string VALUE 'vertical', + lc_xml_attr_wraptext TYPE string VALUE 'wrapText', + lc_xml_attr_textrotation TYPE string VALUE 'textRotation', + lc_xml_attr_shrinktofit TYPE string VALUE 'shrinkToFit', + lc_xml_attr_indent TYPE string VALUE 'indent', + lc_xml_attr_locked TYPE string VALUE 'locked', + lc_xml_attr_hidden TYPE string VALUE 'hidden', + lc_xml_attr_diagonalup TYPE string VALUE 'diagonalUp', + lc_xml_attr_diagonaldown TYPE string VALUE 'diagonalDown', + " Node namespace + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element_fonts TYPE REF TO if_ixml_element, + lo_element_font TYPE REF TO if_ixml_element, + lo_element_fills TYPE REF TO if_ixml_element, + lo_element_fill TYPE REF TO if_ixml_element, + lo_element_borders TYPE REF TO if_ixml_element, + lo_element_border TYPE REF TO if_ixml_element, + lo_element_numfmts TYPE REF TO if_ixml_element, + lo_element_numfmt TYPE REF TO if_ixml_element, + lo_element_cellxfs TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_sub_element TYPE REF TO if_ixml_element, + lo_sub_element_2 TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_iterator2 TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_conditional TYPE REF TO zcl_excel_style_conditional, + lo_style TYPE REF TO zcl_excel_style. + + + DATA: lt_fonts TYPE zexcel_t_style_font, + ls_font TYPE zexcel_s_style_font, + lt_fills TYPE zexcel_t_style_fill, + ls_fill TYPE zexcel_s_style_fill, + lt_borders TYPE zexcel_t_style_border, + ls_border TYPE zexcel_s_style_border, + lt_numfmts TYPE zexcel_t_style_numfmt, + ls_numfmt TYPE zexcel_s_style_numfmt, + lt_protections TYPE zexcel_t_style_protection, + ls_protection TYPE zexcel_s_style_protection, + lt_alignments TYPE zexcel_t_style_alignment, + ls_alignment TYPE zexcel_s_style_alignment, + lt_cellxfs TYPE zexcel_t_cellxfs, + ls_cellxfs TYPE zexcel_s_cellxfs, + ls_styles_mapping TYPE zexcel_s_styles_mapping, + ls_style_cond_mapping TYPE zexcel_s_styles_cond_mapping, + ls_cellis TYPE zexcel_conditional_cellis, + ls_expression TYPE zexcel_conditional_expression, + lt_colors TYPE zexcel_t_style_color_argb, + ls_color LIKE LINE OF lt_colors. + + DATA: lv_value TYPE string, + lv_dfx_count TYPE i, + lv_fonts_count TYPE i, + lv_fills_count TYPE i, + lv_borders_count TYPE i, + lv_cellxfs_count TYPE i, + lv_align_flag TYPE c. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +*********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_stylesheet + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + +********************************************************************** +* STEP 4: Create subnodes + + lo_element_fonts = lo_document->create_simple_element( name = lc_xml_node_fonts + parent = lo_document ). + + lo_element_fills = lo_document->create_simple_element( name = lc_xml_node_fills + parent = lo_document ). + + lo_element_borders = lo_document->create_simple_element( name = lc_xml_node_borders + parent = lo_document ). + + lo_element_cellxfs = lo_document->create_simple_element( name = lc_xml_node_cellxfs + parent = lo_document ). + + lo_element_numfmts = lo_document->create_simple_element( name = lc_xml_node_numfmts + parent = lo_document ). + + +* Compress styles + lo_iterator = excel->get_styles_iterator( ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_style ?= lo_iterator->if_object_collection_iterator~get_next( ). + ls_font = lo_style->font->get_structure( ). + ls_fill = lo_style->fill->get_structure( ). + ls_border = lo_style->borders->get_structure( ). + ls_alignment = lo_style->alignment->get_structure( ). + ls_protection = lo_style->protection->get_structure( ). + ls_numfmt = lo_style->number_format->get_structure( ). + + CLEAR ls_cellxfs. + + +* Compress fonts + READ TABLE lt_fonts FROM ls_font TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_cellxfs-fontid = sy-tabix. + ELSE. + APPEND ls_font TO lt_fonts. + DESCRIBE TABLE lt_fonts LINES ls_cellxfs-fontid. + ENDIF. + SUBTRACT 1 FROM ls_cellxfs-fontid. + +* Compress alignment + READ TABLE lt_alignments FROM ls_alignment TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_cellxfs-alignmentid = sy-tabix. + ELSE. + APPEND ls_alignment TO lt_alignments. + DESCRIBE TABLE lt_alignments LINES ls_cellxfs-alignmentid. + ENDIF. + SUBTRACT 1 FROM ls_cellxfs-alignmentid. + +* Compress fills + READ TABLE lt_fills FROM ls_fill TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_cellxfs-fillid = sy-tabix. + ELSE. + APPEND ls_fill TO lt_fills. + DESCRIBE TABLE lt_fills LINES ls_cellxfs-fillid. + ENDIF. + SUBTRACT 1 FROM ls_cellxfs-fillid. + +* Compress borders + READ TABLE lt_borders FROM ls_border TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_cellxfs-borderid = sy-tabix. + ELSE. + APPEND ls_border TO lt_borders. + DESCRIBE TABLE lt_borders LINES ls_cellxfs-borderid. + ENDIF. + SUBTRACT 1 FROM ls_cellxfs-borderid. + +* Compress protection + IF ls_protection-locked EQ c_on AND ls_protection-hidden EQ c_off. + ls_cellxfs-applyprotection = 0. + ELSE. + READ TABLE lt_protections FROM ls_protection TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_cellxfs-protectionid = sy-tabix. + ELSE. + APPEND ls_protection TO lt_protections. + DESCRIBE TABLE lt_protections LINES ls_cellxfs-protectionid. + ENDIF. + ls_cellxfs-applyprotection = 1. + ENDIF. + SUBTRACT 1 FROM ls_cellxfs-protectionid. + +* Compress number formats + + "----------- + IF ls_numfmt-numfmt NE zcl_excel_style_number_format=>c_format_date_std." and ls_numfmt-NUMFMT ne 'STD_NDEC'. " ALE Changes on going + "--- + IF ls_numfmt IS NOT INITIAL. + + READ TABLE lt_numfmts FROM ls_numfmt TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_cellxfs-numfmtid = sy-tabix. + ELSE. + APPEND ls_numfmt TO lt_numfmts. + DESCRIBE TABLE lt_numfmts LINES ls_cellxfs-numfmtid. + ENDIF. + ADD zcl_excel_common=>c_excel_numfmt_offset TO ls_cellxfs-numfmtid. " Add OXML offset for custom styles + ls_cellxfs-applynumberformat = 1. + ELSE. + ls_cellxfs-applynumberformat = 0. + ENDIF. + "----------- " ALE changes on going + ELSE. + ls_cellxfs-applynumberformat = 1. + IF ls_numfmt-numfmt EQ zcl_excel_style_number_format=>c_format_date_std. + ls_cellxfs-numfmtid = 14. +* elseif ls_numfmt-NUMFMT eq 'STD_NDEC'. +* ls_cellxfs-numfmtid = 2. + ENDIF. + ENDIF. + "--- + + IF ls_cellxfs-fontid NE 0. + ls_cellxfs-applyfont = 1. + ELSE. + ls_cellxfs-applyfont = 0. + ENDIF. + IF ls_cellxfs-alignmentid NE 0. + ls_cellxfs-applyalignment = 1. + ELSE. + ls_cellxfs-applyalignment = 0. + ENDIF. + IF ls_cellxfs-fillid NE 0. + ls_cellxfs-applyfill = 1. + ELSE. + ls_cellxfs-applyfill = 0. + ENDIF. + IF ls_cellxfs-borderid NE 0. + ls_cellxfs-applyborder = 1. + ELSE. + ls_cellxfs-applyborder = 0. + ENDIF. + +* Remap styles + READ TABLE lt_cellxfs FROM ls_cellxfs TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_styles_mapping-style = sy-tabix. + ELSE. + APPEND ls_cellxfs TO lt_cellxfs. + DESCRIBE TABLE lt_cellxfs LINES ls_styles_mapping-style. + ENDIF. + SUBTRACT 1 FROM ls_styles_mapping-style. + ls_styles_mapping-guid = lo_style->get_guid( ). + APPEND ls_styles_mapping TO me->styles_mapping. + ENDWHILE. + + " create numfmt elements + LOOP AT lt_numfmts INTO ls_numfmt. + lo_element_numfmt = lo_document->create_simple_element( name = lc_xml_node_numfmt + parent = lo_document ). + lv_value = sy-tabix + zcl_excel_common=>c_excel_numfmt_offset. + CONDENSE lv_value. + lo_element_numfmt->set_attribute_ns( name = lc_xml_attr_numfmtid + value = lv_value ). + lv_value = ls_numfmt-numfmt. +* REPLACE ALL OCCURRENCES OF '.' IN lv_value WITH '\.'. + lo_element_numfmt->set_attribute_ns( name = lc_xml_attr_formatcode + value = lv_value ). + lo_element_numfmts->append_child( new_child = lo_element_numfmt ). + ENDLOOP. + + " create font elements + LOOP AT lt_fonts INTO ls_font. + lo_element_font = lo_document->create_simple_element( name = lc_xml_node_font + parent = lo_document ). + IF ls_font-bold EQ abap_true. + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_b + parent = lo_document ). + lo_element_font->append_child( new_child = lo_sub_element ). + ENDIF. + IF ls_font-italic EQ abap_true. + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_i + parent = lo_document ). + lo_element_font->append_child( new_child = lo_sub_element ). + ENDIF. + IF ls_font-underline EQ abap_true. + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_u + parent = lo_document ). + lv_value = ls_font-underline_mode. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( new_child = lo_sub_element ). + ENDIF. + IF ls_font-strikethrough EQ abap_true. + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_strike + parent = lo_document ). + lo_element_font->append_child( new_child = lo_sub_element ). + ENDIF. + "size + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_sz + parent = lo_document ). + lv_value = ls_font-size. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( new_child = lo_sub_element ). + "color + create_xl_styles_color_node( + io_document = lo_document + io_parent = lo_element_font + is_color = ls_font-color ). + + "name + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_name + parent = lo_document ). + lv_value = ls_font-name. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( new_child = lo_sub_element ). + "family + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_family + parent = lo_document ). + lv_value = ls_font-family. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( new_child = lo_sub_element ). + "scheme + IF ls_font-scheme IS NOT INITIAL. + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_scheme + parent = lo_document ). + lv_value = ls_font-scheme. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( new_child = lo_sub_element ). + ENDIF. + lo_element_fonts->append_child( new_child = lo_element_font ). + ENDLOOP. + + " create fill elements + LOOP AT lt_fills INTO ls_fill. + lo_element_fill = lo_document->create_simple_element( name = lc_xml_node_fill + parent = lo_document ). + "pattern + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_patternfill + parent = lo_document ). + lv_value = ls_fill-filltype. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_patterntype + value = lv_value ). + " fgcolor + create_xl_styles_color_node( + io_document = lo_document + io_parent = lo_sub_element + is_color = ls_fill-fgcolor + iv_color_elem_name = lc_xml_node_fgcolor ). + + " bgcolor + create_xl_styles_color_node( + io_document = lo_document + io_parent = lo_sub_element + is_color = ls_fill-bgcolor + iv_color_elem_name = lc_xml_node_bgcolor ). + + lo_element_fill->append_child( new_child = lo_sub_element )."pattern + lo_element_fills->append_child( new_child = lo_element_fill ). + ENDLOOP. + + " create border elements + LOOP AT lt_borders INTO ls_border. + lo_element_border = lo_document->create_simple_element( name = lc_xml_node_border + parent = lo_document ). + + IF ls_border-diagonalup IS NOT INITIAL. + lv_value = ls_border-diagonalup. + CONDENSE lv_value. + lo_element_border->set_attribute_ns( name = lc_xml_attr_diagonalup + value = lv_value ). + ENDIF. + + IF ls_border-diagonaldown IS NOT INITIAL. + lv_value = ls_border-diagonaldown. + CONDENSE lv_value. + lo_element_border->set_attribute_ns( name = lc_xml_attr_diagonaldown + value = lv_value ). + ENDIF. + + "left + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_left + parent = lo_document ). + IF ls_border-left_style IS NOT INITIAL. + lv_value = ls_border-left_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + + create_xl_styles_color_node( + io_document = lo_document + io_parent = lo_sub_element + is_color = ls_border-left_color ). + + lo_element_border->append_child( new_child = lo_sub_element ). + + "right + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_right + parent = lo_document ). + IF ls_border-right_style IS NOT INITIAL. + lv_value = ls_border-right_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + + create_xl_styles_color_node( + io_document = lo_document + io_parent = lo_sub_element + is_color = ls_border-right_color ). + + lo_element_border->append_child( new_child = lo_sub_element ). + + "top + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_top + parent = lo_document ). + IF ls_border-top_style IS NOT INITIAL. + lv_value = ls_border-top_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + + create_xl_styles_color_node( + io_document = lo_document + io_parent = lo_sub_element + is_color = ls_border-top_color ). + + lo_element_border->append_child( new_child = lo_sub_element ). + + "bottom + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_bottom + parent = lo_document ). + IF ls_border-bottom_style IS NOT INITIAL. + lv_value = ls_border-bottom_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + + create_xl_styles_color_node( + io_document = lo_document + io_parent = lo_sub_element + is_color = ls_border-bottom_color ). + + lo_element_border->append_child( new_child = lo_sub_element ). + + "diagonal + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_diagonal + parent = lo_document ). + IF ls_border-diagonal_style IS NOT INITIAL. + lv_value = ls_border-diagonal_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + + create_xl_styles_color_node( + io_document = lo_document + io_parent = lo_sub_element + is_color = ls_border-diagonal_color ). + + lo_element_border->append_child( new_child = lo_sub_element ). + lo_element_borders->append_child( new_child = lo_element_border ). + ENDLOOP. + + " update attribute "count" + DESCRIBE TABLE lt_fonts LINES lv_fonts_count. + MOVE lv_fonts_count TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_fonts->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + DESCRIBE TABLE lt_fills LINES lv_fills_count. + MOVE lv_fills_count TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_fills->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + DESCRIBE TABLE lt_borders LINES lv_borders_count. + MOVE lv_borders_count TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_borders->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + DESCRIBE TABLE lt_cellxfs LINES lv_cellxfs_count. + MOVE lv_cellxfs_count TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_cellxfs->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + + " Append to root node + lo_element_root->append_child( new_child = lo_element_numfmts ). + lo_element_root->append_child( new_child = lo_element_fonts ). + lo_element_root->append_child( new_child = lo_element_fills ). + lo_element_root->append_child( new_child = lo_element_borders ). + + " cellstylexfs node + lo_element = lo_document->create_simple_element( name = lc_xml_node_cellstylexfs + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_count + value = '1' ). + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_xf + parent = lo_document ). + + lo_sub_element->set_attribute_ns( name = lc_xml_attr_numfmtid + value = c_off ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_fontid + value = c_off ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_fillid + value = c_off ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_borderid + value = c_off ). + + lo_element->append_child( new_child = lo_sub_element ). + lo_element_root->append_child( new_child = lo_element ). + + LOOP AT lt_cellxfs INTO ls_cellxfs. + lo_element = lo_document->create_simple_element( name = lc_xml_node_xf + parent = lo_document ). + MOVE ls_cellxfs-numfmtid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_numfmtid + value = lv_value ). + MOVE ls_cellxfs-fontid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_fontid + value = lv_value ). + MOVE ls_cellxfs-fillid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_fillid + value = lv_value ). + MOVE ls_cellxfs-borderid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_borderid + value = lv_value ). + MOVE ls_cellxfs-xfid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_xfid + value = lv_value ). + IF ls_cellxfs-applynumberformat EQ 1. + MOVE ls_cellxfs-applynumberformat TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_applynumberformat + value = lv_value ). + ENDIF. + IF ls_cellxfs-applyfont EQ 1. + MOVE ls_cellxfs-applyfont TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_applyfont + value = lv_value ). + ENDIF. + IF ls_cellxfs-applyfill EQ 1. + MOVE ls_cellxfs-applyfill TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_applyfill + value = lv_value ). + ENDIF. + IF ls_cellxfs-applyborder EQ 1. + MOVE ls_cellxfs-applyborder TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_applyborder + value = lv_value ). + ENDIF. + IF ls_cellxfs-applyalignment EQ 1. " depends on each style not for all the sheet + MOVE ls_cellxfs-applyalignment TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_applyalignment + value = lv_value ). + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_alignment + parent = lo_document ). + ADD 1 TO ls_cellxfs-alignmentid. "Table index starts from 1 + READ TABLE lt_alignments INTO ls_alignment INDEX ls_cellxfs-alignmentid. + SUBTRACT 1 FROM ls_cellxfs-alignmentid. + IF ls_alignment-horizontal IS NOT INITIAL. + MOVE ls_alignment-horizontal TO lv_value. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_horizontal + value = lv_value ). + ENDIF. + IF ls_alignment-vertical IS NOT INITIAL. + MOVE ls_alignment-vertical TO lv_value. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_vertical + value = lv_value ). + ENDIF. + IF ls_alignment-wraptext EQ abap_true. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_wraptext + value = c_on ). + ENDIF. + IF ls_alignment-textrotation IS NOT INITIAL. + MOVE ls_alignment-textrotation TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_textrotation + value = lv_value ). + ENDIF. + IF ls_alignment-shrinktofit EQ abap_true. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_shrinktofit + value = c_on ). + ENDIF. + IF ls_alignment-indent IS NOT INITIAL. + MOVE ls_alignment-indent TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_indent + value = lv_value ). + ENDIF. + + lo_element->append_child( new_child = lo_sub_element_2 ). + ENDIF. + IF ls_cellxfs-applyprotection EQ 1. + MOVE ls_cellxfs-applyprotection TO lv_value. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_applyprotection + value = lv_value ). + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_protection + parent = lo_document ). + ADD 1 TO ls_cellxfs-protectionid. "Table index starts from 1 + READ TABLE lt_protections INTO ls_protection INDEX ls_cellxfs-protectionid. + SUBTRACT 1 FROM ls_cellxfs-protectionid. + IF ls_protection-locked IS NOT INITIAL. + MOVE ls_protection-locked TO lv_value. + CONDENSE lv_value. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_locked + value = lv_value ). + ENDIF. + IF ls_protection-hidden IS NOT INITIAL. + MOVE ls_protection-hidden TO lv_value. + CONDENSE lv_value. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_hidden + value = lv_value ). + ENDIF. + lo_element->append_child( new_child = lo_sub_element_2 ). + ENDIF. + lo_element_cellxfs->append_child( new_child = lo_element ). + ENDLOOP. + + lo_element_root->append_child( new_child = lo_element_cellxfs ). + + " cellStyles node + lo_element = lo_document->create_simple_element( name = lc_xml_node_cellstyles + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_count + value = '1' ). + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_cellstyle + parent = lo_document ). + + lo_sub_element->set_attribute_ns( name = lc_xml_attr_name + value = 'Normal' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_xfid + value = c_off ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_builtinid + value = c_off ). + + lo_element->append_child( new_child = lo_sub_element ). + lo_element_root->append_child( new_child = lo_element ). + + " dxfs node + lo_element = lo_document->create_simple_element( name = lc_xml_node_dxfs + parent = lo_document ). + + lo_iterator = me->excel->get_worksheets_iterator( ). + " get sheets + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + " Conditional formatting styles into exch sheet + lo_iterator2 = lo_worksheet->get_cond_styles_iterator( ). + WHILE lo_iterator2->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_style_conditional ?= lo_iterator2->if_object_collection_iterator~get_next( ). + CASE lo_style_conditional->rule. + WHEN zcl_excel_style_conditional=>c_rule_cellis. + "if style defined + ls_cellis = lo_style_conditional->mode_cellis. + IF ls_cellis-cell_style IS INITIAL. + CONTINUE. + ENDIF. + READ TABLE me->styles_mapping INTO ls_styles_mapping WITH KEY guid = ls_cellis-cell_style. + ADD 1 TO ls_styles_mapping-style. " the numbering starts from 0 + READ TABLE lt_cellxfs INTO ls_cellxfs INDEX ls_styles_mapping-style. + ADD 1 TO ls_cellxfs-fillid. " the numbering starts from 0 + + " Style already mapped? + READ TABLE me->styles_cond_mapping INTO ls_style_cond_mapping WITH KEY style = ls_styles_mapping-style. + IF sy-subrc EQ 0. + ls_style_cond_mapping-guid = ls_cellis-cell_style. + APPEND ls_style_cond_mapping TO me->styles_cond_mapping. + ELSE. + ls_style_cond_mapping-guid = ls_cellis-cell_style. + ls_style_cond_mapping-style = ls_styles_mapping-style. + ls_style_cond_mapping-dxf = lv_dfx_count. + APPEND ls_style_cond_mapping TO me->styles_cond_mapping. + ADD 1 TO lv_dfx_count. + + " dxf node + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_dxf + parent = lo_document ). + + READ TABLE lt_fills INTO ls_fill INDEX ls_cellxfs-fillid. + IF ls_fill IS NOT INITIAL. + " fill properties + lo_element_fill = lo_document->create_simple_element( name = lc_xml_node_fill + parent = lo_document ). + "pattern + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_patternfill + parent = lo_document ). + lv_value = ls_fill-filltype. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_patterntype + value = lv_value ). + " fgcolor + create_xl_styles_color_node( + io_document = lo_document + io_parent = lo_sub_element_2 + is_color = ls_fill-fgcolor + iv_color_elem_name = lc_xml_node_fgcolor ). + + " bgcolor + create_xl_styles_color_node( + io_document = lo_document + io_parent = lo_sub_element_2 + is_color = ls_fill-bgcolor + iv_color_elem_name = lc_xml_node_bgcolor ). + + lo_element_fill->append_child( new_child = lo_sub_element_2 ). "pattern + + lo_sub_element->append_child( new_child = lo_element_fill ). + ENDIF. + ENDIF. + + lo_element->append_child( new_child = lo_sub_element ). + WHEN zcl_excel_style_conditional=>c_rule_expression. + "if style defined + ls_expression = lo_style_conditional->mode_expression. + IF ls_expression-cell_style IS INITIAL. + CONTINUE. + ENDIF. + READ TABLE me->styles_mapping INTO ls_styles_mapping WITH KEY guid = ls_expression-cell_style. + ADD 1 TO ls_styles_mapping-style. " the numbering starts from 0 + READ TABLE lt_cellxfs INTO ls_cellxfs INDEX ls_styles_mapping-style. + ADD 1 TO ls_cellxfs-fillid. " the numbering starts from 0 + + READ TABLE me->styles_cond_mapping INTO ls_style_cond_mapping WITH KEY style = ls_styles_mapping-style. + IF sy-subrc EQ 0. + ls_style_cond_mapping-guid = ls_expression-cell_style. + APPEND ls_style_cond_mapping TO me->styles_cond_mapping. + ELSE. + ls_style_cond_mapping-guid = ls_expression-cell_style. + ls_style_cond_mapping-style = ls_styles_mapping-style. + ls_style_cond_mapping-dxf = lv_dfx_count. + APPEND ls_style_cond_mapping TO me->styles_cond_mapping. + ADD 1 TO lv_dfx_count. + + " dxf node + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_dxf + parent = lo_document ). + + READ TABLE lt_fills INTO ls_fill INDEX ls_cellxfs-fillid. + IF ls_fill IS NOT INITIAL. + " fill properties + lo_element_fill = lo_document->create_simple_element( name = lc_xml_node_fill + parent = lo_document ). + "pattern + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_patternfill + parent = lo_document ). + lv_value = ls_fill-filltype. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_patterntype + value = lv_value ). + " fgcolor + create_xl_styles_color_node( + io_document = lo_document + io_parent = lo_sub_element_2 + is_color = ls_fill-fgcolor + iv_color_elem_name = lc_xml_node_fgcolor ). + + " bgcolor + create_xl_styles_color_node( + io_document = lo_document + io_parent = lo_sub_element_2 + is_color = ls_fill-bgcolor + iv_color_elem_name = lc_xml_node_bgcolor ). + + lo_element_fill->append_child( new_child = lo_sub_element_2 ). "pattern + + lo_sub_element->append_child( new_child = lo_element_fill ). + ENDIF. + ENDIF. + + lo_element->append_child( new_child = lo_sub_element ). + WHEN OTHERS. + CONTINUE. + ENDCASE. + ENDWHILE. + ENDWHILE. + + lv_value = lv_dfx_count. + CONDENSE lv_value. + lo_element->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + + " tableStyles node + lo_element = lo_document->create_simple_element( name = lc_xml_node_tablestyles + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_count + value = '0' ). + lo_element->set_attribute_ns( name = lc_xml_attr_defaulttablestyle + value = zcl_excel_table=>builtinstyle_medium9 ). + lo_element->set_attribute_ns( name = lc_xml_attr_defaultpivotstyle + value = zcl_excel_table=>builtinstyle_pivot_light16 ). + lo_element_root->append_child( new_child = lo_element ). + + "write legacy color palette in case any indexed color was changed + IF excel->legacy_palette->is_modified( ) = abap_true. + lo_element = lo_document->create_simple_element( name = lc_xml_node_colors + parent = lo_document ). + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_indexedcolors + parent = lo_document ). + lo_element->append_child( new_child = lo_sub_element ). + + lt_colors = excel->legacy_palette->get_colors( ). + LOOP AT lt_colors INTO ls_color. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_rgbcolor + parent = lo_document ). + lv_value = ls_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( new_child = lo_sub_element_2 ). + ENDLOOP. + + lo_element_root->append_child( new_child = lo_element ). + ENDIF. + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + + + + method CREATE_XL_STYLES_COLOR_NODE. + DATA: lo_sub_element TYPE REF TO if_ixml_element, + lv_value TYPE string. + + CONSTANTS: lc_xml_attr_theme TYPE string VALUE 'theme', + lc_xml_attr_rgb TYPE string VALUE 'rgb', + lc_xml_attr_indexed TYPE string VALUE 'indexed', + lc_xml_attr_tint TYPE string VALUE 'tint'. + +"add node only if at least one attribute is set + CHECK is_color-rgb IS NOT INITIAL OR + is_color-indexed <> zcl_excel_style_color=>c_indexed_not_set OR + is_color-theme <> zcl_excel_style_color=>c_theme_not_set OR + is_color-tint IS NOT INITIAL. + + lo_sub_element = io_document->create_simple_element( + name = iv_color_elem_name + parent = io_parent ). + + IF is_color-rgb IS NOT INITIAL. + lv_value = is_color-rgb. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + ENDIF. + + IF is_color-indexed <> zcl_excel_style_color=>c_indexed_not_set. + lv_value = zcl_excel_common=>number_to_excel_string( is_color-indexed ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_indexed + value = lv_value ). + ENDIF. + + IF is_color-theme <> zcl_excel_style_color=>c_theme_not_set. + lv_value = zcl_excel_common=>number_to_excel_string( is_color-theme ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_theme + value = lv_value ). + ENDIF. + + IF is_color-tint IS NOT INITIAL. + lv_value = zcl_excel_common=>number_to_excel_string( is_color-tint ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_tint + value = lv_value ). + ENDIF. + + io_parent->append_child( new_child = lo_sub_element ). +endmethod. + + + + + METHOD create_xl_table. + + DATA: lc_xml_node_table TYPE string VALUE 'table', + lc_xml_node_relationship TYPE string VALUE 'Relationship', + " Node attributes + lc_xml_attr_id TYPE string VALUE 'id', + lc_xml_attr_name TYPE string VALUE 'name', + lc_xml_attr_display_name TYPE string VALUE 'displayName', + lc_xml_attr_ref TYPE string VALUE 'ref', + lc_xml_attr_totals TYPE string VALUE 'totalsRowShown', + " Node namespace + lc_xml_node_table_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main', + " Node id + lc_xml_node_ridx_id TYPE string VALUE 'rId#'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_element2 TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + + lv_table_name TYPE string, + lv_id TYPE i, + lv_match TYPE i, + lv_syindex TYPE char3, + lv_ref TYPE string, + lv_value TYPE string, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lv_num_columns TYPE i, + ls_fieldcat TYPE zexcel_s_fieldcatalog. + + +********************************************************************** +* STEP 1: Create xml + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node table + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_table + parent = lo_document ). + + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_table_ns ). + + lv_id = io_table->get_id( ). + lv_value = zcl_excel_common=>number_to_excel_string( ip_value = lv_id ). + lo_element_root->set_attribute_ns( name = lc_xml_attr_id + value = lv_value ). + + FIND ALL OCCURRENCES OF REGEX '[^_a-zA-Z0-9]' IN io_table->settings-table_name IGNORING CASE MATCH COUNT lv_match. + IF io_table->settings-table_name IS NOT INITIAL AND lv_match EQ 0. + lv_table_name = io_table->settings-table_name. + ELSE. + lv_table_name = io_table->get_name( ). + ENDIF. + lo_element_root->set_attribute_ns( name = lc_xml_attr_name + value = lv_table_name ). + + lo_element_root->set_attribute_ns( name = lc_xml_attr_display_name + value = lv_table_name ). + + lv_ref = io_table->get_reference( ). + lo_element_root->set_attribute_ns( name = lc_xml_attr_ref + value = lv_ref ). + IF io_table->has_totals( ) = abap_true. + lo_element_root->set_attribute_ns( name = 'totalsRowCount' + value = '1' ). + ELSE. + lo_element_root->set_attribute_ns( name = lc_xml_attr_totals + value = '0' ). + ENDIF. + +********************************************************************** +* STEP 4: Create subnodes + + " autoFilter + lo_element = lo_document->create_simple_element( name = 'autoFilter' + parent = lo_document ). + + lv_ref = io_table->get_reference( ip_include_totals_row = abap_false ). + lo_element->set_attribute_ns( name = 'ref' + value = lv_ref ). + + lo_element_root->append_child( new_child = lo_element ). + + "columns + lo_element = lo_document->create_simple_element( name = 'tableColumns' + parent = lo_document ). + +* lo_columns = io_table->get_columns( ). + LOOP AT io_table->fieldcat INTO ls_fieldcat WHERE dynpfld = abap_true. + ADD 1 TO lv_num_columns. + ENDLOOP. + + lv_value = lv_num_columns. + CONDENSE lv_value. + lo_element->set_attribute_ns( name = 'count' + value = lv_value ). + + lo_element_root->append_child( new_child = lo_element ). + + LOOP AT io_table->fieldcat INTO ls_fieldcat WHERE dynpfld = abap_true. + lo_element2 = lo_document->create_simple_element_ns( name = 'tableColumn' + parent = lo_element ). + + lv_value = ls_fieldcat-position. + SHIFT lv_value LEFT DELETING LEADING '0'. + lo_element2->set_attribute_ns( name = 'id' + value = lv_value ). + lv_value = ls_fieldcat-scrtext_l. + lo_element2->set_attribute_ns( name = 'name' + value = lv_value ). + + IF ls_fieldcat-totals_function IS NOT INITIAL. + lo_element2->set_attribute_ns( name = 'totalsRowFunction' + value = ls_fieldcat-totals_function ). + ENDIF. + + lo_element->append_child( new_child = lo_element2 ). + ENDLOOP. + + + lo_element = lo_document->create_simple_element( name = 'tableStyleInfo' + parent = lo_element_root ). + + lo_element->set_attribute_ns( name = 'name' + value = io_table->settings-table_style ). + + lo_element->set_attribute_ns( name = 'showFirstColumn' + value = '0' ). + + lo_element->set_attribute_ns( name = 'showLastColumn' + value = '0' ). + + IF io_table->settings-show_row_stripes = abap_true. + lv_value = '1'. + ELSE. + lv_value = '0'. + ENDIF. + + lo_element->set_attribute_ns( name = 'showRowStripes' + value = lv_value ). + + IF io_table->settings-show_column_stripes = abap_true. + lv_value = '1'. + ELSE. + lv_value = '0'. + ENDIF. + + lo_element->set_attribute_ns( name = 'showColumnStripes' + value = lv_value ). + + lo_element_root->append_child( new_child = lo_element ). +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + method CREATE_XL_THEME. + + +* @TODO * + + DATA: lv_xl_theme TYPE string, + lv_xl_theme_01 TYPE string, + lv_xl_theme_02 TYPE string, + lv_xl_theme_03 TYPE string, + lv_xl_theme_04 TYPE string, + lv_xl_theme_05 TYPE string, + lv_xl_theme_06 TYPE string, + lv_xl_theme_07 TYPE string, + lv_xl_theme_08 TYPE string, + lv_xl_theme_09 TYPE string, + lv_xl_theme_10 TYPE string, + lv_xl_theme_11 TYPE string, + lv_xl_theme_12 TYPE string, + lv_xl_theme_13 TYPE string, + lv_xl_theme_14 TYPE string, + lv_xl_theme_15 TYPE string, + lv_xl_theme_16 TYPE string, + lv_xl_theme_17 TYPE string, + lv_xl_theme_18 TYPE string, + lv_xl_theme_19 TYPE string, + lv_xl_theme_20 TYPE string, + lv_xl_theme_21 TYPE string, + lv_xl_theme_22 TYPE string, + lv_xl_theme_23 TYPE string, + lv_xl_theme_24 TYPE string, + lv_xl_theme_25 TYPE string, + lv_xl_theme_26 TYPE string, + lv_xl_theme_27 TYPE string, + lv_xl_theme_28 TYPE string, + lv_xl_theme_29 TYPE string, + lv_xl_theme_30 TYPE string, + lv_xl_theme_31 TYPE string, + lv_xl_theme_32 TYPE string. + + lv_xl_theme_01 = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'. + lv_xl_theme_02 = '<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme"><a:themeElements><a:clrScheme name="Office"><a:dk1><a:sysClr val="windowText" lastClr="000000"/></a:dk1><a:lt1><a:sysClr val="window" '. + lv_xl_theme_03 = 'lastClr="FFFFFF"/></a:lt1><a:dk2><a:srgbClr val="1F497D"/></a:dk2><a:lt2><a:srgbClr val="EEECE1"/></a:lt2><a:accent1><a:srgbClr val="4F81BD"/></a:accent1><a:accent2><a:srgbClr val="C0504D"/></a:accent2><a:accent3><a:srgbClr '. + lv_xl_theme_04 = 'val="9BBB59"/></a:accent3><a:accent4><a:srgbClr val="8064A2"/></a:accent4><a:accent5><a:srgbClr val="4BACC6"/></a:accent5><a:accent6><a:srgbClr val="F79646"/></a:accent6><a:hlink><a:srgbClr val="0000FF"/></a:hlink><a:folHlink>'. + lv_xl_theme_05 = '<a:srgbClr val="800080"/></a:folHlink></a:clrScheme><a:fontScheme name="Office"><a:majorFont><a:latin typeface="Cambria"/><a:ea typeface=""/><a:cs typeface=""/>'. + lv_xl_theme_06 = '<a:font script="Arab" typeface="Times New Roman"/><a:font script="Hebr" typeface="Times New Roman"/><a:font script="Thai" '. + lv_xl_theme_07 = 'typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="MoolBoran"/><a:font script="Knda" typeface="Tunga"/><a:font '. + lv_xl_theme_08 = 'script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font script="Tibt" '. + lv_xl_theme_09 = 'typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" '. + lv_xl_theme_10 = 'typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" '. + lv_xl_theme_11 = 'typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Times New Roman"/><a:font script="Uigh" typeface="Microsoft Uighur"/></a:majorFont><a:minorFont><a:latin typeface="Calibri"/><a:ea typeface=""/><a:cs typeface=""/>'. + lv_xl_theme_12 = '<a:font script="Arab" typeface="Arial"/><a:font script="Hebr" '. + lv_xl_theme_13 = 'typeface="Arial"/><a:font script="Thai" typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="DaunPenh"/><a:font '. + lv_xl_theme_14 = 'script="Knda" typeface="Tunga"/><a:font script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font '. + lv_xl_theme_15 = 'script="Tibt" typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" '. + lv_xl_theme_16 = 'typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" '. + lv_xl_theme_17 = 'typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Arial"/><a:font script="Uigh" typeface="Microsoft Uighur"/></a:minorFont></a:fontScheme><a:fmtScheme name="Office"><a:fillStyleLst><a:solidFill><a:schemeClr val="phClr"/>'. + lv_xl_theme_18 = '</a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="50000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="35000"><a:schemeClr val="phClr"><a:tint val="37000"/><a:satMod '. + lv_xl_theme_19 = 'val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="15000"/><a:satMod val="350000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="1"/></a:gradFill><a:gradFill rotWithShape="1">'. + lv_xl_theme_20 = '<a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:shade val="51000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs pos="80000"><a:schemeClr val="phClr"><a:shade val="93000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs '. + lv_xl_theme_21 = 'pos="100000"><a:schemeClr val="phClr"><a:shade val="94000"/><a:satMod val="135000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="0"/></a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w="9525" cap="flat" cmpd="sng" '. + lv_xl_theme_22 = 'algn="ctr"><a:solidFill><a:schemeClr val="phClr"><a:shade val="95000"/><a:satMod val="105000"/></a:schemeClr></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="25400" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr '. + lv_xl_theme_23 = 'val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="38100" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln></a:lnStyleLst><a:effectStyleLst>'. + lv_xl_theme_24 = '<a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" dist="20000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="38000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst>'. + lv_xl_theme_25 = '<a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" '. + lv_xl_theme_26 = 'dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst><a:scene3d><a:camera prst="orthographicFront"><a:rot lat="0" lon="0" rev="0"/></a:camera><a:lightRig '. + lv_xl_theme_27 = 'rig="threePt" dir="t"><a:rot lat="0" lon="0" rev="1200000"/></a:lightRig></a:scene3d><a:sp3d><a:bevelT w="63500" h="25400"/></a:sp3d></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val="phClr"/>'. + lv_xl_theme_28 = '</a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="40000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="40000"><a:schemeClr val="phClr"><a:tint val="45000"/><a:shade '. + lv_xl_theme_29 = 'val="99000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="20000"/><a:satMod val="255000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" '. + lv_xl_theme_30 = 't="-80000" r="50000" b="180000"/></a:path></a:gradFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="80000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr '. + lv_xl_theme_31 = 'val="phClr"><a:shade val="30000"/><a:satMod val="200000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" t="50000" r="50000" b="50000"/></a:path></a:gradFill></a:bgFillStyleLst></a:fmtScheme>'. + lv_xl_theme_32 = '</a:themeElements><a:objectDefaults/><a:extraClrSchemeLst/></a:theme>'. + + + CONCATENATE lv_xl_theme_01 lv_xl_theme_02 lv_xl_theme_03 lv_xl_theme_04 lv_xl_theme_05 lv_xl_theme_06 lv_xl_theme_07 lv_xl_theme_08 lv_xl_theme_09 lv_xl_theme_10 lv_xl_theme_11 lv_xl_theme_12 lv_xl_theme_13 lv_xl_theme_14 lv_xl_theme_15 + lv_xl_theme_16 lv_xl_theme_17 lv_xl_theme_18 lv_xl_theme_19 lv_xl_theme_20 lv_xl_theme_21 lv_xl_theme_22 lv_xl_theme_23 lv_xl_theme_24 lv_xl_theme_25 lv_xl_theme_26 lv_xl_theme_27 lv_xl_theme_28 lv_xl_theme_29 lv_xl_theme_30 + lv_xl_theme_31 lv_xl_theme_32 + INTO lv_xl_theme SEPARATED BY space. + + CALL FUNCTION 'SCMS_STRING_TO_XSTRING' + EXPORTING + text = lv_xl_theme + IMPORTING + buffer = ep_content. + + +endmethod. + + + + method CREATE_XL_WORKBOOK. +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (done) 2012-11-07 +* - ... +* changes: aligning code +* adding comments to explain what we are trying to achieve +*--------------------------------------------------------------------* +* issue#235 - repeat rows/columns +* - Stefan Schmöcker, 2012-12-01 +* changes: correction of pointer to localSheetId +*--------------------------------------------------------------------* + +** Constant node name + DATA: lc_xml_node_workbook TYPE string VALUE 'workbook', + lc_xml_node_fileversion TYPE string VALUE 'fileVersion', + lc_xml_node_workbookpr TYPE string VALUE 'workbookPr', + lc_xml_node_bookviews TYPE string VALUE 'bookViews', + lc_xml_node_workbookview TYPE string VALUE 'workbookView', + lc_xml_node_sheets TYPE string VALUE 'sheets', + lc_xml_node_sheet TYPE string VALUE 'sheet', + lc_xml_node_calcpr TYPE string VALUE 'calcPr', + lc_xml_node_workbookprotection TYPE string VALUE 'workbookProtection', + lc_xml_node_definednames TYPE string VALUE 'definedNames', + lc_xml_node_definedname TYPE string VALUE 'definedName', + " Node attributes + lc_xml_attr_appname TYPE string VALUE 'appName', + lc_xml_attr_lastedited TYPE string VALUE 'lastEdited', + lc_xml_attr_lowestedited TYPE string VALUE 'lowestEdited', + lc_xml_attr_rupbuild TYPE string VALUE 'rupBuild', + lc_xml_attr_themeversion TYPE string VALUE 'defaultThemeVersion', + lc_xml_attr_xwindow TYPE string VALUE 'xWindow', + lc_xml_attr_ywindow TYPE string VALUE 'yWindow', + lc_xml_attr_windowwidth TYPE string VALUE 'windowWidth', + lc_xml_attr_windowheight TYPE string VALUE 'windowHeight', + lc_xml_attr_activetab TYPE string VALUE 'activeTab', + lc_xml_attr_name TYPE string VALUE 'name', + lc_xml_attr_sheetid TYPE string VALUE 'sheetId', + lc_xml_attr_state TYPE string VALUE 'state', + lc_xml_attr_id TYPE string VALUE 'id', + lc_xml_attr_calcid TYPE string VALUE 'calcId', + lc_xml_attr_lockrevision TYPE string VALUE 'lockRevision', + lc_xml_attr_lockstructure TYPE string VALUE 'lockStructure', + lc_xml_attr_lockwindows TYPE string VALUE 'lockWindows', + lc_xml_attr_revisionspassword TYPE string VALUE 'revisionsPassword', + lc_xml_attr_workbookpassword TYPE string VALUE 'workbookPassword', + lc_xml_attr_hidden TYPE string VALUE 'hidden', + lc_xml_attr_localsheetid TYPE string VALUE 'localSheetId', + " Node namespace + lc_r_ns TYPE string VALUE 'r', + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main', + lc_xml_node_r_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships', + " Node id + lc_xml_node_ridx_id TYPE string VALUE 'rId#'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_element_range TYPE REF TO if_ixml_element, + lo_sub_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_iterator_range TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_range TYPE REF TO zcl_excel_range, + lo_autofilters TYPE REF TO zcl_excel_autofilters, + lo_autofilter TYPE REF TO zcl_excel_autofilter. + + DATA: lv_xml_node_ridx_id TYPE string, + lv_value TYPE string, + lv_syindex TYPE string, + l_guid TYPE uuid, + lv_active_sheet TYPE zexcel_active_worksheet. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_workbook + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:r' + value = lc_xml_node_r_ns ). + +********************************************************************** +* STEP 4: Create subnode + " fileVersion node + lo_element = lo_document->create_simple_element( name = lc_xml_node_fileversion + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_appname + value = 'xl' ). + lo_element->set_attribute_ns( name = lc_xml_attr_lastedited + value = '4' ). + lo_element->set_attribute_ns( name = lc_xml_attr_lowestedited + value = '4' ). + lo_element->set_attribute_ns( name = lc_xml_attr_rupbuild + value = '4506' ). + lo_element_root->append_child( new_child = lo_element ). + + " fileVersion node + lo_element = lo_document->create_simple_element( name = lc_xml_node_workbookpr + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_themeversion + value = '124226' ). + lo_element_root->append_child( new_child = lo_element ). + + " workbookProtection node + IF me->excel->zif_excel_book_protection~protected EQ abap_true. + lo_element = lo_document->create_simple_element( name = lc_xml_node_workbookprotection + parent = lo_document ). + MOVE me->excel->zif_excel_book_protection~workbookpassword TO lv_value. + IF lv_value IS NOT INITIAL. + lo_element->set_attribute_ns( name = lc_xml_attr_workbookpassword + value = lv_value ). + ENDIF. + MOVE me->excel->zif_excel_book_protection~revisionspassword TO lv_value. + IF lv_value IS NOT INITIAL. + lo_element->set_attribute_ns( name = lc_xml_attr_revisionspassword + value = lv_value ). + ENDIF. + MOVE me->excel->zif_excel_book_protection~lockrevision TO lv_value. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_lockrevision + value = lv_value ). + MOVE me->excel->zif_excel_book_protection~lockstructure TO lv_value. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_lockstructure + value = lv_value ). + MOVE me->excel->zif_excel_book_protection~lockwindows TO lv_value. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_lockwindows + value = lv_value ). + lo_element_root->append_child( new_child = lo_element ). + ENDIF. + + " bookviews node + lo_element = lo_document->create_simple_element( name = lc_xml_node_bookviews + parent = lo_document ). + " bookview node + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_workbookview + parent = lo_document ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_xwindow + value = '120' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_ywindow + value = '120' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_windowwidth + value = '19035' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_windowheight + value = '8445' ). + " Set Active Sheet + lv_active_sheet = excel->get_active_sheet_index( ). + IF lv_active_sheet > 1. + lv_active_sheet = lv_active_sheet - 1. + lv_value = lv_active_sheet. + CONDENSE lv_value. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_activetab + value = lv_value ). + ENDIF. + lo_element->append_child( new_child = lo_sub_element )." bookview node + lo_element_root->append_child( new_child = lo_element )." bookviews node + + " sheets node + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheets + parent = lo_document ). + lo_iterator = excel->get_worksheets_iterator( ). + + " ranges node + lo_element_range = lo_document->create_simple_element( name = lc_xml_node_definednames " issue 163 + + parent = lo_document ). " issue 163 + + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + " sheet node + lo_sub_element = lo_document->create_simple_element_ns( name = lc_xml_node_sheet + parent = lo_document ). + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + lv_syindex = sy-index. " question by Stefan Schmöcker 2012-12-02: sy-index seems to do the job - but is it proven to work or purely coincedence + lv_value = lo_worksheet->get_title( ). + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_name + value = lv_value ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_sheetid + value = lv_syindex ). + IF lo_worksheet->zif_excel_sheet_properties~hidden EQ zif_excel_sheet_properties=>c_hidden. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_state + value = 'hidden' ). + ELSEIF lo_worksheet->zif_excel_sheet_properties~hidden EQ zif_excel_sheet_properties=>c_veryhidden. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_state + value = 'veryHidden' ). + ENDIF. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_id + prefix = lc_r_ns + value = lv_xml_node_ridx_id ). + lo_element->append_child( new_child = lo_sub_element ). " sheet node + + " issue 163 >>> + lo_iterator_range = lo_worksheet->get_ranges_iterator( ). + +*--------------------------------------------------------------------* +* Defined names sheetlocal: Ranges, Repeat rows and columns +*--------------------------------------------------------------------* + WHILE lo_iterator_range->if_object_collection_iterator~has_next( ) EQ abap_true. + " range node + lo_sub_element = lo_document->create_simple_element_ns( name = lc_xml_node_definedname + parent = lo_document ). + lo_range ?= lo_iterator_range->if_object_collection_iterator~get_next( ). + lv_value = lo_range->name. + + lo_sub_element->set_attribute_ns( name = lc_xml_attr_name + value = lv_value ). + +* lo_sub_element->set_attribute_ns( name = lc_xml_attr_localsheetid "del #235 Repeat rows/cols - EXCEL starts couting from zero +* value = lv_xml_node_ridx_id ). "del #235 Repeat rows/cols - and needs absolute referencing to localSheetId + lv_value = lv_syindex - 1. "ins #235 Repeat rows/cols + CONDENSE lv_value NO-GAPS. "ins #235 Repeat rows/cols + lo_sub_element->set_attribute_ns( name = lc_xml_attr_localsheetid + value = lv_value ). + + lv_value = lo_range->get_value( ). + lo_sub_element->set_value( value = lv_value ). + lo_element_range->append_child( new_child = lo_sub_element ). " range node + + ENDWHILE. + " issue 163 <<< + + ENDWHILE. + lo_element_root->append_child( new_child = lo_element )." sheets node + + +*--------------------------------------------------------------------* +* Defined names workbookgolbal: Ranges +*--------------------------------------------------------------------* +* " ranges node +* lo_element = lo_document->create_simple_element( name = lc_xml_node_definednames " issue 163 - +* parent = lo_document ). " issue 163 - + lo_iterator = excel->get_ranges_iterator( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + " range node + lo_sub_element = lo_document->create_simple_element_ns( name = lc_xml_node_definedname + parent = lo_document ). + lo_range ?= lo_iterator->if_object_collection_iterator~get_next( ). + lv_value = lo_range->name. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_name + value = lv_value ). + lv_value = lo_range->get_value( ). + lo_sub_element->set_value( value = lv_value ). + lo_element_range->append_child( new_child = lo_sub_element ). " range node + + ENDWHILE. + +*--------------------------------------------------------------------* +* Defined names - Autofilters ( also sheetlocal ) +*--------------------------------------------------------------------* + lo_autofilters = excel->get_autofilters_reference( ). + IF lo_autofilters->is_empty( ) = abap_false. + lo_iterator = excel->get_worksheets_iterator( ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + lv_syindex = sy-index - 1 . + l_guid = lo_worksheet->get_guid( ). + lo_autofilter = lo_autofilters->get( i_sheet_guid = l_guid ) . + IF lo_autofilter IS BOUND. + lo_sub_element = lo_document->create_simple_element_ns( name = lc_xml_node_definedname + parent = lo_document ). + lv_value = lo_autofilters->c_autofilter. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_name + value = lv_value ). + lv_value = lv_syindex. + CONDENSE lv_value NO-GAPS. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_localsheetid + value = lv_value ). + lv_value = '1'. " Always hidden + lo_sub_element->set_attribute_ns( name = lc_xml_attr_hidden + value = lv_value ). + lv_value = lo_autofilter->get_filter_reference( ). + lo_sub_element->set_value( value = lv_value ). + lo_element_range->append_child( new_child = lo_sub_element ). " range node + ENDIF. + + ENDWHILE. + ENDIF. + lo_element_root->append_child( new_child = lo_element_range ). " ranges node + + + " calcPr node + lo_element = lo_document->create_simple_element( name = lc_xml_node_calcpr + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_calcid + value = '125725' ). + lo_element_root->append_child( new_child = lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + + method FLAG2BOOL. + + + IF ip_flag EQ abap_true. + ep_boolean = 'true'. + ELSE. + ep_boolean = 'false'. + ENDIF. +endmethod. + + + + + method GET_SHARED_STRING_INDEX. + + + DATA ls_shared_string TYPE zexcel_s_shared_string. + + READ TABLE shared_strings INTO ls_shared_string WITH KEY string_value = ip_cell_value BINARY SEARCH. + ep_index = ls_shared_string-string_no. + +endmethod. + + + + + *"* 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 + + + + + + + + method ZIF_EXCEL_WRITER~WRITE_FILE. + me->excel = io_excel. + ep_file = me->create( ). +endmethod. + + + + method CREATE. + +* .csv format with ; delimiter + + ep_excel = me->CREATE_CSV( ). + +endmethod. + + + + method CREATE_CSV. + + TYPES: BEGIN OF lty_format, + cmpname TYPE SEOCMPNAME, + attvalue TYPE SEOVALUE, + END OF lty_format. + DATA: lt_format TYPE STANDARD TABLE OF lty_format, + ls_format LIKE LINE OF lt_format, + lv_date TYPE DATS, + lv_tmp TYPE string, + lv_time TYPE CHAR08. + + DATA: lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + + DATA: lt_cell_data TYPE zexcel_t_cell_data_unsorted, + lv_row TYPE sytabix, + lv_col TYPE sytabix, + lv_string TYPE string, + lc_value TYPE string, + lv_attrname TYPE SEOCMPNAME. + + DATA: ls_numfmt TYPE zexcel_s_style_numfmt, + lo_style TYPE REF TO zcl_excel_style. + + FIELD-SYMBOLS: <fs_sheet_content> TYPE zexcel_s_cell_data. + +* --- Retrieve supported cell format + REFRESH lt_format. + SELECT * INTO CORRESPONDING FIELDS OF TABLE lt_format + FROM seocompodf + WHERE clsname = 'ZCL_EXCEL_STYLE_NUMBER_FORMAT' + AND typtype = 1 + AND type = 'ZEXCEL_NUMBER_FORMAT'. + +* --- Retrieve SAP date format + CLEAR ls_format. + SELECT ddtext INTO ls_format-attvalue FROM dd07t WHERE domname = 'XUDATFM' + AND ddlanguage = sy-langu. + ls_format-cmpname = 'DATE'. + CONDENSE ls_format-attvalue. + CONCATENATE '''' ls_format-attvalue '''' INTO ls_format-attvalue. + APPEND ls_format TO lt_format. + ENDSELECT. + + + LOOP AT lt_format INTO ls_format. + TRANSLATE ls_format-attvalue TO UPPER CASE. + MODIFY lt_format FROM ls_format. + ENDLOOP. + + +* STEP 1: Collect strings from the first worksheet + lo_iterator = excel->get_worksheets_iterator( ). + data: current_worksheet_title type ZEXCEL_SHEET_TITLE. + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + + IF worksheet_name IS NOT INITIAL. + current_worksheet_title = lo_worksheet->get_title( ). + CHECK current_worksheet_title = worksheet_name. + ELSE. + IF worksheet_index IS INITIAL. + worksheet_index = 1. + ENDIF. + CHECK worksheet_index = sy-index. + ENDIF. + APPEND LINES OF lo_worksheet->sheet_content TO lt_cell_data. + EXIT. " Take first worksheet only + ENDWHILE. + + DELETE lt_cell_data WHERE cell_formula IS NOT INITIAL. " delete formula content + + SORT lt_cell_data BY cell_row + cell_column. + lv_row = 1. + lv_col = 1. + CLEAR lv_string. + LOOP AT lt_cell_data ASSIGNING <fs_sheet_content>. + +* --- Retrieve Cell Style format and data type + CLEAR ls_numfmt. + IF <fs_sheet_content>-data_type IS INITIAL AND <fs_sheet_content>-cell_style IS NOT INITIAL. + lo_iterator = excel->get_styles_iterator( ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_style ?= lo_iterator->if_object_collection_iterator~get_next( ). + CHECK lo_style->get_guid( ) = <fs_sheet_content>-cell_style. + ls_numfmt = lo_style->number_format->get_structure( ). + EXIT. + ENDWHILE. + ENDIF. + IF <fs_sheet_content>-data_type IS INITIAL AND ls_numfmt IS NOT INITIAL. + " determine data-type + CLEAR lv_attrname. + CONCATENATE '''' ls_numfmt-NUMFMT '''' INTO ls_numfmt-NUMFMT. + TRANSLATE ls_numfmt-numfmt TO UPPER CASE. + READ TABLE lt_format INTO ls_format WITH KEY attvalue = ls_numfmt-NUMFMT. + IF sy-subrc = 0. + lv_attrname = ls_format-cmpname. + ENDIF. + + IF lv_attrname IS NOT INITIAL. + FIND FIRST OCCURRENCE OF 'DATETIME' IN lv_attrname. + IF sy-subrc = 0. + <fs_sheet_content>-data_type = 'd'. + ELSE. + FIND FIRST OCCURRENCE OF 'TIME' IN lv_attrname. + IF sy-subrc = 0. + <fs_sheet_content>-data_type = 't'. + ELSE. + FIND FIRST OCCURRENCE OF 'DATE' IN lv_attrname. + IF sy-subrc = 0. + <fs_sheet_content>-data_type = 'd'. + ELSE. + FIND FIRST OCCURRENCE OF 'CURRENCY' IN lv_attrname. + IF sy-subrc = 0. + <fs_sheet_content>-data_type = 'n'. + ELSE. + FIND FIRST OCCURRENCE OF 'NUMBER' IN lv_attrname. + IF sy-subrc = 0. + <fs_sheet_content>-data_type = 'n'. + ELSE. + FIND FIRST OCCURRENCE OF 'PERCENTAGE' IN lv_attrname. + IF sy-subrc = 0. + <fs_sheet_content>-data_type = 'n'. + ENDIF. " Purcentage + ENDIF. " Number + ENDIF. " Currency + ENDIF. " Date + ENDIF. " TIME + ENDIF. " DATETIME + ENDIF. " lv_attrname IS NOT INITIAL. + ENDIF. " <fs_sheet_content>-data_type IS INITIAL AND ls_numfmt IS NOT INITIAL. + +* --- Add empty rows + WHILE lv_row < <fs_sheet_content>-cell_row. +* CONCATENATE lv_string cl_abap_char_utilities=>newline INTO lv_string. +* CONCATENATE lv_string cl_abap_char_utilities=>cr_lf INTO lv_string. + CONCATENATE lv_string zcl_excel_writer_csv=>eol INTO lv_string. + lv_row = lv_row + 1. + lv_col = 1. + ENDWHILE. + +* --- Add empty columns + WHILE lv_col < <fs_sheet_content>-cell_column. +* CONCATENATE lv_string ';' INTO lv_string. + CONCATENATE lv_string zcl_excel_writer_csv=>delimiter INTO lv_string. + lv_col = lv_col + 1. + ENDWHILE. + +* ----- Use format to determine the data type and display format. + CASE <fs_sheet_content>-data_type. +* WHEN 'n' OR 'N'. +* lc_value = zcl_excel_common=>excel_number_to_string( ip_value = <fs_sheet_content>-cell_value ). + + WHEN 'd' OR 'D'. + lc_value = zcl_excel_common=>excel_string_to_date( ip_value = <fs_sheet_content>-cell_value ). + TRY. + lv_date = lc_value. + CALL FUNCTION 'CONVERT_DATE_TO_EXTERNAL' + EXPORTING + DATE_INTERNAL = lv_date + IMPORTING + DATE_EXTERNAL = lv_tmp + EXCEPTIONS + DATE_INTERNAL_IS_INVALID = 1 + OTHERS = 2 + . + IF SY-SUBRC = 0. + lc_value = lv_tmp. + ENDIF. + + CATCH CX_SY_CONVERSION_NO_NUMBER. + + ENDTRY. + + WHEN 't' OR 'T'. + lc_value = zcl_excel_common=>excel_string_to_time( ip_value = <fs_sheet_content>-cell_value ). + write lc_value to lv_time USING EDIT MASK '__:__:__'. + lc_value = lv_time. + WHEN OTHERS. + lc_value = <fs_sheet_content>-cell_value. + + ENDCASE. + +* REPLACE ALL OCCURRENCES OF '"' in lc_value with '""'. + CONCATENATE zcl_excel_writer_csv=>enclosure zcl_excel_writer_csv=>enclosure INTO lv_tmp. + CONDENSE lv_tmp. + REPLACE ALL OCCURRENCES OF zcl_excel_writer_csv=>enclosure in lc_value with lv_tmp. + +* FIND FIRST OCCURRENCE OF ';' IN lc_value. + FIND FIRST OCCURRENCE OF zcl_excel_writer_csv=>delimiter IN lc_value. + IF sy-subrc = 0. + CONCATENATE lv_string zcl_excel_writer_csv=>enclosure lc_value zcl_excel_writer_csv=>enclosure INTO lv_string. + ELSE. + CONCATENATE lv_string lc_value INTO lv_string. + ENDIF. + + ENDLOOP. " AT lt_cell_data + + CLEAR ep_content. + + CALL FUNCTION 'SCMS_STRING_TO_XSTRING' + EXPORTING + TEXT = lv_string +* MIMETYPE = ' ' +* ENCODING = + IMPORTING + BUFFER = ep_content + EXCEPTIONS + FAILED = 1 + OTHERS = 2 + . + +endmethod. + + + + method SET_ACTIVE_SHEET_INDEX. + CLEAR WORKSHEET_NAME. + WORKSHEET_INDEX = i_active_worksheet. +endmethod. + + + + method SET_ACTIVE_SHEET_INDEX_BY_NAME. + CLEAR WORKSHEET_INDEX. + WORKSHEET_NAME = i_worksheet_name. +endmethod. + + + + method SET_DELIMITER. + delimiter = ip_value. +endmethod. + + + + method SET_ENCLOSURE. + zcl_excel_writer_csv=>enclosure = ip_value. +endmethod. + + + + method SET_ENDOFLINE. + zcl_excel_writer_csv=>eol = ip_value. +endmethod. + + + + + + + + + + + + + + + + + + + + + + *"* local class implementation for public class +*"* use this source file for the implementation part of +*"* local helper classes + TYPES: BEGIN OF t_relationship, + id TYPE string, + type TYPE string, + target TYPE string, + END OF t_relationship. + *"* 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 + + + + + + + + + IXML + + + + + + + + method ZIF_EXCEL_READER~CAN_READ_FILE. +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (done) 2012-11-07 +* - ... +* changes: nothing done in code +* but started discussion about killing this method +*--------------------------------------------------------------------* +* For now always Unknown + r_readable = abap_undefined. +endmethod. + + + method ZIF_EXCEL_READER~LOAD. +*--------------------------------------------------------------------* +* ToDos: +* 2do§1 Map Document Properties to ZCL_EXCEL +*--------------------------------------------------------------------* + +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (done) 2012-11-07 +* - ... +* changes: renaming variables to naming conventions +* removing unused variables +* aligning code +* adding comments to explain what we are trying to achieve +* commenting on problems/future enhancements/todos we already know of or should decide upon +* adding me-> where possible +*--------------------------------------------------------------------* +* issue#234 - error reading xlsx written by libre office +* - Stefan Schmöcker, 2012-11-07 +* changes: passing new optional input parameter to private attribute +*--------------------------------------------------------------------* + + CONSTANTS: lcv_core_properties TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties', + lcv_office_document TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument'. + + DATA: lo_rels TYPE REF TO if_ixml_document, + lo_node TYPE REF TO if_ixml_element, + ls_relationship TYPE t_relationship. + +*--------------------------------------------------------------------* +* §1 Create EXCEL-Object we want to return to caller + +* §2 We need to read the the file "\\_rels\.rels" because it tells +* us where in this folder structure the data for the workbook +* is located in the xlsx zip-archive +* +* The xlsx Zip-archive has generally the following folder structure: +* <root> | +* |--> _rels +* |--> doc_Props +* |--> xl | +* |--> _rels +* |--> theme +* |--> worksheets + +* §3 Extracting from this the path&file where the workbook is located +* Following is an example how this file could be set up +* <?xml version="1.0" encoding="UTF-8" standalone="true"?> +* <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> +* <Relationship Target="docProps/app.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Id="rId3"/> +* <Relationship Target="docProps/core.xml" Type="http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties" Id="rId2"/> +* <Relationship Target="xl/workbook.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument" Id="rId1"/> +* </Relationships> +*--------------------------------------------------------------------* + + +*--------------------------------------------------------------------* +* §1 Create EXCEL-Object we want to return to caller +*--------------------------------------------------------------------* + CREATE OBJECT r_excel. + +*--------------------------------------------------------------------* +* issue#234 - error reading xlsx written by libre office + me->zif_excel_reader~gv_use_alternate_zip = iv_use_alternate_zip. +*--------------------------------------------------------------------* + + +*--------------------------------------------------------------------* +* §2 Get file in folderstructure +*--------------------------------------------------------------------* + me->excel2007 = i_excel2007. + lo_rels = me->get_ixml_from_zip_archive( '_rels/.rels' ). + +*--------------------------------------------------------------------* +* §3 Cycle through the Relationship Tags and use the ones we need +*--------------------------------------------------------------------* + lo_node ?= lo_rels->find_from_name( 'Relationship' ). "#EC NOTEXT + WHILE lo_node IS BOUND. + + me->fill_struct_from_attributes( EXPORTING + ip_element = lo_node + CHANGING + cp_structure = ls_relationship ). + CASE ls_relationship-type. + + WHEN lcv_core_properties. + " 2do§1 Map Document Properties to ZCL_EXCEL + + WHEN lcv_office_document. + me->load_workbook( iv_workbook_full_filename = ls_relationship-target + io_excel = r_excel ). + + WHEN OTHERS. + + ENDCASE. + lo_node ?= lo_node->get_next( ). + + ENDWHILE. + + +endmethod. + + + method ZIF_EXCEL_READER~LOAD_FILE. +*--------------------------------------------------------------------* +* ToDos: +* 2do§1 decision whether to load from frontend or backend +* current behavior ( autodecide ) should be default +* add optional parameter to allow user to choose +* to load from backend even when online +* 2do§2 loosen typing of i_filename to CLIKE +*--------------------------------------------------------------------* + +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (done) 2012-11-05 +* - ... +* changes: renaming variables to naming conventions +* renaming variables to indicate what they are used for +* adding comments to explain what we are trying to achieve +* message made to support multilinguality +* aligning code +* commenting on problems/future enhancements/todos we already know of or should decide upon +* adding issue # that has initiated the change - date provided to allow cleaning of code after a certain period +* explicit declaration of type of table instead of implicit declaration +* added errorhandling for open dataset +*--------------------------------------------------------------------* +* issue#234 - error reading xlsx written by libre office +* - Stefan Schmöcker, 2012-11-07 +* changes: passing new optional input parameter to private attribute +*--------------------------------------------------------------------* + + CONSTANTS: lcv_load_from_frontend TYPE char1 VALUE 'F', + lcv_load_from_backend TYPE char1 VALUE 'B'. + + DATA: lv_load_from_source TYPE char1, + + lv_filelength TYPE i, + lt_binary_data TYPE STANDARD TABLE OF x255 WITH NON-UNIQUE DEFAULT KEY, + ls_binary_data LIKE LINE OF lt_binary_data, +* Background processing + lv_max_length_line TYPE i, + lv_actual_length_line TYPE i, + + lv_errormessage TYPE string, " Can't pass '...'(abc) to exception-class + lv_excel_data TYPE xstring. " Binary content of .xlsx file + + +*--------------------------------------------------------------------* +* ToDos: 2do§1 Decision whether to load from frontend or backend +*--------------------------------------------------------------------* + +*--------------------------------------------------------------------* +* issue#234 - error reading xlsx written by libre office + me->zif_excel_reader~gv_use_alternate_zip = iv_use_alternate_zip. +*--------------------------------------------------------------------* + + +*--------------------------------------------------------------------* +* Autodecide on frontend or backend reading +* Background-processing --> backend reading +* Online-processing --> frontend reading +*--------------------------------------------------------------------* + IF sy-batch = abap_true. + lv_load_from_source = lcv_load_from_backend. + ELSE. + lv_load_from_source = lcv_load_from_frontend. + ENDIF. + + CASE lv_load_from_source. + +*--------------------------------------------------------------------* +* Read from backend +*--------------------------------------------------------------------* + WHEN lcv_load_from_backend. + DESCRIBE FIELD ls_binary_data LENGTH lv_max_length_line IN BYTE MODE. + OPEN DATASET i_filename FOR INPUT IN BINARY MODE. + IF sy-subrc <> 0. + lv_errormessage = 'A problem occured when reading the file'(001). + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. + WHILE sy-subrc = 0. + + READ DATASET i_filename INTO ls_binary_data MAXIMUM LENGTH lv_max_length_line ACTUAL LENGTH lv_actual_length_line. + APPEND ls_binary_data TO lt_binary_data. + lv_filelength = lv_filelength + lv_actual_length_line. + + ENDWHILE. + CLOSE DATASET i_filename. + +*--------------------------------------------------------------------* +* Read from frontend +*--------------------------------------------------------------------* + WHEN lcv_load_from_frontend. + cl_gui_frontend_services=>gui_upload( EXPORTING + filename = i_filename + filetype = 'BIN' " We are basically working with zipped directories --> force binary read + IMPORTING + filelength = lv_filelength + CHANGING + data_tab = lt_binary_data + EXCEPTIONS + file_open_error = 1 + file_read_error = 2 + no_batch = 3 + gui_refuse_filetransfer = 4 + invalid_type = 5 + no_authority = 6 + unknown_error = 7 + bad_data_format = 8 + header_not_allowed = 9 + separator_not_allowed = 10 + header_too_long = 11 + unknown_dp_error = 12 + access_denied = 13 + dp_out_of_memory = 14 + disk_full = 15 + dp_timeout = 16 + not_supported_by_gui = 17 + error_no_gui = 18 + OTHERS = 19 ). + IF sy-subrc <> 0. + lv_errormessage = 'A problem occured when reading the file'(001). + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. + + ENDCASE. + + +*--------------------------------------------------------------------* +* Binary data needs to be provided as XSTRING for further processing +*--------------------------------------------------------------------* + CALL FUNCTION 'SCMS_BINARY_TO_XSTRING' + EXPORTING + input_length = lv_filelength + IMPORTING + buffer = lv_excel_data + TABLES + binary_tab = lt_binary_data. + +*--------------------------------------------------------------------* +* issue#234 - error reading xlsx written by libre office + r_excel = me->zif_excel_reader~load( i_excel2007 = lv_excel_data + iv_use_alternate_zip = iv_use_alternate_zip ). +*--------------------------------------------------------------------* + + +endmethod. + + + + + method FILL_STRUCT_FROM_ATTRIBUTES. +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (done) 2012-11-07 +* - ... +* changes: renaming variables to naming conventions +* aligning code +* adding comments to explain what we are trying to achieve +*--------------------------------------------------------------------* + + DATA: lv_name TYPE string, + lo_attributes TYPE REF TO if_ixml_named_node_map, + lo_attribute TYPE REF TO if_ixml_attribute, + lo_iterator TYPE REF TO if_ixml_node_iterator. + + FIELD-SYMBOLS: <component> TYPE ANY. + +*--------------------------------------------------------------------* +* The values of named attributes of a tag are being read and moved into corresponding +* fields of given structure +* Behaves like move-corresonding tag to structure + +* Example: +* <Relationship Target="docProps/app.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties" Id="rId3"/> +* Here the attributes are Target, Type and Id. Thus if the passed +* structure has fieldnames Id and Target these would be filled with +* "rId3" and "docProps/app.xml" respectively +*--------------------------------------------------------------------* + CLEAR cp_structure. + + lo_attributes = ip_element->get_attributes( ). + lo_iterator = lo_attributes->create_iterator( ). + lo_attribute ?= lo_iterator->get_next( ). + WHILE lo_attribute IS BOUND. + + lv_name = lo_attribute->get_name( ). + TRANSLATE lv_name TO UPPER CASE. + ASSIGN COMPONENT lv_name OF STRUCTURE cp_structure TO <component>. + IF sy-subrc = 0. + <component> = lo_attribute->get_value( ). + ENDIF. + lo_attribute ?= lo_iterator->get_next( ). + + ENDWHILE. + + +endmethod. + + + + + + method GET_FROM_ZIP_ARCHIVE. +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (done) 2012-11-07 +* - ... +* changes: aligning code +* adding comments to explain what we are trying to achieve +* changed message passed with exception +* message made to support multilinguality +*--------------------------------------------------------------------**--------------------------------------------------------------------* +* issue#234 - error reading xlsx written by libre office +* - Stefan Schmöcker, 2012-11-07 +* changes: copying coding and using ALTERNATE_ZIP in ELSE-Branch +*--------------------------------------------------------------------* + + DATA: lv_errormessage TYPE string. " Can't pass '...'(abc) to exception-class + + +*--------------------------------------------------------------------* +* An xlsx-file is basically a zip-archive +* From this zip-archive we need to extract one file in binary form +*--------------------------------------------------------------------* + IF me->zif_excel_reader~gv_use_alternate_zip IS INITIAL. "+#234 +*--------------------------------------------------------------------* +* Setup ABAP zip-class with binary exceldata if not done already +*--------------------------------------------------------------------* + IF me->zip IS NOT BOUND. + CREATE OBJECT me->zip. + zip->load( EXPORTING + zip = me->excel2007 + EXCEPTIONS + zip_parse_error = 1 + OTHERS = 2 ). + IF sy-subrc <> 0. + lv_errormessage = 'ZIP parse error'(002). + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. + ENDIF. + +*--------------------------------------------------------------------* +* Extract requested filename from archive if possible +*--------------------------------------------------------------------* + zip->get( EXPORTING + name = i_filename + IMPORTING + content = r_content " Contents + EXCEPTIONS + zip_index_error = 1 + zip_decompression_error = 2 + OTHERS = 3 ). + IF sy-subrc <> 0. + lv_errormessage = 'File not found in zip-archive'(003). + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. +*--------------------------------------------------------------------* +* issue#234 - begin of insertion +*--------------------------------------------------------------------* + ELSE. +*--------------------------------------------------------------------* +* Setup alternate ABAP zip-class with binary exceldata if not done already +* May become obsolete if SAP fixes standard CL_ABAP_ZIP +*--------------------------------------------------------------------* + IF me->alternate_zip IS NOT BOUND. + CREATE OBJECT me->alternate_zip TYPE (zif_excel_reader~gv_use_alternate_zip). + TRY. + CALL METHOD me->alternate_zip->('LOAD') + EXPORTING + zip = me->excel2007 + EXCEPTIONS + zip_parse_error = 1 + OTHERS = 2. + CATCH cx_sy_dyn_call_illegal_method. + lv_errormessage = 'Method LOAD missing in alternative zipclass'. "#EC NOTEXT This is a workaround until class CL_ABAP_ZIP is fixed + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDTRY. + + IF sy-subrc <> 0. + lv_errormessage = 'ZIP parse error'(002). + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. + ENDIF. + +*--------------------------------------------------------------------* +* Extract requested filename from archive if possible +*--------------------------------------------------------------------* + TRY. + CALL METHOD me->alternate_zip->('GET') + EXPORTING + name = i_filename + IMPORTING + content = r_content " Contents + EXCEPTIONS + zip_index_error = 1 + zip_decompression_error = 2 + OTHERS = 3. + CATCH cx_sy_dyn_call_illegal_method. + lv_errormessage = 'Method GET missing in alternative zipclass'. "#EC NOTEXT This is a workaround until class CL_ABAP_ZIP is fixed + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDTRY. + IF sy-subrc <> 0. + lv_errormessage = 'File not found in zip-archive'(003). + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. + ENDIF. +*--------------------------------------------------------------------* +* issue#234 - end of insertion +*--------------------------------------------------------------------* + +endmethod. + + + + + + + method GET_IXML_FROM_ZIP_ARCHIVE. +*--------------------------------------------------------------------* +* ToDos: +* 2do§1 Add comment what is being achieved here +*--------------------------------------------------------------------* + +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (done) 2012-11-07 +* - ... +* changes: renaming variables to naming conventions +* removing unnecessary type-pool +* aligning code +*--------------------------------------------------------------------* + + DATA: lv_content TYPE xstring, + + lo_ixml TYPE REF TO if_ixml, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_istream TYPE REF TO if_ixml_istream, + lo_parser TYPE REF TO if_ixml_parser. + + +*--------------------------------------------------------------------* +* 2do§1 ???? Something happens here ??? +*--------------------------------------------------------------------* + lv_content = me->get_from_zip_archive( i_filename ). + lo_ixml = cl_ixml=>create( ). + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_istream = lo_streamfactory->create_istream_xstring( lv_content ). + r_ixml = lo_ixml->create_document( ). + lo_parser = lo_ixml->create_parser( stream_factory = lo_streamfactory + istream = lo_istream + document = r_ixml ). + + lo_parser->set_normalizing( is_normalizing ). + lo_parser->set_validating( mode = if_ixml_parser=>co_no_validation ). + lo_parser->parse( ). + +endmethod. + + + + + + method LOAD_DRAWING_ANCHOR. + + TYPES: BEGIN OF t_c_nv_pr, + name TYPE string, + id TYPE string, + END OF t_c_nv_pr. + + TYPES: BEGIN OF t_blip, + cstate TYPE string, + embed TYPE string, + END OF t_blip. + + TYPES: BEGIN OF t_chart, + id TYPE string, + END OF t_chart. + + TYPES: BEGIN OF t_ext, + cx TYPE string, + cy TYPE string, + END OF t_ext. + + CONSTANTS: lc_xml_attr_true TYPE string VALUE 'true', + lc_xml_attr_true_int TYPE string VALUE '1'. + CONSTANTS: lc_rel_chart TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart', + lc_rel_image TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image'. + + DATA: lo_drawing TYPE REF TO zcl_excel_drawing, + node TYPE REF TO if_ixml_element, + node2 TYPE REF TO if_ixml_element, + node3 TYPE REF TO if_ixml_element, + node4 TYPE REF TO if_ixml_element, + + ls_upper TYPE zexcel_drawing_location, + ls_lower TYPE zexcel_drawing_location, + ls_size TYPE zexcel_drawing_size, + ext TYPE t_ext, + lv_content TYPE xstring, + lv_relation_id TYPE string, + lv_title TYPE zexcel_sheet_title, + + cnvpr TYPE t_c_nv_pr, + blip TYPE t_blip, + chart TYPE t_chart, + drawing_type TYPE zexcel_drawing_type, + + rel_drawing TYPE t_rel_drawing. + + node ?= io_anchor_element->find_from_name( name = 'from' namespace = 'xdr' ). + CHECK node IS NOT INITIAL. + node2 ?= node->find_from_name( name = 'col' namespace = 'xdr' ). + ls_upper-col = node2->get_value( ). + node2 ?= node->find_from_name( name = 'row' namespace = 'xdr' ). + ls_upper-row = node2->get_value( ). + node2 ?= node->find_from_name( name = 'colOff' namespace = 'xdr' ). + ls_upper-col_offset = node2->get_value( ). + node2 ?= node->find_from_name( name = 'rowOff' namespace = 'xdr' ). + ls_upper-row_offset = node2->get_value( ). + + node ?= io_anchor_element->find_from_name( name = 'ext' namespace = 'xdr' ). + IF node IS INITIAL. + CLEAR ls_size. + ELSE. + me->fill_struct_from_attributes( EXPORTING ip_element = node CHANGING cp_structure = ext ). + ls_size-width = ext-cx. + ls_size-height = ext-cy. + ENDIF. + + node ?= io_anchor_element->find_from_name( name = 'to' namespace = 'xdr' ). + IF node IS INITIAL. + CLEAR ls_lower. + ELSE. + node2 ?= node->find_from_name( name = 'col' namespace = 'xdr' ). + ls_lower-col = node2->get_value( ). + node2 ?= node->find_from_name( name = 'row' namespace = 'xdr' ). + ls_lower-row = node2->get_value( ). + node2 ?= node->find_from_name( name = 'colOff' namespace = 'xdr' ). + ls_lower-col_offset = node2->get_value( ). + node2 ?= node->find_from_name( name = 'rowOff' namespace = 'xdr' ). + ls_lower-row_offset = node2->get_value( ). + ENDIF. + + node ?= io_anchor_element->find_from_name( name = 'pic' namespace = 'xdr' ). + IF node IS NOT INITIAL. + node2 ?= node->find_from_name( name = 'nvPicPr' namespace = 'xdr' ). + CHECK node2 IS NOT INITIAL. + node3 ?= node2->find_from_name( name = 'cNvPr' namespace = 'xdr' ). + CHECK node3 IS NOT INITIAL. + me->fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = cnvpr ). + lv_title = cnvpr-name. + + node2 ?= node->find_from_name( name = 'blipFill' namespace = 'xdr' ). + CHECK node2 IS NOT INITIAL. + node3 ?= node2->find_from_name( name = 'blip' namespace = 'a' ). + CHECK node3 IS NOT INITIAL. + me->fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = blip ). + lv_relation_id = blip-embed. + + drawing_type = zcl_excel_drawing=>type_image. + ENDIF. + + node ?= io_anchor_element->find_from_name( name = 'graphicFrame' namespace = 'xdr' ). + IF node IS NOT INITIAL. + node2 ?= node->find_from_name( name = 'nvGraphicFramePr' namespace = 'xdr' ). + CHECK node2 IS NOT INITIAL. + node3 ?= node2->find_from_name( name = 'cNvPr' namespace = 'xdr' ). + CHECK node3 IS NOT INITIAL. + me->fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = cnvpr ). + lv_title = cnvpr-name. + + node2 ?= node->find_from_name( name = 'graphic' namespace = 'a' ). + CHECK node2 IS NOT INITIAL. + node3 ?= node2->find_from_name( name = 'graphicData' namespace = 'a' ). + CHECK node3 IS NOT INITIAL. + node4 ?= node2->find_from_name( name = 'chart' namespace = 'c' ). + CHECK node4 IS NOT INITIAL. + me->fill_struct_from_attributes( EXPORTING ip_element = node4 CHANGING cp_structure = chart ). + lv_relation_id = chart-id. + + drawing_type = zcl_excel_drawing=>type_chart. + ENDIF. + + lo_drawing = io_worksheet->excel->add_new_drawing( + ip_type = drawing_type + ip_title = lv_title ). + io_worksheet->add_drawing( lo_drawing ). + + lo_drawing->set_position2( + EXPORTING + ip_from = ls_upper + ip_to = ls_lower ). + + READ TABLE it_related_drawings INTO rel_drawing + WITH KEY id = lv_relation_id. + + lo_drawing->set_media( + EXPORTING + ip_media = rel_drawing-content + ip_media_type = rel_drawing-file_ext + ip_width = ls_size-width + ip_height = ls_size-height ). + + if drawing_type = zcl_excel_drawing=>type_chart. + "-------------Added by Alessandro Iannacci - Should load chart attributes + lo_drawing->load_chart_attributes( rel_drawing-content_xml ). + endif. + +endmethod. + + + + + method LOAD_SHARED_STRINGS. +*--------------------------------------------------------------------* +* ToDos: +* 2do§1 Support partial formatting of strings in cells +*--------------------------------------------------------------------* + +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (done) 2012-11-11 +* - ... +* changes: renaming variables to naming conventions +* renaming variables to indicate what they are used for +* aligning code +* adding comments to explain what we are trying to achieve +* rewriting code for better readibility +*--------------------------------------------------------------------* + + + + DATA: + lo_shared_strings_xml TYPE REF TO if_ixml_document, + lo_node_si TYPE REF TO if_ixml_element, + lo_node_si_child TYPE REF TO if_ixml_element, + lo_node_r_child_t TYPE REF TO if_ixml_element, + lv_tag_name TYPE string, + lv_node_value TYPE string. + + FIELD-SYMBOLS: <lv_shared_string> LIKE LINE OF me->shared_strings. + +*--------------------------------------------------------------------* + +* §1 Parse shared strings file and get into internal table +* So far I have encountered 2 ways how a string can be represented in the shared strings file +* §1.1 - "simple" strings +* §1.2 - rich text formatted strings + +* Following is an example how this file could be set up; 2 strings in simple formatting, 3rd string rich textformatted + + +* <?xml version="1.0" encoding="UTF-8" standalone="true"?> +* <sst uniqueCount="6" count="6" xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"> +* <si> +* <t>This is a teststring 1</t> +* </si> +* <si> +* <t>This is a teststring 2</t> +* </si> +* <si> +* <r> +* <t>T</t> +* </r> +* <r> +* <rPr> +* <sz val="11"/> +* <color rgb="FFFF0000"/> +* <rFont val="Calibri"/> +* <family val="2"/> +* <scheme val="minor"/> +* </rPr> +* <t xml:space="preserve">his is a </t> +* </r> +* <r> +* <rPr> +* <sz val="11"/> +* <color theme="1"/> +* <rFont val="Calibri"/> +* <family val="2"/> +* <scheme val="minor"/> +* </rPr> +* <t>teststring 3</t> +* </r> +* </si> +* </sst> +*--------------------------------------------------------------------* + + lo_shared_strings_xml = me->get_ixml_from_zip_archive( i_filename = ip_path + is_normalizing = space ). " NO!!! normalizing - otherwise leading blanks will be omitted and that is not really desired for the stringtable + lo_node_si ?= lo_shared_strings_xml->find_from_name( 'si' ). + WHILE lo_node_si IS BOUND. + + APPEND INITIAL LINE TO me->shared_strings ASSIGNING <lv_shared_string>. " Each <si>-entry in the xml-file must lead to an entry in our stringtable + lo_node_si_child ?= lo_node_si->get_first_child( ). + IF lo_node_si_child IS BOUND. + lv_tag_name = lo_node_si_child->get_name( ). + IF lv_tag_name = 't'. +*--------------------------------------------------------------------* +* §1.1 - "simple" strings +* Example: see above +*--------------------------------------------------------------------* + <lv_shared_string> = lo_node_si_child->get_value( ). + ELSE. +*--------------------------------------------------------------------* +* §1.2 - rich text formatted strings +* it is sufficient to strip the <t>...</t> tag from each <r>-tag and concatenate these +* as long as rich text formatting is not supported (2do§1) ignore all info about formatting +* Example: see above +*--------------------------------------------------------------------* + WHILE lo_node_si_child IS BOUND. " actually these children of <si> are <r>-tags + + lo_node_r_child_t ?= lo_node_si_child->find_from_name( 't' ). " extract the <t>...</t> part of each <r>-tag + IF lo_node_r_child_t IS BOUND. + lv_node_value = lo_node_r_child_t->get_value( ). + CONCATENATE <lv_shared_string> lv_node_value INTO <lv_shared_string> RESPECTING BLANKS. + ENDIF. + + lo_node_si_child ?= lo_node_si_child->get_next( ). + + ENDWHILE. + ENDIF. + ENDIF. + + lo_node_si ?= lo_node_si->get_next( ). + ENDWHILE. + +endmethod. + + + + + + method LOAD_STYLES. + +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (wip ) 2012-11-25 +* - ... +* changes: renaming variables and types to naming conventions +* aligning code +* adding comments to explain what we are trying to achieve +*--------------------------------------------------------------------* + TYPES: BEGIN OF lty_xf, + applyalignment TYPE string, + applyborder TYPE string, + applyfill TYPE string, + applyfont TYPE string, + applynumberformat TYPE string, + applyprotection TYPE string, + borderid TYPE string, + fillid TYPE string, + fontid TYPE string, + numfmtid TYPE string, + pivotbutton TYPE string, + quoteprefix TYPE string, + xfid TYPE string, + END OF lty_xf. + + TYPES: BEGIN OF lty_alignment, + horizontal TYPE string, + indent TYPE string, + justifylastline TYPE string, + readingorder TYPE string, + relativeindent TYPE string, + shrinktofit TYPE string, + textrotation TYPE string, + vertical TYPE string, + wraptext TYPE string, + END OF lty_alignment. + + TYPES: BEGIN OF lty_protection, + hidden TYPE string, + locked TYPE string, + END OF lty_protection. + + DATA: lo_styles_xml TYPE REF TO if_ixml_document, + lo_style TYPE REF TO zcl_excel_style, + + lt_num_formats TYPE t_num_formats, + lt_fills TYPE t_fills, + lt_borders TYPE t_borders, + lt_fonts TYPE t_fonts, + + ls_num_format TYPE t_num_format, + ls_fill TYPE REF TO zcl_excel_style_fill, + ls_cell_border TYPE REF TO zcl_excel_style_borders, + ls_font TYPE REF TO zcl_excel_style_font, + + lo_node_cellxfs TYPE REF TO if_ixml_element, + lo_node_cellxfs_xf TYPE REF TO if_ixml_element, + lo_node_cellxfs_xf_alignment TYPE REF TO if_ixml_element, + lo_node_cellxfs_xf_protection TYPE REF TO if_ixml_element, + + lo_nodes_xf TYPE REF TO if_ixml_node_collection, + lo_iterator_cellxfs TYPE REF TO if_ixml_node_iterator, + + ls_xf TYPE lty_xf, + ls_alignment TYPE lty_alignment, + ls_protection TYPE lty_protection, + lv_index TYPE i. + +*--------------------------------------------------------------------* +* To build a complete style that fully describes how a cell looks like +* we need the various parts +* §1 - Numberformat +* §2 - Fillstyle +* §3 - Borders +* §4 - Font +* §5 - Alignment +* §6 - Protection + +* Following is an example how this part of a file could be set up +* ... +* parts with various formatinformation - see §1,§2,§3,§4 +* ... +* <cellXfs count="26"> +* <xf numFmtId="0" borderId="0" fillId="0" fontId="0" xfId="0"/> +* <xf numFmtId="0" borderId="0" fillId="2" fontId="0" xfId="0" applyFill="1"/> +* <xf numFmtId="0" borderId="1" fillId="3" fontId="0" xfId="0" applyFill="1" applyBorder="1"/> +* <xf numFmtId="0" borderId="2" fillId="3" fontId="0" xfId="0" applyFill="1" applyBorder="1"/> +* <xf numFmtId="0" borderId="3" fillId="3" fontId="0" xfId="0" applyFill="1" applyBorder="1"/> +* <xf numFmtId="0" borderId="4" fillId="3" fontId="0" xfId="0" applyFill="1" applyBorder="1"/> +* <xf numFmtId="0" borderId="0" fillId="3" fontId="0" xfId="0" applyFill="1" applyBorder="1"/> +* ... +* </cellXfs> +*--------------------------------------------------------------------* + + lo_styles_xml = me->get_ixml_from_zip_archive( ip_path ). + +*--------------------------------------------------------------------* +* The styles are build up from +* §1 number formats +* §2 fill styles +* §3 border styles +* §4 fonts +* These need to be read before we can try to build up a complete +* style that describes the look of a cell +*--------------------------------------------------------------------* + lt_num_formats = load_style_num_formats( lo_styles_xml ). " §1 + lt_fills = load_style_fills( lo_styles_xml ). " §2 + lt_borders = load_style_borders( lo_styles_xml ). " §3 + lt_fonts = load_style_fonts( lo_styles_xml ). " §4 + +*--------------------------------------------------------------------* +* Now everything is prepared to build a "full" style +*--------------------------------------------------------------------* + lo_node_cellxfs = lo_styles_xml->find_from_name( name = 'cellXfs' ). + IF lo_node_cellxfs IS BOUND. + lo_nodes_xf = lo_node_cellxfs->get_elements_by_tag_name( name = 'xf' ). + lo_iterator_cellxfs = lo_nodes_xf->create_iterator( ). + lo_node_cellxfs_xf ?= lo_iterator_cellxfs->get_next( ). + WHILE lo_node_cellxfs_xf IS BOUND. + + lo_style = ip_excel->add_new_style( ). + fill_struct_from_attributes( EXPORTING + ip_element = lo_node_cellxfs_xf + CHANGING + cp_structure = ls_xf ). +*--------------------------------------------------------------------* +* §2 fill style +*--------------------------------------------------------------------* + IF ls_xf-applyfill = '1' AND ls_xf-fillid IS NOT INITIAL. + lv_index = ls_xf-fillid + 1. + READ TABLE lt_fills INTO ls_fill INDEX lv_index. + IF sy-subrc = 0. + lo_style->fill = ls_fill. + ENDIF. + ENDIF. + +*--------------------------------------------------------------------* +* §1 number format +*--------------------------------------------------------------------* + IF ls_xf-numfmtid IS NOT INITIAL. + READ TABLE lt_num_formats INTO ls_num_format WITH TABLE KEY id = ls_xf-numfmtid. + IF sy-subrc = 0. + lo_style->number_format = ls_num_format-format. + ENDIF. + ENDIF. + +*--------------------------------------------------------------------* +* §3 border style +*--------------------------------------------------------------------* + IF ls_xf-applyborder = '1' AND ls_xf-borderid IS NOT INITIAL. + lv_index = ls_xf-borderid + 1. + READ TABLE lt_borders INTO ls_cell_border INDEX lv_index. + IF sy-subrc = 0. + lo_style->borders = ls_cell_border. + ENDIF. + ENDIF. + +*--------------------------------------------------------------------* +* §4 font +*--------------------------------------------------------------------* + IF ls_xf-applyfont = '1' AND ls_xf-fontid IS NOT INITIAL. + lv_index = ls_xf-fontid + 1. + READ TABLE lt_fonts INTO ls_font INDEX lv_index. + IF sy-subrc = 0. + lo_style->font = ls_font. + ENDIF. + ENDIF. + +*--------------------------------------------------------------------* +* §5 - Alignment +*--------------------------------------------------------------------* + lo_node_cellxfs_xf_alignment ?= lo_node_cellxfs_xf->find_from_name( 'alignment' ). + IF lo_node_cellxfs_xf_alignment IS BOUND. + fill_struct_from_attributes( EXPORTING + ip_element = lo_node_cellxfs_xf_alignment + CHANGING + cp_structure = ls_alignment ). + IF ls_alignment-horizontal IS NOT INITIAL. + lo_style->alignment->horizontal = ls_alignment-horizontal. + ENDIF. + + IF ls_alignment-vertical IS NOT INITIAL. + lo_style->alignment->vertical = ls_alignment-vertical. + ENDIF. + + IF ls_alignment-textrotation IS NOT INITIAL. + lo_style->alignment->textrotation = ls_alignment-textrotation. + ENDIF. + + IF ls_alignment-wraptext = '1' OR ls_alignment-wraptext = 'true'. + lo_style->alignment->wraptext = abap_true. + ENDIF. + + IF ls_alignment-shrinktofit = '1' OR ls_alignment-shrinktofit = 'true'. + lo_style->alignment->shrinktofit = abap_true. + ENDIF. + + IF ls_alignment-indent IS NOT INITIAL. + lo_style->alignment->indent = ls_alignment-indent. + ENDIF. + ENDIF. + +*--------------------------------------------------------------------* +* §6 - Protection +*--------------------------------------------------------------------* + lo_node_cellxfs_xf_protection ?= lo_node_cellxfs_xf->find_from_name( 'protection' ). + IF lo_node_cellxfs_xf_protection IS BOUND. + fill_struct_from_attributes( EXPORTING + ip_element = lo_node_cellxfs_xf_protection + CHANGING + cp_structure = ls_protection ). + IF ls_protection-locked = '1' OR ls_protection-locked = 'true'. + lo_style->protection->locked = zcl_excel_style_protection=>c_protection_locked. + ELSE. + lo_style->protection->locked = zcl_excel_style_protection=>c_protection_unlocked. + ENDIF. + + IF ls_protection-hidden = '1' OR ls_protection-hidden = 'true'. + lo_style->protection->hidden = zcl_excel_style_protection=>c_protection_hidden. + ELSE. + lo_style->protection->hidden = zcl_excel_style_protection=>c_protection_unhidden. + ENDIF. + + ENDIF. + + INSERT lo_style INTO TABLE me->styles. + + lo_node_cellxfs_xf ?= lo_iterator_cellxfs->get_next( ). + + ENDWHILE. + ENDIF. + +endmethod. + + + + + method LOAD_STYLE_BORDERS. + +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (done) 2012-11-25 +* - ... +* changes: renaming variables and types to naming conventions +* aligning code +* renaming variables to indicate what they are used for +* adding comments to explain what we are trying to achieve +*--------------------------------------------------------------------* + DATA: lo_node_border TYPE REF TO if_ixml_element, + lo_node_bordertype TYPE REF TO if_ixml_element, + lo_node_bordercolor TYPE REF TO if_ixml_element, + lo_cell_border TYPE REF TO zcl_excel_style_borders, + lo_border TYPE REF TO zcl_excel_style_border, + ls_color TYPE t_color. + +*--------------------------------------------------------------------* +* We need a table of used borderformats to build up our styles +* §1 A cell has 4 outer borders and 2 diagonal "borders" +* These borders can be formatted separately but the diagonal borders +* are always being formatted the same +* We'll parse through the <border>-tag for each of the bordertypes +* §2 and read the corresponding formatting information + +* Following is an example how this part of a file could be set up +* <border diagonalDown="1"> +* <left style="mediumDashDotDot"> +* <color rgb="FFFF0000"/> +* </left> +* <right/> +* <top style="thick"> +* <color rgb="FFFF0000"/> +* </top> +* <bottom style="thick"> +* <color rgb="FFFF0000"/> +* </bottom> +* <diagonal style="thick"> +* <color rgb="FFFF0000"/> +* </diagonal> +* </border> +*--------------------------------------------------------------------* + lo_node_border ?= ip_xml->find_from_name( 'border' ). + WHILE lo_node_border IS BOUND. + + CREATE OBJECT lo_cell_border. + +*--------------------------------------------------------------------* +* Diagonal borderlines are formatted the equally. Determine what kind of diagonal borders are present if any +*--------------------------------------------------------------------* +* DiagonalNone = 0 +* DiagonalUp = 1 +* DiagonalDown = 2 +* DiagonalBoth = 3 +*--------------------------------------------------------------------* + IF lo_node_border->get_attribute( 'diagonalDown' ) IS NOT INITIAL. + add zcl_excel_style_borders=>c_diagonal_down to lo_cell_border->diagonal_mode. + ENDIF. + + IF lo_node_border->get_attribute( 'diagonalUp' ) IS NOT INITIAL. + add zcl_excel_style_borders=>c_diagonal_up to lo_cell_border->diagonal_mode. + ENDIF. + + lo_node_bordertype ?= lo_node_border->get_first_child( ). + WHILE lo_node_bordertype IS BOUND. +*--------------------------------------------------------------------* +* §1 Determine what kind of border we are talking about +*--------------------------------------------------------------------* +* Up, down, left, right, diagonal +*--------------------------------------------------------------------* + CREATE OBJECT lo_border. + + CASE lo_node_bordertype->get_name( ). + + WHEN 'left'. + lo_cell_border->left = lo_border. + + WHEN 'right'. + lo_cell_border->right = lo_border. + + WHEN 'top'. + lo_cell_border->top = lo_border. + + WHEN 'bottom'. + lo_cell_border->down = lo_border. + + WHEN 'diagonal'. + lo_cell_border->diagonal = lo_border. + + ENDCASE. + +*--------------------------------------------------------------------* +* §2 Read the border-formatting +*--------------------------------------------------------------------* + lo_border->border_style = lo_node_bordertype->get_attribute( 'style' ). + lo_node_bordercolor ?= lo_node_bordertype->find_from_name( 'color' ). + IF lo_node_bordercolor IS BOUND. + fill_struct_from_attributes( EXPORTING + ip_element = lo_node_bordercolor + CHANGING + cp_structure = ls_color ). + + lo_border->border_color-rgb = ls_color-rgb. + IF ls_color-indexed IS NOT INITIAL. + lo_border->border_color-indexed = ls_color-indexed. + ENDIF. + + IF ls_color-theme IS NOT INITIAL. + lo_border->border_color-theme = ls_color-theme. + ENDIF. + lo_border->border_color-tint = ls_color-tint. + ENDIF. + + lo_node_bordertype ?= lo_node_bordertype->get_next( ). + + ENDWHILE. + + INSERT lo_cell_border INTO TABLE ep_borders. + + lo_node_border ?= lo_node_border->get_next( ). + + ENDWHILE. + + +endmethod. + + + + + method LOAD_STYLE_FILLS. +*--------------------------------------------------------------------* +* ToDos: +* 2do§1 Support gradientFill +*--------------------------------------------------------------------* + +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (done) 2012-11-25 +* - ... +* changes: renaming variables and types to naming conventions +* aligning code +* commenting on problems/future enhancements/todos we already know of or should decide upon +* adding comments to explain what we are trying to achieve +* renaming variables to indicate what they are used for +*--------------------------------------------------------------------* + DATA: lv_value TYPE string, + lo_node_fill TYPE REF TO if_ixml_element, + lo_node_fill_child TYPE REF TO if_ixml_element, + lo_node_bgcolor TYPE REF TO if_ixml_element, + lo_node_fgcolor TYPE REF TO if_ixml_element, + lo_fill TYPE REF TO zcl_excel_style_fill, + ls_color TYPE t_color. + +*--------------------------------------------------------------------* +* We need a table of used fillformats to build up our styles + +* Following is an example how this part of a file could be set up +* <fill> +* <patternFill patternType="gray125"/> +* </fill> +* <fill> +* <patternFill patternType="solid"> +* <fgColor rgb="FFFFFF00"/> +* <bgColor indexed="64"/> +* </patternFill> +* </fill> +*--------------------------------------------------------------------* + + lo_node_fill ?= ip_xml->find_from_name( 'fill' ). + WHILE lo_node_fill IS BOUND. + + CREATE OBJECT lo_fill. + lo_node_fill_child ?= lo_node_fill->get_first_child( ). + lv_value = lo_node_fill_child->get_name( ). + CASE lv_value. + +*--------------------------------------------------------------------* +* Patternfill +*--------------------------------------------------------------------* + WHEN 'patternFill'. + lo_fill->filltype = lo_node_fill_child->get_attribute( 'patternType' ). +*--------------------------------------------------------------------* +* Patternfill - background color +*--------------------------------------------------------------------* + lo_node_bgcolor = lo_node_fill_child->find_from_name( 'bgColor' ). + IF lo_node_bgcolor IS BOUND. + fill_struct_from_attributes( EXPORTING + ip_element = lo_node_bgcolor + CHANGING + cp_structure = ls_color ). + + lo_fill->bgcolor-rgb = ls_color-rgb. + IF ls_color-indexed IS NOT INITIAL. + lo_fill->bgcolor-indexed = ls_color-indexed. + ENDIF. + + IF ls_color-theme IS NOT INITIAL. + lo_fill->bgcolor-theme = ls_color-theme. + ENDIF. + lo_fill->bgcolor-tint = ls_color-tint. + ENDIF. + +*--------------------------------------------------------------------* +* Patternfill - foreground color +*--------------------------------------------------------------------* + lo_node_fgcolor = lo_node_fill->find_from_name( 'fgColor' ). + IF lo_node_fgcolor IS BOUND. + fill_struct_from_attributes( EXPORTING + ip_element = lo_node_fgcolor + CHANGING + cp_structure = ls_color ). + + lo_fill->fgcolor-rgb = ls_color-rgb. + IF ls_color-indexed IS NOT INITIAL. + lo_fill->fgcolor-indexed = ls_color-indexed. + ENDIF. + + IF ls_color-theme IS NOT INITIAL. + lo_fill->fgcolor-theme = ls_color-theme. + ENDIF. + lo_fill->fgcolor-tint = ls_color-tint. + ENDIF. + + +*--------------------------------------------------------------------* +* gradientFill +*--------------------------------------------------------------------* + WHEN 'gradientFill'. + " 2do§1 Support gradientFill + + WHEN OTHERS. + + ENDCASE. + + + INSERT lo_fill INTO TABLE ep_fills. + + lo_node_fill ?= lo_node_fill->get_next( ). + + ENDWHILE. + + +endmethod. + + + + + method LOAD_STYLE_FONTS. + +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (done) 2012-11-25 +* - ... +* changes: renaming variables and types to naming conventions +* aligning code +* removing unused variables +* adding comments to explain what we are trying to achieve +*--------------------------------------------------------------------* + DATA: lo_node_font TYPE REF TO if_ixml_element, + lo_node2 TYPE REF TO if_ixml_element, + lo_font TYPE REF TO zcl_excel_style_font, + ls_color TYPE t_color. + +*--------------------------------------------------------------------* +* We need a table of used fonts to build up our styles + +* Following is an example how this part of a file could be set up +* <font> +* <sz val="11"/> +* <color theme="1"/> +* <name val="Calibri"/> +* <family val="2"/> +* <scheme val="minor"/> +* </font> +*--------------------------------------------------------------------* + lo_node_font ?= ip_xml->find_from_name( 'font' ). + WHILE lo_node_font IS BOUND. + + CREATE OBJECT lo_font. +*--------------------------------------------------------------------* +* Bold +*--------------------------------------------------------------------* + IF lo_node_font->find_from_name( 'b' ) IS BOUND. + lo_font->bold = abap_true. + ENDIF. + +*--------------------------------------------------------------------* +* Italic +*--------------------------------------------------------------------* + IF lo_node_font->find_from_name( 'i' ) IS BOUND. + lo_font->italic = abap_true. + ENDIF. + +*--------------------------------------------------------------------* +* Underline +*--------------------------------------------------------------------* + lo_node2 = lo_node_font->find_from_name( 'u' ). + IF lo_node2 IS BOUND. + lo_font->underline = abap_true. + lo_font->underline_mode = lo_node2->get_attribute( 'val' ). + ENDIF. + +*--------------------------------------------------------------------* +* StrikeThrough +*--------------------------------------------------------------------* + IF lo_node_font->find_from_name( 'strike' ) IS BOUND. + lo_font->strikethrough = abap_true. + ENDIF. + +*--------------------------------------------------------------------* +* Fontsize +*--------------------------------------------------------------------* + lo_node2 = lo_node_font->find_from_name( 'sz' ). + IF lo_node2 IS BOUND. + lo_font->size = lo_node2->get_attribute( 'val' ). + ENDIF. + +*--------------------------------------------------------------------* +* Fontname +*--------------------------------------------------------------------* + lo_node2 = lo_node_font->find_from_name( 'name' ). + IF lo_node2 IS BOUND. + lo_font->name = lo_node2->get_attribute( 'val' ). + ENDIF. + +*--------------------------------------------------------------------* +* Fontfamily +*--------------------------------------------------------------------* + lo_node2 = lo_node_font->find_from_name( 'family' ). + IF lo_node2 IS BOUND. + lo_font->family = lo_node2->get_attribute( 'val' ). + ENDIF. + +*--------------------------------------------------------------------* +* Fontscheme +*--------------------------------------------------------------------* + lo_node2 = lo_node_font->find_from_name( 'scheme' ). + IF lo_node2 IS BOUND. + lo_font->scheme = lo_node2->get_attribute( 'val' ). + ENDIF. + +*--------------------------------------------------------------------* +* Fontcolor +*--------------------------------------------------------------------* + lo_node2 = lo_node_font->find_from_name( 'color' ). + IF lo_node2 IS BOUND. + fill_struct_from_attributes( EXPORTING + ip_element = lo_node2 + CHANGING + cp_structure = ls_color ). + lo_font->color-rgb = ls_color-rgb. + IF ls_color-indexed IS NOT INITIAL. + lo_font->color-indexed = ls_color-indexed. + ENDIF. + + IF ls_color-theme IS NOT INITIAL. + lo_font->color-theme = ls_color-theme. + ENDIF. + lo_font->color-tint = ls_color-tint. + ENDIF. + + INSERT lo_font INTO TABLE ep_fonts. + + lo_node_font ?= lo_node_font->get_next( ). + + ENDWHILE. + + +endmethod. + + + + + method LOAD_STYLE_NUM_FORMATS. +*--------------------------------------------------------------------* +* ToDos: +* 2do§1 Explain gaps in predefined formats +*--------------------------------------------------------------------* + +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (done) 2012-11-25 +* - ... +* changes: renaming variables and types to naming conventions +* adding comments to explain what we are trying to achieve +* aligning code +*--------------------------------------------------------------------* + DATA: lo_node_numfmt TYPE REF TO if_ixml_element, + ls_num_format TYPE t_num_format. + +*--------------------------------------------------------------------* +* We need a table of used numberformats to build up our styles +* there are two kinds of numberformats +* §1 those that have been explicitly added by the createor of the excel-file +* §2 and built-in numberformats +*--------------------------------------------------------------------* + +*--------------------------------------------------------------------* +* §1 Get non-internal numberformats that are found in the file explicitly + +* Following is an example how this part of a file could be set up +* <numFmts count="1"> +* <numFmt formatCode="#,###,###,###,##0.00" numFmtId="164"/> +* </numFmts> +*--------------------------------------------------------------------* + lo_node_numfmt ?= ip_xml->find_from_name( 'numFmt' ). + WHILE lo_node_numfmt IS BOUND. + + CLEAR ls_num_format. + + CREATE OBJECT ls_num_format-format. + ls_num_format-format->format_code = lo_node_numfmt->get_attribute( 'formatCode' ). + ls_num_format-id = lo_node_numfmt->get_attribute( 'numFmtId' ). + INSERT ls_num_format INTO TABLE ep_num_formats. + + lo_node_numfmt ?= lo_node_numfmt->get_next( ). + + ENDWHILE. + + DEFINE predefined_format. + ls_num_format-id = &1. + create object ls_num_format-format. + ls_num_format-format->format_code = &2. + insert ls_num_format into table ep_num_formats. + END-OF-DEFINITION. + +*--------------------------------------------------------------------* +* §1 Get internal predefined numberformats +*--------------------------------------------------------------------* + predefined_format '1' '0'. + predefined_format '2' '0.00'. + predefined_format '3' '#,##0'. + predefined_format '4' '#,##0.00'. + predefined_format '5' '$#,##0_);($#,##0)'. + predefined_format '6' '$#,##0_);[Red]($#,##0)'. + predefined_format '7' '$#,##0.00_);($#,##0.00)'. + predefined_format '8' '$#,##0.00_);[Red]($#,##0.00)'. + predefined_format '9' '0%'. + predefined_format '10' '0.00%'. + predefined_format '11' '0.00E+00'. + predefined_format '12' '# ?/?'. + predefined_format '13' '# ??/??'. + predefined_format '14' 'm/d/yyyy'. + predefined_format '15' 'd-mmm-yy'. + predefined_format '16' 'd-mmm'. + predefined_format '17' 'mmm-yy'. + predefined_format '18' 'h:mm AM/PM'. + predefined_format '19' 'h:mm:ss AM/PM'. + predefined_format '20' 'h:mm'. + predefined_format '21' 'h:mm:ss'. + predefined_format '22' 'm/d/yyyy h:mm'. +* 2do§1 Why is there a gap in here? + + + + + + + + + + + + + + predefined_format '37' '#,##0_);(#,##0)'. + predefined_format '38' '#,##0_);[Red](#,##0)'. + predefined_format '39' '#,##0.00_);(#,##0.00)'. + predefined_format '40' '#,##0.00_);[Red](#,##0.00)'. +* 2do§1 Why is there a gap in here? + + + + predefined_format '45' 'mm:ss'. + predefined_format '46' '[h]:mm:ss'. + predefined_format '47' 'mm:ss.0'. + predefined_format '48' '##0.0E+0'. + predefined_format '49' '@'. +* 2do§1 Is 49 really the last predefined format? + + +endmethod. + + + + + + METHOD load_workbook. +*--------------------------------------------------------------------* +* ToDos: +* 2do§1 Move macro-reading from zcl_excel_reader_xlsm to this class +* autodetect existance of macro/vba content +* Allow inputparameter to explicitly tell reader to ignore vba-content +*--------------------------------------------------------------------* + +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (done) 2012-11-10 +* - ... +* changes: renaming variables to naming conventions +* aligning code +* removing unused variables +* adding me-> where possible +* renaming variables to indicate what they are used for +* adding comments to explain what we are trying to achieve +* renaming i/o parameters: previous input-parameter ip_path holds a (full) filename and not a path --> rename to iv_workbook_full_filename +* ip_excel renamed while being at it --> rename to io_excel +*--------------------------------------------------------------------* +* issue #232 - Read worksheetstate hidden/veryHidden +* - Stefan Schmöcker, 2012-11-11 +*--------------------------------------------------------------------* +* issue#235 - repeat rows/columns +* - Stefan Schmöcker, 2012-12-02 +* changes: correction in named ranges to correctly attach +* sheetlocal names/ranges to the correct sheet +*--------------------------------------------------------------------* +* issue#284 - Copied formulae ignored when reading excelfile +* - Stefan Schmöcker, 2013-08-02 +* changes: initialize area to hold referenced formulaedata +* after all worksheets have been read resolve formuae +*--------------------------------------------------------------------* + + CONSTANTS: lcv_shared_strings TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings', + lcv_worksheet TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet', + lcv_styles TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles', + lcv_vba_project TYPE string VALUE 'http://schemas.microsoft.com/office/2006/relationships/vbaProject', "#EC NEEDED for future incorporation of XLSM-reader +*--------------------------------------------------------------------* +* #232: Read worksheetstate hidden/veryHidden - begin data declarations +*--------------------------------------------------------------------* + lcv_worksheet_state_hidden TYPE string VALUE 'hidden', + lcv_worksheet_state_veryhidden TYPE string VALUE 'veryHidden'. +*--------------------------------------------------------------------* +* #232: Read worksheetstate hidden/veryHidden - end data declarations +*--------------------------------------------------------------------* + + DATA: + lv_path TYPE string, + lv_filename TYPE chkfile, + lv_full_filename TYPE string, + + lo_rels_workbook TYPE REF TO if_ixml_document, + lt_worksheets TYPE STANDARD TABLE OF t_relationship WITH NON-UNIQUE DEFAULT KEY, + lo_workbook TYPE REF TO if_ixml_document, + lv_workbook_index TYPE i, + lv_worksheet_path TYPE string, + ls_sheet TYPE t_sheet, + + lo_node TYPE REF TO if_ixml_element, + ls_relationship TYPE t_relationship, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_range TYPE REF TO zcl_excel_range, + lv_worksheet_title TYPE zexcel_sheet_title, + lv_tabix TYPE sytabix, " #235 - repeat rows/cols. Needed to link defined name to correct worksheet + + ls_range TYPE t_range, + lv_range_value TYPE zexcel_range_value, +*--------------------------------------------------------------------* +* #229: Set active worksheet - begin data declarations +*--------------------------------------------------------------------* + lv_active_sheet_string TYPE string, + lv_zexcel_active_worksheet TYPE zexcel_active_worksheet, +*--------------------------------------------------------------------* +* issue#235 - repeat rows/columns - added autofilter support while changing this section + lo_autofilter TYPE REF TO zcl_excel_autofilter, + ls_area TYPE zexcel_s_autofilter_area, + lv_col_start_alpha TYPE zexcel_cell_column_alpha, + lv_col_end_alpha TYPE zexcel_cell_column_alpha, + lv_row_start TYPE zexcel_cell_row, + lv_row_end TYPE zexcel_cell_row , + lv_regex TYPE string, + lv_range_value_1 TYPE zexcel_range_value, + lv_range_value_2 TYPE zexcel_range_value. +*--------------------------------------------------------------------* +* #229: Set active worksheet - end data declarations +*--------------------------------------------------------------------* + FIELD-SYMBOLS: <worksheet> TYPE t_relationship. + + +*--------------------------------------------------------------------* + +* §1 Get the position of files related to this workbook +* Usually this will be <root>/xl/workbook.xml +* Thus the workbookroot will be <root>/xl/ +* The position of all related files will be given in file +* <workbookroot>/_rels/<workbookfilename>.rels and their positions +* be be given relative to the workbookroot + +* Following is an example how this file could be set up + +* <?xml version="1.0" encoding="UTF-8" standalone="true"?> +* <Relationships xmlns="http://schemas.openxmlformats.org/package/2006/relationships"> +* <Relationship Target="styles.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles" Id="rId6"/> +* <Relationship Target="theme/theme1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme" Id="rId5"/> +* <Relationship Target="worksheets/sheet1.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Id="rId1"/> +* <Relationship Target="worksheets/sheet2.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Id="rId2"/> +* <Relationship Target="worksheets/sheet3.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Id="rId3"/> +* <Relationship Target="worksheets/sheet4.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet" Id="rId4"/> +* <Relationship Target="sharedStrings.xml" Type="http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings" Id="rId7"/> +* </Relationships> +* +* §2 Load data that is relevant to the complete workbook +* Currently supported is: +* §2.1 Shared strings - This holds all strings that are used in all worksheets +* §2.2 Styles - This holds all styles that are used in all worksheets +* §2.3 Worksheets - For each worksheet in the workbook one entry appears here to point to the file that holds the content of this worksheet +* §2.4 [Themes] - not supported +* §2.5 [VBA (Macro)] - supported in class zcl_excel_reader_xlsm but should be moved here and autodetect +* ... +* +* §3 Some information is held in the workbookfile as well +* §3.1 Names and order of of worksheets +* §3.2 Active worksheet +* §3.3 Defined names +* ... +* Following is an example how this file could be set up + +* <?xml version="1.0" encoding="UTF-8" standalone="true"?> +* <workbook xmlns:r="http://schemas.openxmlformats.org/officeDocument/2006/relationships" xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main"> +* <fileVersion rupBuild="4506" lowestEdited="4" lastEdited="4" appName="xl"/> +* <workbookPr defaultThemeVersion="124226"/> +* <bookViews> +* <workbookView activeTab="1" windowHeight="8445" windowWidth="19035" yWindow="120" xWindow="120"/> +* </bookViews> +* <sheets> +* <sheet r:id="rId1" sheetId="1" name="Sheet1"/> +* <sheet r:id="rId2" sheetId="2" name="Sheet2"/> +* <sheet r:id="rId3" sheetId="3" name="Sheet3" state="hidden"/> +* <sheet r:id="rId4" sheetId="4" name="Sheet4"/> +* </sheets> +* <definedNames/> +* <calcPr calcId="125725"/> +* </workbook> +*--------------------------------------------------------------------* + + CLEAR me->mt_ref_formulae. " ins issue#284 + +*--------------------------------------------------------------------* +* §1 Get the position of files related to this workbook +* Entry into this method is with the filename of the workbook +*--------------------------------------------------------------------* + CALL FUNCTION 'TRINT_SPLIT_FILE_AND_PATH' + EXPORTING + full_name = iv_workbook_full_filename + IMPORTING + stripped_name = lv_filename + file_path = lv_path. + + CONCATENATE lv_path '_rels/' lv_filename '.rels' + INTO lv_full_filename. + lo_rels_workbook = me->get_ixml_from_zip_archive( lv_full_filename ). + + lo_node ?= lo_rels_workbook->find_from_name( 'Relationship' ). "#EC NOTEXT + WHILE lo_node IS BOUND. + + me->fill_struct_from_attributes( EXPORTING ip_element = lo_node CHANGING cp_structure = ls_relationship ). + + CASE ls_relationship-type. + +*--------------------------------------------------------------------* +* §2.1 Shared strings - This holds all strings that are used in all worksheets +*--------------------------------------------------------------------* + WHEN lcv_shared_strings. + CONCATENATE lv_path ls_relationship-target + INTO lv_full_filename. + me->load_shared_strings( lv_full_filename ). + +*--------------------------------------------------------------------* +* §2.3 Worksheets +* For each worksheet in the workbook one entry appears here to point to the file that holds the content of this worksheet +* Shared strings and styles have to be present before we can start with creating the worksheets +* thus we only store this information for use when parsing the workbookfile for sheetinformations +*--------------------------------------------------------------------* + WHEN lcv_worksheet. + APPEND ls_relationship TO lt_worksheets. + +*--------------------------------------------------------------------* +* §2.2 Styles - This holds the styles that are used in all worksheets +*--------------------------------------------------------------------* + WHEN lcv_styles. + CONCATENATE lv_path ls_relationship-target + INTO lv_full_filename. + me->load_styles( ip_path = lv_full_filename + ip_excel = io_excel ). + + WHEN OTHERS. + + ENDCASE. + + lo_node ?= lo_node->get_next( ). + + ENDWHILE. + +*--------------------------------------------------------------------* +* §3 Some information held in the workbookfile +*--------------------------------------------------------------------* + lo_workbook = me->get_ixml_from_zip_archive( iv_workbook_full_filename ). + +*--------------------------------------------------------------------* +* §3.1 Names and order of of worksheets +*--------------------------------------------------------------------* + lo_node ?= lo_workbook->find_from_name( 'sheet' ). + lv_workbook_index = 1. + WHILE lo_node IS BOUND. + + me->fill_struct_from_attributes( EXPORTING + ip_element = lo_node + CHANGING + cp_structure = ls_sheet ). +*--------------------------------------------------------------------* +* Create new worksheet in workbook with correct name +*--------------------------------------------------------------------* + lv_worksheet_title = ls_sheet-name. + IF lv_workbook_index = 1. " First sheet has been added automatically by creating io_excel + lo_worksheet = io_excel->get_active_worksheet( ). + lo_worksheet->set_title( lv_worksheet_title ). + ELSE. + lo_worksheet = io_excel->add_new_worksheet( lv_worksheet_title ). + ENDIF. +*--------------------------------------------------------------------* +* #232 - Read worksheetstate hidden/veryHidden - begin of coding +* Set status hidden if necessary +*--------------------------------------------------------------------* + CASE ls_sheet-state. + + WHEN lcv_worksheet_state_hidden. + lo_worksheet->zif_excel_sheet_properties~hidden = zif_excel_sheet_properties=>c_hidden. + + WHEN lcv_worksheet_state_veryhidden. + lo_worksheet->zif_excel_sheet_properties~hidden = zif_excel_sheet_properties=>c_veryhidden. + + ENDCASE. +*--------------------------------------------------------------------* +* #232 - Read worksheetstate hidden/veryHidden - end of coding +*--------------------------------------------------------------------* +*--------------------------------------------------------------------* +* Load worksheetdata +*--------------------------------------------------------------------* + READ TABLE lt_worksheets ASSIGNING <worksheet> WITH KEY id = ls_sheet-id. + IF sy-subrc = 0. + <worksheet>-sheetid = ls_sheet-sheetid. "ins #235 - repeat rows/cols - needed to identify correct sheet + CONCATENATE lv_path <worksheet>-target + INTO lv_worksheet_path. + me->load_worksheet( ip_path = lv_worksheet_path + io_worksheet = lo_worksheet ). + <worksheet>-worksheet = lo_worksheet. + ENDIF. + + lo_node ?= lo_node->get_next( ). + ADD 1 TO lv_workbook_index. + + ENDWHILE. + SORT lt_worksheets BY sheetid. " needed for localSheetid -referencing + +*--------------------------------------------------------------------* +* #284: Set active worksheet - Resolve referenced formulae to +* explicit formulae those cells +*--------------------------------------------------------------------* + me->resolve_referenced_formulae( ). + " ins issue#284 +*--------------------------------------------------------------------* +* #229: Set active worksheet - begin coding +* §3.2 Active worksheet +*--------------------------------------------------------------------* + lv_zexcel_active_worksheet = 1. " First sheet = active sheet if nothing else specified. + lo_node ?= lo_workbook->find_from_name( 'workbookView' ). + IF lo_node IS BOUND. + lv_active_sheet_string = lo_node->get_attribute( 'activeTab' ). + TRY. + lv_zexcel_active_worksheet = lv_active_sheet_string + 1. " EXCEL numbers the sheets from 0 onwards --> index into worksheettable is increased by one + CATCH cx_sy_conversion_error. "#EC NO_HANDLER - error here --> just use the default 1st sheet + ENDTRY. + ENDIF. + io_excel->set_active_sheet_index( lv_zexcel_active_worksheet ). +*--------------------------------------------------------------------* +* #229: Set active worksheet - end coding +*--------------------------------------------------------------------* + + +*--------------------------------------------------------------------* +* §3.3 Defined names +* So far I have encountered these +* - named ranges - sheetlocal +* - named ranges - workbookglobal +* - autofilters - sheetlocal ( special range ) +* - repeat rows/cols - sheetlocal ( special range ) +* +*--------------------------------------------------------------------* + lo_node ?= lo_workbook->find_from_name( 'definedName' ). + WHILE lo_node IS BOUND. + + CLEAR lo_range. "ins issue #235 - repeat rows/cols + me->fill_struct_from_attributes( EXPORTING + ip_element = lo_node + CHANGING + cp_structure = ls_range ). + lv_range_value = lo_node->get_value( ). + + IF ls_range-localsheetid IS NOT INITIAL. " issue #163+ +* READ TABLE lt_worksheets ASSIGNING <worksheet> WITH KEY id = ls_range-localsheetid. "del issue #235 - repeat rows/cols " issue #163+ +* lo_range = <worksheet>-worksheet->add_new_range( ). "del issue #235 - repeat rows/cols " issue #163+ +*--------------------------------------------------------------------* +* issue#235 - repeat rows/columns - begin +*--------------------------------------------------------------------* + lv_tabix = ls_range-localsheetid + 1. + READ TABLE lt_worksheets ASSIGNING <worksheet> INDEX lv_tabix. + IF sy-subrc = 0. + CASE ls_range-name. + +*--------------------------------------------------------------------* +* insert autofilters +*--------------------------------------------------------------------* + WHEN zcl_excel_autofilters=>c_autofilter. + lo_autofilter = io_excel->add_new_autofilter( io_sheet = <worksheet>-worksheet ) . + zcl_excel_common=>convert_range2column_a_row( EXPORTING i_range = lv_range_value + IMPORTING e_column_start = lv_col_start_alpha + e_column_end = lv_col_end_alpha + e_row_start = ls_area-row_start ). + ls_area-col_start = zcl_excel_common=>convert_column2int( lv_col_start_alpha ). + ls_area-col_end = zcl_excel_common=>convert_column2int( lv_col_end_alpha ). + lo_autofilter->set_filter_area( is_area = ls_area ). + +*--------------------------------------------------------------------* +* repeat print rows/columns +*--------------------------------------------------------------------* + WHEN zif_excel_sheet_printsettings=>gcv_print_title_name. + lo_range = <worksheet>-worksheet->add_new_range( ). +*--------------------------------------------------------------------* +* This might be a temporary solution. Maybe ranges get be reworked +* to support areas consisting of multiple rectangles +* But for now just split the range into row and columnpart +*--------------------------------------------------------------------* + CLEAR:lv_range_value_1, + lv_range_value_2. + IF lv_range_value IS INITIAL. +* Empty --> nothing to do + ELSE. + IF lv_range_value(1) = `'`. " Escaped + lv_regex = `^('[^']*')+![^,]*,`. + ELSE. + lv_regex = `^[^!]*![^,]*,`. + ENDIF. +* Split into two ranges if necessary + FIND REGEX lv_regex IN lv_range_value MATCH LENGTH sy-fdpos. + IF sy-subrc = 0 AND sy-fdpos > 0. + lv_range_value_2 = lv_range_value+sy-fdpos. + SUBTRACT 1 FROM sy-fdpos. + lv_range_value_1 = lv_range_value(sy-fdpos). + ELSE. + lv_range_value_1 = lv_range_value. + ENDIF. + ENDIF. +* 1st range + zcl_excel_common=>convert_range2column_a_row( EXPORTING i_range = lv_range_value_1 + IMPORTING e_column_start = lv_col_start_alpha + e_column_end = lv_col_end_alpha + e_row_start = lv_row_start + e_row_end = lv_row_end ). + IF lv_col_start_alpha IS NOT INITIAL. + <worksheet>-worksheet->zif_excel_sheet_printsettings~set_print_repeat_columns( iv_columns_from = lv_col_start_alpha + iv_columns_to = lv_col_end_alpha ). + ENDIF. + IF lv_row_start IS NOT INITIAL. + <worksheet>-worksheet->zif_excel_sheet_printsettings~set_print_repeat_rows( iv_rows_from = lv_row_start + iv_rows_to = lv_row_end ). + ENDIF. + +* 2nd range + zcl_excel_common=>convert_range2column_a_row( EXPORTING i_range = lv_range_value_2 + IMPORTING e_column_start = lv_col_start_alpha + e_column_end = lv_col_end_alpha + e_row_start = lv_row_start + e_row_end = lv_row_end ). + IF lv_col_start_alpha IS NOT INITIAL. + <worksheet>-worksheet->zif_excel_sheet_printsettings~set_print_repeat_columns( iv_columns_from = lv_col_start_alpha + iv_columns_to = lv_col_end_alpha ). + ENDIF. + IF lv_row_start IS NOT INITIAL. + <worksheet>-worksheet->zif_excel_sheet_printsettings~set_print_repeat_rows( iv_rows_from = lv_row_start + iv_rows_to = lv_row_end ). + ENDIF. + + WHEN OTHERS. + + ENDCASE. + ENDIF. +*--------------------------------------------------------------------* +* issue#235 - repeat rows/columns - end +*--------------------------------------------------------------------* + ELSE. " issue #163+ + lo_range = io_excel->add_new_range( ). " issue #163+ + ENDIF. " issue #163+ +* lo_range = ip_excel->add_new_range( ). " issue #163- + IF lo_range IS BOUND. "ins issue #235 - repeat rows/cols + lo_range->name = ls_range-name. + lo_range->set_range_value( lv_range_value ). + ENDIF. "ins issue #235 - repeat rows/cols + lo_node ?= lo_node->get_next( ). + + ENDWHILE. + +ENDMETHOD. + + + + + + METHOD load_worksheet. +*--------------------------------------------------------------------* +* ToDos: +* 2do§1 Header/footer +* +* Please don't just delete these ToDos if they are not +* needed but leave a comment that states this +*--------------------------------------------------------------------* + +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, +* - ... +* changes: renaming variables to naming conventions +* aligning code (started) +* add a list of open ToDos here +* adding comments to explain what we are trying to achieve (started) +*--------------------------------------------------------------------* + TYPES: BEGIN OF lty_cell, + r TYPE string, + t TYPE string, + s TYPE string, + END OF lty_cell. + + TYPES: BEGIN OF lty_column, + min TYPE string, + max TYPE string, + width TYPE float, + customwidth TYPE string, + style TYPE string, + bestfit TYPE string, + collapsed TYPE string, + hidden TYPE string, + outlinelevel TYPE string, + 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, + END OF lty_sheetview. + + TYPES: BEGIN OF lty_mergecell, + ref TYPE string, + END OF lty_mergecell. + + TYPES: BEGIN OF lty_row, + r TYPE string, + customheight TYPE string, + ht TYPE float, + spans TYPE string, + thickbot TYPE string, + customformat TYPE string, + thicktop TYPE string, + collapsed TYPE string, + hidden TYPE string, + outlinelevel TYPE string, + END OF lty_row. + + TYPES: BEGIN OF lty_page_setup, + id TYPE string, + orientation TYPE string, + scale TYPE string, + END OF lty_page_setup. + + TYPES: BEGIN OF lty_page_margins, + footer TYPE string, + header TYPE string, + bottom TYPE string, + top TYPE string, + right TYPE string, + left TYPE string, + END OF lty_page_margins. + + TYPES: BEGIN OF lty_sheetformatpr, + customheight TYPE string, + defaultrowheight TYPE string, + customwidth TYPE string, + defaultcolwidth TYPE string, + END OF lty_sheetformatpr. + + TYPES: BEGIN OF lty_headerfooter, + alignwithmargins TYPE string, + differentoddeven TYPE string, + END OF lty_headerfooter. + + TYPES: BEGIN OF lty_tabcolor, + rgb TYPE string, + theme TYPE string, + END OF lty_tabcolor. + + + CONSTANTS: lc_xml_attr_true TYPE string VALUE 'true', + lc_xml_attr_true_int TYPE string VALUE '1', + lc_rel_drawing TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing', + lc_rel_printer TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings'. + + DATA: lo_ixml_worksheet TYPE REF TO if_ixml_document, + lo_ixml_cells TYPE REF TO if_ixml_node_collection, + lo_ixml_iterator TYPE REF TO if_ixml_node_iterator, + lo_ixml_iterator2 TYPE REF TO if_ixml_node_iterator, + lo_ixml_row_elem TYPE REF TO if_ixml_element, + lo_ixml_cell_elem TYPE REF TO if_ixml_element, + ls_cell TYPE lty_cell, + lv_index TYPE i, + lo_ixml_value_elem TYPE REF TO if_ixml_element, + lo_ixml_formula_elem TYPE REF TO if_ixml_element, + lv_cell_value TYPE zexcel_cell_value, + lv_cell_formula TYPE zexcel_cell_formula, + lv_cell_column TYPE zexcel_cell_column_alpha, + lv_cell_row TYPE zexcel_cell_row, + lo_excel_style TYPE REF TO zcl_excel_style, + lv_style_guid TYPE zexcel_cell_style, + + lo_ixml_imension_elem TYPE REF TO if_ixml_element, "#+234 + lv_dimension_range TYPE string, "#+234 + + lo_ixml_sheetview_elem TYPE REF TO if_ixml_element, + ls_sheetview TYPE lty_sheetview, + lo_ixml_pane_elem TYPE REF TO if_ixml_element, + ls_excel_pane TYPE zexcel_pane, + lv_pane_cell_row TYPE zexcel_cell_row, + lv_pane_cell_col_a TYPE zexcel_cell_column_alpha, + lv_pane_cell_col TYPE zexcel_cell_column, + + lo_ixml_mergecells TYPE REF TO if_ixml_node_collection, + lo_ixml_mergecell_elem TYPE REF TO if_ixml_element, + ls_mergecell TYPE lty_mergecell, + lv_merge_column_start TYPE zexcel_cell_column_alpha, + lv_merge_column_end TYPE zexcel_cell_column_alpha, + lv_merge_row_start TYPE zexcel_cell_row, + lv_merge_row_end TYPE zexcel_cell_row, + + lo_ixml_sheetformatpr_elem TYPE REF TO if_ixml_element, + ls_sheetformatpr TYPE lty_sheetformatpr, + lv_height TYPE float, + + lo_ixml_headerfooter_elem TYPE REF TO if_ixml_element, + ls_headerfooter TYPE lty_headerfooter, + ls_odd_header TYPE zexcel_s_worksheet_head_foot, + ls_odd_footer TYPE zexcel_s_worksheet_head_foot, + ls_even_header TYPE zexcel_s_worksheet_head_foot, + ls_even_footer TYPE zexcel_s_worksheet_head_foot, + lo_ixml_hf_value_elem TYPE REF TO if_ixml_element, + + lo_ixml_pagemargins_elem TYPE REF TO if_ixml_element, + ls_pagemargins TYPE lty_page_margins, + lo_ixml_pagesetup_elem TYPE REF TO if_ixml_element, + ls_pagesetup TYPE lty_page_setup, + + lo_ixml_columns TYPE REF TO if_ixml_node_collection, + lo_ixml_column_elem TYPE REF TO if_ixml_element, + ls_column TYPE lty_column, + lv_column_alpha TYPE zexcel_cell_column_alpha, + lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lv_outline_level TYPE int4, + + lo_ixml_tabcolor TYPE REF TO if_ixml_element, + ls_tabcolor TYPE lty_tabcolor, + ls_excel_s_tabcolor TYPE zexcel_s_tabcolor, + + lo_ixml_rows TYPE REF TO if_ixml_node_collection, + ls_row TYPE lty_row, + lv_max_col TYPE i, "for use with SPANS element +* lv_min_col TYPE i, "for use with SPANS element " not in use currently + lv_max_col_s TYPE char10, "for use with SPANS element + lv_min_col_s TYPE char10, "for use with SPANS element + lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, +*--- End of current code aligning --------------------------------------------------------------- + + lv_path TYPE string, + lo_ixml_node TYPE REF TO if_ixml_element, + ls_relationship TYPE t_relationship, + lo_ixml_rels_worksheet TYPE REF TO if_ixml_document, + lv_rels_worksheet_path TYPE string, + lv_stripped_name TYPE chkfile, + lv_dirname TYPE string. + + +*--------------------------------------------------------------------* +* §2 We need to read the the file "\\_rels\.rels" because it tells +* us where in this folder structure the data for the workbook +* is located in the xlsx zip-archive +* +* The xlsx Zip-archive has generally the following folder structure: +* <root> | +* |--> _rels +* |--> doc_Props +* |--> xl | +* |--> _rels +* |--> theme +* |--> worksheets +*--------------------------------------------------------------------* + + " Read Workbook Relationships + CALL FUNCTION 'TRINT_SPLIT_FILE_AND_PATH' + EXPORTING + full_name = ip_path + IMPORTING + stripped_name = lv_stripped_name + file_path = lv_dirname. + CONCATENATE lv_dirname '_rels/' lv_stripped_name '.rels' + INTO lv_rels_worksheet_path. + TRY. " +#222 _rels/xxx.rels might not be present. If not found there can be no drawings --> just ignore this section + lo_ixml_rels_worksheet = me->get_ixml_from_zip_archive( lv_rels_worksheet_path ). + lo_ixml_node ?= lo_ixml_rels_worksheet->find_from_name( 'Relationship' ). + CATCH zcx_excel. "#EC NO_HANDLER +#222 + " +#222 No errorhandling necessary - node will be unbound if error occurs + ENDTRY. " +#222 + WHILE lo_ixml_node IS BOUND. + fill_struct_from_attributes( EXPORTING + ip_element = lo_ixml_node + CHANGING + cp_structure = ls_relationship ). + CONCATENATE lv_dirname ls_relationship-target INTO lv_path. + lv_path = resolve_path( lv_path ). + + CASE ls_relationship-type. + WHEN lc_rel_drawing. + " Read Drawings + me->load_worksheet_drawing( ip_path = lv_path + io_worksheet = io_worksheet ). + + WHEN lc_rel_printer. + " Read Printer settings + + WHEN OTHERS. + ENDCASE. + + lo_ixml_node ?= lo_ixml_node->get_next( ). + ENDWHILE. + + + lo_ixml_worksheet = me->get_ixml_from_zip_archive( ip_path ). + + + lo_ixml_tabcolor ?= lo_ixml_worksheet->find_from_name( 'tabColor' ). + IF lo_ixml_tabcolor IS BOUND. + fill_struct_from_attributes( EXPORTING + ip_element = lo_ixml_tabcolor + CHANGING + cp_structure = ls_tabcolor ). +* Theme not supported yet + IF ls_tabcolor-rgb IS NOT INITIAL. + ls_excel_s_tabcolor-rgb = ls_tabcolor-rgb. + io_worksheet->set_tabcolor( ls_excel_s_tabcolor ). + ENDIF. + ENDIF. + + lo_ixml_rows = lo_ixml_worksheet->get_elements_by_tag_name( name = 'row' ). + lo_ixml_iterator = lo_ixml_rows->create_iterator( ). + lo_ixml_row_elem ?= lo_ixml_iterator->get_next( ). + WHILE lo_ixml_row_elem IS BOUND. + + fill_struct_from_attributes( EXPORTING + ip_element = lo_ixml_row_elem + CHANGING + cp_structure = ls_row ). + SPLIT ls_row-spans AT ':' INTO lv_min_col_s lv_max_col_s. + lv_index = lv_max_col_s. + IF lv_index > lv_max_col. + lv_max_col = lv_index. + ENDIF. + lv_cell_row = ls_row-r. + IF ls_row-customheight = '1' + OR ls_row-collapsed = lc_xml_attr_true + OR ls_row-collapsed = lc_xml_attr_true_int + OR ls_row-hidden = lc_xml_attr_true + OR ls_row-hidden = lc_xml_attr_true_int + OR ls_row-outlinelevel > '0'. + lo_row_dimension = io_worksheet->get_row_dimension( lv_cell_row ). + IF ls_row-customheight = '1'. + lo_row_dimension->set_row_height( ls_row-ht ). + ENDIF. + + IF ls_row-collapsed = lc_xml_attr_true + OR ls_row-collapsed = lc_xml_attr_true_int. + lo_row_dimension->set_collapsed( abap_true ). + ENDIF. + + IF ls_row-hidden = lc_xml_attr_true + OR ls_row-hidden = lc_xml_attr_true_int. + lo_row_dimension->set_visible( abap_false ). + ENDIF. + + IF ls_row-outlinelevel > ''. +* outline_level = condense( row-outlineLevel ). "For basis 7.02 and higher + CONDENSE ls_row-outlinelevel. + lv_outline_level = ls_row-outlinelevel. + IF lv_outline_level > 0. + lo_row_dimension->set_outline_level( lv_outline_level ). + ENDIF. + ENDIF. + ENDIF. + + lo_ixml_cells = lo_ixml_row_elem->get_elements_by_tag_name( name = 'c' ). + lo_ixml_iterator2 = lo_ixml_cells->create_iterator( ). + lo_ixml_cell_elem ?= lo_ixml_iterator2->get_next( ). + WHILE lo_ixml_cell_elem IS BOUND. + CLEAR: lv_cell_value, + lv_cell_formula, + lv_style_guid. + + fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_cell_elem CHANGING cp_structure = ls_cell ). + + lo_ixml_value_elem = lo_ixml_cell_elem->find_from_name( name = 'v' ). + + CASE ls_cell-t. + WHEN 's'. " String values are stored as index in shared string table + lv_index = lo_ixml_value_elem->get_value( ) + 1. + READ TABLE shared_strings INTO lv_cell_value INDEX lv_index. + WHEN 'inlineStr'. " inlineStr values are kept in special node + lo_ixml_value_elem = lo_ixml_cell_elem->find_from_name( name = 'is' ). + IF lo_ixml_value_elem IS BOUND. + lv_cell_value = lo_ixml_value_elem->get_value( ). + ENDIF. + WHEN OTHERS. "other types are stored directly + IF lo_ixml_value_elem IS BOUND. + lv_cell_value = lo_ixml_value_elem->get_value( ). + ENDIF. + ENDCASE. + + CLEAR lv_style_guid. + "read style based on index + IF ls_cell-s IS NOT INITIAL. + lv_index = ls_cell-s + 1. + READ TABLE styles INTO lo_excel_style INDEX lv_index. + IF sy-subrc = 0. + lv_style_guid = lo_excel_style->get_guid( ). + ENDIF. + ENDIF. + + lo_ixml_formula_elem = lo_ixml_cell_elem->find_from_name( name = 'f' ). + IF lo_ixml_formula_elem IS BOUND. + lv_cell_formula = lo_ixml_formula_elem->get_value( ). +*--------------------------------------------------------------------* +* Begin of insertion issue#284 - Copied formulae not +*--------------------------------------------------------------------* + DATA: BEGIN OF ls_formula_attributes, + ref TYPE string, + si TYPE i, + t TYPE string, + END OF ls_formula_attributes, + ls_ref_formula TYPE ty_ref_formulae. + + fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_formula_elem CHANGING cp_structure = ls_formula_attributes ). + IF ls_formula_attributes-t = 'shared'. + zcl_excel_common=>convert_columnrow2column_a_row( EXPORTING + i_columnrow = ls_cell-r + IMPORTING + e_column = lv_cell_column + e_row = lv_cell_row ). + + TRY. + CLEAR ls_ref_formula. + ls_ref_formula-sheet = io_worksheet. + ls_ref_formula-row = lv_cell_row. + ls_ref_formula-column = zcl_excel_common=>convert_column2int( lv_cell_column ). + ls_ref_formula-si = ls_formula_attributes-si. + ls_ref_formula-ref = ls_formula_attributes-ref. + ls_ref_formula-formula = lv_cell_formula. + INSERT ls_ref_formula INTO TABLE me->mt_ref_formulae. + CATCH cx_root. + BREAK-POINT. + ENDTRY. + ENDIF. +*--------------------------------------------------------------------* +* End of insertion issue#284 - Copied formulae not +*--------------------------------------------------------------------* + ENDIF. + + IF lv_cell_value IS NOT INITIAL + OR lv_cell_formula IS NOT INITIAL + OR lv_style_guid IS NOT INITIAL. + zcl_excel_common=>convert_columnrow2column_a_row( EXPORTING + i_columnrow = ls_cell-r + IMPORTING + e_column = lv_cell_column + e_row = lv_cell_row ). + io_worksheet->set_cell( ip_column = lv_cell_column " cell_elem Column + ip_row = lv_cell_row " cell_elem row_elem + ip_value = lv_cell_value " cell_elem Value + ip_formula = lv_cell_formula + ip_data_type = ls_cell-t + ip_style = lv_style_guid ). + ENDIF. + lo_ixml_cell_elem ?= lo_ixml_iterator2->get_next( ). + ENDWHILE. + lo_ixml_row_elem ?= lo_ixml_iterator->get_next( ). + ENDWHILE. + +*--------------------------------------------------------------------* +*#234 - column width not read correctly - begin of coding +* reason - libre office doesn't use SPAN in row - definitions +*--------------------------------------------------------------------* + IF lv_max_col = 0. + lo_ixml_imension_elem = lo_ixml_worksheet->find_from_name( name = 'dimension' ). + IF lo_ixml_imension_elem IS BOUND. + lv_dimension_range = lo_ixml_imension_elem->get_attribute( 'ref' ). + IF lv_dimension_range CS ':'. + REPLACE REGEX '\D+\d+:(\D+)\d+' IN lv_dimension_range WITH '$1'. " Get max column + ELSE. + REPLACE REGEX '(\D+)\d+' IN lv_dimension_range WITH '$1'. " Get max column + ENDIF. + lv_max_col = zcl_excel_common=>convert_column2int( lv_dimension_range ). + ENDIF. + ENDIF. +*--------------------------------------------------------------------* +*#234 - column width not read correctly - end of coding +*--------------------------------------------------------------------* + + "Get the customized column width + lo_ixml_columns = lo_ixml_worksheet->get_elements_by_tag_name( name = 'col' ). + lo_ixml_iterator = lo_ixml_columns->create_iterator( ). + lo_ixml_column_elem ?= lo_ixml_iterator->get_next( ). + WHILE lo_ixml_column_elem IS BOUND. + fill_struct_from_attributes( EXPORTING + ip_element = lo_ixml_column_elem + CHANGING + cp_structure = ls_column ). + lo_ixml_column_elem ?= lo_ixml_iterator->get_next( ). + IF ls_column-customwidth = lc_xml_attr_true + OR ls_column-customwidth = lc_xml_attr_true_int + OR ls_column-bestfit = lc_xml_attr_true + OR ls_column-bestfit = lc_xml_attr_true_int + OR ls_column-collapsed = lc_xml_attr_true + OR ls_column-collapsed = lc_xml_attr_true_int + OR ls_column-hidden = lc_xml_attr_true + OR ls_column-hidden = lc_xml_attr_true_int + OR ls_column-outlinelevel > '' + OR ls_column-style > ''. + lv_index = ls_column-min. + WHILE lv_index <= ls_column-max AND lv_index <= lv_max_col. + + lv_column_alpha = zcl_excel_common=>convert_column2alpha( lv_index ). + lo_column_dimension = io_worksheet->get_column_dimension( lv_column_alpha ). + + IF ls_column-customwidth = lc_xml_attr_true + OR ls_column-customwidth = lc_xml_attr_true_int + OR ls_column-width IS NOT INITIAL. "+#234 + lo_column_dimension->set_width( ls_column-width ). + ENDIF. + + IF ls_column-bestfit = lc_xml_attr_true + OR ls_column-bestfit = lc_xml_attr_true_int. + lo_column_dimension->set_auto_size( abap_true ). + ENDIF. + + IF ls_column-collapsed = lc_xml_attr_true + OR ls_column-collapsed = lc_xml_attr_true_int. + lo_column_dimension->set_collapsed( abap_true ). + ENDIF. + + IF ls_column-hidden = lc_xml_attr_true + OR ls_column-hidden = lc_xml_attr_true_int. + lo_column_dimension->set_visible( abap_false ). + ENDIF. + + IF ls_column-outlinelevel > ''. +* outline_level = condense( column-outlineLevel ). + CONDENSE ls_column-outlinelevel. + lv_outline_level = ls_column-outlinelevel. + IF lv_outline_level > 0. + lo_column_dimension->set_outline_level( lv_outline_level ). + ENDIF. + ENDIF. + + IF ls_column-style > ''. + sy-index = ls_column-style + 1. + READ TABLE styles INTO lo_excel_style INDEX sy-index. + DATA: dummy_zexcel_cell_style TYPE zexcel_cell_style. + dummy_zexcel_cell_style = lo_excel_style->get_guid( ). + lo_column_dimension->set_column_style_by_guid( dummy_zexcel_cell_style ). + ENDIF. + + ADD 1 TO lv_index. + ENDWHILE. + ENDIF. +* Fix 207 Read attributes HIDDEN, OUTLINELEVEL, COLLAPSED in ZCL_EXCEL_READER_2007 +* IF column-hidden = lc_xml_attr_true OR +* column-hidden = lc_xml_attr_true_int. +* index = column-min. +* WHILE index <= column-max. +* column_alpha = zcl_excel_common=>convert_column2alpha( index ). +* column_dimension = io_worksheet->get_column_dimension( column_alpha ). +* column_dimension->set_visible( abap_false ). +* ADD 1 TO index. +* ENDWHILE. +* ENDIF. + ENDWHILE. + + "Now we need to get information from the sheetView node + lo_ixml_sheetview_elem = lo_ixml_worksheet->find_from_name( name = 'sheetView' ). + fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_sheetview_elem CHANGING cp_structure = ls_sheetview ). + IF ls_sheetview-showgridlines IS INITIAL OR + ls_sheetview-showgridlines = lc_xml_attr_true OR + ls_sheetview-showgridlines = lc_xml_attr_true_int. + "If the attribute is not specified or set to true, we will show grid lines + ls_sheetview-showgridlines = abap_true. + ELSE. + ls_sheetview-showgridlines = abap_false. + ENDIF. + io_worksheet->set_show_gridlines( ls_sheetview-showgridlines ). + + + "Add merge cell information + lo_ixml_mergecells = lo_ixml_worksheet->get_elements_by_tag_name( name = 'mergeCell' ). + lo_ixml_iterator = lo_ixml_mergecells->create_iterator( ). + lo_ixml_mergecell_elem ?= lo_ixml_iterator->get_next( ). + WHILE lo_ixml_mergecell_elem IS BOUND. + fill_struct_from_attributes( EXPORTING + ip_element = lo_ixml_mergecell_elem + CHANGING + cp_structure = ls_mergecell ). + zcl_excel_common=>convert_range2column_a_row( EXPORTING + i_range = ls_mergecell-ref + IMPORTING + e_column_start = lv_merge_column_start + e_column_end = lv_merge_column_end + e_row_start = lv_merge_row_start + e_row_end = lv_merge_row_end ). + lo_ixml_mergecell_elem ?= lo_ixml_iterator->get_next( ). + io_worksheet->set_merge( EXPORTING + ip_column_start = lv_merge_column_start + ip_column_end = lv_merge_column_end + ip_row = lv_merge_row_start + ip_row_to = lv_merge_row_end ). + ENDWHILE. + + " read sheet format properties + lo_ixml_sheetformatpr_elem = lo_ixml_worksheet->find_from_name( 'sheetFormatPr' ). + IF lo_ixml_sheetformatpr_elem IS NOT INITIAL. + fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_sheetformatpr_elem CHANGING cp_structure = ls_sheetformatpr ). + IF ls_sheetformatpr-customheight = '1'. + lv_height = ls_sheetformatpr-defaultrowheight. + lo_row_dimension = io_worksheet->get_default_row_dimension( ). + lo_row_dimension->set_row_height( lv_height ). + ENDIF. + + " TODO... column + ENDIF. + + " Read in page margins + lo_ixml_pagemargins_elem = lo_ixml_worksheet->find_from_name( 'pageMargins' ). + IF lo_ixml_pagemargins_elem IS NOT INITIAL. + fill_struct_from_attributes( EXPORTING + ip_element = lo_ixml_pagemargins_elem + CHANGING + cp_structure = ls_pagemargins ). + io_worksheet->sheet_setup->margin_bottom = ls_pagemargins-bottom. + io_worksheet->sheet_setup->margin_footer = ls_pagemargins-footer. + io_worksheet->sheet_setup->margin_header = ls_pagemargins-header. + io_worksheet->sheet_setup->margin_left = ls_pagemargins-left. + io_worksheet->sheet_setup->margin_right = ls_pagemargins-right. + io_worksheet->sheet_setup->margin_top = ls_pagemargins-top. + ENDIF. + + " Read in page setup + lo_ixml_pagesetup_elem = lo_ixml_worksheet->find_from_name( 'pageSetup' ). + IF lo_ixml_pagesetup_elem IS NOT INITIAL. + fill_struct_from_attributes( EXPORTING + ip_element = lo_ixml_pagesetup_elem + CHANGING + cp_structure = ls_pagesetup ). + io_worksheet->sheet_setup->orientation = ls_pagesetup-orientation. + io_worksheet->sheet_setup->scale = ls_pagesetup-scale. + ENDIF. + + " Read header footer + lo_ixml_headerfooter_elem = lo_ixml_worksheet->find_from_name( 'headerFooter' ). + IF lo_ixml_headerfooter_elem IS NOT INITIAL. + fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_headerfooter_elem CHANGING cp_structure = ls_headerfooter ). + io_worksheet->sheet_setup->diff_oddeven_headerfooter = ls_headerfooter-differentoddeven. + + lo_ixml_hf_value_elem = lo_ixml_headerfooter_elem->find_from_name( 'oddFooter' ). + IF lo_ixml_hf_value_elem IS NOT INITIAL. + ls_odd_footer-left_value = lo_ixml_hf_value_elem->get_value( ). + ENDIF. + +* 2do§1 Header/footer + " TODO.. get the rest. + + io_worksheet->sheet_setup->set_header_footer( ip_odd_header = ls_odd_header + ip_odd_footer = ls_odd_footer + ip_even_header = ls_even_header + ip_even_footer = ls_even_footer ). + + ENDIF. + + " Start fix 194 Read attributes HIDDEN, OUTLINELEVEL, COLLAPSED in ZCL_EXCEL_READER_2007 + " Read pane + lo_ixml_pane_elem = lo_ixml_sheetview_elem->find_from_name( name = 'pane' ). + IF lo_ixml_pane_elem IS BOUND. + fill_struct_from_attributes( EXPORTING ip_element = lo_ixml_pane_elem CHANGING cp_structure = ls_excel_pane ). + " Issue #194 + " Replace REGEX with method from the common class + 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 + AND lv_pane_cell_row > 0. + io_worksheet->freeze_panes( ip_num_rows = lv_pane_cell_row + ip_num_columns = lv_pane_cell_col ). + ELSEIF lv_pane_cell_row > 0. + io_worksheet->freeze_panes( ip_num_rows = lv_pane_cell_row ). + ELSE. + io_worksheet->freeze_panes( ip_num_columns = lv_pane_cell_col ). + ENDIF. + ENDIF. + " End fix 194 Read attributes HIDDEN, OUTLINELEVEL, COLLAPSED in ZCL_EXCEL_READER_2007 + +ENDMETHOD. + + + + + + method LOAD_WORKSHEET_DRAWING. + + TYPES: BEGIN OF t_c_nv_pr, + name TYPE string, + id TYPE string, + END OF t_c_nv_pr. + + TYPES: BEGIN OF t_blip, + cstate TYPE string, + embed TYPE string, + END OF t_blip. + + TYPES: BEGIN OF t_chart, + id TYPE string, + END OF t_chart. + + CONSTANTS: lc_xml_attr_true TYPE string VALUE 'true', + lc_xml_attr_true_int TYPE string VALUE '1'. + CONSTANTS: lc_rel_chart TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart', + lc_rel_image TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image'. + + DATA: drawing TYPE REF TO if_ixml_document, + anchors TYPE REF TO if_ixml_node_collection, + node TYPE REF TO if_ixml_element, + coll_length TYPE i, + iterator TYPE REF TO if_ixml_node_iterator, + anchor_elem TYPE REF TO if_ixml_element, + + relationship TYPE t_relationship, + rel_drawings TYPE t_rel_drawings, + rel_drawing TYPE t_rel_drawing, + rels_drawing TYPE REF TO if_ixml_document, + rels_drawing_path TYPE string, + stripped_name TYPE chkfile, + dirname TYPE string, + + path TYPE string, + path2 TYPE text255, + file_ext2 TYPE char10. + + " Read Workbook Relationships + CALL FUNCTION 'TRINT_SPLIT_FILE_AND_PATH' + EXPORTING + full_name = ip_path + IMPORTING + stripped_name = stripped_name + file_path = dirname. + CONCATENATE dirname '_rels/' stripped_name '.rels' + INTO rels_drawing_path. + rels_drawing_path = resolve_path( rels_drawing_path ). + rels_drawing = me->get_ixml_from_zip_archive( rels_drawing_path ). + node ?= rels_drawing->find_from_name( 'Relationship' ). + WHILE node IS BOUND. + fill_struct_from_attributes( EXPORTING ip_element = node CHANGING cp_structure = relationship ). + + rel_drawing-id = relationship-id. + + CONCATENATE dirname relationship-target INTO path. + path = resolve_path( path ). + rel_drawing-content = me->get_from_zip_archive( path ). "------------> This is for template usage + + path2 = path. + zcl_excel_common=>split_file( EXPORTING ip_file = path2 + IMPORTING ep_extension = file_ext2 ). +* CALL FUNCTION 'CV120_SPLIT_FILE' +* EXPORTING +* pf_file = path2 +* IMPORTING +* pfx_extension = file_ext2. + rel_drawing-file_ext = file_ext2. + + "-------------Added by Alessandro Iannacci - Should load graph xml + CASE relationship-type. + WHEN lc_rel_chart. + "Read chart xml + rel_drawing-content_xml = me->get_ixml_from_zip_archive( path ). + WHEN OTHERS. + ENDCASE. + "---------------------------- + + + APPEND rel_drawing TO rel_drawings. + + node ?= node->get_next( ). + ENDWHILE. + + drawing = me->get_ixml_from_zip_archive( ip_path ). + +* one-cell anchor ************** + anchors = drawing->get_elements_by_tag_name( name = 'oneCellAnchor' namespace = 'xdr' ). + coll_length = anchors->get_length( ). + iterator = anchors->create_iterator( ). + DO coll_length TIMES. + anchor_elem ?= iterator->get_next( ). + + CALL METHOD me->load_drawing_anchor + EXPORTING + io_anchor_element = anchor_elem + io_worksheet = io_worksheet + it_related_drawings = rel_drawings. + + ENDDO. + +* two-cell anchor ****************** + anchors = drawing->get_elements_by_tag_name( name = 'twoCellAnchor' namespace = 'xdr' ). + coll_length = anchors->get_length( ). + iterator = anchors->create_iterator( ). + DO coll_length TIMES. + anchor_elem ?= iterator->get_next( ). + + CALL METHOD me->load_drawing_anchor + EXPORTING + io_anchor_element = anchor_elem + io_worksheet = io_worksheet + it_related_drawings = rel_drawings. + + ENDDO. + +endmethod. + + + + + method RESOLVE_PATH. +*--------------------------------------------------------------------* +* ToDos: +* 2do§1 Determine whether the replacement should be done +* iterative to allow /../../.. or something alike +* 2do§2 Determine whether /./ has to be supported as well +* 2do§3 Create unit-test for this method +* +* Please don't just delete these ToDos if they are not +* needed but leave a comment that states this +*--------------------------------------------------------------------* + +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (done) 2012-11-11 +* - ... +* changes: replaced previous coding by regular expression +* adding comments to explain what we are trying to achieve +*--------------------------------------------------------------------* + +*--------------------------------------------------------------------* +* §1 This routine will receive a path, that may have a relative pathname (/../) included somewhere +* The output should be a resolved path without relative references +* Example: Input xl/worksheets/../drawings/drawing1.xml +* Output xl/drawings/drawing1.xml +*--------------------------------------------------------------------* + + rp_result = ip_path. +*--------------------------------------------------------------------* +* §1 Remove relative pathnames +*--------------------------------------------------------------------* +* Regular expression [^/]*/\.\./ +* [^/]* --> any number of characters other than / +* followed by /\.\./ --> the sequence /../ +* ==> worksheets/../ will be found in the example +*--------------------------------------------------------------------* + REPLACE REGEX '[^/]*/\.\./' IN rp_result WITH ``. + + +endmethod. + + + METHOD resolve_referenced_formulae. + TYPES: BEGIN OF ty_referenced_cells, + sheet TYPE REF TO zcl_excel_worksheet, + si TYPE i, + row_from TYPE i, + row_to TYPE i, + col_from TYPE i, + col_to TYPE i, + formula TYPE string, + ref_cell TYPE char10, + END OF ty_referenced_cells. + + DATA: ls_ref_formula LIKE LINE OF me->mt_ref_formulae, + lts_referenced_cells TYPE SORTED TABLE OF ty_referenced_cells WITH NON-UNIQUE KEY sheet si row_from row_to col_from col_to, + ls_referenced_cell LIKE LINE OF lts_referenced_cells, + lv_col_from TYPE zexcel_cell_column_alpha, + lv_col_to TYPE zexcel_cell_column_alpha, + lv_resulting_formula TYPE string, + lv_current_cell TYPE char10. + + + me->mt_ref_formulae = me->mt_ref_formulae. + +*--------------------------------------------------------------------* +* Get referenced Cells, Build ranges for easy lookup +*--------------------------------------------------------------------* + LOOP AT me->mt_ref_formulae INTO ls_ref_formula WHERE ref <> space. + + CLEAR ls_referenced_cell. + ls_referenced_cell-sheet = ls_ref_formula-sheet. + ls_referenced_cell-si = ls_ref_formula-si. + ls_referenced_cell-formula = ls_ref_formula-formula. + + TRY. + zcl_excel_common=>convert_range2column_a_row( EXPORTING i_range = ls_ref_formula-ref + IMPORTING e_column_start = lv_col_from + e_column_end = lv_col_to + e_row_start = ls_referenced_cell-row_from + e_row_end = ls_referenced_cell-row_to ). + ls_referenced_cell-col_from = zcl_excel_common=>convert_column2int( lv_col_from ). + ls_referenced_cell-col_to = zcl_excel_common=>convert_column2int( lv_col_to ). + + + CLEAR ls_referenced_cell-ref_cell. + TRY. + ls_referenced_cell-ref_cell(3) = zcl_excel_common=>convert_column2alpha( ls_ref_formula-column ). + ls_referenced_cell-ref_cell+3 = ls_ref_formula-row. + CONDENSE ls_referenced_cell-ref_cell NO-GAPS. + CATCH zcx_excel. + ENDTRY. + + INSERT ls_referenced_cell INTO TABLE lts_referenced_cells. + CATCH zcx_excel. + ENDTRY. + + ENDLOOP. + +* break x0009004. +*--------------------------------------------------------------------* +* For each referencing cell determine the referenced cell +* and resolve the formula +*--------------------------------------------------------------------* + LOOP AT me->mt_ref_formulae INTO ls_ref_formula WHERE ref = space. + + + CLEAR lv_current_cell. + TRY. + lv_current_cell(3) = zcl_excel_common=>convert_column2alpha( ls_ref_formula-column ). + lv_current_cell+3 = ls_ref_formula-row. + CONDENSE lv_current_cell NO-GAPS. + CATCH zcx_excel. + ENDTRY. + + LOOP AT lts_referenced_cells INTO ls_referenced_cell WHERE sheet = ls_ref_formula-sheet + AND si = ls_ref_formula-si + AND row_from <= ls_ref_formula-row + AND row_to >= ls_ref_formula-row + AND col_from <= ls_ref_formula-column + AND col_to >= ls_ref_formula-column. + + TRY. + + lv_resulting_formula = zcl_excel_common=>determine_resulting_formula( iv_reference_cell = ls_referenced_cell-ref_cell + iv_reference_formula = ls_referenced_cell-formula + iv_current_cell = lv_current_cell ). + + ls_referenced_cell-sheet->set_cell_formula( ip_column = ls_ref_formula-column + ip_row = ls_ref_formula-row + ip_formula = lv_resulting_formula ). + CATCH zcx_excel. + ENDTRY. + EXIT. + + ENDLOOP. + + ENDLOOP. +ENDMETHOD. + + + + *"* 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 + + + + + + + + + + + + + + + + + + method CONSTRUCTOR. + border_style = zcl_excel_style_border=>c_border_none. + border_color-theme = zcl_excel_style_color=>c_theme_not_set. + border_color-indexed = zcl_excel_style_color=>c_indexed_not_set. +endmethod. + + + + *"* 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 + CLASS lcl_excel_common_test DEFINITION DEFERRED. +CLASS zcl_excel_common DEFINITION LOCAL FRIENDS lcl_excel_common_test. + +*----------------------------------------------------------------------* +* CLASS lcl_Excel_Common_Test DEFINITION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS lcl_excel_common_test DEFINITION FOR TESTING "#AU Risk_Level Harmless + . "#AU Duration Short +*?<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0"> +*?<asx:values> +*?<TESTCLASS_OPTIONS> +*?<TEST_CLASS>lcl_Excel_Common_Test +*?</TEST_CLASS> +*?<TEST_MEMBER>f_Cut +*?</TEST_MEMBER> +*?<OBJECT_UNDER_TEST>ZCL_EXCEL_COMMON +*?</OBJECT_UNDER_TEST> +*?<OBJECT_IS_LOCAL/> +*?<GENERATE_FIXTURE>X +*?</GENERATE_FIXTURE> +*?<GENERATE_CLASS_FIXTURE>X +*?</GENERATE_CLASS_FIXTURE> +*?<GENERATE_INVOCATION>X +*?</GENERATE_INVOCATION> +*?<GENERATE_ASSERT_EQUAL>X +*?</GENERATE_ASSERT_EQUAL> +*?</TESTCLASS_OPTIONS> +*?</asx:values> +*?</asx:abap> + PRIVATE SECTION. +* ================ + DATA: + lx_excel TYPE REF TO zcx_excel, + ls_symsg_act TYPE symsg, " actual messageinformation of exception + ls_symsg_exp TYPE symsg, " expected messageinformation of exception + f_cut TYPE REF TO zcl_excel_common. "class under test + + CLASS-METHODS: class_setup. + CLASS-METHODS: class_teardown. + METHODS: setup. + METHODS: teardown. +* METHODS: char2hex FOR TESTING. + METHODS: convert_column2alpha FOR TESTING. + METHODS: convert_column2int FOR TESTING. + METHODS: date_to_excel_string FOR TESTING. + METHODS: encrypt_password FOR TESTING. + METHODS: excel_string_to_date FOR TESTING. + METHODS: excel_string_to_time FOR TESTING. +* METHODS: number_to_excel_string FOR TESTING. + METHODS: time_to_excel_string FOR TESTING. + METHODS: split_file FOR TESTING. + METHODS: convert_range2column_a_row FOR TESTING. + METHODS: describe_structure FOR TESTING. + METHODS: calculate_cell_distance FOR TESTING. + METHODS: shift_formula FOR TESTING. +ENDCLASS. "lcl_Excel_Common_Test + + +*----------------------------------------------------------------------* +* CLASS lcl_Excel_Common_Test IMPLEMENTATION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS lcl_excel_common_test IMPLEMENTATION. +* =========================================== + + METHOD class_setup. +* =================== + + + ENDMETHOD. "class_Setup + + + METHOD class_teardown. +* ====================== + + + ENDMETHOD. "class_Teardown + + + METHOD setup. +* ============= + + CREATE OBJECT f_cut. + ENDMETHOD. "setup + + + METHOD teardown. +* ================ + + + ENDMETHOD. "teardown + + + METHOD convert_column2alpha. +* ============================ + DATA ep_column TYPE zexcel_cell_column_alpha. + +* Test 1. Simple test + TRY. + ep_column = zcl_excel_common=>convert_column2alpha( 1 ). + + zcl_excel_common=>assert_equals( + act = ep_column + exp = 'A' + msg = 'Wrong column conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + +* Test 2. Max column for OXML #16,384 = XFD + TRY. + ep_column = zcl_excel_common=>convert_column2alpha( 16384 ). + + zcl_excel_common=>assert_equals( + act = ep_column + exp = 'XFD' + msg = 'Wrong column conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + +* Test 3. Index 0 is out of bounds + TRY. + ep_column = zcl_excel_common=>convert_column2alpha( 0 ). + + zcl_excel_common=>assert_equals( + act = ep_column + exp = 'A' + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>assert_equals( + act = lx_excel->error + exp = 'Index out of bounds' + msg = 'Colum index 0 is out of bounds, min column index is 1' + level = if_aunit_constants=>fatal + ). + ENDTRY. + +* Test 4. Exception should be thrown index out of bounds + TRY. + ep_column = zcl_excel_common=>convert_column2alpha( 16385 ). + + zcl_excel_common=>assert_differs( + act = ep_column + exp = 'XFE' + msg = 'Colum index 16385 is out of bounds, max column index is 16384' + level = if_aunit_constants=>fatal + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>assert_equals( + act = lx_excel->error + exp = 'Index out of bounds' + msg = 'Wrong exception is thrown' + level = if_aunit_constants=>tolerable + ). + ENDTRY. + ENDMETHOD. "convert_Column2alpha + + + METHOD convert_column2int. +* ========================== + DATA ep_column TYPE zexcel_cell_column. + +* Test 1. Basic test + TRY. + ep_column = zcl_excel_common=>convert_column2int( 'A' ). + + zcl_excel_common=>assert_equals( + act = ep_column + exp = 1 + msg = 'Wrong column conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + +* Test 2. Max column + TRY. + ep_column = zcl_excel_common=>convert_column2int( 'XFD' ). + + zcl_excel_common=>assert_equals( + act = ep_column + exp = 16384 + msg = 'Wrong column conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + +* Test 3. Out of bounds + TRY. + ep_column = zcl_excel_common=>convert_column2int( '' ). + + zcl_excel_common=>assert_differs( act = ep_column + exp = '0' + msg = 'Wrong column conversion' + level = if_aunit_constants=>critical ). + CATCH zcx_excel INTO lx_excel. + CLEAR: ls_symsg_act, + ls_symsg_exp. + ls_symsg_exp-msgid = 'ZABAP2XLSX'. + ls_symsg_exp-msgno = '800'. + ls_symsg_act-msgid = lx_excel->syst_at_raise-msgid. + ls_symsg_act-msgno = lx_excel->syst_at_raise-msgno. + zcl_excel_common=>assert_equals( act = ls_symsg_act + exp = ls_symsg_exp + msg = 'Colum name should be a valid string' + level = if_aunit_constants=>fatal ). + ENDTRY. + +* Test 4. Out of bounds + TRY. + ep_column = zcl_excel_common=>convert_column2int( 'XFE' ). + + zcl_excel_common=>assert_differs( act = ep_column + exp = 16385 + msg = 'Wrong column conversion' + level = if_aunit_constants=>critical ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>assert_equals( act = lx_excel->error + exp = 'Index out of bounds' + msg = 'Colum XFE is out of range' + level = if_aunit_constants=>fatal ). + ENDTRY. + ENDMETHOD. "convert_Column2int + + + METHOD date_to_excel_string. +* ============================ + DATA ep_value TYPE zexcel_cell_value. + +* Test 1. Basic conversion + TRY. + ep_value = zcl_excel_common=>date_to_excel_string( '19000101' ). + + zcl_excel_common=>assert_equals( + act = ep_value + exp = 1 + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. +* Check around the "Excel Leap Year" 1900 + TRY. + ep_value = zcl_excel_common=>date_to_excel_string( '19000228' ). + + zcl_excel_common=>assert_equals( + act = ep_value + exp = 59 + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + TRY. + ep_value = zcl_excel_common=>date_to_excel_string( '19000301' ). + + zcl_excel_common=>assert_equals( + act = ep_value + exp = 61 + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + + +* Test 2. Basic conversion + TRY. + ep_value = zcl_excel_common=>date_to_excel_string( '99991212' ). + + zcl_excel_common=>assert_equals( + act = ep_value + exp = 2958446 + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + +* Test 3. Initial date + TRY. + DATA: lv_date TYPE d. + ep_value = zcl_excel_common=>date_to_excel_string( lv_date ). + + zcl_excel_common=>assert_equals( + act = ep_value + exp = '' + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + +* Test 2. Basic conversion + TRY. + DATA exp_value TYPE zexcel_cell_value VALUE 0. + ep_value = zcl_excel_common=>date_to_excel_string( '18991231' ). + + zcl_excel_common=>assert_differs( + act = ep_value + exp = exp_value + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>assert_equals( + act = lx_excel->error + exp = 'Index out of bounds' + msg = 'Dates prior of 1900 are not available in excel' + level = if_aunit_constants=>critical + ). + ENDTRY. + + ENDMETHOD. "date_To_Excel_String + + + METHOD encrypt_password. +* ======================== + DATA lv_encrypted_pwd TYPE zexcel_aes_password. + + TRY. + lv_encrypted_pwd = zcl_excel_common=>encrypt_password( 'test' ). + + zcl_excel_common=>assert_equals( + act = lv_encrypted_pwd + exp = 'CBEB' + msg = 'Wrong password encryption' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + ENDMETHOD. "encrypt_Password + + + METHOD excel_string_to_date. +* ============================ + DATA ep_value TYPE d. + + +* Test 1. Simple test -> ABAP Manage also date prior of 1900 + TRY. + ep_value = zcl_excel_common=>excel_string_to_date( '0' ). + + zcl_excel_common=>assert_equals( + act = ep_value + exp = '18991231' + msg = 'Wrong date conversion' + level = if_aunit_constants=>tolerable + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. +* Check around the "Excel Leap Year" 1900 + TRY. + ep_value = zcl_excel_common=>excel_string_to_date( '59' ). + + zcl_excel_common=>assert_equals( + act = ep_value + exp = '19000228' + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + TRY. + ep_value = zcl_excel_common=>excel_string_to_date( '61' ). + + zcl_excel_common=>assert_equals( + act = ep_value + exp = '19000301' + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + +* Test 2. Simple test + TRY. + ep_value = zcl_excel_common=>excel_string_to_date( '1' ). + + zcl_excel_common=>assert_equals( + act = ep_value + exp = '19000101' + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + +* Test 3. Index 0 is out of bounds + TRY. + ep_value = zcl_excel_common=>excel_string_to_date( '2958446' ). + + zcl_excel_common=>assert_equals( + act = ep_value + exp = '99991212' + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + +* Test 4. Exception should be thrown index out of bounds + TRY. + ep_value = zcl_excel_common=>excel_string_to_date( '2958447' ). + + zcl_excel_common=>assert_differs( + act = ep_value + exp = '99991212' + msg = 'Wrong date conversion' + level = if_aunit_constants=>fatal + ). + + zcl_excel_common=>assert_differs( + act = ep_value + exp = '00000000' + msg = 'Wrong date conversion' + level = if_aunit_constants=>fatal + ). + + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>assert_equals( + act = lx_excel->error + exp = 'Index out of bounds' + msg = 'Wrong exception is thrown' + level = if_aunit_constants=>tolerable + ). + ENDTRY. + ENDMETHOD. "excel_String_To_Date + + + METHOD excel_string_to_time. +* ============================ + DATA ep_value TYPE t. + +* Test 1. Simple test + TRY. + ep_value = zcl_excel_common=>excel_string_to_time( '0' ). + + zcl_excel_common=>assert_equals( + act = ep_value + exp = '000000' + msg = 'Wrong date conversion' + level = if_aunit_constants=>tolerable + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + +* Test 2. Simple test + TRY. + ep_value = zcl_excel_common=>excel_string_to_time( '1' ). + + zcl_excel_common=>assert_equals( + act = ep_value + exp = '000000' + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + +* Test 3. Simple test + TRY. + ep_value = zcl_excel_common=>excel_string_to_time( '0.99999' ). + + zcl_excel_common=>assert_equals( + act = ep_value + exp = '235959' + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + +* Test 4. Also string greater than 1 should be managed + TRY. + ep_value = zcl_excel_common=>excel_string_to_time( '4.1' ). + + zcl_excel_common=>assert_equals( + act = ep_value + exp = '022400' + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + +* Test 4. string is not a number + TRY. + ep_value = zcl_excel_common=>excel_string_to_time( 'NaN' ). + + zcl_excel_common=>assert_differs( + act = ep_value + exp = '000000' + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>assert_equals( + act = lx_excel->error + exp = 'Unable to interpret time' + msg = 'Time should be a valid string' + level = if_aunit_constants=>fatal + ). + ENDTRY. + ENDMETHOD. "excel_String_To_Time + + + METHOD time_to_excel_string. +* ============================ + DATA ep_value TYPE zexcel_cell_value. + +* Test 1. Basic conversion + TRY. + ep_value = zcl_excel_common=>time_to_excel_string( '000001' ). + " A test directly in Excel returns the value 0.0000115740740740741000 + zcl_excel_common=>assert_equals( + act = ep_value + exp = '0.0000115740740741' + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + +* Test 2. Basic conversion + TRY. + ep_value = zcl_excel_common=>time_to_excel_string( '235959' ). + " A test directly in Excel returns the value 0.9999884259259260000000 + zcl_excel_common=>assert_equals( + act = ep_value + exp = '0.9999884259259260' + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + +* Test 3. Initial date + TRY. + ep_value = zcl_excel_common=>time_to_excel_string( '000000' ). + + zcl_excel_common=>assert_equals( + act = ep_value + exp = '0' + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + +* Test 2. Basic conversion + TRY. + ep_value = zcl_excel_common=>time_to_excel_string( '022400' ). + + zcl_excel_common=>assert_equals( + act = ep_value + exp = '0.1000000000000000' + msg = 'Wrong date conversion' + level = if_aunit_constants=>critical + ). + CATCH zcx_excel INTO lx_excel. + zcl_excel_common=>fail( + msg = 'unexpected exception' + level = if_aunit_constants=>critical " Error Severity + ). + ENDTRY. + + ENDMETHOD. "time_To_Excel_String + + METHOD split_file. +* ============================ + + DATA: ep_file TYPE text255, + ep_extension TYPE char10, + ep_dotextension TYPE char10. + + +* Test 1. Basic conversion + zcl_excel_common=>split_file( EXPORTING ip_file = 'filename.xml' + IMPORTING ep_file = ep_file + ep_extension = ep_extension + ep_dotextension = ep_dotextension ). + + zcl_excel_common=>assert_equals( + act = ep_file + exp = 'filename' + msg = 'Split filename failed' + level = if_aunit_constants=>critical ). + + zcl_excel_common=>assert_equals( + act = ep_extension + exp = 'xml' + msg = 'Split extension failed' + level = if_aunit_constants=>critical ). + + zcl_excel_common=>assert_equals( + act = ep_dotextension + exp = '.xml' + msg = 'Split extension failed' + level = if_aunit_constants=>critical ). + +* Test 2. no extension + zcl_excel_common=>split_file( EXPORTING ip_file = 'filename' + IMPORTING ep_file = ep_file + ep_extension = ep_extension + ep_dotextension = ep_dotextension ). + + zcl_excel_common=>assert_equals( + act = ep_file + exp = 'filename' + msg = 'Split filename failed' + level = if_aunit_constants=>critical ). + + zcl_excel_common=>assert_equals( + act = ep_extension + exp = '' + msg = 'Split extension failed' + level = if_aunit_constants=>critical ). + + zcl_excel_common=>assert_equals( + act = ep_dotextension + exp = '' + msg = 'Split extension failed' + level = if_aunit_constants=>critical ). + + ENDMETHOD. "split_file + + METHOD convert_range2column_a_row. + DATA: lv_range TYPE string. + DATA: lv_column_start TYPE zexcel_cell_column_alpha, + lv_column_end TYPE zexcel_cell_column_alpha, + lv_row_start TYPE zexcel_cell_row, + lv_row_end TYPE zexcel_cell_row, + lv_sheet TYPE string. + +* a) input empty --> nothing to do + zcl_excel_common=>convert_range2column_a_row( + EXPORTING + i_range = lv_range + IMPORTING + e_column_start = lv_column_start " Cell Column Start + e_column_end = lv_column_end " Cell Column End + e_row_start = lv_row_start " Cell Row + e_row_end = lv_row_end " Cell Row + e_sheet = lv_sheet " Title + ). + + zcl_excel_common=>assert_equals( + act = lv_column_start + exp = '' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). + zcl_excel_common=>assert_equals( + act = lv_column_end + exp = '' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). + zcl_excel_common=>assert_equals( + act = lv_row_start + exp = '' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). + zcl_excel_common=>assert_equals( + act = lv_row_end + exp = '' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). + zcl_excel_common=>assert_equals( + act = lv_sheet + exp = '' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). +* b) sheetname existing - starts with ' example 'Sheet 1'!$B$6:$D$13 + lv_range = `'Sheet 1'!$B$6:$D$13`. + zcl_excel_common=>convert_range2column_a_row( + EXPORTING + i_range = lv_range + IMPORTING + e_column_start = lv_column_start " Cell Column Start + e_column_end = lv_column_end " Cell Column End + e_row_start = lv_row_start " Cell Row + e_row_end = lv_row_end " Cell Row + e_sheet = lv_sheet " Title + ). + + zcl_excel_common=>assert_equals( + act = lv_column_start + exp = 'B' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). + zcl_excel_common=>assert_equals( + act = lv_column_end + exp = 'D' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). + zcl_excel_common=>assert_equals( + act = lv_row_start + exp = '6' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). + zcl_excel_common=>assert_equals( + act = lv_row_end + exp = '13' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). + zcl_excel_common=>assert_equals( + act = lv_sheet + exp = 'Sheet 1' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). +* c) sheetname existing - does not start with ' example Sheet1!$B$6:$D$13 + lv_range = `Sheet1!B6:$D$13`. + zcl_excel_common=>convert_range2column_a_row( + EXPORTING + i_range = lv_range + IMPORTING + e_column_start = lv_column_start " Cell Column Start + e_column_end = lv_column_end " Cell Column End + e_row_start = lv_row_start " Cell Row + e_row_end = lv_row_end " Cell Row + e_sheet = lv_sheet " Title + ). + + zcl_excel_common=>assert_equals( + act = lv_column_start + exp = 'B' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). + zcl_excel_common=>assert_equals( + act = lv_column_end + exp = 'D' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). + zcl_excel_common=>assert_equals( + act = lv_row_start + exp = '6' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). + zcl_excel_common=>assert_equals( + act = lv_row_end + exp = '13' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). + zcl_excel_common=>assert_equals( + act = lv_sheet + exp = 'Sheet1' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). +* d) no sheetname - just area example $B$6:$D$13 + lv_range = `$B$6:D13`. + zcl_excel_common=>convert_range2column_a_row( + EXPORTING + i_range = lv_range + IMPORTING + e_column_start = lv_column_start " Cell Column Start + e_column_end = lv_column_end " Cell Column End + e_row_start = lv_row_start " Cell Row + e_row_end = lv_row_end " Cell Row + e_sheet = lv_sheet " Title + ). + + zcl_excel_common=>assert_equals( + act = lv_column_start + exp = 'B' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). + zcl_excel_common=>assert_equals( + act = lv_column_end + exp = 'D' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). + zcl_excel_common=>assert_equals( + act = lv_row_start + exp = '6' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). + zcl_excel_common=>assert_equals( + act = lv_row_end + exp = '13' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). + zcl_excel_common=>assert_equals( + act = lv_sheet + exp = '' + msg = 'Conversion of range failed' + level = if_aunit_constants=>critical ). + ENDMETHOD. "convert_range2column_a_row + + + METHOD describe_structure. + DATA: ls_test TYPE scarr. + DATA: lo_structdescr TYPE REF TO cl_abap_structdescr. + DATA: lt_structure TYPE ddfields. + FIELD-SYMBOLS: <line> LIKE LINE OF lt_structure. + + " Test with DDIC Type + lo_structdescr ?= cl_abap_structdescr=>describe_by_data( p_data = ls_test ). + lt_structure = zcl_excel_common=>describe_structure( io_struct = lo_structdescr ). + READ TABLE lt_structure ASSIGNING <line> INDEX 1. + zcl_excel_common=>assert_equals( + act = <line>-fieldname + exp = 'MANDT' + msg = 'Describe structure failed' + level = if_aunit_constants=>critical ). + + " Test with local defined structure having DDIC and non DDIC elements + TYPES: + BEGIN OF t_test, + carrid TYPE s_carr_id, + carrname TYPE s_carrname, + carrdesc TYPE string, + END OF t_test. + DATA: ls_ttest TYPE t_test. + + lo_structdescr ?= cl_abap_structdescr=>describe_by_data( p_data = ls_ttest ). + lt_structure = zcl_excel_common=>describe_structure( io_struct = lo_structdescr ). + READ TABLE lt_structure ASSIGNING <line> INDEX 1. + zcl_excel_common=>assert_equals( + act = <line>-fieldname + exp = 'CARRID' + msg = 'Describe structure failed' + level = if_aunit_constants=>critical ). + + ENDMETHOD. "describe_structure + + + METHOD calculate_cell_distance. + DATA: lv_offset_rows TYPE i, + lv_offset_cols TYPE i, + lv_message TYPE string. + + DEFINE macro_calculate_cell_distance. + zcl_excel_common=>calculate_cell_distance( exporting iv_reference_cell = &1 + iv_current_cell = &2 + importing ev_row_difference = lv_offset_rows + ev_col_difference = lv_offset_cols ). +* Check delta columns + concatenate 'Error calculating column difference in test:' + &1 + '->' + &2 + into lv_message separated by space. + zcl_excel_common=>assert_equals( act = lv_offset_cols + exp = &3 + msg = lv_message + quit = 0 " continue tests + level = if_aunit_constants=>critical ). +* Check delta rows + concatenate 'Error calculating row difference in test:' + &1 + '->' + &2 + into lv_message separated by space. + zcl_excel_common=>assert_equals( act = lv_offset_rows + exp = &4 + msg = lv_message + quit = 0 " continue tests + level = if_aunit_constants=>critical ). + END-OF-DEFINITION. + + + macro_calculate_cell_distance: + 'C12' 'C12' 0 0 , " Same cell + 'C12' 'C13' 0 1 , " Shift down 1 place + 'C12' 'C25' 0 13 , " Shift down some places + 'C12' 'C11' 0 -1 , " Shift up 1 place + 'C12' 'C1' 0 -11 , " Shift up some place + 'C12' 'D12' 1 0 , " Shift right 1 place + 'C12' 'AA12' 24 0 , " Shift right some places + 'C12' 'B12' -1 0 , " Shift left 1 place + 'AA12' 'C12' -24 0 , " Shift left some place + 'AA121' 'C12' -24 -109 . " The full package. + + ENDMETHOD. "CALCULATE_CELL_DISTANCE + + METHOD shift_formula. + DATA: lv_resulting_formula TYPE string, + lv_message TYPE string, + lv_counter TYPE num8. + + DEFINE macro_shift_formula. + add 1 to lv_counter. + clear lv_resulting_formula. + try. + lv_resulting_formula = zcl_excel_common=>shift_formula( iv_reference_formula = &1 + iv_shift_cols = &2 + iv_shift_rows = &3 ). + concatenate 'Wrong result in test' + lv_counter + 'shifting formula ' + &1 + into lv_message separated by space. + zcl_excel_common=>assert_equals( act = lv_resulting_formula + exp = &4 + msg = lv_message + quit = 0 " continue tests + level = if_aunit_constants=>critical ). + catch zcx_excel. + concatenate 'Unexpected exception occurred in test' + lv_counter + 'shifting formula ' + &1 + into lv_message separated by space. + zcl_excel_common=>assert_equals( act = lv_resulting_formula + exp = &4 + msg = lv_message + quit = 0 " continue tests + level = if_aunit_constants=>critical ). + endtry. + END-OF-DEFINITION. + +* Test shifts that should result in a valid output + macro_shift_formula: + 'C17' 0 0 'C17', " Very basic check + 'C17' 2 3 'E20', " Check shift right and down + 'C17' -2 -3 'A14', " Check shift left and up + '$C$17' 1 1 '$C$17', " Fixed columns/rows + 'SUM($C17:C$23)+C30' 1 11 'SUM($C28:D$23)+D41', " Operators and Ranges, mixed fixed rows or columns + 'RNGNAME1+C7' -1 -4 'RNGNAME1+B3', " Operators and Rangename + '"Date:"&TEXT(B2)' 1 1 '"Date:"&TEXT(C3)', " String literals and string concatenation + '[TEST6.XLSX]SHEET1!A1' 1 11 '[TEST6.XLSX]SHEET1!B12', " External sheet reference + `X(B13, "KK" ) ` 1 1 `X(C14,"KK")`, " superflous blanks, multi-argument functions, literals in function, unknown functions +* 'SIN((((((B2))))))' 1 1 'SIN((((((C3))))))', " Deep nesting +* 'SIN(SIN(SIN(SIN(E22))))' 0 1 'SIN(SIN(SIN(SIN(E23))))', " Different type of deep nesting + `SIN(SIN(SIN(SIN(E22))))` 0 1 'SIN(SIN(SIN(SIN(E23))))', " same as above - but with string input instead of Char-input + 'HEUTE()' 2 5 'HEUTE()', " Functions w/o arguments, No cellreferences + '"B2"' 2 5 '"B2"', " No cellreferences + '' 2 5 '', " Empty + 'A1+$A1+A$1+$A$1+B2' -1 0 '#REF!+$A1+#REF!+$A$1+A2', " Referencing error , column only , underflow + 'A1+$A1+A$1+$A$1+B2' 0 -1 '#REF!+#REF!+A$1+$A$1+B1', " Referencing error , row only , underflow + 'A1+$A1+A$1+$A$1+B2' -1 -1 '#REF!+#REF!+#REF!+$A$1+A1'. " Referencing error , row and column , underflow + ENDMETHOD. "SHIFT_FORMULA + + + + + +ENDCLASS. "lcl_Excel_Common_Test + + + + + + + + + + + + + + + + ABAP + + + + + + + + + + + + + + + + + + method ASSERT_DIFFERS. + DATA: ls_seoclass TYPE seoclass. + +" Let see >=7.02 + SELECT SINGLE * INTO ls_seoclass + FROM seoclass + WHERE clsname = 'CL_ABAP_UNIT_ASSERT'. + + IF sy-subrc = 0. + CALL METHOD (ls_seoclass-clsname)=>assert_differs + EXPORTING + exp = exp + act = act + msg = msg + level = level + tol = tol + quit = quit + RECEIVING + assertion_failed = assertion_failed. + ELSE. +" Let see >=7.00 or even lower + SELECT SINGLE * INTO ls_seoclass + FROM seoclass + WHERE clsname = 'CL_AUNIT_ASSERT'. + + IF sy-subrc = 0. + CALL METHOD (ls_seoclass-clsname)=>assert_differs + EXPORTING + exp = exp + act = act + msg = msg + level = level + tol = tol + quit = quit + RECEIVING + assertion_failed = assertion_failed. + ELSE. +* We do nothing for now not supported + ENDIF. + ENDIF. +endmethod. + + + + + + + + + + + METHOD assert_equals. + DATA: ls_seoclass TYPE seoclass. + + " Let see >=7.02 + SELECT SINGLE * INTO ls_seoclass + FROM seoclass + WHERE clsname = 'CL_ABAP_UNIT_ASSERT'. + + IF sy-subrc = 0. + CALL METHOD (ls_seoclass-clsname)=>assert_equals + EXPORTING + exp = exp + act = act + msg = msg + level = level + tol = tol + quit = quit + ignore_hash_sequence = ignore_hash_sequence + RECEIVING + assertion_failed = assertion_failed. + ELSE. + " Let see >=7.00 or even lower + SELECT SINGLE * INTO ls_seoclass + FROM seoclass + WHERE clsname = 'CL_AUNIT_ASSERT'. + + IF sy-subrc = 0. + CALL METHOD (ls_seoclass-clsname)=>assert_equals + EXPORTING + exp = exp + act = act + msg = msg + level = level + tol = tol + quit = quit + ignore_hash_sequence = ignore_hash_sequence + RECEIVING + assertion_failed = assertion_failed. + ELSE. +* We do nothing for now not supported + ENDIF. + ENDIF. +ENDMETHOD. + + + + + + + + METHOD calculate_cell_distance. + + DATA: lv_reference_row TYPE i, + lv_reference_col_alpha TYPE zexcel_cell_column_alpha, + lv_reference_col TYPE i, + lv_current_row TYPE i, + lv_current_col_alpha TYPE zexcel_cell_column_alpha, + lv_current_col TYPE i. + +*--------------------------------------------------------------------* +* Split reference cell into numerical row/column representation +*--------------------------------------------------------------------* + convert_columnrow2column_a_row( EXPORTING + i_columnrow = iv_reference_cell + IMPORTING + e_column = lv_reference_col_alpha + e_row = lv_reference_row ). + lv_reference_col = convert_column2int( lv_reference_col_alpha ). + +*--------------------------------------------------------------------* +* Split current cell into numerical row/column representation +*--------------------------------------------------------------------* + convert_columnrow2column_a_row( EXPORTING + i_columnrow = iv_current_cell + IMPORTING + e_column = lv_current_col_alpha + e_row = lv_current_row ). + lv_current_col = convert_column2int( lv_current_col_alpha ). + +*--------------------------------------------------------------------* +* Calculate row and column difference +* Positive: Current cell below reference cell +* or Current cell right of reference cell +* Negative: Current cell above reference cell +* or Current cell left of reference cell +*--------------------------------------------------------------------* + ev_row_difference = lv_current_row - lv_reference_row. + ev_col_difference = lv_current_col - lv_reference_col. + +ENDMETHOD. + + + + + method CHAR2HEX. + + IF o_conv IS NOT BOUND. + o_conv = cl_abap_conv_out_ce=>create( endian = 'L' + ignore_cerr = abap_true + replacement = '#' ). + ENDIF. + + CALL METHOD o_conv->reset( ). + CALL METHOD o_conv->write( data = i_char ). + r_hex+1 = o_conv->get_buffer( ). " x'65' must be x'0065' + +endmethod. + + + + + + METHOD convert_column2alpha. + + DATA: lv_uccpi TYPE i, + lv_text TYPE sychar02, + lv_module TYPE int4, + lv_column TYPE zexcel_cell_column. + +* Propagate zcx_excel if error occurs " issue #155 - less restrictive typing for ip_column + lv_column = convert_column2int( ip_column ). " issue #155 - less restrictive typing for ip_column + +*--------------------------------------------------------------------* +* Check whether column is in allowed range for EXCEL to handle ( 1-16384 ) +*--------------------------------------------------------------------* + IF lv_column > 16384 + OR lv_column < 1. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Index out of bounds'. + ENDIF. + +*--------------------------------------------------------------------* +* Build alpha representation of column +*--------------------------------------------------------------------* + WHILE lv_column GT 0. + + lv_module = ( lv_column - 1 ) MOD 26. + lv_uccpi = 65 + lv_module. + + lv_column = ( lv_column - lv_module ) / 26. + + lv_text = cl_abap_conv_in_ce=>uccpi( lv_uccpi ). + CONCATENATE lv_text ep_column INTO ep_column. + + ENDWHILE. + +ENDMETHOD. + + + + + + METHOD convert_column2int. + +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (done) 2012-12-29 +* - ... +* changes: renaming variables to naming conventions +* removing unused variables +* removing commented out code that is inactive for more then half a year +* message made to support multilinguality +* adding comments to explain what we are trying to achieve +*--------------------------------------------------------------------* +* issue#246 - error converting lower case column names +* - Stefan Schmöcker, 2012-12-29 +* changes: translating the correct variable to upper dase +* adding missing exception if input is a number +* that is out of bounds +* adding missing exception if input contains +* illegal characters like german umlauts +*--------------------------------------------------------------------* + + DATA: lv_column TYPE zexcel_cell_column_alpha, + lv_column_c TYPE char10, + lv_column_s TYPE string, + lv_errormessage TYPE string, " Can't pass '...'(abc) to exception-class + lv_modulo TYPE i. + +*--------------------------------------------------------------------* +* This module tries to identify which column a user wants to access +* Numbers as input are just passed back, anything else will be converted +* using EXCEL nomenclatura A = 1, AA = 27, ..., XFD = 16384 +*--------------------------------------------------------------------* + +*--------------------------------------------------------------------* +* Normalize input ( upper case , no gaps ) +*--------------------------------------------------------------------* + lv_column_c = ip_column. +* TRANSLATE lv_column TO UPPER CASE. " Fix #246 + TRANSLATE lv_column_c TO UPPER CASE. " Fix #246 + CONDENSE lv_column_c NO-GAPS. + IF lv_column_c EQ ''. +* lv_errormessage = 'Unable to interpret input as column'(003). +* RAISE EXCEPTION TYPE zcx_excel +* EXPORTING +* error = lv_errormessage. + MESSAGE e800(zabap2xlsx) INTO lv_errormessage. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + syst_at_raise = syst. + ENDIF. + +*--------------------------------------------------------------------* +* If a number gets passed, just convert it to an integer and return +* the converted value +*--------------------------------------------------------------------* + TRY. + IF lv_column_c CO '1234567890 '. " Fix #164 + ep_column = lv_column_c. " Fix #164 +*--------------------------------------------------------------------* +* Maximum column for EXCEL: XFD = 16384 " if anyone has a reference for this information - please add here instead of this comment +*--------------------------------------------------------------------* + IF ep_column > 16384 OR ep_column < 1. + lv_errormessage = 'Index out of bounds'(004). + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. + EXIT. + ENDIF. + CATCH cx_sy_conversion_no_number. "#EC NO_HANDLER + " Try the character-approach if approach via number has failed + ENDTRY. + +*--------------------------------------------------------------------* +* Raise error if unexpected characters turns up +*--------------------------------------------------------------------* + lv_column_s = lv_column_c. + IF lv_column_s CN sy-abcde. +* lv_errormessage = 'Unable to interpret input as column'(003). +* RAISE EXCEPTION TYPE zcx_excel +* EXPORTING +* error = lv_errormessage. + MESSAGE e800(zabap2xlsx) INTO lv_errormessage. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + syst_at_raise = syst. + ENDIF. + +*--------------------------------------------------------------------* +* Interpret input as number to base 26 with A=1, ... Z=26 +* Raise error if unexpected character turns up +*--------------------------------------------------------------------* +* 1st character +*--------------------------------------------------------------------* + lv_column = lv_column_c. + lv_modulo = cl_abap_conv_out_ce=>uccpi( lv_column+0(1) ) MOD zcl_excel_common=>c_excel_col_module. + IF lv_modulo < 1 OR lv_modulo > 26. +* lv_errormessage = 'Unable to interpret input as column'(003). +* RAISE EXCEPTION TYPE zcx_excel +* EXPORTING +* error = lv_errormessage. + MESSAGE e800(zabap2xlsx) INTO lv_errormessage. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + syst_at_raise = syst. + ENDIF. + ep_column = lv_modulo. " Leftmost digit + +*--------------------------------------------------------------------* +* 2nd character if present +*--------------------------------------------------------------------* + CHECK lv_column+1(1) IS NOT INITIAL. " No need to continue if string ended + lv_modulo = cl_abap_conv_out_ce=>uccpi( lv_column+1(1) ) MOD zcl_excel_common=>c_excel_col_module. + IF lv_modulo < 1 OR lv_modulo > 26. +* lv_errormessage = 'Unable to interpret input as column'(003). +* RAISE EXCEPTION TYPE zcx_excel +* EXPORTING +* error = lv_errormessage. + MESSAGE e800(zabap2xlsx) INTO lv_errormessage. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + syst_at_raise = syst. + ENDIF. + ep_column = 26 * ep_column + lv_modulo. " if second digit is present first digit is for 26^1 + +*--------------------------------------------------------------------* +* 3rd character if present +*--------------------------------------------------------------------* + CHECK lv_column+2(1) IS NOT INITIAL. " No need to continue if string ended + lv_modulo = cl_abap_conv_out_ce=>uccpi( lv_column+2(1) ) MOD zcl_excel_common=>c_excel_col_module. + IF lv_modulo < 1 OR lv_modulo > 26. +* lv_errormessage = 'Unable to interpret input as column'(003). +* RAISE EXCEPTION TYPE zcx_excel +* EXPORTING +* error = lv_errormessage. + MESSAGE e800(zabap2xlsx) INTO lv_errormessage. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + syst_at_raise = syst. + ENDIF. + ep_column = 26 * ep_column + lv_modulo. " if third digit is present first digit is for 26^2 and second digit for 26^1 + +*--------------------------------------------------------------------* +* Maximum column for EXCEL: XFD = 16384 " if anyone has a reference for this information - please add here instead of this comment +*--------------------------------------------------------------------* + IF ep_column > 16384 OR ep_column < 1. + lv_errormessage = 'Index out of bounds'(004). + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. + + +ENDMETHOD. + + + + + + method CONVERT_COLUMNROW2COLUMN_A_ROW. +*--------------------------------------------------------------------* + "issue #256 - replacing char processing with regex +*--------------------------------------------------------------------* +* Stefan Schmöcker, 2013-08-11 +* Allow input to be CLIKE instead of STRING +*--------------------------------------------------------------------* + + DATA: pane_cell_row_a TYPE string, + lv_columnrow type string. + + lv_columnrow = i_columnrow. " Get rid of trailing blanks + + FIND REGEX '^(\D+)(\d+)$' IN lv_columnrow SUBMATCHES e_column + pane_cell_row_a. + e_row = pane_cell_row_a. + +endmethod. + + + + + + + + + + method CONVERT_RANGE2COLUMN_A_ROW. +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (done) 2012-12-07 +* - ... +* changes: renaming variables to naming conventions +* aligning code +* added exceptionclass +* added errorhandling for invalid range +* adding comments to explain what we are trying to achieve +*--------------------------------------------------------------------* +* issue#241 - error when sheetname contains "!" +* - sheetname should be returned unescaped +* - Stefan Schmöcker, 2012-12-07 +* changes: changed coding to support sheetnames with "!" +* unescaping sheetname +*--------------------------------------------------------------------* +* issue#155 - lessening restrictions of input parameters +* - Stefan Schmöcker, 2012-12-07 +* changes: i_range changed to clike +* e_sheet changed to clike +*--------------------------------------------------------------------* + + DATA: lv_sheet TYPE string, + lv_range TYPE string, + lv_columnrow_start TYPE string, + lv_columnrow_end TYPE string, + lv_errormessage TYPE string. " Can't pass '...'(abc) to exception-class + + +*--------------------------------------------------------------------* +* Split input range into sheetname and Area +* 4 cases - a) input empty --> nothing to do +* - b) sheetname existing - starts with ' example 'Sheet 1'!$B$6:$D$13 +* - c) sheetname existing - does not start with ' example Sheet1!$B$6:$D$13 +* - d) no sheetname - just area example $B$6:$D$13 +*--------------------------------------------------------------------* +* Initialize output parameters + CLEAR: e_column_start, + e_column_end, + e_row_start, + e_row_end, + e_sheet. + + IF i_range IS INITIAL. " a) input empty --> nothing to do + EXIT. + + ELSEIF i_range(1) = `'`. " b) sheetname existing - starts with ' + FIND REGEX '\![^\!]*$' IN i_range MATCH OFFSET sy-fdpos. " Find last ! + IF sy-subrc = 0. + lv_sheet = i_range(sy-fdpos). + ADD 1 TO sy-fdpos. + lv_range = i_range. + SHIFT lv_range LEFT BY sy-fdpos PLACES. + ELSE. + lv_errormessage = 'Invalid range'(001). + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. + + ELSEIF i_range CS '!'. " c) sheetname existing - does not start with ' + SPLIT i_range AT '!' INTO lv_sheet lv_range. + + ELSE. " d) no sheetname - just area + lv_range = i_range. + ENDIF. + + REPLACE ALL OCCURRENCES OF '$' IN lv_range WITH ''. + SPLIT lv_range AT ':' INTO lv_columnrow_start lv_columnrow_end. + + convert_columnrow2column_a_row( EXPORTING + i_columnrow = lv_columnrow_start + IMPORTING + e_column = e_column_start + e_row = e_row_start ). + convert_columnrow2column_a_row( EXPORTING + i_columnrow = lv_columnrow_end + IMPORTING + e_column = e_column_end + e_row = e_row_end ). + + e_sheet = unescape_string( lv_sheet ). " Return in unescaped form +endmethod. + + + + + method DATE_TO_EXCEL_STRING. + DATA: lv_date_diff TYPE i. + + CHECK ip_value IS NOT INITIAL. + " Needed hack caused by the problem that: + " Excel 2000 incorrectly assumes that the year 1900 is a leap year + " http://support.microsoft.com/kb/214326/en-us + IF ip_value > c_excel_1900_leap_year. + lv_date_diff = ip_value - c_excel_baseline_date + 2. + ELSE. + lv_date_diff = ip_value - c_excel_baseline_date + 1. + ENDIF. + ep_value = zcl_excel_common=>number_to_excel_string( ip_value = lv_date_diff ). +endmethod. + + + + + method DESCRIBE_STRUCTURE. + DATA: lt_components TYPE abap_component_tab, + lt_comps TYPE abap_component_tab, + lo_struct TYPE REF TO cl_abap_structdescr, + ls_component TYPE abap_componentdescr, + lo_elemdescr TYPE REF TO cl_abap_elemdescr, + ls_dfies TYPE dfies, + l_position TYPE tabfdpos. + + "for DDIC structure get the info directly + IF io_struct->is_ddic_type( ) = abap_true. + rt_dfies = io_struct->get_ddic_field_list( ). + ELSE. + lt_components = io_struct->get_components( ). + + LOOP AT lt_components INTO ls_component. + structure_case( EXPORTING is_component = ls_component + CHANGING xt_components = lt_comps ) . + ENDLOOP. + LOOP AT lt_comps INTO ls_component. + CLEAR ls_dfies. + IF ls_component-type->kind = cl_abap_typedescr=>kind_elem. "E Elementary Type + ADD 1 TO l_position. + lo_elemdescr ?= ls_component-type. + IF lo_elemdescr->is_ddic_type( ) = abap_true. + ls_dfies = lo_elemdescr->get_ddic_field( ). + ls_dfies-fieldname = ls_component-name. + ls_dfies-position = l_position. + ELSE. + ls_dfies-fieldname = ls_component-name. + ls_dfies-position = l_position. + ls_dfies-inttype = lo_elemdescr->type_kind. + ls_dfies-leng = lo_elemdescr->length. + ls_dfies-outputlen = lo_elemdescr->length. + ls_dfies-decimals = lo_elemdescr->decimals. + ls_dfies-fieldtext = ls_component-name. + ls_dfies-reptext = ls_component-name. + ls_dfies-scrtext_s = ls_component-name. + ls_dfies-scrtext_m = ls_component-name. + ls_dfies-scrtext_l = ls_component-name. + ls_dfies-dynpfld = abap_true. + ENDIF. + INSERT ls_dfies INTO TABLE rt_dfies. + ENDIF. + ENDLOOP. + ENDIF. +endmethod. + + + method DESCRIBE_TABLE. +endmethod. + + + + + + + + METHOD determine_resulting_formula. + + DATA: lv_row_difference TYPE i, + lv_col_difference TYPE i. + +*--------------------------------------------------------------------* +* Calculate distance of reference and current cell +*--------------------------------------------------------------------* + calculate_cell_distance( EXPORTING + iv_reference_cell = iv_reference_cell + iv_current_cell = iv_current_cell + IMPORTING + ev_row_difference = lv_row_difference + ev_col_difference = lv_col_difference ). + +*--------------------------------------------------------------------* +* and shift formula by using the row- and columndistance +*--------------------------------------------------------------------* + ev_resulting_formula = shift_formula( iv_reference_formula = iv_reference_formula + iv_shift_rows = lv_row_difference + iv_shift_cols = lv_col_difference ). + +ENDMETHOD. "determine_resulting_formula + + + + + method ENCRYPT_PASSWORD. + + DATA lv_curr_offset TYPE i. + DATA lv_curr_char TYPE c LENGTH 1. + DATA lv_curr_hex TYPE zexcel_pwd_hash. + DATA lv_pwd_len TYPE zexcel_pwd_hash. + DATA lv_pwd_hash TYPE zexcel_pwd_hash. + + CONSTANTS: + lv_0x7fff TYPE zexcel_pwd_hash VALUE '7FFF', + lv_0x0001 TYPE zexcel_pwd_hash VALUE '0001', + lv_0xce4b TYPE zexcel_pwd_hash VALUE 'CE4B'. + + DATA lv_pwd TYPE zexcel_aes_password. + + lv_pwd = i_pwd(15). + + lv_pwd_len = STRLEN( lv_pwd ). + lv_curr_offset = lv_pwd_len - 1. + + WHILE lv_curr_offset GE 0. + + lv_curr_char = lv_pwd+lv_curr_offset(1). + lv_curr_hex = char2hex( lv_curr_char ). + + lv_pwd_hash = ( shr14( lv_pwd_hash ) BIT-AND lv_0x0001 ) BIT-OR ( shl01( lv_pwd_hash ) BIT-AND lv_0x7fff ). + + lv_pwd_hash = lv_pwd_hash BIT-XOR lv_curr_hex. + SUBTRACT 1 FROM lv_curr_offset. + ENDWHILE. + + lv_pwd_hash = ( shr14( lv_pwd_hash ) BIT-AND lv_0x0001 ) BIT-OR ( shl01( lv_pwd_hash ) BIT-AND lv_0x7fff ). + lv_pwd_hash = lv_pwd_hash BIT-XOR lv_0xce4b. + lv_pwd_hash = lv_pwd_hash BIT-XOR lv_pwd_len. + + WRITE lv_pwd_hash TO r_encrypted_pwd. + +endmethod. + + + + + method ESCAPE_STRING. +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (done) 2012-12-08 +* - ... +* changes: aligning code +* adding comments to explain what we are trying to achieve +*--------------------------------------------------------------------* +* issue#242 - Support escaping for white-spaces +* - Escaping also necessary when ' encountered in input +* - Stefan Schmöcker, 2012-12-08 +* changes: switched check if escaping is necessary to regular expression +* and moved the "REPLACE" +*--------------------------------------------------------------------* +* issue#155 - lessening restrictions of input parameters +* - Stefan Schmöcker, 2012-12-08 +* changes: ip_value changed to clike +*--------------------------------------------------------------------* + DATA: lv_value TYPE string. + +*--------------------------------------------------------------------* +* There exist various situations when a space will be used to separate +* different parts of a string. When we have a string consisting spaces +* that will cause errors unless we "escape" the string by putting ' at +* the beginning and at the end of the string. +*--------------------------------------------------------------------* + + +*--------------------------------------------------------------------* +* When allowing clike-input parameters we might encounter trailing +* "real" blanks . These are automatically eliminated when moving +* the input parameter to a string. +* Now any remaining spaces ( white-spaces or normal spaces ) should +* trigger the escaping as well as any ' +*--------------------------------------------------------------------* + lv_value = ip_value. + + + FIND REGEX `\s|'` IN lv_value. " \s finds regular and white spaces + IF sy-subrc = 0. + REPLACE ALL OCCURRENCES OF `'` IN lv_value WITH `''`. + CONCATENATE `'` lv_value `'` INTO lv_value . + ENDIF. + + ep_escaped_value = lv_value. + +endmethod. + + + + + + method EXCEL_STRING_TO_DATE. + DATA: lv_date_int TYPE i. + + TRY. + lv_date_int = ip_value. + ep_value = lv_date_int + c_excel_baseline_date - 2. + " Needed hack caused by the problem that: + " Excel 2000 incorrectly assumes that the year 1900 is a leap year + " http://support.microsoft.com/kb/214326/en-us + IF ep_value < c_excel_1900_leap_year. + ep_value = ep_value + 1. + ENDIF. + CATCH cx_sy_conversion_error. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Index out of bounds'. + ENDTRY. +endmethod. + + + + + + method EXCEL_STRING_TO_TIME. + DATA: lv_seconds_in_day TYPE i, + lv_day_fraction TYPE f, + lc_seconds_in_day TYPE i VALUE 86400. + + TRY. + + lv_day_fraction = ip_value. + lv_seconds_in_day = lv_day_fraction * lc_seconds_in_day. + + ep_value = lv_seconds_in_day. + + CATCH cx_sy_conversion_error. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Unable to interpret time'. + ENDTRY. +endmethod. + + + + + + + method FAIL. + DATA: ls_seoclass TYPE seoclass. + + " Let see >=7.02 + SELECT SINGLE * INTO ls_seoclass + FROM seoclass + WHERE clsname = 'CL_ABAP_UNIT_ASSERT'. + + IF sy-subrc = 0. + CALL METHOD (ls_seoclass-clsname)=>fail + EXPORTING + msg = msg + level = level + quit = quit + detail = detail. + ELSE. + " Let see >=7.00 or even lower + SELECT SINGLE * INTO ls_seoclass + FROM seoclass + WHERE clsname = 'CL_AUNIT_ASSERT'. + + IF sy-subrc = 0. + CALL METHOD (ls_seoclass-clsname)=>fail + EXPORTING + msg = msg + level = level + quit = quit + detail = detail. + ELSE. +* We do nothing for now not supported + ENDIF. + ENDIF. + +endmethod. + + + + + method GET_FIELDCATALOG. + DATA: lr_dref_tab TYPE REF TO data, + lo_salv_table TYPE REF TO cl_salv_table, + lo_salv_columns_table TYPE REF TO cl_salv_columns_table, + lt_salv_t_column_ref TYPE salv_t_column_ref, + ls_salv_t_column_ref LIKE LINE OF lt_salv_t_column_ref, + lo_salv_column_table TYPE REF TO cl_salv_column_table. + + FIELD-SYMBOLS: <tab> TYPE STANDARD TABLE. + FIELD-SYMBOLS: <fcat> LIKE LINE OF ep_fieldcatalog. + +* Get copy of IP_TABLE-structure <-- must be changeable to create salv + CREATE DATA lr_dref_tab LIKE ip_table. + ASSIGN lr_dref_tab->* TO <tab>. +* Create salv --> implicitly create fieldcat + TRY. + cl_salv_table=>factory( IMPORTING + r_salv_table = lo_salv_table + CHANGING + t_table = <tab> ). + lo_salv_columns_table = lo_salv_table->get_columns( ). + lt_salv_t_column_ref = lo_salv_columns_table->get( ). + CATCH cx_root. +* maybe some errorhandling here - just haven't made up my mind yet + ENDTRY. + +* Loop through columns and set relevant fields ( fieldname, texts ) + LOOP AT lt_salv_t_column_ref INTO ls_salv_t_column_ref. + + lo_salv_column_table ?= ls_salv_t_column_ref-r_column. + APPEND INITIAL LINE TO ep_fieldcatalog ASSIGNING <fcat>. + <fcat>-position = sy-tabix. + <fcat>-fieldname = ls_salv_t_column_ref-columnname. + <fcat>-scrtext_s = ls_salv_t_column_ref-r_column->get_short_text( ). + <fcat>-scrtext_m = ls_salv_t_column_ref-r_column->get_medium_text( ). + <fcat>-scrtext_l = ls_salv_t_column_ref-r_column->get_long_text( ). + + <fcat>-dynpfld = 'X'. " What in the world would we exclude here? + IF <fcat>-position = 1. " except for the MANDT-field of most tables ( 1st column that is ) + IF lo_salv_column_table->get_ddic_datatype( ) = 'CLNT'. + CLEAR <fcat>-dynpfld. + ENDIF. + ENDIF. + +* For fields that don't a description ( i.e. defined by "field type i," ) +* just use the fieldname as description - that is better than nothing + IF <fcat>-scrtext_s IS INITIAL + AND <fcat>-scrtext_m IS INITIAL + AND <fcat>-scrtext_l IS INITIAL. + CONCATENATE 'Col:' <fcat>-fieldname INTO <fcat>-scrtext_l SEPARATED BY space. + <fcat>-scrtext_m = <fcat>-scrtext_l. + <fcat>-scrtext_s = <fcat>-scrtext_l. + ENDIF. + + ENDLOOP. + +endmethod. + + + + + method NUMBER_TO_EXCEL_STRING. + DATA: lv_value_c TYPE c LENGTH 100. + + WRITE ip_value TO lv_value_c EXPONENT 0 NO-GROUPING NO-SIGN. + REPLACE ALL OCCURRENCES OF ',' IN lv_value_c WITH '.'. + + ep_value = lv_value_c. + CONDENSE ep_value. + + IF ip_value < 0. + CONCATENATE '-' ep_value INTO ep_value. + ELSEIF ip_value EQ 0. + ep_value = '0'. + ENDIF. +endmethod. + + + + + + method RECURSIVE_CLASS_TO_STRUCT. + " # issue 139 +* is working for me - but after looking through this coding I guess +* I'll rewrite this to a version w/o recursion +* This is private an no one using it so far except me, so no need to hurry + DATA: descr TYPE REF TO cl_abap_structdescr, + wa_component LIKE LINE OF descr->components, + attribute_name TYPE fieldname, + flag_class TYPE flag, + o_border TYPE REF TO zcl_excel_style_border. + + FIELD-SYMBOLS: <field> TYPE any, + <fieldx> TYPE any, + <class> TYPE REF TO object, + <attribute> TYPE any. + + + descr ?= cl_abap_structdescr=>describe_by_data( e_target ). + + LOOP AT descr->components INTO wa_component. + +* Assign structure and X-structure + ASSIGN COMPONENT wa_component-name OF STRUCTURE e_target TO <field>. + ASSIGN COMPONENT wa_component-name OF STRUCTURE e_targetx TO <fieldx>. +* At least one field in the structure should be marked - otherwise continue with next field + CLEAR flag_class. +* maybe source is just a structure - try assign component... + ASSIGN COMPONENT wa_component-name OF STRUCTURE i_source TO <attribute>. + IF sy-subrc <> 0. +* not - then it is an attribute of the class - use different assign then + CONCATENATE 'i_source->' wa_component-name INTO attribute_name. + ASSIGN (attribute_name) TO <attribute>. + IF sy-subrc <> 0. + EXIT. + ENDIF. " Should not happen if structure is built properly - otherwise just exit to create no dumps + flag_class = abap_true. + ENDIF. + + CASE wa_component-type_kind. + WHEN cl_abap_structdescr=>typekind_struct1 OR cl_abap_structdescr=>typekind_struct2. " Structure --> use recursio +* IF flag_class = abap_true. +** Only borders will be passed as unbound references. But since we want to set a value we have to create an instance +* ENDIF. + zcl_excel_common=>recursive_class_to_struct( EXPORTING i_source = <attribute> + CHANGING e_target = <field> + e_targetx = <fieldx> ). + WHEN OTHERS. + <field> = <attribute>. + <fieldx> = abap_true. + + ENDCASE. + ENDLOOP. + +endmethod. + + + + + + method RECURSIVE_STRUCT_TO_CLASS. + " # issue 139 +* is working for me - but after looking through this coding I guess +* I'll rewrite this to a version w/o recursion +* This is private an no one using it so far except me, so no need to hurry + DATA: descr TYPE REF TO cl_abap_structdescr, + wa_component LIKE LINE OF descr->components, + attribute_name TYPE fieldname, + flag_class TYPE flag, + o_border TYPE REF TO zcl_excel_style_border. + + FIELD-SYMBOLS: <field> TYPE any, + <fieldx> TYPE any, + <class> TYPE REF TO object, + <attribute> TYPE any, + <attribute_s> TYPE ANY TABLE. + + + descr ?= cl_abap_structdescr=>describe_by_data( i_source ). + + LOOP AT descr->components INTO wa_component. + +* Assign structure and X-structure + ASSIGN COMPONENT wa_component-name OF STRUCTURE i_source TO <field>. + ASSIGN COMPONENT wa_component-name OF STRUCTURE i_sourcex TO <fieldx>. +* At least one field in the structure should be marked - otherwise continue with next field + CHECK <fieldx> CA abap_true. + CLEAR flag_class. +* maybe target is just a structure - try assign component... + ASSIGN COMPONENT wa_component-name OF STRUCTURE e_target TO <attribute>. + IF sy-subrc <> 0. +* not - then it is an attribute of the class - use different assign then + CONCATENATE 'E_TARGET->' wa_component-name INTO attribute_name. + ASSIGN (attribute_name) TO <attribute>. + IF sy-subrc <> 0.EXIT.ENDIF. " Should not happen if structure is built properly - otherwise just exit to create no dumps + flag_class = abap_true. + ENDIF. + + CASE wa_component-type_kind. + WHEN cl_abap_structdescr=>typekind_struct1 OR cl_abap_structdescr=>typekind_struct2. " Structure --> use recursion + IF flag_class = abap_true AND <attribute> IS INITIAL. +* Only borders will be passed as unbound references. But since we want to set a value we have to create an instance + CREATE OBJECT o_border. + <attribute> = o_border. + ENDIF. + zcl_excel_common=>recursive_struct_to_class( EXPORTING i_source = <field> + i_sourcex = <fieldx> + CHANGING e_target = <attribute> ). +* WHEN cl_abap_structdescr=>typekind_struct2. " String +* CHECK <fieldx> = abap_true. " Marked for change +* <attribute_s> = <field>. + WHEN OTHERS. + CHECK <fieldx> = abap_true. " Marked for change + <attribute> = <field>. + + ENDCASE. + ENDLOOP. + +endmethod. + + + + + + + + METHOD shift_formula. + + CONSTANTS: lcv_operators TYPE string VALUE '+-/*^%=<>&, !', + lcv_letters TYPE string VALUE 'ABCDEFGHIJKLMNOPQRSTUVWXYZ$', + lcv_digits TYPE string VALUE '0123456789', + lcv_cell_reference_error TYPE string VALUE '#REF!'. + + DATA: lv_tcnt TYPE i, " Counter variable + lv_tlen TYPE i, " Temp variable length + lv_cnt TYPE i, " Counter variable + lv_cnt2 TYPE i, " Counter variable + lv_offset1 TYPE i, " Character offset + lv_numchars TYPE i, " Number of characters counter + lv_tchar(1) TYPE c, " Temp character + lv_tchar2(1) TYPE c, " Temp character + lv_cur_form(132) TYPE c, " Formula for current cell + lv_ref_cell_addr TYPE string, " Reference cell address + lv_tcol1 TYPE string, " Temp column letter + lv_tcol2 TYPE string, " Temp column letter + lv_tcoln TYPE i, " Temp column number + lv_trow1 TYPE string, " Temp row number + lv_trow2 TYPE string, " Temp row number + lv_flen TYPE i, " Length of reference formula + lv_tlen2 TYPE i, " Temp variable length + lv_substr1 TYPE string, " Substring variable + lv_abscol TYPE string, " Absolute column symbol + lv_absrow TYPE string, " Absolute row symbol + + lv_errormessage TYPE string. + + FIELD-SYMBOLS: <find_my_include> TYPE ANY. + +*--------------------------------------------------------------------* +* When copying a cell in EXCEL to another cell any inherent formulas +* are copied as well. Cell-references in the formula are being adjusted +* by the distance of the new cell to the original one +*--------------------------------------------------------------------* +* §1 Parse reference formula character by character +* §2 Identify Cell-references +* §3 Shift cell-reference +* §4 Build resulting formula +*--------------------------------------------------------------------* + +*--------------------------------------------------------------------* +* No distance --> Reference = resulting cell/formula +*--------------------------------------------------------------------* + IF iv_shift_cols = 0 + AND iv_shift_rows = 0. + ev_resulting_formula = iv_reference_formula. + EXIT. " done + ENDIF. + + + lv_flen = STRLEN( iv_reference_formula ). + lv_numchars = 1. + +*--------------------------------------------------------------------* +* §1 Parse reference formula character by character +*--------------------------------------------------------------------* + DO lv_flen TIMES. + + CLEAR: lv_tchar, + lv_substr1, + lv_ref_cell_addr. + lv_cnt2 = lv_cnt + 1. + IF lv_cnt2 > lv_flen. + EXIT. " Done + ENDIF. + +*--------------------------------------------------------------------* +* Here we have the current character in the formula +*--------------------------------------------------------------------* + lv_tchar = iv_reference_formula+lv_cnt(1). + +*--------------------------------------------------------------------* +* Operators or opening parenthesis will separate possible cellreferences +*--------------------------------------------------------------------* + IF ( lv_tchar CA lcv_operators + OR lv_tchar CA '(' ) + AND lv_cnt2 = 1. + lv_substr1 = iv_reference_formula+lv_offset1(1). + CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form. + lv_cnt = lv_cnt + 1. + lv_offset1 = lv_cnt. + lv_numchars = 1. + CONTINUE. " --> next character in formula can be analyzed + ENDIF. + +*--------------------------------------------------------------------* +* Quoted literal text holds no cell reference --> advance to end of text +*--------------------------------------------------------------------* + IF lv_tchar EQ '"'. + lv_cnt = lv_cnt + 1. + lv_numchars = lv_numchars + 1. + lv_tchar = iv_reference_formula+lv_cnt(1). + WHILE lv_tchar NE '"'. + + lv_cnt = lv_cnt + 1. + lv_numchars = lv_numchars + 1. + lv_tchar = iv_reference_formula+lv_cnt(1). + + ENDWHILE. + lv_cnt2 = lv_cnt + 1. + lv_substr1 = iv_reference_formula+lv_offset1(lv_numchars). + CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form. + lv_cnt = lv_cnt + 1. + IF lv_cnt = lv_flen. + EXIT. + ENDIF. + lv_offset1 = lv_cnt. + lv_numchars = 1. + lv_tchar = iv_reference_formula+lv_cnt(1). + lv_cnt2 = lv_cnt + 1. + CONTINUE. " --> next character in formula can be analyzed + ENDIF. + + +*--------------------------------------------------------------------* +* Operators or parenthesis or last character in formula will separate possible cellreferences +*--------------------------------------------------------------------* + IF lv_tchar CA lcv_operators + OR lv_tchar CA '():' + OR lv_cnt2 = lv_flen. + IF lv_cnt > 0. + lv_substr1 = iv_reference_formula+lv_offset1(lv_numchars). +*--------------------------------------------------------------------* +* Check for text concatenation and functions +*--------------------------------------------------------------------* + IF ( lv_tchar CA lcv_operators AND lv_tchar EQ lv_substr1 ) OR lv_tchar EQ '('. + CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form. + lv_cnt = lv_cnt + 1. + lv_offset1 = lv_cnt. + lv_cnt2 = lv_cnt + 1. + lv_numchars = 1. + CONTINUE. " --> next character in formula can be analyzed + ENDIF. + + lv_tlen = lv_cnt2 - lv_offset1. +*--------------------------------------------------------------------* +* Exclude mathematical operators and closing parentheses +*--------------------------------------------------------------------* + IF lv_tchar CA lcv_operators + OR lv_tchar CA ':)'. + IF lv_cnt2 = lv_flen + AND lv_numchars = 1. + CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form. + lv_cnt = lv_cnt + 1. + lv_offset1 = lv_cnt. + lv_cnt2 = lv_cnt + 1. + lv_numchars = 1. + CONTINUE. " --> next character in formula can be analyzed + ELSE. + lv_tlen = lv_tlen - 1. + ENDIF. + ENDIF. +*--------------------------------------------------------------------* +* Capture reference cell address +*--------------------------------------------------------------------* + TRY. + MOVE: iv_reference_formula+lv_offset1(lv_tlen) TO lv_ref_cell_addr. "Ref cell address + CATCH cx_root. + lv_errormessage = 'Internal error in Class ZCL_EXCEL_COMMON Method SHIFT_FORMULA Spot 1 '. " Change to messageclass if possible + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDTRY. + +*--------------------------------------------------------------------* +* Split cell address into characters and numbers +*--------------------------------------------------------------------* + CLEAR: lv_tlen, + lv_tcnt, + lv_tcol1, + lv_trow1. + lv_tlen = STRLEN( lv_ref_cell_addr ). + IF lv_tlen <> 0. + CLEAR: lv_tcnt. + DO lv_tlen TIMES. + CLEAR: lv_tchar2. + lv_tchar2 = lv_ref_cell_addr+lv_tcnt(1). + IF lv_tchar2 CA lcv_letters. + CONCATENATE lv_tcol1 lv_tchar2 INTO lv_tcol1. + ELSEIF lv_tchar2 CA lcv_digits. + CONCATENATE lv_trow1 lv_tchar2 INTO lv_trow1. + ENDIF. + lv_tcnt = lv_tcnt + 1. + ENDDO. + ENDIF. +*--------------------------------------------------------------------* +* Check for invalid cell address +*--------------------------------------------------------------------* + IF lv_tcol1 IS INITIAL OR lv_trow1 IS INITIAL. + CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form. + lv_cnt = lv_cnt + 1. + lv_offset1 = lv_cnt. + lv_cnt2 = lv_cnt + 1. + lv_numchars = 1. + CONTINUE. + ENDIF. +*--------------------------------------------------------------------* +* Check for range names +*--------------------------------------------------------------------* + CLEAR: lv_tlen. + lv_tlen = STRLEN( lv_tcol1 ). + IF lv_tlen GT 3. + CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form. + lv_cnt = lv_cnt + 1. + lv_offset1 = lv_cnt. + lv_cnt2 = lv_cnt + 1. + lv_numchars = 1. + CONTINUE. + ENDIF. +*--------------------------------------------------------------------* +* Check for valid row +*--------------------------------------------------------------------* + IF lv_trow1 GT 1048576. + CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form. + lv_cnt = lv_cnt + 1. + lv_offset1 = lv_cnt. + lv_cnt2 = lv_cnt + 1. + lv_numchars = 1. + CONTINUE. + ENDIF. +*--------------------------------------------------------------------* +* Check for absolute column or row reference +*--------------------------------------------------------------------* + CLEAR: lv_tcol2, + lv_trow2, + lv_abscol, + lv_absrow. + lv_tlen2 = STRLEN( lv_tcol1 ) - 1. + IF lv_tcol1 IS NOT INITIAL. + lv_abscol = lv_tcol1(1). + ENDIF. + IF lv_tlen2 GE 0. + lv_absrow = lv_tcol1+lv_tlen2(1). + ENDIF. + IF lv_abscol EQ '$' AND lv_absrow EQ '$'. + lv_tlen2 = lv_tlen2 - 1. + IF lv_tlen2 > 0. + lv_tcol1 = lv_tcol1+1(lv_tlen2). + ENDIF. + lv_tlen2 = lv_tlen2 + 1. + ELSEIF lv_abscol EQ '$'. + lv_tcol1 = lv_tcol1+1(lv_tlen2). + ELSEIF lv_absrow EQ '$'. + lv_tcol1 = lv_tcol1(lv_tlen2). + ENDIF. +*--------------------------------------------------------------------* +* Check for valid column +*--------------------------------------------------------------------* + TRY. + lv_tcoln = zcl_excel_common=>convert_column2int( lv_tcol1 ) + iv_shift_cols. + CATCH zcx_excel. + CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form. + lv_cnt = lv_cnt + 1. + lv_offset1 = lv_cnt. + lv_cnt2 = lv_cnt + 1. + lv_numchars = 1. + CONTINUE. + ENDTRY. +*--------------------------------------------------------------------* +* Check whether there is a referencing problem +*--------------------------------------------------------------------* + lv_trow2 = lv_trow1 + iv_shift_rows. + IF ( lv_tcoln < 1 AND lv_abscol <> '$' ) " Maybe we should add here max-column and max row-tests as well. + OR ( lv_trow2 < 1 AND lv_absrow <> '$' ). " Check how EXCEL behaves in this case +*--------------------------------------------------------------------* +* Referencing problem encountered --> set error +*--------------------------------------------------------------------* + CONCATENATE lv_cur_form lcv_cell_reference_error INTO lv_cur_form. + ELSE. +*--------------------------------------------------------------------* +* No referencing problems --> adjust row and column +*--------------------------------------------------------------------* + +*--------------------------------------------------------------------* +* Adjust column +*--------------------------------------------------------------------* + IF lv_abscol EQ '$'. + CONCATENATE lv_cur_form lv_abscol lv_tcol1 INTO lv_cur_form. + ELSEIF iv_shift_cols EQ 0. + CONCATENATE lv_cur_form lv_tcol1 INTO lv_cur_form. + ELSE. + TRY. + lv_tcol2 = zcl_excel_common=>convert_column2alpha( lv_tcoln ). + CONCATENATE lv_cur_form lv_tcol2 INTO lv_cur_form. + CATCH zcx_excel. + CONCATENATE lv_cur_form lv_substr1 INTO lv_cur_form. + lv_cnt = lv_cnt + 1. + lv_offset1 = lv_cnt. + lv_cnt2 = lv_cnt + 1. + lv_numchars = 1. + CONTINUE. + ENDTRY. + ENDIF. +*--------------------------------------------------------------------* +* Adjust row +*--------------------------------------------------------------------* + IF lv_absrow EQ '$'. + CONCATENATE lv_cur_form lv_absrow lv_trow1 INTO lv_cur_form. + ELSEIF iv_shift_rows = 0. + CONCATENATE lv_cur_form lv_trow1 INTO lv_cur_form. +* elseif lv_trow2 < 1. +* CONCATENATE lv_cur_form lc_cell_reference_error INTO lv_cur_form. + ELSE. + CONCATENATE lv_cur_form lv_trow2 INTO lv_cur_form. + ENDIF. + ENDIF. + + lv_numchars = 0. + IF lv_tchar CA lcv_operators + OR lv_tchar CA ':)'. + CONCATENATE lv_cur_form lv_tchar INTO lv_cur_form. + ENDIF. + lv_offset1 = lv_cnt2. + ENDIF. + ENDIF. + lv_numchars = lv_numchars + 1. + lv_cnt = lv_cnt + 1. + lv_cnt2 = lv_cnt + 1. + + ENDDO. + + + +*--------------------------------------------------------------------* +* Return resulting formula +*--------------------------------------------------------------------* + IF lv_cur_form IS NOT INITIAL. + MOVE lv_cur_form TO ev_resulting_formula. + ENDIF. + +ENDMETHOD. + + + + + method SHL01. + + DATA: + lv_bit TYPE i, + lv_curr_pos TYPE i VALUE 2, + lv_prev_pos TYPE i VALUE 1. + + DO 15 TIMES. + GET BIT lv_curr_pos OF i_pwd_hash INTO lv_bit. + SET BIT lv_prev_pos OF r_pwd_hash TO lv_bit. + ADD 1 TO lv_curr_pos. + ADD 1 TO lv_prev_pos. + ENDDO. + SET BIT 16 OF r_pwd_hash TO 0. + +endmethod. + + + + + method SHR14. + + DATA: + lv_bit TYPE i, + lv_curr_pos TYPE i, + lv_next_pos TYPE i. + + r_pwd_hash = i_pwd_hash. + + DO 14 TIMES. + lv_curr_pos = 15. + lv_next_pos = 16. + + DO 15 TIMES. + GET BIT lv_curr_pos OF r_pwd_hash INTO lv_bit. + SET BIT lv_next_pos OF r_pwd_hash TO lv_bit. + SUBTRACT 1 FROM lv_curr_pos. + SUBTRACT 1 FROM lv_next_pos. + ENDDO. + SET BIT 1 OF r_pwd_hash TO 0. + ENDDO. + +endmethod. + + + + + + + method SPLIT_FILE. + + DATA: lt_hlp TYPE TABLE OF text255, + ls_hlp TYPE text255. + + DATA: lf_ext(10) TYPE c, + lf_dot_ext(10) TYPE c. + DATA: lf_str TYPE text255, + lf_anz TYPE i, + lf_len TYPE i. +** --------------------------------------------------------------------- + + CLEAR: lt_hlp, + ep_file, + ep_extension, + ep_dotextension. + +** Split the whole file at '.' + SPLIT ip_file AT '.' INTO TABLE lt_hlp. + +** get the extenstion from the last line of table + DESCRIBE TABLE lt_hlp LINES lf_anz. + IF lf_anz <= 1. + ep_file = ip_file. + EXIT. + ENDIF. + + READ TABLE lt_hlp INTO ls_hlp INDEX lf_anz. + ep_extension = ls_hlp. + lf_ext = ls_hlp. + IF NOT lf_ext IS INITIAL. + CONCATENATE '.' lf_ext INTO lf_dot_ext. + ENDIF. + ep_dotextension = lf_dot_ext. + +** get only the filename + lf_len = strlen( ip_file ) - strlen( lf_dot_ext ). + IF lf_len > 0. + ep_file = ip_file(lf_len). + ENDIF. + +endmethod. + + + + + method STRUCTURE_CASE. + DATA: lt_comp_str TYPE abap_component_tab. + + CASE is_component-type->kind. + WHEN cl_abap_typedescr=>kind_elem. "E Elementary Type + INSERT is_component INTO TABLE xt_components. + WHEN cl_abap_typedescr=>kind_table. "T Table + INSERT is_component INTO TABLE xt_components. + WHEN cl_abap_typedescr=>kind_struct. "S Structure + lt_comp_str = structure_recursive( is_component = is_component ). + INSERT LINES OF lt_comp_str INTO TABLE xt_components. + WHEN OTHERS. "cl_abap_typedescr=>kind_ref or cl_abap_typedescr=>kind_class or cl_abap_typedescr=>kind_intf. +* We skip it. for now. + ENDCASE. +endmethod. + + + + + method STRUCTURE_RECURSIVE. + DATA: lo_struct TYPE REF TO cl_abap_structdescr, + lt_components TYPE abap_component_tab, + ls_components TYPE abap_componentdescr. + + REFRESH rt_components. + + lo_struct ?= is_component-type. + lt_components = lo_struct->get_components( ). + + LOOP AT lt_components INTO ls_components. + structure_case( EXPORTING is_component = ls_components + CHANGING xt_components = rt_components ) . + ENDLOOP. + +endmethod. + + + + + method TIME_TO_EXCEL_STRING. + DATA: lv_seconds_in_day TYPE i, + lv_day_fraction TYPE f, + lc_time_baseline TYPE t VALUE '000000', + lc_seconds_in_day TYPE i VALUE 86400. + + lv_seconds_in_day = ip_value - lc_time_baseline. + lv_day_fraction = lv_seconds_in_day / lc_seconds_in_day. + ep_value = zcl_excel_common=>number_to_excel_string( ip_value = lv_day_fraction ). +endmethod. + + + + + + method UNESCAPE_STRING. + + CONSTANTS lcv_regex TYPE string VALUE `^'[^']` & `|` & " Beginning single ' OR + `[^']'$` & `|` & " Trailing single ' OR + `[^']'[^']`. " Single ' somewhere in between + + + DATA: lv_errormessage TYPE string. " Can't pass '...'(abc) to exception-class + +*--------------------------------------------------------------------* +* This method is used to extract the "real" string from an escaped string. +* An escaped string can be identified by a beginning ' which must be +* accompanied by a trailing ' +* All '' in between beginning and trailing ' are treated as single ' +*--------------------------------------------------------------------* + +*--------------------------------------------------------------------* +* When allowing clike-input parameters we might encounter trailing +* "real" blanks . These are automatically eliminated when moving +* the input parameter to a string. +*--------------------------------------------------------------------* + ev_unescaped_string = iv_escaped. " Pass through if not escaped + + CHECK ev_unescaped_string IS NOT INITIAL. " Nothing to do if empty + CHECK ev_unescaped_string(1) = `'`. " Nothing to do if not escaped + +*--------------------------------------------------------------------* +* Remove leading and trailing ' +*--------------------------------------------------------------------* + REPLACE REGEX `^'(.*)'$` IN ev_unescaped_string WITH '$1'. + IF sy-subrc <> 0. + lv_errormessage = 'Input not properly escaped - &'(002). + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. + +*--------------------------------------------------------------------* +* Any remaining single ' should not be here +*--------------------------------------------------------------------* + FIND REGEX lcv_regex IN ev_unescaped_string. + IF sy-subrc = 0. + lv_errormessage = 'Input not properly escaped - &'(002). + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. + +*--------------------------------------------------------------------* +* Replace '' with ' +*--------------------------------------------------------------------* + REPLACE ALL OCCURRENCES OF `''` IN ev_unescaped_string WITH `'`. + + +endmethod. + + + + + + + *"* 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 + CLASS zcl_tc_excel DEFINITION DEFERRED. +CLASS zcl_excel DEFINITION LOCAL FRIENDS zcl_tc_excel. + +*----------------------------------------------------------------------* +* CLASS zcl_Tc_Excel DEFINITION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS zcl_tc_excel DEFINITION FOR TESTING + DURATION SHORT + RISK LEVEL HARMLESS +. +*?<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0"> +*?<asx:values> +*?<TESTCLASS_OPTIONS> +*?<TEST_CLASS>zcl_Tc_Excel +*?</TEST_CLASS> +*?<TEST_MEMBER>f_Cut +*?</TEST_MEMBER> +*?<OBJECT_UNDER_TEST>ZCL_EXCEL +*?</OBJECT_UNDER_TEST> +*?<OBJECT_IS_LOCAL/> +*?<GENERATE_FIXTURE>X +*?</GENERATE_FIXTURE> +*?<GENERATE_CLASS_FIXTURE>X +*?</GENERATE_CLASS_FIXTURE> +*?<GENERATE_INVOCATION>X +*?</GENERATE_INVOCATION> +*?<GENERATE_ASSERT_EQUAL>X +*?</GENERATE_ASSERT_EQUAL> +*?</TESTCLASS_OPTIONS> +*?</asx:values> +*?</asx:abap> + PRIVATE SECTION. +* ================ + DATA: + f_cut TYPE REF TO zcl_excel. "class under test + + CLASS-METHODS: class_setup. + CLASS-METHODS: class_teardown. + METHODS: setup. + METHODS: teardown. + METHODS: create_empty_excel FOR TESTING. + +ENDCLASS. "zcl_Tc_Excel + + +*----------------------------------------------------------------------* +* CLASS zcl_Tc_Excel IMPLEMENTATION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS zcl_tc_excel IMPLEMENTATION. +* ================================== + + METHOD class_setup. +* =================== + + + ENDMETHOD. "class_Setup + + + METHOD class_teardown. +* ====================== + + + ENDMETHOD. "class_Teardown + + + METHOD setup. +* ============= + + CREATE OBJECT f_cut. + ENDMETHOD. "setup + + + METHOD teardown. +* ================ + + + ENDMETHOD. "teardown + +*// START TEST METHODS + + METHOD create_empty_excel. +* ================================== + + DATA: lv_count TYPE i. + lv_count = f_cut->get_worksheets_size( ). + + cl_abap_unit_assert=>assert_equals( act = lv_count + exp = 1 + msg = 'Testing number of sheet' + level = if_aunit_constants=>tolerable ). + ENDMETHOD. "create_empty_excel + +*// END TEST METHODS + + +ENDCLASS. "zcl_Tc_Excel + + + + + + + + + + + + + + method ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE. + DATA: lv_timestamp TYPE timestampl. + + me->zif_excel_book_properties~application = 'Microsoft Excel'. + me->zif_excel_book_properties~appversion = '12.0000'. + + GET TIME STAMP FIELD lv_timestamp. + me->zif_excel_book_properties~created = lv_timestamp. + me->zif_excel_book_properties~creator = sy-uname. + me->zif_excel_book_properties~modified = lv_timestamp. + me->zif_excel_book_properties~lastmodifiedby = sy-uname. +endmethod. + + + method ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE. + me->zif_excel_book_protection~protected = zif_excel_book_protection=>c_unprotected. + me->zif_excel_book_protection~lockrevision = zif_excel_book_protection=>c_unlocked. + me->zif_excel_book_protection~lockstructure = zif_excel_book_protection=>c_unlocked. + me->zif_excel_book_protection~lockwindows = zif_excel_book_protection=>c_unlocked. + CLEAR me->zif_excel_book_protection~workbookpassword. + CLEAR me->zif_excel_book_protection~revisionspassword. +endmethod. + + + method ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME. + me->zif_excel_book_vba_project~codename = ip_codename. +endmethod. + + + method ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR. + me->zif_excel_book_vba_project~codename_pr = ip_codename_pr. +endmethod. + + + method ZIF_EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT. + me->zif_excel_book_vba_project~vbaproject = ip_vbaproject. +endmethod. + + + + + method ADD_NEW_AUTOFILTER. +* Check for autofilter reference: new or overwrite; only one per sheet + ro_autofilter = autofilters->add( io_sheet = io_sheet ) . +endmethod. + + + + + + method ADD_NEW_DRAWING. + DATA: lv_guid TYPE guid_16. +* Create default blank worksheet + CREATE OBJECT eo_drawing + EXPORTING + ip_type = ip_type + ip_title = ip_title. + + CASE ip_type. + WHEN 'image'. + drawings->add( eo_drawing ). + WHEN 'chart'. + charts->add( eo_drawing ). + ENDCASE. +endmethod. + + + + method ADD_NEW_RANGE. +* Create default blank range + CREATE OBJECT eo_range. + ranges->add( eo_range ). +endmethod. + + + + + method ADD_NEW_STYLE. +* Start of deletion # issue 139 - Dateretention of cellstyles +* CREATE OBJECT eo_style. +* styles->add( eo_style ). +* End of deletion # issue 139 - Dateretention of cellstyles +* Start of insertion # issue 139 - Dateretention of cellstyles +* Create default style + CREATE OBJECT eo_style + EXPORTING + ip_guid = ip_guid. + styles->add( eo_style ). + + DATA: style2 TYPE zexcel_s_stylemapping. +* Copy to new representations + style2 = stylemapping_dynamic_style( eo_style ). + INSERT style2 INTO TABLE t_stylemapping1. + INSERT style2 INTO TABLE t_stylemapping2. +* End of insertion # issue 139 - Dateretention of cellstyles + +endmethod. + + + + + + METHOD add_new_worksheet. + DATA: lv_guid TYPE guid_16. + +* Create default blank worksheet + CREATE OBJECT eo_worksheet + EXPORTING + ip_excel = me + ip_title = ip_title. + + worksheets->add( eo_worksheet ). + worksheets->active_worksheet = worksheets->size( ). +ENDMETHOD. + + + method ADD_STATIC_STYLES. + " # issue 139 +* sp#ƒÂ¤ter hier noch die Worksheets abklappern, welche Styles #ƒÂ#berhaupt noch ben#ƒÂ#tigt werden +* und nur diese dann auch hier zur Verf#ƒÂ#gung stellen +* Da muss ich noch mal nachfragen, ob die beiden ersten Styles, die scheinbar immer mit dem +* EXCEL-Objekt erzeugt werden evtl. immer ben#ƒÂ#tigt werden, egal ob verwendet oder nicht +* Aber als Start fange ich mal an einfach alle static styles der Reihe nach hinzuzuf#ƒÂ#gen + FIELD-SYMBOLS: <style1> LIKE LINE OF t_stylemapping1, + <style2> LIKE LINE OF t_stylemapping2. + DATA: style TYPE REF TO zcl_excel_style. + + LOOP AT me->t_stylemapping1 ASSIGNING <style1> WHERE added_to_iterator IS INITIAL. + READ TABLE me->t_stylemapping2 ASSIGNING <style2> WITH TABLE KEY guid = <style1>-guid. + CHECK sy-subrc = 0. " Should always be true since these tables are being filled parallel + + style = me->add_new_style( <style1>-guid ). + + zcl_excel_common=>recursive_struct_to_class( EXPORTING i_source = <style1>-complete_style + i_sourcex = <style1>-complete_stylex + CHANGING e_target = style ). + + ENDLOOP. +endmethod. + + + method CONSTRUCTOR. + DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style TYPE REF TO zcl_excel_style. + +* Inizialize instance objects + CREATE OBJECT security. + CREATE OBJECT worksheets. + CREATE OBJECT ranges. + CREATE OBJECT styles. + CREATE OBJECT drawings + EXPORTING + ip_type = zcl_excel_drawing=>type_image. + CREATE OBJECT charts + EXPORTING + ip_type = zcl_excel_drawing=>type_chart. + CREATE OBJECT legacy_palette. + CREATE OBJECT autofilters. + + me->zif_excel_book_protection~initialize( ). + me->zif_excel_book_properties~initialize( ). + + me->add_new_worksheet( ). + me->add_new_style( ). " Standard style + lo_style = me->add_new_style( ). " Standard style with fill gray125 + lo_style->fill->filltype = zcl_excel_style_fill=>c_fill_pattern_gray125. + +endmethod. + + + + method GET_ACTIVE_SHEET_INDEX. + r_active_worksheet = me->worksheets->active_worksheet. +endmethod. + + + + method GET_ACTIVE_WORKSHEET. + + eo_worksheet = me->worksheets->get( me->worksheets->active_worksheet ). + +endmethod. + + + + method GET_AUTOFILTERS_REFERENCE. + + ro_autofilters = autofilters. + +endmethod. + + + + method GET_DEFAULT_STYLE. + ep_style = me->default_style. +endmethod. + + + + + method GET_DRAWINGS_ITERATOR. + + CASE ip_type. + WHEN zcl_excel_drawing=>type_image. + eo_iterator = me->drawings->get_iterator( ). + WHEN zcl_excel_drawing=>type_chart. + eo_iterator = me->charts->get_iterator( ). + WHEN OTHERS. + ENDCASE. + +endmethod. + + + + method GET_NEXT_TABLE_ID. + DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lv_tables_count TYPE i. + + lo_iterator = me->get_worksheets_iterator( ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + + lv_tables_count = lo_worksheet->get_tables_size( ). + ADD lv_tables_count TO ep_id. + + ENDWHILE. + + ADD 1 TO ep_id. + +endmethod. + + + + method GET_RANGES_ITERATOR. + + eo_iterator = me->ranges->get_iterator( ). + +endmethod. + + + + + + method GET_STATIC_CELLSTYLE_GUID. +" # issue 139 + DATA: style LIKE LINE OF me->t_stylemapping1. + + READ TABLE me->t_stylemapping1 INTO style + WITH TABLE KEY dynamic_style_guid = style-guid " no dynamic style --> look for initial guid here + complete_style = ip_cstyle_complete + complete_stylex = ip_cstylex_complete. + IF sy-subrc <> 0. + style-complete_style = ip_cstyle_complete. + style-complete_stylex = ip_cstylex_complete. + CALL FUNCTION 'GUID_CREATE' + IMPORTING + ev_guid_16 = style-guid. + INSERT style INTO TABLE me->t_stylemapping1. + INSERT style INTO TABLE me->t_stylemapping2. + + ENDIF. + + ep_guid = style-guid. +endmethod. + + + + method GET_STYLES_ITERATOR. + + eo_iterator = me->styles->get_iterator( ). + +endmethod. + + + + + + method GET_STYLE_INDEX_IN_STYLES. + DATA: index TYPE syindex. + DATA: lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_style TYPE REF TO zcl_excel_style. + + CHECK ip_guid IS NOT INITIAL. + + + lo_iterator = me->get_styles_iterator( ). + WHILE lo_iterator->has_next( ) = 'X'. + ADD 1 TO index. + lo_style ?= lo_iterator->get_next( ). + IF lo_style->get_guid( ) = ip_guid. + ep_index = index. + EXIT. + ENDIF. + ENDWHILE. + + IF ep_index IS INITIAL. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Index not found'. + else. + SUBTRACT 1 from ep_index. " In excel list starts with "0" + ENDIF. +endmethod. + + + + + + method GET_STYLE_TO_GUID. + " # issue 139 + + READ TABLE me->t_stylemapping2 INTO ep_stylemapping WITH TABLE KEY guid = ip_guid. + IF sy-subrc <> 0. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'GUID not found'. + ENDIF. + + IF ep_stylemapping-dynamic_style_guid IS NOT INITIAL. + zcl_excel_common=>recursive_class_to_struct( EXPORTING i_source = ep_stylemapping-cl_style + CHANGING e_target = ep_stylemapping-complete_style + e_targetx = ep_stylemapping-complete_stylex ). + ENDIF. + + +endmethod. + + + + method GET_WORKSHEETS_ITERATOR. + + eo_iterator = me->worksheets->get_iterator( ). + +endmethod. + + + + method GET_WORKSHEETS_NAME. + + ep_name = me->worksheets->name. + +endmethod. + + + + method GET_WORKSHEETS_SIZE. + + ep_size = me->worksheets->size( ). + +endmethod. + + + + + method GET_WORKSHEET_BY_NAME. + + DATA: lv_index TYPE zexcel_active_worksheet, + l_size TYPE i. + + l_size = get_worksheets_size( ). + + DO l_size TIMES. + lv_index = sy-index. + eo_worksheet = me->worksheets->get( lv_index ). + IF eo_worksheet->get_title( ) = ip_sheet_name. + RETURN. + ENDIF. + ENDDO. + + CLEAR eo_worksheet. + +endmethod. + + + + method SET_ACTIVE_SHEET_INDEX. + me->worksheets->active_worksheet = i_active_worksheet. +endmethod. + + + + method SET_ACTIVE_SHEET_INDEX_BY_NAME. + + DATA: ws_it TYPE REF TO cl_object_collection_iterator, + ws TYPE REF TO zcl_excel_worksheet, + lv_title TYPE ZEXCEL_SHEET_TITLE, + count TYPE i VALUE 1. + + ws_it = me->worksheets->get_iterator( ). + + WHILE ws_it->if_object_collection_iterator~has_next( ) = abap_true. + ws ?= ws_it->if_object_collection_iterator~get_next( ). + lv_title = ws->get_title( ). + IF lv_title = i_worksheet_name. + me->worksheets->active_worksheet = count. + EXIT. + ENDIF. + count = count + 1. + ENDWHILE. + +endmethod. + + + + + method SET_DEFAULT_STYLE. + me->default_style = ip_style. +endmethod. + + + + + method STYLEMAPPING_DYNAMIC_STYLE. +" # issue 139 + eo_style2-dynamic_style_guid = ip_style->get_guid( ). + eo_style2-guid = eo_style2-dynamic_style_guid. + eo_style2-added_to_iterator = abap_true. + eo_style2-cl_style = ip_style. + +* don't care about attributes here, since this data may change +* dynamically + +endmethod. + + + + + + + + *"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations + *"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + method CONSTRUCTOR. + "Load default values + me->pagemargins-b = '0.75'. + me->pagemargins-l = '0.7'. + me->pagemargins-r = '0.7'. + me->pagemargins-t = '0.75'. + me->pagemargins-header = '0.3'. + me->pagemargins-footer = '0.3'. +endmethod. + + + + + + + + + + + + + + + + + + + + METHOD create_serie. + DATA ls_serie TYPE s_series. + + DATA: lv_start_row_c TYPE char7, + lv_stop_row_c TYPE char7. + + + IF ip_lbl IS NOT SUPPLIED. + lv_stop_row_c = ip_lbl_to_row. + SHIFT lv_stop_row_c RIGHT DELETING TRAILING space. + SHIFT lv_stop_row_c LEFT DELETING LEADING space. + lv_start_row_c = ip_lbl_from_row. + SHIFT lv_start_row_c RIGHT DELETING TRAILING space. + SHIFT lv_start_row_c LEFT DELETING LEADING space. + ls_serie-lbl = ip_sheet. + ls_serie-lbl = zcl_excel_common=>escape_string( ip_value = ls_serie-lbl ). + CONCATENATE ls_serie-lbl '!$' ip_lbl_from_col '$' lv_start_row_c ':$' ip_lbl_to_col '$' lv_stop_row_c INTO ls_serie-lbl. + CLEAR: lv_start_row_c, lv_stop_row_c. + ELSE. + ls_serie-lbl = ip_lbl. + ENDIF. + IF ip_ref IS NOT SUPPLIED. + lv_stop_row_c = ip_ref_to_row. + SHIFT lv_stop_row_c RIGHT DELETING TRAILING space. + SHIFT lv_stop_row_c LEFT DELETING LEADING space. + lv_start_row_c = ip_ref_from_row. + SHIFT lv_start_row_c RIGHT DELETING TRAILING space. + SHIFT lv_start_row_c LEFT DELETING LEADING space. + ls_serie-ref = ip_sheet. + ls_serie-ref = zcl_excel_common=>escape_string( ip_value = ls_serie-ref ). + CONCATENATE ls_serie-ref '!$' ip_ref_from_col '$' lv_start_row_c ':$' ip_ref_to_col '$' lv_stop_row_c INTO ls_serie-ref. + CLEAR: lv_start_row_c, lv_stop_row_c. + ELSE. + ls_serie-ref = ip_ref. + ENDIF. + ls_serie-idx = ip_idx. + ls_serie-order = ip_order. + ls_serie-invertifnegative = ip_invertifnegative. + ls_serie-symbol = ip_symbol. + ls_serie-smooth = ip_smooth. + ls_serie-sername = ip_sername. + APPEND ls_serie TO me->series. + SORT me->series BY order ASCENDING. +ENDMETHOD. + + + + method SET_PRINT_LBL. + me->print_label = ip_value. +endmethod. + + + + METHOD set_style. + me->ns_c14styleval = ip_style-c14style. + CONDENSE me->ns_c14styleval NO-GAPS. + me->ns_styleval = ip_style-cstyle. + CONDENSE me->ns_styleval NO-GAPS. +ENDMETHOD. + + + + *"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations + *"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + + + + + + + + + + + + + + + + + METHOD set_show_cat_name. + ns_showcatnameval = ip_value. +ENDMETHOD. + + + + METHOD set_show_leader_lines. + ns_showleaderlinesval = ip_value. +ENDMETHOD. + + + + METHOD set_show_legend_key. + ns_showlegendkeyval = ip_value. +ENDMETHOD. + + + + METHOD set_show_percent. + ns_showpercentval = ip_value. +ENDMETHOD. + + + + METHOD set_show_ser_name. + ns_showsernameval = ip_value. +ENDMETHOD. + + + + METHOD set_show_values. + ns_showvalval = ip_value. +ENDMETHOD. + + + + METHOD set_varycolor. + ns_varycolorsval = ip_value. +ENDMETHOD. + + + + + + *"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations + *"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + METHOD create_ax. + DATA ls_ax TYPE s_ax. + ls_ax-type = ip_type. + + if ip_type = c_catax. + if ip_axid is SUPPLIED. + ls_ax-axid = ip_axid. + else. + ls_ax-axid = '1'. + endif. + if ip_orientation is SUPPLIED. + ls_ax-orientation = ip_orientation. + else. + ls_ax-orientation = 'minMax'. + endif. + if ip_delete is SUPPLIED. + ls_ax-delete = ip_delete. + else. + ls_ax-delete = '0'. + endif. + if ip_axpos is SUPPLIED. + ls_ax-axpos = ip_axpos. + else. + ls_ax-axpos = 'b'. + endif. + if ip_formatcode is SUPPLIED. + ls_ax-formatcode = ip_formatcode. + else. + ls_ax-formatcode = 'General'. + endif. + if ip_sourcelinked is SUPPLIED. + ls_ax-sourcelinked = ip_sourcelinked. + else. + ls_ax-sourcelinked = '1'. + endif. + if ip_majorTickMark is SUPPLIED. + ls_ax-majorTickMark = ip_majorTickMark. + else. + ls_ax-majorTickMark = 'out'. + endif. + if ip_minorTickMark is SUPPLIED. + ls_ax-minorTickMark = ip_minorTickMark. + else. + ls_ax-minorTickMark = 'none'. + endif. + if ip_ticklblpos is SUPPLIED. + ls_ax-ticklblpos = ip_ticklblpos. + else. + ls_ax-ticklblpos = 'nextTo'. + endif. + if ip_crossax is SUPPLIED. + ls_ax-crossax = ip_crossax. + else. + ls_ax-crossax = '2'. + endif. + if ip_crosses is SUPPLIED. + ls_ax-crosses = ip_crosses. + else. + ls_ax-crosses = 'autoZero'. + endif. + if ip_auto is SUPPLIED. + ls_ax-auto = ip_auto. + else. + ls_ax-auto = '1'. + endif. + if ip_lblAlgn is SUPPLIED. + ls_ax-lblAlgn = ip_lblAlgn. + else. + ls_ax-lblAlgn = 'ctr'. + endif. + if ip_lblOffset is SUPPLIED. + ls_ax-lblOffset = ip_lblOffset. + else. + ls_ax-lblOffset = '100'. + endif. + if ip_noMultiLvlLbl is SUPPLIED. + ls_ax-noMultiLvlLbl = ip_noMultiLvlLbl. + else. + ls_ax-noMultiLvlLbl = '0'. + endif. + elseif ip_type = c_valax. + if ip_axid is SUPPLIED. + ls_ax-axid = ip_axid. + else. + ls_ax-axid = '2'. + endif. + if ip_orientation is SUPPLIED. + ls_ax-orientation = ip_orientation. + else. + ls_ax-orientation = 'minMax'. + endif. + if ip_delete is SUPPLIED. + ls_ax-delete = ip_delete. + else. + ls_ax-delete = '0'. + endif. + if ip_axpos is SUPPLIED. + ls_ax-axpos = ip_axpos. + else. + ls_ax-axpos = 'l'. + endif. + if ip_formatcode is SUPPLIED. + ls_ax-formatcode = ip_formatcode. + else. + ls_ax-formatcode = 'General'. + endif. + if ip_sourcelinked is SUPPLIED. + ls_ax-sourcelinked = ip_sourcelinked. + else. + ls_ax-sourcelinked = '1'. + endif. + if ip_majorTickMark is SUPPLIED. + ls_ax-majorTickMark = ip_majorTickMark. + else. + ls_ax-majorTickMark = 'out'. + endif. + if ip_minorTickMark is SUPPLIED. + ls_ax-minorTickMark = ip_minorTickMark. + else. + ls_ax-minorTickMark = 'none'. + endif. + if ip_ticklblpos is SUPPLIED. + ls_ax-ticklblpos = ip_ticklblpos. + else. + ls_ax-ticklblpos = 'nextTo'. + endif. + if ip_crossax is SUPPLIED. + ls_ax-crossax = ip_crossax. + else. + ls_ax-crossax = '1'. + endif. + if ip_crosses is SUPPLIED. + ls_ax-crosses = ip_crosses. + else. + ls_ax-crosses = 'autoZero'. + endif. + if ip_crossBetween is SUPPLIED. + ls_ax-crossBetween = ip_crossBetween. + else. + ls_ax-crossBetween = 'between'. + endif. + endif. + + APPEND ls_ax TO me->axes. + sort me->axes by axid ascending. +ENDMETHOD. + + + + METHOD set_show_cat_name. + ns_showcatnameval = ip_value. +ENDMETHOD. + + + + METHOD set_show_legend_key. + ns_showlegendkeyval = ip_value. +ENDMETHOD. + + + + METHOD set_show_percent. + ns_showpercentval = ip_value. +ENDMETHOD. + + + + METHOD set_show_ser_name. + ns_showsernameval = ip_value. +ENDMETHOD. + + + + METHOD set_show_values. + ns_showvalval = ip_value. +ENDMETHOD. + + + + METHOD set_varycolor. + ns_varycolorsval = ip_value. +ENDMETHOD. + + + + + + *"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations + *"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + METHOD create_ax. + DATA ls_ax TYPE s_ax. + ls_ax-type = ip_type. + + IF ip_type = c_catax. + IF ip_axid IS SUPPLIED. + ls_ax-axid = ip_axid. + ELSE. + ls_ax-axid = '1'. + ENDIF. + IF ip_orientation IS SUPPLIED. + ls_ax-orientation = ip_orientation. + ELSE. + ls_ax-orientation = 'minMax'. + ENDIF. + IF ip_delete IS SUPPLIED. + ls_ax-delete = ip_delete. + ELSE. + ls_ax-delete = '0'. + ENDIF. + IF ip_axpos IS SUPPLIED. + ls_ax-axpos = ip_axpos. + ELSE. + ls_ax-axpos = 'b'. + ENDIF. + IF ip_formatcode IS SUPPLIED. + ls_ax-formatcode = ip_formatcode. + ELSE. + ls_ax-formatcode = 'General'. + ENDIF. + IF ip_sourcelinked IS SUPPLIED. + ls_ax-sourcelinked = ip_sourcelinked. + ELSE. + ls_ax-sourcelinked = '1'. + ENDIF. + IF ip_majortickmark IS SUPPLIED. + ls_ax-majortickmark = ip_majortickmark. + ELSE. + ls_ax-majortickmark = 'out'. + ENDIF. + IF ip_minortickmark IS SUPPLIED. + ls_ax-minortickmark = ip_minortickmark. + ELSE. + ls_ax-minortickmark = 'none'. + ENDIF. + IF ip_ticklblpos IS SUPPLIED. + ls_ax-ticklblpos = ip_ticklblpos. + ELSE. + ls_ax-ticklblpos = 'nextTo'. + ENDIF. + IF ip_crossax IS SUPPLIED. + ls_ax-crossax = ip_crossax. + ELSE. + ls_ax-crossax = '2'. + ENDIF. + IF ip_crosses IS SUPPLIED. + ls_ax-crosses = ip_crosses. + ELSE. + ls_ax-crosses = 'autoZero'. + ENDIF. + IF ip_auto IS SUPPLIED. + ls_ax-auto = ip_auto. + ELSE. + ls_ax-auto = '1'. + ENDIF. + IF ip_lblalgn IS SUPPLIED. + ls_ax-lblalgn = ip_lblalgn. + ELSE. + ls_ax-lblalgn = 'ctr'. + ENDIF. + IF ip_lbloffset IS SUPPLIED. + ls_ax-lbloffset = ip_lbloffset. + ELSE. + ls_ax-lbloffset = '100'. + ENDIF. + IF ip_nomultilvllbl IS SUPPLIED. + ls_ax-nomultilvllbl = ip_nomultilvllbl. + ELSE. + ls_ax-nomultilvllbl = '0'. + ENDIF. + ELSEIF ip_type = c_valax. + IF ip_axid IS SUPPLIED. + ls_ax-axid = ip_axid. + ELSE. + ls_ax-axid = '2'. + ENDIF. + IF ip_orientation IS SUPPLIED. + ls_ax-orientation = ip_orientation. + ELSE. + ls_ax-orientation = 'minMax'. + ENDIF. + IF ip_delete IS SUPPLIED. + ls_ax-delete = ip_delete. + ELSE. + ls_ax-delete = '0'. + ENDIF. + IF ip_axpos IS SUPPLIED. + ls_ax-axpos = ip_axpos. + ELSE. + ls_ax-axpos = 'l'. + ENDIF. + IF ip_formatcode IS SUPPLIED. + ls_ax-formatcode = ip_formatcode. + ELSE. + ls_ax-formatcode = 'General'. + ENDIF. + IF ip_sourcelinked IS SUPPLIED. + ls_ax-sourcelinked = ip_sourcelinked. + ELSE. + ls_ax-sourcelinked = '1'. + ENDIF. + IF ip_majortickmark IS SUPPLIED. + ls_ax-majortickmark = ip_majortickmark. + ELSE. + ls_ax-majortickmark = 'out'. + ENDIF. + IF ip_minortickmark IS SUPPLIED. + ls_ax-minortickmark = ip_minortickmark. + ELSE. + ls_ax-minortickmark = 'none'. + ENDIF. + IF ip_ticklblpos IS SUPPLIED. + ls_ax-ticklblpos = ip_ticklblpos. + ELSE. + ls_ax-ticklblpos = 'nextTo'. + ENDIF. + IF ip_crossax IS SUPPLIED. + ls_ax-crossax = ip_crossax. + ELSE. + ls_ax-crossax = '1'. + ENDIF. + IF ip_crosses IS SUPPLIED. + ls_ax-crosses = ip_crosses. + ELSE. + ls_ax-crosses = 'autoZero'. + ENDIF. + IF ip_crossbetween IS SUPPLIED. + ls_ax-crossbetween = ip_crossbetween. + ELSE. + ls_ax-crossbetween = 'between'. + ENDIF. + ENDIF. + + APPEND ls_ax TO me->axes. + SORT me->axes BY axid ASCENDING. +ENDMETHOD. + + + + METHOD SET_SHOW_CAT_NAME. + ns_showcatnameval = ip_value. +ENDMETHOD. + + + + METHOD SET_SHOW_LEGEND_KEY. + ns_showlegendkeyval = ip_value. +ENDMETHOD. + + + + METHOD SET_SHOW_PERCENT. + ns_showpercentval = ip_value. +ENDMETHOD. + + + + METHOD SET_SHOW_SER_NAME. + ns_showsernameval = ip_value. +ENDMETHOD. + + + + METHOD SET_SHOW_VALUES. + ns_showvalval = ip_value. +ENDMETHOD. + + + + METHOD set_varycolor. + ns_varycolorsval = ip_value. +ENDMETHOD. + + + + *"* 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 CONSTRUCTOR. + " Initialise instance variables + formula1 = ''. + formula2 = ''. + type = me->c_type_none. + errorstyle = me->c_style_stop. + operator = ''. + allowblank = abap_false. + showdropdown = abap_false. + showinputmessage = abap_true. + showerrormessage = abap_true. + errortitle = ''. + error = ''. + prompttitle = ''. + prompt = ''. +* inizialize dimension range + cell_row = 1. + cell_column = 'A'. +endmethod. + + + + *"* 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 ADD. + data_validations->add( ip_data_validation ). +endmethod. + + + method CLEAR. + data_validations->clear( ). +endmethod. + + + method CONSTRUCTOR. + + CREATE OBJECT data_validations. + +endmethod. + + + + method GET_ITERATOR. + eo_iterator ?= data_validations->if_object_collection~get_iterator( ). +endmethod. + + + + method IS_EMPTY. + is_empty = data_validations->if_object_collection~is_empty( ). +endmethod. + + + + method REMOVE. + data_validations->remove( ip_data_validation ). +endmethod. + + + + method SIZE. + ep_size = data_validations->if_object_collection~size( ). +endmethod. + + + + *"* 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 CONSTRUCTOR. + + CALL FUNCTION 'GUID_CREATE' + IMPORTING + ev_guid_16 = me->guid. + + IF ip_title IS NOT INITIAL. + title = ip_title. + ELSE. + title = me->guid. + ENDIF. + + me->type = ip_type. + +* inizialize dimension range + anchor = anchor_one_cell. + from_loc-col = 1. + from_loc-row = 1. +endmethod. + + + + method CREATE_MEDIA_NAME. + +* if media name is initial, create unique name + CHECK media_name IS INITIAL. + + index = ip_index. + CONCATENATE me->type index INTO media_name. + CONDENSE media_name NO-GAPS. +endmethod. + + + + method GET_FROM_COL. + r_from_col = me->from_loc-col. +endmethod. + + + + method GET_FROM_ROW. + r_from_row = me->from_loc-row. +endmethod. + + + + method GET_GUID. + + ep_guid = me->guid. + +endmethod. + + + + method GET_HEIGHT_EMU_STR. + r_height = pixel2emu( size-height ). + CONDENSE r_height NO-GAPS. +endmethod. + + + + method GET_INDEX. + rp_index = me->index. +endmethod. + + + + method GET_MEDIA. + CASE media_source. + WHEN c_media_source_xstring. + r_media = media. + WHEN c_media_source_www. + DATA: lt_mime TYPE tsfmime, + lv_filesize TYPE i, + lv_filesizec(10). + + CALL FUNCTION 'WWWDATA_IMPORT' + EXPORTING + key = media_key_www + TABLES + mime = lt_mime + EXCEPTIONS + OTHERS = 1. + + CALL FUNCTION 'WWWPARAMS_READ' + EXPORTING + relid = media_key_www-relid + objid = media_key_www-objid + name = 'filesize' + IMPORTING + value = lv_filesizec. + + lv_filesize = lv_filesizec. + CALL FUNCTION 'SCMS_BINARY_TO_XSTRING' + EXPORTING + input_length = lv_filesize + IMPORTING + buffer = r_media + TABLES + binary_tab = lt_mime + EXCEPTIONS + failed = 1 + OTHERS = 2. + WHEN c_media_source_mime. + DATA: lt_bin_mime TYPE sdokcntbins. + cl_wb_mime_repository=>load_mime( EXPORTING + io = me->io + IMPORTING + filesize = lv_filesize + bin_data = lt_bin_mime + CHANGING + language = sy-langu ). + + CALL FUNCTION 'SCMS_BINARY_TO_XSTRING' + EXPORTING + input_length = lv_filesize + IMPORTING + buffer = r_media + TABLES + binary_tab = lt_bin_mime + EXCEPTIONS + failed = 1 + OTHERS = 2. + ENDCASE. +endmethod. + + + + method GET_MEDIA_NAME. + CONCATENATE media_name `.` media_type INTO r_name. +endmethod. + + + + method GET_MEDIA_TYPE. + r_type = media_type. +endmethod. + + + + method GET_NAME. + r_name = title. +endmethod. + + + + method GET_POSITION. + rp_position-anchor = anchor. + rp_position-from = from_loc. + rp_position-to = to_loc. + rp_position-size = size. +endmethod. + + + + method GET_TO_COL. + r_to_col = me->to_loc-col. +endmethod. + + + + method GET_TO_ROW. + r_to_row = me->to_loc-row. +endmethod. + + + + method GET_TYPE. + rp_type = me->type. +endmethod. + + + + method GET_WIDTH_EMU_STR. + r_width = pixel2emu( size-width ). + CONDENSE r_width NO-GAPS. +endmethod. + + + + METHOD load_chart_attributes. + DATA: node TYPE REF TO if_ixml_element. + DATA: node2 TYPE REF TO if_ixml_element. + DATA: node3 TYPE REF TO if_ixml_element. + DATA: node4 TYPE REF TO if_ixml_element. + DATA: iterator TYPE REF TO if_ixml_node_iterator. + + DATA: chartspace TYPE REF TO if_ixml_node_collection. + DATA: coll_length TYPE i. + DATA: chartelem TYPE REF TO if_ixml_element. + + DATA lo_barchart TYPE REF TO zcl_excel_graph_bars. + DATA lo_piechart TYPE REF TO zcl_excel_graph_pie. + DATA lo_linechart TYPE REF TO zcl_excel_graph_line. + + TYPES: BEGIN OF t_prop, + val TYPE string, + rtl TYPE string, + lang TYPE string, + formatcode TYPE string, + sourcelinked TYPE string, + END OF t_prop. + + TYPES: BEGIN OF t_pagemargins, + b TYPE string, + l TYPE string, + r TYPE string, + t TYPE string, + header TYPE string, + footer TYPE string, + END OF t_pagemargins. + + DATA ls_prop TYPE t_prop. + DATA ls_pagemargins TYPE t_pagemargins. + + DATA lo_collection TYPE REF TO if_ixml_node_collection. + DATA lo_node TYPE REF TO if_ixml_node. + DATA lo_iterator TYPE REF TO if_ixml_node_iterator. + DATA lv_idx TYPE i. + DATA lv_order TYPE i. + DATA lv_invertifnegative TYPE string. + DATA lv_symbol TYPE string. + DATA lv_smooth TYPE c. + DATA lv_sername TYPE string. + DATA lv_label TYPE string. + DATA lv_value TYPE string. + DATA lv_axid TYPE string. + DATA lv_orientation TYPE string. + DATA lv_delete TYPE string. + DATA lv_axpos TYPE string. + DATA lv_formatcode TYPE string. + DATA lv_sourcelinked TYPE string. + DATA lv_majortickmark TYPE string. + DATA lv_minortickmark TYPE string. + DATA lv_ticklblpos TYPE string. + DATA lv_crossax TYPE string. + DATA lv_crosses TYPE string. + DATA lv_auto TYPE string. + DATA lv_lblalgn TYPE string. + DATA lv_lbloffset TYPE string. + DATA lv_nomultilvllbl TYPE string. + DATA lv_crossbetween TYPE string. + + node ?= ip_chart->if_ixml_node~get_first_child( ). + CHECK node IS NOT INITIAL. + + CASE me->graph_type. + WHEN c_graph_bars. + CREATE OBJECT lo_barchart. + me->graph = lo_barchart. + WHEN c_graph_pie. + CREATE OBJECT lo_piechart. + me->graph = lo_piechart. + WHEN c_graph_line. + CREATE OBJECT lo_linechart. + me->graph = lo_linechart. + WHEN OTHERS. + ENDCASE. + + "Fill properties + node2 ?= node->find_from_name( name = 'date1904' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + me->graph->ns_1904val = ls_prop-val. + node2 ?= node->find_from_name( name = 'lang' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + me->graph->ns_langval = ls_prop-val. + node2 ?= node->find_from_name( name = 'roundedCorners' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + me->graph->ns_roundedcornersval = ls_prop-val. + + "style + node2 ?= node->find_from_name( name = 'style' namespace = 'c14' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + me->graph->ns_c14styleval = ls_prop-val. + node2 ?= node->find_from_name( name = 'style' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + me->graph->ns_styleval = ls_prop-val. + "---------------------------Read graph properties + node2 ?= node->find_from_name( name = 'autoTitleDeleted' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + me->graph->ns_autotitledeletedval = ls_prop-val. + + "plotArea + CASE me->graph_type. + WHEN c_graph_bars. + node2 ?= node->find_from_name( name = 'barDir' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_barchart->ns_bardirval = ls_prop-val. + node2 ?= node->find_from_name( name = 'grouping' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_barchart->ns_groupingval = ls_prop-val. + node2 ?= node->find_from_name( name = 'varyColors' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_barchart->ns_varycolorsval = ls_prop-val. + + "Load series + CALL METHOD node->get_elements_by_tag_name + EXPORTING +* depth = 0 + name = 'ser' +* namespace = '' + RECEIVING + rval = lo_collection. + CALL METHOD lo_collection->create_iterator + RECEIVING + rval = lo_iterator. + lo_node = lo_iterator->get_next( ). + IF lo_node IS BOUND. + node2 ?= lo_node->query_interface( ixml_iid_element ). + ENDIF. + WHILE lo_node IS BOUND. + node3 ?= node2->find_from_name( name = 'idx' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_idx = ls_prop-val. + node3 ?= node2->find_from_name( name = 'order' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_order = ls_prop-val. + node3 ?= node2->find_from_name( name = 'invertIfNegative' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_invertifnegative = ls_prop-val. + node3 ?= node2->find_from_name( name = 'v' namespace = 'c' ). + IF node3 IS BOUND. + lv_sername = node3->get_value( ). + ENDIF. + node3 ?= node2->find_from_name( name = 'strRef' namespace = 'c' ). + IF node3 IS BOUND. + node4 ?= node3->find_from_name( name = 'f' namespace = 'c' ). + lv_label = node4->get_value( ). + ENDIF. + node3 ?= node2->find_from_name( name = 'numRef' namespace = 'c' ). + IF node3 IS BOUND. + node4 ?= node3->find_from_name( name = 'f' namespace = 'c' ). + lv_value = node4->get_value( ). + ENDIF. + CALL METHOD lo_barchart->create_serie + EXPORTING + ip_idx = lv_idx + ip_order = lv_order + ip_invertifnegative = lv_invertifnegative + ip_lbl = lv_label + ip_ref = lv_value + ip_sername = lv_sername. + lo_node = lo_iterator->get_next( ). + IF lo_node IS BOUND. + node2 ?= lo_node->query_interface( ixml_iid_element ). + ENDIF. + ENDWHILE. + "note: numCache avoided + node2 ?= node->find_from_name( name = 'showLegendKey' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_barchart->ns_showlegendkeyval = ls_prop-val. + node2 ?= node->find_from_name( name = 'showVal' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_barchart->ns_showvalval = ls_prop-val. + node2 ?= node->find_from_name( name = 'showCatName' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_barchart->ns_showcatnameval = ls_prop-val. + node2 ?= node->find_from_name( name = 'showSerName' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_barchart->ns_showsernameval = ls_prop-val. + node2 ?= node->find_from_name( name = 'showPercent' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_barchart->ns_showpercentval = ls_prop-val. + node2 ?= node->find_from_name( name = 'showBubbleSize' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_barchart->ns_showbubblesizeval = ls_prop-val. + node2 ?= node->find_from_name( name = 'gapWidth' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_barchart->ns_gapwidthval = ls_prop-val. + + "Load axes + node2 ?= node->find_from_name( name = 'barChart' namespace = 'c' ). + CALL METHOD node2->get_elements_by_tag_name + EXPORTING +* depth = 0 + name = 'axId' +* namespace = '' + RECEIVING + rval = lo_collection. + CALL METHOD lo_collection->create_iterator + RECEIVING + rval = lo_iterator. + lo_node = lo_iterator->get_next( ). + IF lo_node IS BOUND. + node2 ?= lo_node->query_interface( ixml_iid_element ). + ENDIF. + WHILE lo_node IS BOUND. + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lv_axid = ls_prop-val. + IF sy-index EQ 1. "catAx + node2 ?= node->find_from_name( name = 'catAx' namespace = 'c' ). + node3 ?= node2->find_from_name( name = 'orientation' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_orientation = ls_prop-val. + node3 ?= node2->find_from_name( name = 'delete' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_delete = ls_prop-val. + node3 ?= node2->find_from_name( name = 'axPos' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_axpos = ls_prop-val. + node3 ?= node2->find_from_name( name = 'numFmt' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_formatcode = ls_prop-formatcode. + lv_sourcelinked = ls_prop-sourcelinked. + node3 ?= node2->find_from_name( name = 'majorTickMark' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_majortickmark = ls_prop-val. + node3 ?= node2->find_from_name( name = 'majorTickMark' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_minortickmark = ls_prop-val. + node3 ?= node2->find_from_name( name = 'tickLblPos' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_ticklblpos = ls_prop-val. + node3 ?= node2->find_from_name( name = 'crossAx' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_crossax = ls_prop-val. + node3 ?= node2->find_from_name( name = 'crosses' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_crosses = ls_prop-val. + node3 ?= node2->find_from_name( name = 'auto' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_auto = ls_prop-val. + node3 ?= node2->find_from_name( name = 'lblAlgn' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_lblalgn = ls_prop-val. + node3 ?= node2->find_from_name( name = 'lblOffset' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_lbloffset = ls_prop-val. + node3 ?= node2->find_from_name( name = 'noMultiLvlLbl' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_nomultilvllbl = ls_prop-val. + CALL METHOD lo_barchart->create_ax + EXPORTING + ip_axid = lv_axid + ip_type = zcl_excel_graph_bars=>c_catax + ip_orientation = lv_orientation + ip_delete = lv_delete + ip_axpos = lv_axpos + ip_formatcode = lv_formatcode + ip_sourcelinked = lv_sourcelinked + ip_majortickmark = lv_majortickmark + ip_minortickmark = lv_minortickmark + ip_ticklblpos = lv_ticklblpos + ip_crossax = lv_crossax + ip_crosses = lv_crosses + ip_auto = lv_auto + ip_lblalgn = lv_lblalgn + ip_lbloffset = lv_lbloffset + ip_nomultilvllbl = lv_nomultilvllbl. + ELSEIF sy-index EQ 2. "valAx + node2 ?= node->find_from_name( name = 'valAx' namespace = 'c' ). + node3 ?= node2->find_from_name( name = 'orientation' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_orientation = ls_prop-val. + node3 ?= node2->find_from_name( name = 'delete' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_delete = ls_prop-val. + node3 ?= node2->find_from_name( name = 'axPos' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_axpos = ls_prop-val. + node3 ?= node2->find_from_name( name = 'numFmt' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_formatcode = ls_prop-formatcode. + lv_sourcelinked = ls_prop-sourcelinked. + node3 ?= node2->find_from_name( name = 'majorTickMark' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_majortickmark = ls_prop-val. + node3 ?= node2->find_from_name( name = 'majorTickMark' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_minortickmark = ls_prop-val. + node3 ?= node2->find_from_name( name = 'tickLblPos' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_ticklblpos = ls_prop-val. + node3 ?= node2->find_from_name( name = 'crossAx' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_crossax = ls_prop-val. + node3 ?= node2->find_from_name( name = 'crosses' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_crosses = ls_prop-val. + node3 ?= node2->find_from_name( name = 'crossBetween' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_crossbetween = ls_prop-val. + CALL METHOD lo_barchart->create_ax + EXPORTING + ip_axid = lv_axid + ip_type = zcl_excel_graph_bars=>c_valax + ip_orientation = lv_orientation + ip_delete = lv_delete + ip_axpos = lv_axpos + ip_formatcode = lv_formatcode + ip_sourcelinked = lv_sourcelinked + ip_majortickmark = lv_majortickmark + ip_minortickmark = lv_minortickmark + ip_ticklblpos = lv_ticklblpos + ip_crossax = lv_crossax + ip_crosses = lv_crosses + ip_crossbetween = lv_crossbetween. + ENDIF. + lo_node = lo_iterator->get_next( ). + IF lo_node IS BOUND. + node2 ?= lo_node->query_interface( ixml_iid_element ). + ENDIF. + ENDWHILE. + + WHEN c_graph_pie. + node2 ?= node->find_from_name( name = 'varyColors' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_piechart->ns_varycolorsval = ls_prop-val. + + "Load series + CALL METHOD node->get_elements_by_tag_name + EXPORTING +* depth = 0 + name = 'ser' +* namespace = '' + RECEIVING + rval = lo_collection. + CALL METHOD lo_collection->create_iterator + RECEIVING + rval = lo_iterator. + lo_node = lo_iterator->get_next( ). + IF lo_node IS BOUND. + node2 ?= lo_node->query_interface( ixml_iid_element ). + ENDIF. + WHILE lo_node IS BOUND. + node3 ?= node2->find_from_name( name = 'idx' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_idx = ls_prop-val. + node3 ?= node2->find_from_name( name = 'order' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_order = ls_prop-val. + node3 ?= node2->find_from_name( name = 'v' namespace = 'c' ). + IF node3 IS BOUND. + lv_sername = node3->get_value( ). + ENDIF. + node3 ?= node2->find_from_name( name = 'strRef' namespace = 'c' ). + IF node3 IS BOUND. + node4 ?= node3->find_from_name( name = 'f' namespace = 'c' ). + lv_label = node4->get_value( ). + ENDIF. + node3 ?= node2->find_from_name( name = 'numRef' namespace = 'c' ). + IF node3 IS BOUND. + node4 ?= node3->find_from_name( name = 'f' namespace = 'c' ). + lv_value = node4->get_value( ). + ENDIF. + CALL METHOD lo_piechart->create_serie + EXPORTING + ip_idx = lv_idx + ip_order = lv_order + ip_lbl = lv_label + ip_ref = lv_value + ip_sername = lv_sername. + lo_node = lo_iterator->get_next( ). + IF lo_node IS BOUND. + node2 ?= lo_node->query_interface( ixml_iid_element ). + ENDIF. + ENDWHILE. + + "note: numCache avoided + node2 ?= node->find_from_name( name = 'showLegendKey' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_piechart->ns_showlegendkeyval = ls_prop-val. + node2 ?= node->find_from_name( name = 'showVal' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_piechart->ns_showvalval = ls_prop-val. + node2 ?= node->find_from_name( name = 'showCatName' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_piechart->ns_showcatnameval = ls_prop-val. + node2 ?= node->find_from_name( name = 'showSerName' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_piechart->ns_showsernameval = ls_prop-val. + node2 ?= node->find_from_name( name = 'showPercent' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_piechart->ns_showpercentval = ls_prop-val. + node2 ?= node->find_from_name( name = 'showBubbleSize' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_piechart->ns_showbubblesizeval = ls_prop-val. + node2 ?= node->find_from_name( name = 'showLeaderLines' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_piechart->ns_showleaderlinesval = ls_prop-val. + node2 ?= node->find_from_name( name = 'firstSliceAng' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_piechart->ns_firstsliceangval = ls_prop-val. + WHEN c_graph_line. + node2 ?= node->find_from_name( name = 'grouping' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_linechart->ns_groupingval = ls_prop-val. + node2 ?= node->find_from_name( name = 'varyColors' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_linechart->ns_varycolorsval = ls_prop-val. + + "Load series + CALL METHOD node->get_elements_by_tag_name + EXPORTING +* depth = 0 + name = 'ser' +* namespace = '' + RECEIVING + rval = lo_collection. + CALL METHOD lo_collection->create_iterator + RECEIVING + rval = lo_iterator. + lo_node = lo_iterator->get_next( ). + IF lo_node IS BOUND. + node2 ?= lo_node->query_interface( ixml_iid_element ). + ENDIF. + WHILE lo_node IS BOUND. + node3 ?= node2->find_from_name( name = 'idx' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_idx = ls_prop-val. + node3 ?= node2->find_from_name( name = 'order' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_order = ls_prop-val. + node3 ?= node2->find_from_name( name = 'symbol' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_symbol = ls_prop-val. + node3 ?= node2->find_from_name( name = 'smooth' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_smooth = ls_prop-val. + node3 ?= node2->find_from_name( name = 'v' namespace = 'c' ). + IF node3 IS BOUND. + lv_sername = node3->get_value( ). + ENDIF. + node3 ?= node2->find_from_name( name = 'strRef' namespace = 'c' ). + IF node3 IS BOUND. + node4 ?= node3->find_from_name( name = 'f' namespace = 'c' ). + lv_label = node4->get_value( ). + ENDIF. + node3 ?= node2->find_from_name( name = 'numRef' namespace = 'c' ). + IF node3 IS BOUND. + node4 ?= node3->find_from_name( name = 'f' namespace = 'c' ). + lv_value = node4->get_value( ). + ENDIF. + CALL METHOD lo_linechart->create_serie + EXPORTING + ip_idx = lv_idx + ip_order = lv_order + ip_symbol = lv_symbol + ip_smooth = lv_smooth + ip_lbl = lv_label + ip_ref = lv_value + ip_sername = lv_sername. + lo_node = lo_iterator->get_next( ). + IF lo_node IS BOUND. + node2 ?= lo_node->query_interface( ixml_iid_element ). + ENDIF. + ENDWHILE. + "note: numCache avoided + node2 ?= node->find_from_name( name = 'showLegendKey' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_linechart->ns_showlegendkeyval = ls_prop-val. + node2 ?= node->find_from_name( name = 'showVal' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_linechart->ns_showvalval = ls_prop-val. + node2 ?= node->find_from_name( name = 'showCatName' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_linechart->ns_showcatnameval = ls_prop-val. + node2 ?= node->find_from_name( name = 'showSerName' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_linechart->ns_showsernameval = ls_prop-val. + node2 ?= node->find_from_name( name = 'showPercent' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_linechart->ns_showpercentval = ls_prop-val. + node2 ?= node->find_from_name( name = 'showBubbleSize' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_linechart->ns_showbubblesizeval = ls_prop-val. + + node ?= node->find_from_name( name = 'lineChart' namespace = 'c' ). + node2 ?= node->find_from_name( name = 'marker' namespace = 'c' DEPTH = '1' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_linechart->NS_MARKERVAL = ls_prop-val. + node2 ?= node->find_from_name( name = 'smooth' namespace = 'c' DEPTH = '1' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_linechart->NS_SMOOTHVAL = ls_prop-val. + node ?= ip_chart->if_ixml_node~get_first_child( ). + CHECK node IS NOT INITIAL. + + "Load axes + node2 ?= node->find_from_name( name = 'lineChart' namespace = 'c' ). + CALL METHOD node2->get_elements_by_tag_name + EXPORTING +* depth = 0 + name = 'axId' +* namespace = '' + RECEIVING + rval = lo_collection. + CALL METHOD lo_collection->create_iterator + RECEIVING + rval = lo_iterator. + lo_node = lo_iterator->get_next( ). + IF lo_node IS BOUND. + node2 ?= lo_node->query_interface( ixml_iid_element ). + ENDIF. + WHILE lo_node IS BOUND. + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lv_axid = ls_prop-val. + IF sy-index EQ 1. "catAx + node2 ?= node->find_from_name( name = 'catAx' namespace = 'c' ). + node3 ?= node2->find_from_name( name = 'orientation' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_orientation = ls_prop-val. + node3 ?= node2->find_from_name( name = 'delete' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_delete = ls_prop-val. + node3 ?= node2->find_from_name( name = 'axPos' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_axpos = ls_prop-val. +* node3 ?= node2->find_from_name( name = 'numFmt' namespace = 'c' ). +* zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). +* lv_formatcode = ls_prop-formatcode. +* lv_sourcelinked = ls_prop-sourcelinked. + node3 ?= node2->find_from_name( name = 'majorTickMark' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_majortickmark = ls_prop-val. + node3 ?= node2->find_from_name( name = 'majorTickMark' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_minortickmark = ls_prop-val. + node3 ?= node2->find_from_name( name = 'tickLblPos' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_ticklblpos = ls_prop-val. + node3 ?= node2->find_from_name( name = 'crossAx' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_crossax = ls_prop-val. + node3 ?= node2->find_from_name( name = 'crosses' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_crosses = ls_prop-val. + node3 ?= node2->find_from_name( name = 'auto' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_auto = ls_prop-val. + node3 ?= node2->find_from_name( name = 'lblAlgn' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_lblalgn = ls_prop-val. + node3 ?= node2->find_from_name( name = 'lblOffset' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_lbloffset = ls_prop-val. + node3 ?= node2->find_from_name( name = 'noMultiLvlLbl' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_nomultilvllbl = ls_prop-val. + CALL METHOD lo_linechart->create_ax + EXPORTING + ip_axid = lv_axid + ip_type = zcl_excel_graph_line=>c_catax + ip_orientation = lv_orientation + ip_delete = lv_delete + ip_axpos = lv_axpos + ip_formatcode = lv_formatcode + ip_sourcelinked = lv_sourcelinked + ip_majortickmark = lv_majortickmark + ip_minortickmark = lv_minortickmark + ip_ticklblpos = lv_ticklblpos + ip_crossax = lv_crossax + ip_crosses = lv_crosses + ip_auto = lv_auto + ip_lblalgn = lv_lblalgn + ip_lbloffset = lv_lbloffset + ip_nomultilvllbl = lv_nomultilvllbl. + ELSEIF sy-index EQ 2. "valAx + node2 ?= node->find_from_name( name = 'valAx' namespace = 'c' ). + node3 ?= node2->find_from_name( name = 'orientation' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_orientation = ls_prop-val. + node3 ?= node2->find_from_name( name = 'delete' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_delete = ls_prop-val. + node3 ?= node2->find_from_name( name = 'axPos' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_axpos = ls_prop-val. + node3 ?= node2->find_from_name( name = 'numFmt' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_formatcode = ls_prop-formatcode. + lv_sourcelinked = ls_prop-sourcelinked. + node3 ?= node2->find_from_name( name = 'majorTickMark' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_majortickmark = ls_prop-val. + node3 ?= node2->find_from_name( name = 'majorTickMark' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_minortickmark = ls_prop-val. + node3 ?= node2->find_from_name( name = 'tickLblPos' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_ticklblpos = ls_prop-val. + node3 ?= node2->find_from_name( name = 'crossAx' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_crossax = ls_prop-val. + node3 ?= node2->find_from_name( name = 'crosses' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_crosses = ls_prop-val. + node3 ?= node2->find_from_name( name = 'crossBetween' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node3 CHANGING cp_structure = ls_prop ). + lv_crossbetween = ls_prop-val. + CALL METHOD lo_linechart->create_ax + EXPORTING + ip_axid = lv_axid + ip_type = zcl_excel_graph_line=>c_valax + ip_orientation = lv_orientation + ip_delete = lv_delete + ip_axpos = lv_axpos + ip_formatcode = lv_formatcode + ip_sourcelinked = lv_sourcelinked + ip_majortickmark = lv_majortickmark + ip_minortickmark = lv_minortickmark + ip_ticklblpos = lv_ticklblpos + ip_crossax = lv_crossax + ip_crosses = lv_crosses + ip_crossbetween = lv_crossbetween. + ENDIF. + lo_node = lo_iterator->get_next( ). + IF lo_node IS BOUND. + node2 ?= lo_node->query_interface( ixml_iid_element ). + ENDIF. + ENDWHILE. + WHEN OTHERS. + ENDCASE. + + "legend + CASE me->graph_type. + WHEN c_graph_bars. + node2 ?= node->find_from_name( name = 'legendPos' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_barchart->ns_legendposval = ls_prop-val. + node2 ?= node->find_from_name( name = 'overlay' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_barchart->ns_overlayval = ls_prop-val. + WHEN c_graph_line. + node2 ?= node->find_from_name( name = 'legendPos' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_linechart->ns_legendposval = ls_prop-val. + node2 ?= node->find_from_name( name = 'overlay' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_linechart->ns_overlayval = ls_prop-val. + WHEN c_graph_pie. + node2 ?= node->find_from_name( name = 'legendPos' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_piechart->ns_legendposval = ls_prop-val. + node2 ?= node->find_from_name( name = 'overlay' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_piechart->ns_overlayval = ls_prop-val. + node2 ?= node->find_from_name( name = 'pPr' namespace = 'a' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_piechart->ns_pprrtl = ls_prop-rtl. + node2 ?= node->find_from_name( name = 'endParaRPr' namespace = 'a' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + lo_piechart->ns_endpararprlang = ls_prop-lang. + + WHEN OTHERS. + ENDCASE. + + node2 ?= node->find_from_name( name = 'plotVisOnly' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + me->graph->ns_plotvisonlyval = ls_prop-val. + node2 ?= node->find_from_name( name = 'dispBlanksAs' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + me->graph->ns_dispblanksasval = ls_prop-val. + node2 ?= node->find_from_name( name = 'showDLblsOverMax' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ). + me->graph->ns_showdlblsovermaxval = ls_prop-val. + "--------------------- + + node2 ?= node->find_from_name( name = 'pageMargins' namespace = 'c' ). + zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_pagemargins ). + me->graph->pagemargins = ls_pagemargins. + + +ENDMETHOD. + + + + + + method PIXEL2EMU. +* suppose 96 DPI + IF ip_dpi IS SUPPLIED. + r_emu = ip_pixel * 914400 / ip_dpi. + ELSE. +* suppose 96 DPI + r_emu = ip_pixel * 914400 / 96. + ENDIF. +endmethod. + + + + + + + METHOD set_media. + IF ip_media IS SUPPLIED. + media = ip_media. + ENDIF. + media_type = ip_media_type. + media_source = c_media_source_xstring. + IF ip_width IS SUPPLIED. + size-width = ip_width. + ENDIF. + IF ip_height IS SUPPLIED. + size-height = ip_height. + ENDIF. +ENDMETHOD. + + + + + + method SET_MEDIA_MIME. + + io = ip_io. + media_source = c_media_source_mime. + size-width = ip_width. + size-height = ip_height. + + cl_wb_mime_repository=>load_mime( EXPORTING + io = ip_io + IMPORTING + filename = media_name + "mimetype = media_type + CHANGING + language = sy-langu ). + + SPLIT media_name AT '.' INTO media_name media_type. + + + +endmethod. + + + + + + method SET_MEDIA_WWW. + DATA: lv_value(20). + + media_key_www = ip_key. + media_source = c_media_source_www. + + CALL FUNCTION 'WWWPARAMS_READ' + EXPORTING + relid = media_key_www-relid + objid = media_key_www-objid + name = 'fileextension' + IMPORTING + value = lv_value. + media_type = lv_value. + SHIFT media_type LEFT DELETING LEADING '.'. + + size-width = ip_width. + size-height = ip_height. +endmethod. + + + + + + + METHOD set_position. + from_loc-col = zcl_excel_common=>convert_column2int( ip_from_col ) - 1. + IF ip_coloff IS SUPPLIED. + from_loc-col_offset = ip_coloff. + ENDIF. + from_loc-row = ip_from_row - 1. + IF ip_rowoff IS SUPPLIED. + from_loc-row_offset = ip_rowoff. + ENDIF. + anchor = anchor_one_cell. +ENDMETHOD. + + + + + + method SET_POSITION2. + + data: lv_anchor type zexcel_drawing_anchor. + lv_anchor = ip_anchor. + + IF lv_anchor IS INITIAL. + IF ip_to IS NOT INITIAL. + lv_anchor = anchor_two_cell. + ELSE. + lv_anchor = anchor_one_cell. + ENDIF. + ENDIF. + + CASE lv_anchor. + WHEN anchor_absolute OR anchor_one_cell. + CLEAR: me->to_loc. + WHEN anchor_two_cell. + CLEAR: me->size. + ENDCASE. + + me->from_loc = ip_from. + me->to_loc = ip_to. + me->anchor = lv_anchor. + +endmethod. + + + + *"* 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 + + + + + method ADD. + DATA: lv_index TYPE i. + + drawings->add( ip_drawing ). + lv_index = drawings->if_object_collection~size( ). + ip_drawing->create_media_name( + ip_index = lv_index ). +endmethod. + + + method CLEAR. + + drawings->clear( ). +endmethod. + + + + method CONSTRUCTOR. + + CREATE OBJECT drawings. + type = ip_type. + +endmethod. + + + + + method GET. + + DATA lv_index TYPE i. + lv_index = ip_index. + eo_drawing ?= drawings->if_object_collection~get( lv_index ). +endmethod. + + + + method GET_ITERATOR. + + eo_iterator ?= drawings->if_object_collection~get_iterator( ). +endmethod. + + + + method GET_TYPE. + rp_type = me->type. +endmethod. + + + + method INCLUDE. + drawings->add( ip_drawing ). +endmethod. + + + + method IS_EMPTY. + + is_empty = drawings->if_object_collection~is_empty( ). +endmethod. + + + + method REMOVE. + + drawings->remove( ip_drawing ). +endmethod. + + + + method SIZE. + + ep_size = drawings->if_object_collection~size( ). +endmethod. + + + + *"* 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 CREATE. + data: lo_hyperlink type REF TO zcl_excel_hyperlink. + + create OBJECT lo_hyperlink. + + lo_hyperlink->location = iv_url. + lo_hyperlink->internal = iv_internal. + + ov_link = lo_hyperlink. +endmethod. + + + + + method CREATE_EXTERNAL_LINK. + + ov_link = zcl_excel_hyperlink=>create( iv_url = iv_url + iv_internal = abap_false ). +endmethod. + + + + + method CREATE_INTERNAL_LINK. + ov_link = zcl_excel_hyperlink=>create( iv_url = iv_location + iv_internal = abap_true ). +endmethod. + + + + method GET_REF. + ev_ref = row. + CONDENSE ev_ref. + CONCATENATE column ev_ref INTO ev_ref. +endmethod. + + + + method GET_URL. + ev_url = me->location. +endmethod. + + + + method IS_INTERNAL. + ev_ret = me->internal. +endmethod. + + + + + + method SET_CELL_REFERENCE. + me->column = zcl_excel_common=>convert_column2alpha( ip_column ). " issue #155 - less restrictive typing for ip_column + me->row = ip_row. +endmethod. + + + + *"* 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 + + + + + + method CONSTRUCTOR. +endmethod. + + + + method GET_GUID. + + ep_guid = me->guid. + +endmethod. + + + + method GET_VALUE. + + ep_value = me->value. + +endmethod. + + + + method SET_RANGE_VALUE. + me->value = ip_value. +endmethod. + + + + + + + + method SET_VALUE. + DATA: lv_start_row_c TYPE char7, + lv_stop_row_c TYPE char7, + lv_value TYPE string. + lv_stop_row_c = ip_stop_row. + SHIFT lv_stop_row_c RIGHT DELETING TRAILING space. + SHIFT lv_stop_row_c LEFT DELETING LEADING space. + lv_start_row_c = ip_start_row. + SHIFT lv_start_row_c RIGHT DELETING TRAILING space. + SHIFT lv_start_row_c LEFT DELETING LEADING space. + lv_value = ip_sheet_name. + me->value = zcl_excel_common=>escape_string( ip_value = lv_value ). + + CONCATENATE me->value '!$' ip_start_column '$' lv_start_row_c ':$' ip_stop_column '$' lv_stop_row_c INTO me->value. +endmethod. + + + + *"* 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 + + + + method ADD. + ranges->add( ip_range ). +endmethod. + + + method CLEAR. + ranges->clear( ). +endmethod. + + + method CONSTRUCTOR. + + + CREATE OBJECT ranges. + +endmethod. + + + + + method GET. + eo_range ?= ranges->if_object_collection~get( ip_index ). +endmethod. + + + + method GET_ITERATOR. + eo_iterator ?= ranges->if_object_collection~get_iterator( ). +endmethod. + + + + method IS_EMPTY. + is_empty = ranges->if_object_collection~is_empty( ). +endmethod. + + + + method REMOVE. + ranges->remove( ip_range ). +endmethod. + + + + method SIZE. + ep_size = ranges->if_object_collection~size( ). +endmethod. + + + + *"* 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 CONSTRUCTOR. +endmethod. + + + + method IS_SECURITY_ENABLED. + IF lockrevision EQ abap_true OR lockstructure EQ abap_true OR lockwindows EQ abap_true. + ep_security_enabled = abap_true. + ENDIF. +endmethod. + + + + *"* 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 CONSTRUCTOR. + orientation = me->c_orientation_default. + +* default margins + margin_bottom = '0.75'. + margin_footer = '0.3'. + margin_header = '0.3'. + margin_left = '0.7'. + margin_right = '0.7'. + margin_top = '0.75'. + +* clear page settings + CLEAR: black_and_white, + cell_comments, + copies, + draft, + errors, + first_page_number, + fit_to_page, + fit_to_height, + fit_to_width, + horizontal_dpi, + orientation, + page_order, + paper_height, + paper_size, + paper_width, + scale, + use_first_page_num, + use_printer_defaults, + vertical_dpi. +endmethod. + + + + + + + method GET_HEADER_FOOTER_STRING. +* ---------------------------------------------------------------------- + DATA: lc_marker_left(2) TYPE c VALUE '&L' + , lc_marker_right(2) TYPE c VALUE '&R' + , lc_marker_center(2) TYPE c VALUE '&C' + , lv_value TYPE string + . +* ---------------------------------------------------------------------- + IF ep_odd_header IS SUPPLIED. + + IF me->odd_header-left_value IS NOT INITIAL. + lv_value = me->process_header_footer( ip_header = me->odd_header ip_side = 'LEFT' ). + CONCATENATE lc_marker_left lv_value INTO ep_odd_header. + ENDIF. + + IF me->odd_header-center_value IS NOT INITIAL. + lv_value = me->process_header_footer( ip_header = me->odd_header ip_side = 'CENTER' ). + CONCATENATE ep_odd_header lc_marker_center lv_value INTO ep_odd_header. + ENDIF. + + IF me->odd_header-right_value IS NOT INITIAL. + lv_value = me->process_header_footer( ip_header = me->odd_header ip_side = 'RIGHT' ). + CONCATENATE ep_odd_header lc_marker_right lv_value INTO ep_odd_header. + ENDIF. + + ENDIF. +* ---------------------------------------------------------------------- + IF ep_odd_footer IS SUPPLIED. + + IF me->odd_footer-left_value IS NOT INITIAL. + lv_value = me->process_header_footer( ip_header = me->odd_footer ip_side = 'LEFT' ). + CONCATENATE lc_marker_left lv_value INTO ep_odd_footer. + ENDIF. + + IF me->odd_footer-center_value IS NOT INITIAL. + lv_value = me->process_header_footer( ip_header = me->odd_footer ip_side = 'CENTER' ). + CONCATENATE ep_odd_footer lc_marker_center lv_value INTO ep_odd_footer. + ENDIF. + + IF me->odd_footer-right_value IS NOT INITIAL. + lv_value = me->process_header_footer( ip_header = me->odd_footer ip_side = 'RIGHT' ). + CONCATENATE ep_odd_footer lc_marker_right lv_value INTO ep_odd_footer. + ENDIF. + + ENDIF. +* ---------------------------------------------------------------------- + IF ep_even_header IS SUPPLIED. + + IF me->even_header-left_value IS NOT INITIAL. + lv_value = me->process_header_footer( ip_header = me->even_header ip_side = 'LEFT' ). + CONCATENATE lc_marker_left lv_value INTO ep_even_header. + ENDIF. + + IF me->even_header-center_value IS NOT INITIAL. + lv_value = me->process_header_footer( ip_header = me->even_header ip_side = 'CENTER' ). + CONCATENATE ep_even_header lc_marker_center lv_value INTO ep_even_header. + ENDIF. + + IF me->even_header-right_value IS NOT INITIAL. + lv_value = me->process_header_footer( ip_header = me->even_header ip_side = 'RIGHT' ). + CONCATENATE ep_even_header lc_marker_right lv_value INTO ep_even_header. + ENDIF. + + ENDIF. +* ---------------------------------------------------------------------- + IF ep_even_footer IS SUPPLIED. + + IF me->even_footer-left_value IS NOT INITIAL. + lv_value = me->process_header_footer( ip_header = me->even_footer ip_side = 'LEFT' ). + CONCATENATE lc_marker_left lv_value INTO ep_even_footer. + ENDIF. + + IF me->even_footer-center_value IS NOT INITIAL. + lv_value = me->process_header_footer( ip_header = me->even_footer ip_side = 'CENTER' ). + CONCATENATE ep_even_footer lc_marker_center lv_value INTO ep_even_footer. + ENDIF. + + IF me->even_footer-right_value IS NOT INITIAL. + lv_value = me->process_header_footer( ip_header = me->even_footer ip_side = 'RIGHT' ). + CONCATENATE ep_even_footer lc_marker_right lv_value INTO ep_even_footer. + ENDIF. + + ENDIF. +* ---------------------------------------------------------------------- +endmethod. + + + + + + METHOD process_header_footer. + +* ---------------------------------------------------------------------- +* Only Basic font/text formatting possible: +* Bold (yes / no), Font Type, Font Size + + DATA: lv_fname(12) TYPE c + , lv_string TYPE string + . + + FIELD-SYMBOLS: <lv_value> TYPE string + , <ls_font> TYPE zexcel_s_style_font + . + +* ---------------------------------------------------------------------- + CONCATENATE ip_side '_VALUE' INTO lv_fname. + ASSIGN COMPONENT lv_fname OF STRUCTURE ip_header TO <lv_value>. + + CONCATENATE ip_side '_FONT' INTO lv_fname. + ASSIGN COMPONENT lv_fname OF STRUCTURE ip_header TO <ls_font>. + + IF <ls_font> IS ASSIGNED AND <lv_value> IS ASSIGNED. + + IF <ls_font>-name IS NOT INITIAL. + CONCATENATE '&"' <ls_font>-name ',' INTO rv_processed_string. + ELSE. + rv_processed_string = '&"-,'. + ENDIF. + + IF <ls_font>-bold = abap_true. + CONCATENATE rv_processed_string 'Bold"' INTO rv_processed_string. + ELSE. + CONCATENATE rv_processed_string 'Standard"' INTO rv_processed_string. + ENDIF. + + IF <ls_font>-size IS NOT INITIAL. + lv_string = <ls_font>-size. + CONCATENATE rv_processed_string '&' lv_string INTO rv_processed_string. + ENDIF. + + CONCATENATE rv_processed_string <lv_value> INTO rv_processed_string. + + ENDIF. +* ---------------------------------------------------------------------- + +ENDMETHOD. + + + + + + + method SET_HEADER_FOOTER. + +* Only Basic font/text formatting possible: +* Bold (yes / no), Font Type, Font Size +* +* usefull placeholders, which can be used in header/footer value strings +* '&P' - page number +* '&N' - total number of pages +* '&D' - Date +* '&T' - Time +* '&F' - File Name +* '&Z' - Path +* '&A' - Sheet name +* new line via class constant CL_ABAP_CHAR_UTILITIES=>newline +* +* Example Value String 'page &P of &N' +* +* DO NOT USE &L , &C or &R which automatically created as position markers + + me->odd_header = ip_odd_header. + me->odd_footer = ip_odd_footer. + me->even_header = ip_even_header. + me->even_footer = ip_even_footer. + + IF me->even_header IS NOT INITIAL OR me->even_footer IS NOT INITIAL. + me->diff_oddeven_headerfooter = abap_true. + ENDIF. + + +endmethod. + + + + + + + + + + method SET_PAGE_MARGINS. + DATA: lv_coef TYPE f, + lv_unit TYPE string. + + lv_unit = ip_unit. + TRANSLATE lv_unit TO UPPER CASE. + + CASE lv_unit. + WHEN 'IN'. lv_coef = 1. + WHEN 'CM'. lv_coef = '0.393700787'. + WHEN 'MM'. lv_coef = '0.0393700787'. + ENDCASE. + + IF ip_bottom IS SUPPLIED. margin_bottom = lv_coef * ip_bottom. ENDIF. + IF ip_footer IS SUPPLIED. margin_footer = lv_coef * ip_footer. ENDIF. + IF ip_header IS SUPPLIED. margin_header = lv_coef * ip_header. ENDIF. + IF ip_left IS SUPPLIED. margin_left = lv_coef * ip_left. ENDIF. + IF ip_right IS SUPPLIED. margin_right = lv_coef * ip_right. ENDIF. + IF ip_top IS SUPPLIED. margin_top = lv_coef * ip_top. ENDIF. + +endmethod. + + + + *"* 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 + + + + + + + + + + method CONSTRUCTOR. + + + CREATE OBJECT font. + CREATE OBJECT fill. + CREATE OBJECT borders. + CREATE OBJECT alignment. + CREATE OBJECT number_format. + CREATE OBJECT protection. + +* Start of insertion # issue 139 - Dateretention of cellstyles + IF ip_guid IS NOT INITIAL. + me->guid = ip_guid. + ELSE. +* End of insertion # issue 139 - Dateretention of cellstyles + CALL FUNCTION 'GUID_CREATE' + IMPORTING + ev_guid_16 = me->guid. +* Start of insertion # issue 139 - Dateretention of cellstyles + ENDIF. +* End of insertion # issue 139 - Dateretention of cellstyles + +endmethod. + + + + method GET_GUID. + + + ep_guid = me->guid. +endmethod. + + + + *"* 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 + + + + method ADD. + + + styles->add( ip_style ). +endmethod. + + + method CLEAR. + + + styles->clear( ). +endmethod. + + + method CONSTRUCTOR. + + + CREATE OBJECT styles. +endmethod. + + + + + method GET. + + + eo_style ?= styles->if_object_collection~get( ip_index ). +endmethod. + + + + method GET_ITERATOR. + + + eo_iterator ?= styles->if_object_collection~get_iterator( ). +endmethod. + + + + method IS_EMPTY. + + + is_empty = styles->if_object_collection~is_empty( ). +endmethod. + + + + + method REGISTER_NEW_STYLE. + + + me->add( io_style ). + ep_style_code = me->size( ) - 1. "style count starts from 0 +endmethod. + + + + method REMOVE. + + + styles->remove( ip_style ). +endmethod. + + + + method SIZE. + + + ep_size = styles->if_object_collection~size( ). +endmethod. + + + + *"* 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 + + + + method ADD. + styles_conditional->add( ip_style_conditional ). +endmethod. + + + method CLEAR. + styles_conditional->clear( ). +endmethod. + + + method CONSTRUCTOR. + + CREATE OBJECT styles_conditional. + +endmethod. + + + + + method GET. + DATA lv_index TYPE i. + lv_index = ip_index. + eo_style_conditional ?= styles_conditional->if_object_collection~get( lv_index ). +endmethod. + + + + method GET_ITERATOR. + eo_iterator ?= styles_conditional->if_object_collection~get_iterator( ). +endmethod. + + + + method IS_EMPTY. + is_empty = styles_conditional->if_object_collection~is_empty( ). +endmethod. + + + + method REMOVE. + styles_conditional->remove( ip_style_conditional ). +endmethod. + + + + method SIZE. + ep_size = styles_conditional->if_object_collection~size( ). +endmethod. + + + + *"* 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 CONSTRUCTOR. + horizontal = me->c_horizontal_general. + vertical = me->c_vertical_bottom. + wrapText = abap_false. + shrinkToFit = abap_false. +endmethod. + + + + method GET_STRUCTURE. + + es_alignment-horizontal = me->horizontal. + es_alignment-vertical = me->vertical. + es_alignment-textrotation = me->textrotation. + es_alignment-wraptext = me->wraptext. + es_alignment-shrinktofit = me->shrinktofit. + es_alignment-indent = me->indent. + +endmethod. + + + + *"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations + *"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + + + + + + + + + + method CREATE. + + +* Office 2007 file format is a cab of several xml files with extension .xlsx + + DATA: lo_zip TYPE REF TO cl_abap_zip, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_active_worksheet TYPE REF TO zcl_excel_worksheet, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_nested_iterator TYPE REF TO cl_object_collection_iterator, + lo_table TYPE REF TO zcl_excel_table, + lo_drawing TYPE REF TO zcl_excel_drawing, + lo_drawings TYPE REF TO zcl_excel_drawings. + + DATA: lv_content TYPE xstring, + lv_active TYPE flag, + lv_xl_sheet TYPE string, + lv_xl_sheet_rels TYPE string, + lv_xl_drawing TYPE string, + lv_xl_drawing_rels TYPE string, + lv_syindex TYPE string, + lv_value TYPE string, + lv_drawing_index TYPE i. + +********************************************************************** +* Start of insertion # issue 139 - Dateretention of cellstyles + me->excel->add_static_styles( ). +* End of insertion # issue 139 - Dateretention of cellstyles + +********************************************************************** +* STEP 1: Create archive object file (ZIP) + CREATE OBJECT lo_zip. + +********************************************************************** +* STEP 2: Add [Content_Types].xml to zip + lv_content = me->create_content_types( ). + lo_zip->add( name = me->c_content_types + content = lv_content ). + +********************************************************************** +* STEP 3: Add _rels/.rels to zip + lv_content = me->create_relationships( ). + lo_zip->add( name = me->c_relationships + content = lv_content ). + +********************************************************************** +* STEP 4: Add docProps/app.xml to zip + lv_content = me->create_docprops_app( ). + lo_zip->add( name = me->c_docprops_app + content = lv_content ). + +********************************************************************** +* STEP 5: Add docProps/core.xml to zip + lv_content = me->create_docprops_core( ). + lo_zip->add( name = me->c_docprops_core + content = lv_content ). + +********************************************************************** +* STEP 6: Add xl/_rels/workbook.xml.rels to zip + lv_content = me->create_xl_relationships( ). + lo_zip->add( name = me->c_xl_relationships + content = lv_content ). + +********************************************************************** +* STEP 6: Add xl/_rels/workbook.xml.rels to zip + lv_content = me->create_xl_theme( ). + lo_zip->add( name = me->c_xl_theme + content = lv_content ). + +********************************************************************** +* STEP 7: Add xl/workbook.xml to zip + lv_content = me->create_xl_workbook( ). + lo_zip->add( name = me->c_xl_workbook + content = lv_content ). + +********************************************************************** +* STEP 8: Add xl/workbook.xml to zip +* lv_content = me->create_xl_styles_static( ). + lv_content = me->create_xl_styles( ). + lo_zip->add( name = me->c_xl_styles + content = lv_content ). + +********************************************************************** +* STEP 9: Add sharedStrings.xml to zip + lv_content = me->create_xl_sharedstrings( ). + lo_zip->add( name = me->c_xl_sharedstrings + content = lv_content ). + +********************************************************************** +* STEP 10: Add sheet#.xml and drawing#.xml to zip + lo_iterator = me->excel->get_worksheets_iterator( ). + lo_active_worksheet = me->excel->get_active_worksheet( ). + lv_drawing_index = 1. + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + IF lo_active_worksheet->get_guid( ) EQ lo_worksheet->get_guid( ). + lv_active = abap_true. + ELSE. + lv_active = abap_false. + ENDIF. + + lv_content = me->create_xl_sheet( io_worksheet = lo_worksheet + iv_active = lv_active ). + lv_xl_sheet = me->c_xl_sheet. + MOVE sy-index TO lv_syindex. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + REPLACE ALL OCCURRENCES OF '#' IN lv_xl_sheet WITH lv_syindex. + lo_zip->add( name = lv_xl_sheet + content = lv_content ). + + lv_xl_sheet_rels = me->c_xl_sheet_rels. + lv_content = me->create_xl_sheet_rels( io_worksheet = lo_worksheet + iv_drawing_index = lv_drawing_index ). + REPLACE ALL OCCURRENCES OF '#' IN lv_xl_sheet_rels WITH lv_syindex. + lo_zip->add( name = lv_xl_sheet_rels + content = lv_content ). + + lo_nested_iterator = lo_worksheet->get_tables_iterator( ). + + WHILE lo_nested_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_table ?= lo_nested_iterator->if_object_collection_iterator~get_next( ). + lv_content = me->create_xl_table( lo_table ). + + lv_value = lo_table->get_name( ). + CONCATENATE 'xl/tables/' lv_value '.xml' INTO lv_value. + lo_zip->add( name = lv_value + content = lv_content ). + ENDWHILE. + +* Add drawings ********************************** + lo_drawings = lo_worksheet->get_drawings( ). + IF lo_drawings->is_empty( ) = abap_false. + MOVE lv_drawing_index TO lv_syindex. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + + lv_content = me->create_xl_drawings( lo_worksheet ). + lv_xl_drawing = me->c_xl_drawings. + REPLACE ALL OCCURRENCES OF '#' IN lv_xl_drawing WITH lv_syindex. + lo_zip->add( name = lv_xl_drawing + content = lv_content ). + + lv_content = me->create_xl_drawings_rels( lo_worksheet ). + lv_xl_drawing_rels = me->c_xl_drawings_rels. + REPLACE ALL OCCURRENCES OF '#' IN lv_xl_drawing_rels WITH lv_syindex. + lo_zip->add( name = lv_xl_drawing_rels + content = lv_content ). + ADD 1 TO lv_drawing_index. + ENDIF. + ENDWHILE. + +********************************************************************** +* STEP 11: Add media + lo_iterator = me->excel->get_drawings_iterator( zcl_excel_drawing=>type_image ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_drawing ?= lo_iterator->if_object_collection_iterator~get_next( ). + + lv_content = lo_drawing->get_media( ). + lv_value = lo_drawing->get_media_name( ). + CONCATENATE 'xl/media/' lv_value INTO lv_value. + lo_zip->add( name = lv_value + content = lv_content ). + ENDWHILE. + +********************************************************************** +* STEP 12: Add charts + lo_iterator = me->excel->get_drawings_iterator( zcl_excel_drawing=>type_chart ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_drawing ?= lo_iterator->if_object_collection_iterator~get_next( ). + + lv_content = lo_drawing->get_media( ). + lv_value = lo_drawing->get_media_name( ). + CONCATENATE 'xl/charts/' lv_value INTO lv_value. + lo_zip->add( name = lv_value + content = lv_content ). + ENDWHILE. + +********************************************************************** +* STEP 9: Add vbaProject.bin to zip + lo_zip->add( name = me->c_xl_vbaproject + content = me->excel->zif_excel_book_vba_project~vbaproject ). + +********************************************************************** +* STEP 12: Create the final zip + ep_excel = lo_zip->save( ). + +endmethod. + + + method CREATE_CONTENT_TYPES. +** Constant node name + DATA: lc_xml_node_workb_ct TYPE string VALUE 'application/vnd.ms-excel.sheet.macroEnabled.main+xml', + lc_xml_node_default TYPE string VALUE 'Default', + " Node attributes + lc_xml_attr_partname TYPE string VALUE 'PartName', + lc_xml_attr_extension TYPE string VALUE 'Extension', + lc_xml_attr_contenttype TYPE string VALUE 'ContentType', + lc_xml_attr_codename TYPE string VALUE 'codeName', + lc_xml_node_workb_pn TYPE string VALUE '/xl/workbook.xml', + lc_xml_node_bin_ext TYPE string VALUE 'bin', + lc_xml_node_bin_ct TYPE string VALUE 'application/vnd.ms-office.vbaProject'. + + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_document_xml TYPE REF TO cl_xml_document, + lo_element_root TYPE REF TO if_ixml_node, + lo_element TYPE REF TO if_ixml_element, + lo_collection TYPE REF TO if_ixml_node_collection, + lo_iterator TYPE REF TO if_ixml_node_iterator, + lo_node TYPE REF TO if_ixml_node, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + + DATA: lv_subrc TYPE sysubrc, + lv_contenttype TYPE string, + lv_syindex(2) TYPE c. + +********************************************************************** +* STEP 3: Create standard contentType + ep_content = super->create_content_types( ). + +********************************************************************** +* STEP 2: modify XML adding the extension bin definition + + CREATE OBJECT lo_document_xml. + lv_subrc = lo_document_xml->parse_xstring( ep_content ). + + lo_document ?= lo_document_xml->m_document. + lo_element_root = lo_document->if_ixml_node~get_first_child( ). + + " extension node + lo_element = lo_document->create_simple_element( name = lc_xml_node_default + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_extension + value = lc_xml_node_bin_ext ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_bin_ct ). + lo_element_root->append_child( new_child = lo_element ). + +********************************************************************** +* STEP 3: modify XML changing the contentType of node Override /xl/workbook.xml + + lo_collection = lo_document->get_elements_by_tag_name( 'Override' ). + lo_iterator = lo_collection->create_iterator( ). + lo_element ?= lo_iterator->get_next( ). + WHILE lo_element IS BOUND. + lv_contenttype = lo_element->get_attribute_ns( lc_xml_attr_partname ). + IF lv_contenttype EQ lc_xml_node_workb_pn. + lo_element->remove_attribute_ns( lc_xml_attr_contenttype ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_workb_ct ). + EXIT. + ENDIF. + lo_element ?= lo_iterator->get_next( ). + ENDWHILE. + +********************************************************************** +* STEP 3: Create xstring stream + CLEAR ep_content. + lo_ixml = cl_ixml=>create( ). + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + method CREATE_XL_RELATIONSHIPS. + +** Constant node name + DATA: lc_xml_node_relationships TYPE string VALUE 'Relationships', + lc_xml_node_relationship TYPE string VALUE 'Relationship', + " Node attributes + lc_xml_attr_id TYPE string VALUE 'Id', + lc_xml_attr_type TYPE string VALUE 'Type', + lc_xml_attr_target TYPE string VALUE 'Target', + " Node id + lc_xml_node_ridx_id TYPE string VALUE 'rId#', + " Node type + lc_xml_node_rid_vba_tp TYPE string VALUE 'http://schemas.microsoft.com/office/2006/relationships/vbaProject', + " Node target + lc_xml_node_rid_vba_tg TYPE string VALUE 'vbaProject.bin'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_document_xml TYPE REF TO cl_xml_document, + lo_element_root TYPE REF TO if_ixml_node, + lo_element TYPE REF TO if_ixml_element, + lo_node TYPE REF TO if_ixml_node, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + + DATA: lv_xml_node_ridx_tg TYPE string, + lv_xml_node_ridx_id TYPE string, + lv_size TYPE i, + lv_subrc TYPE sysubrc, + lv_syindex(2) TYPE c. + +********************************************************************** +* STEP 3: Create standard relationship + ep_content = super->create_xl_relationships( ). + +********************************************************************** +* STEP 2: modify XML adding the vbaProject relation + + CREATE OBJECT lo_document_xml. + lv_subrc = lo_document_xml->parse_xstring( ep_content ). + + lo_document ?= lo_document_xml->m_document. + lo_element_root = lo_document->if_ixml_node~get_first_child( ). + + + lv_size = excel->get_worksheets_size( ). + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + ADD 4 TO lv_size. + lv_syindex = lv_size. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_vba_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_vba_tg ). + lo_element_root->append_child( new_child = lo_element ). + +********************************************************************** +* STEP 3: Create xstring stream + CLEAR ep_content. + lo_ixml = cl_ixml=>create( ). + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + method CREATE_XL_SHEET. + +** Constant node name + DATA: lc_xml_attr_codename TYPE string VALUE 'codeName'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_document_xml TYPE REF TO cl_xml_document, + lo_element_root TYPE REF TO if_ixml_node, + lo_element TYPE REF TO if_ixml_element, + lo_collection TYPE REF TO if_ixml_node_collection, + lo_iterator TYPE REF TO if_ixml_node_iterator, + lo_node TYPE REF TO if_ixml_node, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + + DATA: lv_subrc TYPE sysubrc, + lv_syindex(2) TYPE c. + +********************************************************************** +* STEP 3: Create standard relationship + ep_content = super->create_xl_sheet( io_worksheet = io_worksheet + iv_active = iv_active ). + +********************************************************************** +* STEP 2: modify XML adding the vbaProject relation + + CREATE OBJECT lo_document_xml. + lv_subrc = lo_document_xml->parse_xstring( ep_content ). + + lo_document ?= lo_document_xml->m_document. + lo_element_root = lo_document->if_ixml_node~get_first_child( ). + +* lo_collection = lo_document->get_elements_by_tag_name( 'fileVersion' ). +* lo_iterator = lo_collection->create_iterator( ). +* lo_element ?= lo_iterator->get_next( ). +* WHILE lo_element IS BOUND. +* lo_element->set_attribute_ns( name = lc_xml_attr_codename +* value = me->excel->zif_excel_book_vba_project~codename ). +* lo_element ?= lo_iterator->get_next( ). +* ENDWHILE. + + lo_collection = lo_document->get_elements_by_tag_name( 'sheetPr' ). + lo_iterator = lo_collection->create_iterator( ). + lo_element ?= lo_iterator->get_next( ). + WHILE lo_element IS BOUND. + lo_element->set_attribute_ns( name = lc_xml_attr_codename + value = io_worksheet->zif_excel_sheet_vba_project~codename_pr ). + lo_element ?= lo_iterator->get_next( ). + ENDWHILE. + +********************************************************************** +* STEP 3: Create xstring stream + CLEAR ep_content. + lo_ixml = cl_ixml=>create( ). + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). +endmethod. + + + method CREATE_XL_WORKBOOK. + +** Constant node name + DATA: lc_xml_attr_codename TYPE string VALUE 'codeName'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_document_xml TYPE REF TO cl_xml_document, + lo_element_root TYPE REF TO if_ixml_node, + lo_element TYPE REF TO if_ixml_element, + lo_collection TYPE REF TO if_ixml_node_collection, + lo_iterator TYPE REF TO if_ixml_node_iterator, + lo_node TYPE REF TO if_ixml_node, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + + DATA: lv_subrc TYPE sysubrc, + lv_syindex(2) TYPE c. + +********************************************************************** +* STEP 3: Create standard relationship + ep_content = super->create_xl_workbook( ). + +********************************************************************** +* STEP 2: modify XML adding the vbaProject relation + + CREATE OBJECT lo_document_xml. + lv_subrc = lo_document_xml->parse_xstring( ep_content ). + + lo_document ?= lo_document_xml->m_document. + lo_element_root = lo_document->if_ixml_node~get_first_child( ). + + lo_collection = lo_document->get_elements_by_tag_name( 'fileVersion' ). + lo_iterator = lo_collection->create_iterator( ). + lo_element ?= lo_iterator->get_next( ). + WHILE lo_element IS BOUND. + lo_element->set_attribute_ns( name = lc_xml_attr_codename + value = me->excel->zif_excel_book_vba_project~codename ). + lo_element ?= lo_iterator->get_next( ). + ENDWHILE. + + lo_collection = lo_document->get_elements_by_tag_name( 'workbookPr' ). + lo_iterator = lo_collection->create_iterator( ). + lo_element ?= lo_iterator->get_next( ). + WHILE lo_element IS BOUND. + lo_element->set_attribute_ns( name = lc_xml_attr_codename + value = me->excel->zif_excel_book_vba_project~codename_pr ). + lo_element ?= lo_iterator->get_next( ). + ENDWHILE. + +********************************************************************** +* STEP 3: Create xstring stream + CLEAR ep_content. + lo_ixml = cl_ixml=>create( ). + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). +endmethod. + + + + *"* 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 + + + + + + METHOD zif_excel_converter~can_convert_object. + + DATA: lo_salv TYPE REF TO cl_salv_table. + + TRY. + lo_salv ?= io_object. + CATCH cx_sy_move_cast_error . + RAISE EXCEPTION TYPE zcx_excel. + ENDTRY. + +ENDMETHOD. + + + METHOD zif_excel_converter~create_fieldcatalog. + DATA: lo_salv TYPE REF TO cl_salv_table. + + TRY. + zif_excel_converter~can_convert_object( io_object = io_object ). + ENDTRY. + + ws_option = is_option. + + lo_salv ?= io_object. + + CLEAR: es_layout, + et_fieldcatalog, + et_colors . + + IF lo_salv IS BOUND. + load_data( EXPORTING io_salv = lo_salv + it_table = it_table ). + apply_sort( EXPORTING it_table = it_table + IMPORTING eo_table = eo_table ) . + + get_color( EXPORTING io_table = eo_table + IMPORTING et_colors = et_colors ) . + + get_filter( IMPORTING et_filter = et_filter + CHANGING xo_table = eo_table ) . + + update_catalog( CHANGING cs_layout = es_layout + ct_fieldcatalog = et_fieldcatalog ). + ENDIF. +ENDMETHOD. + + + + + METHOD load_data. + DATA: lo_columns TYPE REF TO cl_salv_columns_table, + lo_aggregations TYPE REF TO cl_salv_aggregations, + lo_sorts TYPE REF TO cl_salv_sorts, + lo_filters TYPE REF TO cl_salv_filters, + lo_functional TYPE REF TO cl_salv_functional_settings, + lo_display TYPE REF TO cl_salv_display_settings, + lo_selections TYPE REF TO cl_salv_selections. + + DATA: ls_vari TYPE disvariant, + lo_layout TYPE REF TO cl_salv_layout. + + DATA: lr_form_tol TYPE REF TO cl_salv_form, + lr_form_eol TYPE REF TO cl_salv_form. + + DATA lt_kkblo_fieldcat TYPE kkblo_t_fieldcat. + DATA ls_kkblo_layout TYPE kkblo_layout. + DATA lt_kkblo_filter TYPE kkblo_t_filter. + DATA lt_kkblo_sort TYPE kkblo_t_sortinfo. + + lo_layout = io_salv->get_layout( ) . + lo_columns = io_salv->get_columns( ). + lo_aggregations = io_salv->get_aggregations( ) . + lo_sorts = io_salv->get_sorts( ) . + lo_filters = io_salv->get_filters( ) . + lo_display = io_salv->get_display_settings( ) . + lo_functional = io_salv->get_functional_settings( ) . + + REFRESH: wt_fcat, + wt_sort, + wt_filt. + +* First update metadata if we can. + IF io_salv->is_offline( ) = abap_false. + io_salv->get_metadata( ) . + ELSE. +* If we are offline we need to build this. + cl_salv_controller_metadata=>get_variant( + EXPORTING + r_layout = lo_layout + CHANGING + s_variant = ls_vari ). + ENDIF. + +*... get the column information + wt_fcat = cl_salv_controller_metadata=>get_lvc_fieldcatalog( + r_columns = lo_columns + r_aggregations = lo_aggregations ). + +*... get the layout information + cl_salv_controller_metadata=>get_lvc_layout( + EXPORTING + r_functional_settings = lo_functional + r_display_settings = lo_display + r_columns = lo_columns + r_aggregations = lo_aggregations + CHANGING + s_layout = ws_layo ). + +* the fieldcatalog is not complete yet! + CALL FUNCTION 'LVC_FIELDCAT_COMPLETE' + EXPORTING + i_complete = 'X' + i_refresh_buffer = space + i_buffer_active = space + is_layout = ws_layo + i_test = '1' + i_fcat_complete = 'X' + IMPORTING +* E_EDIT = + es_layout = ws_layo + CHANGING + ct_fieldcat = wt_fcat. + + IF ls_vari IS NOT INITIAL AND io_salv->is_offline( ) = abap_true. + CALL FUNCTION 'LVC_TRANSFER_TO_KKBLO' + EXPORTING + it_fieldcat_lvc = wt_fcat + is_layout_lvc = ws_layo + IMPORTING + et_fieldcat_kkblo = lt_kkblo_fieldcat + es_layout_kkblo = ls_kkblo_layout + TABLES + it_data = it_table + EXCEPTIONS + it_data_missing = 1 + it_fieldcat_lvc_missing = 2 + OTHERS = 3. + IF sy-subrc <> 0. +* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO +* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. + ENDIF. + + CALL FUNCTION 'LT_VARIANT_LOAD' + EXPORTING +* I_TOOL = 'LT' + i_tabname = '1' +* I_TABNAME_SLAVE = + i_dialog = ' ' +* I_USER_SPECIFIC = ' ' +* I_DEFAULT = 'X' +* I_NO_REPTEXT_OPTIMIZE = +* I_VIA_GRID = + i_fcat_complete = 'X' + IMPORTING +* E_EXIT = + et_fieldcat = lt_kkblo_fieldcat + et_sort = lt_kkblo_sort + et_filter = lt_kkblo_filter + CHANGING + cs_layout = ls_kkblo_layout + ct_default_fieldcat = lt_kkblo_fieldcat + cs_variant = ls_vari + EXCEPTIONS + wrong_input = 1 + fc_not_complete = 2 + not_found = 3 + OTHERS = 4 + . + IF sy-subrc <> 0. +* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO +* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. + ENDIF. + + CALL FUNCTION 'LVC_TRANSFER_FROM_KKBLO' + EXPORTING +* I_TECH_COMPLETE = +* I_STRUCTURE_NAME = + it_fieldcat_kkblo = lt_kkblo_fieldcat + it_sort_kkblo = lt_kkblo_sort + it_filter_kkblo = lt_kkblo_filter +* IT_SPECIAL_GROUPS_KKBLO = +* IT_FILTERED_ENTRIES_KKBLO = +* IT_GROUPLEVELS_KKBLO = +* IS_SUBTOT_OPTIONS_KKBLO = + is_layout_kkblo = ls_kkblo_layout +* IS_REPREP_ID_KKBLO = +* I_CALLBACK_PROGRAM_KKBLO = +* IT_ADD_FIELDCAT = +* IT_EXCLUDING_KKBLO = +* IT_EXCEPT_QINFO_KKBLO = + IMPORTING + et_fieldcat_lvc = wt_fcat + et_sort_lvc = wt_sort + et_filter_lvc = wt_filt +* ET_SPECIAL_GROUPS_LVC = +* ET_FILTER_INDEX_LVC = +* ET_GROUPLEVELS_LVC = +* ES_TOTAL_OPTIONS_LVC = + es_layout_lvc = ws_layo +* ES_VARIANT_LVC = +* E_VARIANT_SAVE_LVC = +* ES_PRINT_INFO_LVC = +* ES_REPREP_LVC = +* E_REPREP_ACTIVE_LVC = +* ET_EXCLUDING_LVC = +* ET_EXCEPT_QINFO_LVC = + TABLES + it_data = it_table + EXCEPTIONS + it_data_missing = 1 + OTHERS = 2 + . + IF sy-subrc <> 0. +* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO +* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. + ENDIF. + + ELSE. +* ... get the sort information + wt_sort = cl_salv_controller_metadata=>get_lvc_sort( lo_sorts ). + +* ... get the filter information + wt_filt = cl_salv_controller_metadata=>get_lvc_filter( lo_filters ). + ENDIF. + +ENDMETHOD. + + + + + + + + + *"* 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 + +TYPES: BEGIN OF ts_alv_types, + seoclass TYPE seoclsname, + clsname TYPE seoclsname, + END OF ts_alv_types, + tt_alv_types TYPE HASHED TABLE OF ts_alv_types WITH UNIQUE KEY seoclass. + +TYPES: BEGIN OF ts_sort_values, + fieldname TYPE fieldname, + row_int TYPE zexcel_cell_row, + value TYPE REF TO data, + new TYPE flag, + sort_level TYPE int4, + is_collapsed type flag, + END OF ts_sort_values, + + tt_sort_values TYPE HASHED TABLE OF ts_sort_values WITH UNIQUE KEY fieldname. +TYPES: BEGIN OF ts_subtotal_rows, + row_int TYPE zexcel_cell_row, + row_int_start TYPE zexcel_cell_row, + columnname TYPE fieldname, + END OF ts_subtotal_rows, + + tt_subtotal_rows TYPE HASHED TABLE OF ts_subtotal_rows WITH UNIQUE KEY row_int. + +TYPES: BEGIN OF ts_styles, + type TYPE char1, + alignment TYPE zexcel_alignment, + inttype TYPE inttype, + decimals TYPE int1, + style TYPE REF TO zcl_excel_style, + guid TYPE zexcel_cell_style, + END OF ts_styles, + + tt_styles TYPE HASHED TABLE OF ts_styles WITH UNIQUE KEY type alignment inttype decimals. + +TYPES: BEGIN OF ts_color_styles, + guid_old TYPE zexcel_cell_style, + fontcolor TYPE zexcel_style_color_argb, + fillcolor TYPE zexcel_style_color_argb, + style_new TYPE REF TO zcl_excel_style, + END OF ts_color_styles, + + tt_color_styles TYPE HASHED TABLE OF ts_color_styles WITH UNIQUE KEY guid_old fontcolor fillcolor. + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + + + + + + + + + + + + + + + + ABAP + SLIS + SOI + + + + + + + + + + + + + + + + + + + + + + + + + + + + METHOD ask_option. + DATA: ls_sval TYPE sval, + lt_sval TYPE STANDARD TABLE OF sval, + l_returncode TYPE string, + lt_fields TYPE ddfields, + ls_fields TYPE dfies. + + FIELD-SYMBOLS: <fs> TYPE ANY. + + rs_option = ws_option. + + CALL FUNCTION 'DDIF_FIELDINFO_GET' + EXPORTING + tabname = 'ZEXCEL_S_CONVERTER_OPTION' +* FIELDNAME = ' ' +* LANGU = sy-langu +* LFIELDNAME = ' ' +* ALL_TYPES = ' ' +* GROUP_NAMES = ' ' +* UCLEN = +* IMPORTING +* X030L_WA = +* DDOBJTYPE = +* DFIES_WA = +* LINES_DESCR = + TABLES + dfies_tab = lt_fields +* FIXED_VALUES = + EXCEPTIONS + not_found = 1 + internal_error = 2 + OTHERS = 3 + . + IF sy-subrc <> 0. +* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO +* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. + ENDIF. + + LOOP AT lt_fields INTO ls_fields. + ASSIGN COMPONENT ls_fields-fieldname OF STRUCTURE ws_option TO <fs>. + IF sy-subrc = 0. + CLEAR ls_sval. + ls_sval-tabname = ls_fields-tabname. + ls_sval-fieldname = ls_fields-fieldname. + ls_sval-value = <fs>. + ls_sval-field_attr = space. + ls_sval-field_obl = space. + ls_sval-comp_code = space. + ls_sval-fieldtext = ls_fields-scrtext_m. + ls_sval-comp_tab = space. + ls_sval-comp_field = space. + ls_sval-novaluehlp = space. + INSERT ls_sval INTO TABLE lt_sval. + ENDIF. + ENDLOOP. + + CALL FUNCTION 'POPUP_GET_VALUES' + EXPORTING +* NO_VALUE_CHECK = space + popup_title = 'Excel creation options'(008) +* START_COLUMN = '5' +* START_ROW = '5' + IMPORTING + returncode = l_returncode + TABLES + fields = lt_sval + EXCEPTIONS + error_in_fields = 1 + OTHERS = 2 + . + IF sy-subrc <> 0. +* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO +* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. + ELSE. + IF l_returncode = 'A'. + RAISE EXCEPTION TYPE zcx_excel. + ELSE. + LOOP AT lt_sval INTO ls_sval. + ASSIGN COMPONENT ls_sval-fieldname OF STRUCTURE ws_option TO <fs>. + IF sy-subrc = 0. + <fs> = ls_sval-value. + ENDIF. + ENDLOOP. + set_option( is_option = ws_option ) . + rs_option = ws_option. + ENDIF. + ENDIF. +ENDMETHOD. + + + + + method BIND_CELLS. + +* Do we need subtotals with grouping + READ TABLE wt_fieldcatalog TRANSPORTING NO FIELDS WITH KEY is_subtotalled = abap_true. + IF sy-subrc = 0 . + r_freeze_col = loop_subtotal( i_row_int = w_row_int + i_col_int = w_col_int ) . + ELSE. + r_freeze_col = loop_normal( i_row_int = w_row_int + i_col_int = w_col_int ) . + ENDIF. + +endmethod. + + + + + + method BIND_TABLE. + data: lt_field_catalog type zexcel_t_fieldcatalog, + ls_field_catalog type zexcel_s_fieldcatalog, + ls_fcat type zexcel_s_converter_fcat, + lo_col_dim type ref to zcl_excel_worksheet_columndime, + lo_row_dim type ref to zcl_excel_worksheet_rowdimensi, + l_col_int type zexcel_cell_column, + l_col_alpha type zexcel_cell_column_alpha, + ls_settings type zexcel_s_table_settings, + l_line type i. + + field-symbols: <fs_tab> type any table. + + assign wo_data->* to <fs_tab> . + + ls_settings-table_style = i_style_table. + ls_settings-top_left_column = zcl_excel_common=>convert_column2alpha( ip_column = w_col_int ). + ls_settings-top_left_row = w_row_int. + ls_settings-show_row_stripes = ws_layout-is_stripped. + + describe table wt_fieldcatalog lines l_line. + l_line = l_line + 1 + w_col_int. + ls_settings-bottom_right_column = zcl_excel_common=>convert_column2alpha( ip_column = l_line ). + + describe table <fs_tab> lines l_line. + ls_settings-bottom_right_row = l_line + 1 + w_row_int. + sort wt_fieldcatalog by position. + loop at wt_fieldcatalog into ls_fcat. + move-corresponding ls_fcat to ls_field_catalog. + ls_field_catalog-dynpfld = abap_true. + insert ls_field_catalog into table lt_field_catalog. + endloop. + + wo_worksheet->bind_table( + exporting + ip_table = <fs_tab> + it_field_catalog = lt_field_catalog + is_table_settings = ls_settings + importing + es_table_settings = ls_settings + ). + loop at wt_fieldcatalog into ls_fcat. + l_col_int = w_col_int + ls_fcat-position - 1. + l_col_alpha = zcl_excel_common=>convert_column2alpha( l_col_int ). +* Freeze panes + if ls_fcat-fix_column = abap_true. + add 1 to r_freeze_col. + endif. +* Now let's check for optimized + if ls_fcat-is_optimized = abap_true. + lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ). + lo_col_dim->set_auto_size( ip_auto_size = abap_true ) . + endif. +* Now let's check for visible + if ls_fcat-is_hidden = abap_true. + lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ). + lo_col_dim->set_visible( ip_visible = abap_false ) . + endif. + endloop. + +endmethod. + + + METHOD class_constructor. + DATA: ls_objects TYPE ts_alv_types. + DATA: ls_option TYPE zexcel_s_converter_option, + l_uname TYPE sy-uname. + + GET PARAMETER ID 'ZUS' FIELD l_uname. + IF l_uname IS INITIAL OR l_uname = space. + l_uname = sy-uname. + ENDIF. + +* Object CL_GUI_ALV_GRID + ls_objects-seoclass = 'CL_GUI_ALV_GRID'. + ls_objects-clsname = 'ZCL_EXCEL_CONVERTER_ALV_GRID'. + INSERT ls_objects INTO TABLE wt_objects. + +* Object CL_SALV_TABLE + ls_objects-seoclass = 'CL_SALV_TABLE'. + ls_objects-clsname = 'ZCL_EXCEL_CONVERTER_SALV_TABLE'. + INSERT ls_objects INTO TABLE wt_objects. + +* Object CL_SALV_RESULT + ls_objects-seoclass = 'CL_SALV_EX_RESULT_DATA_TABLE '. + ls_objects-clsname = 'ZCL_EXCEL_CONVERTER_RESULT_EX'. + INSERT ls_objects INTO TABLE wt_objects. +* Object CL_SALV_WD_RESULT + ls_objects-seoclass = 'CL_SALV_WD_RESULT_DATA_TABLE '. + ls_objects-clsname = 'ZCL_EXCEL_CONVERTER_RESULT_WD'. + INSERT ls_objects INTO TABLE wt_objects. + + CONCATENATE 'EXCEL_' sy-uname INTO ws_indx-srtfd. + + IMPORT p1 = ls_option FROM DATABASE indx(xl) TO ws_indx ID ws_indx-srtfd. + + IF sy-subrc = 0. + ws_option = ls_option. + ELSE. + init_option( ) . + ENDIF. + +ENDMETHOD. + + + method CLEAN_FIELDCATALOG. + DATA: l_position TYPE int1. + + FIELD-SYMBOLS: <fs_sfcat> TYPE zexcel_s_converter_fcat. + + SORT wt_fieldcatalog BY position col_id. + + CLEAR l_position. + LOOP AT wt_fieldcatalog ASSIGNING <fs_sfcat>. + ADD 1 TO l_position. + <fs_sfcat>-position = l_position. +* Default stype with alignment and format + <fs_sfcat>-style_hdr = get_style( i_type = c_type_hdr + i_alignment = <fs_sfcat>-alignment ). + IF ws_layout-is_stripped = abap_true. + <fs_sfcat>-style_stripped = get_style( i_type = c_type_str + i_alignment = <fs_sfcat>-alignment + i_inttype = <fs_sfcat>-inttype + i_decimals = <fs_sfcat>-decimals ). + ENDIF. + <fs_sfcat>-style_normal = get_style( i_type = c_type_nor + i_alignment = <fs_sfcat>-alignment + i_inttype = <fs_sfcat>-inttype + i_decimals = <fs_sfcat>-decimals ). + <fs_sfcat>-style_subtotal = get_style( i_type = c_type_sub + i_alignment = <fs_sfcat>-alignment + i_inttype = <fs_sfcat>-inttype + i_decimals = <fs_sfcat>-decimals ). + <fs_sfcat>-style_total = get_style( i_type = c_type_tot + i_alignment = <fs_sfcat>-alignment + i_inttype = <fs_sfcat>-inttype + i_decimals = <fs_sfcat>-decimals ). + ENDLOOP. + +endmethod. + + + + + + + + + + + + + METHOD convert. + + IF is_option IS SUPPLIED. + ws_option = is_option. + ENDIF. + + TRY. + execute_converter( EXPORTING io_object = io_alv + it_table = it_table ) . + ENDTRY. + + IF io_worksheet IS SUPPLIED AND io_worksheet IS BOUND. + wo_worksheet = io_worksheet. + ENDIF. + IF co_excel IS SUPPLIED. + IF co_excel IS NOT BOUND. + CREATE OBJECT co_excel. + co_excel->zif_excel_book_properties~creator = sy-uname. + ENDIF. + wo_excel = co_excel. + ENDIF. + +* Move table to data object and clean it up + IF wt_fieldcatalog IS NOT INITIAL. + create_table( ). + ELSE. + wo_data = wo_table . + ENDIF. + + IF wo_excel IS NOT BOUND. + CREATE OBJECT wo_excel. + wo_excel->zif_excel_book_properties~creator = sy-uname. + ENDIF. + IF wo_worksheet IS NOT BOUND. + " Get active sheet + wo_worksheet = wo_excel->get_active_worksheet( ). + wo_worksheet->set_title( ip_title = 'Sheet1'(001) ). + ENDIF. + + IF i_row_int <= 0. + w_row_int = 1. + ELSE. + w_row_int = i_row_int. + ENDIF. + IF i_column_int <= 0. + w_col_int = 1. + ELSE. + w_col_int = i_column_int. + ENDIF. + + create_worksheet( i_table = i_table + i_style_table = i_style_table ) . + +ENDMETHOD. + + + + + + method CREATE_COLOR_STYLE. + DATA: ls_styles TYPE ts_styles. + DATA: lo_style TYPE REF TO zcl_excel_style. + + READ TABLE wt_styles INTO ls_styles WITH KEY guid = i_style. + IF sy-subrc = 0. + lo_style = wo_excel->add_new_style( ). +* lo_style->borders = ls_styles-style->borders. +* lo_style->protection = ls_styles-style->protection. + lo_style->font->bold = ls_styles-style->font->bold. + lo_style->alignment->horizontal = ls_styles-style->alignment->horizontal. + lo_style->number_format->format_code = ls_styles-style->number_format->format_code. + + lo_style->font->color-rgb = is_colors-fontcolor. + lo_style->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style->fill->fgcolor-rgb = is_colors-fillcolor. + + ro_style = lo_style. + ENDIF. +endmethod. + + + + + + + + method CREATE_FORMULAR_SUBTOTAL. + data: l_row_alpha_start type string, + l_row_alpha_end type string, + l_func_num type string. + + l_row_alpha_start = i_row_int_start. + l_row_alpha_end = i_row_int_end. + + l_func_num = get_function_number( i_totals_function = i_totals_function ). + concatenate 'SUBTOTAL(' l_func_num ',' i_column l_row_alpha_start ':' i_column l_row_alpha_end ')' into r_formula. +endmethod. + + + + + + + method CREATE_FORMULAR_TOTAL. + data: l_row_alpha type string, + l_row_e_alpha type string. + + l_row_alpha = w_row_int + 1. + l_row_e_alpha = i_row_int. + + concatenate i_totals_function '(' i_column l_row_alpha ':' i_column l_row_e_alpha ')' into r_formula. +endmethod. + + + + method CREATE_PATH. + DATA: l_sep TYPE c , + l_path TYPE string, + l_return TYPE i . + + CLEAR r_path. + + " Save the file + cl_gui_frontend_services=>get_sapgui_workdir( + CHANGING + sapworkdir = l_path + EXCEPTIONS + get_sapworkdir_failed = 1 + cntl_error = 2 + error_no_gui = 3 + not_supported_by_gui = 4 + ). + IF sy-subrc <> 0. +* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO +* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. + CONCATENATE 'Excel_' w_fcount '.xlsx' INTO r_path. + ELSE. + DO. + ADD 1 TO w_fcount. +*-obtain file separator character--------------------------------------- + CALL METHOD cl_gui_frontend_services=>get_file_separator + CHANGING + file_separator = l_sep + EXCEPTIONS + cntl_error = 1 + error_no_gui = 2 + not_supported_by_gui = 3 + OTHERS = 4. + + IF sy-subrc <> 0. + l_sep = ''. + ENDIF. + + CONCATENATE l_path l_sep 'Excel_' w_fcount '.xlsx' INTO r_path. + + IF cl_gui_frontend_services=>file_exist( file = r_path ) = abap_true. + cl_gui_frontend_services=>file_delete( EXPORTING filename = r_path + CHANGING rc = l_return + EXCEPTIONS OTHERS = 1 ). + IF sy-subrc = 0 . + RETURN. + ENDIF. + ELSE. + RETURN. + ENDIF. + ENDDO. + ENDIF. + +endmethod. + + + + + method CREATE_STYLE_HDR. + data: lo_style type ref to zcl_excel_style. + + lo_style = wo_excel->add_new_style( ). + lo_style->font->bold = abap_true. + lo_style->font->color-rgb = zcl_excel_style_color=>c_white. + lo_style->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style->fill->fgcolor-rgb = 'FF4F81BD'. + if i_alignment is supplied and i_alignment is not initial. + lo_style->alignment->horizontal = i_alignment. + endif. + ro_style = lo_style . +endmethod. + + + + + + + method CREATE_STYLE_NORMAL. + DATA: lo_style TYPE REF TO zcl_excel_style, + l_format TYPE zexcel_number_format. + + IF i_inttype IS SUPPLIED AND i_inttype IS NOT INITIAL. + l_format = set_cell_format( i_inttype = i_inttype + i_decimals = i_decimals ) . + ENDIF. + IF l_format IS NOT INITIAL OR + ( i_alignment IS SUPPLIED AND i_alignment IS NOT INITIAL ) . + + lo_style = wo_excel->add_new_style( ). + + IF i_alignment IS SUPPLIED AND i_alignment IS NOT INITIAL. + lo_style->alignment->horizontal = i_alignment. + ENDIF. + + IF l_format IS NOT INITIAL. + lo_style->number_format->format_code = l_format. + ENDIF. + + ro_style = lo_style . + + ENDIF. +endmethod. + + + + + + + method CREATE_STYLE_STRIPPED. + data: lo_style type ref to zcl_excel_style. + data: l_format type zexcel_number_format. + + lo_style = wo_excel->add_new_style( ). + lo_style->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style->fill->fgcolor-rgb = 'FFDBE5F1'. + if i_alignment is supplied and i_alignment is not initial. + lo_style->alignment->horizontal = i_alignment. + endif. + if i_inttype is supplied and i_inttype is not initial. + l_format = set_cell_format( i_inttype = i_inttype + i_decimals = i_decimals ) . + if l_format is not initial. + lo_style->number_format->format_code = l_format. + endif. + endif. + ro_style = lo_style. + +endmethod. + + + + + + + method CREATE_STYLE_SUBTOTAL. + data: lo_style type ref to zcl_excel_style. + data: l_format type zexcel_number_format. + + lo_style = wo_excel->add_new_style( ). + lo_style->font->bold = abap_true. + + if i_alignment is supplied and i_alignment is not initial. + lo_style->alignment->horizontal = i_alignment. + endif. + if i_inttype is supplied and i_inttype is not initial. + l_format = set_cell_format( i_inttype = i_inttype + i_decimals = i_decimals ) . + if l_format is not initial. + lo_style->number_format->format_code = l_format. + endif. + endif. + + ro_style = lo_style . + +endmethod. + + + + + + + method CREATE_STYLE_TOTAL. + DATA: lo_style TYPE REF TO zcl_excel_style. + DATA: l_format TYPE zexcel_number_format. + + lo_style = wo_excel->add_new_style( ). + lo_style->font->bold = abap_true. + + CREATE OBJECT lo_style->borders->top. + lo_style->borders->top->border_style = zcl_excel_style_border=>c_border_thin. + lo_style->borders->top->border_color-rgb = zcl_excel_style_color=>c_black. + + CREATE OBJECT lo_style->borders->right. + lo_style->borders->right->border_style = zcl_excel_style_border=>c_border_none. + lo_style->borders->right->border_color-rgb = zcl_excel_style_color=>c_black. + + CREATE OBJECT lo_style->borders->down. + lo_style->borders->down->border_style = zcl_excel_style_border=>c_border_double. + lo_style->borders->down->border_color-rgb = zcl_excel_style_color=>c_black. + + CREATE OBJECT lo_style->borders->left. + lo_style->borders->left->border_style = zcl_excel_style_border=>c_border_none. + lo_style->borders->left->border_color-rgb = zcl_excel_style_color=>c_black. + + IF i_alignment IS SUPPLIED AND i_alignment IS NOT INITIAL. + lo_style->alignment->horizontal = i_alignment. + ENDIF. + IF i_inttype IS SUPPLIED AND i_inttype IS NOT INITIAL. + l_format = set_cell_format( i_inttype = i_inttype + i_decimals = i_decimals ) . + IF l_format IS NOT INITIAL. + lo_style->number_format->format_code = l_format. + ENDIF. + ENDIF. + + ro_style = lo_style . + +endmethod. + + + method CREATE_TABLE. + TYPES: BEGIN OF ts_output, + fieldname TYPE fieldname, + function TYPE funcname, + END OF ts_output. + + DATA: lo_data TYPE REF TO data. + DATA: lo_addit TYPE REF TO cl_abap_elemdescr, + lt_components_tab TYPE cl_abap_structdescr=>component_table, + ls_components TYPE abap_componentdescr, + lo_table TYPE REF TO cl_abap_tabledescr, + lo_struc TYPE REF TO cl_abap_structdescr, + lt_fieldcatalog TYPE zexcel_t_converter_fcat. + + FIELD-SYMBOLS: <fs_scat> TYPE zexcel_s_converter_fcat, + <fs_stab> TYPE ANY, + <fs_ttab> TYPE STANDARD TABLE, + <fs> TYPE ANY, + <fs_table> TYPE STANDARD TABLE. + + SORT wt_fieldcatalog BY position. + ASSIGN wo_table->* TO <fs_table>. + + READ TABLE <fs_table> ASSIGNING <fs_stab> INDEX 1. + IF sy-subrc EQ 0 . + LOOP AT wt_fieldcatalog ASSIGNING <fs_scat>. + ASSIGN COMPONENT <fs_scat>-columnname OF STRUCTURE <fs_stab> TO <fs>. + IF sy-subrc = 0. + ls_components-name = <fs_scat>-columnname. + TRY. + lo_addit ?= cl_abap_typedescr=>describe_by_data( <fs> ). + CATCH cx_sy_move_cast_error. + CLEAR lo_addit. + DELETE TABLE wt_fieldcatalog FROM <fs_scat>. + ENDTRY. + IF lo_addit IS BOUND. + ls_components-type = lo_addit . + INSERT ls_components INTO TABLE lt_components_tab. + ENDIF. + ENDIF. + ENDLOOP. + IF lt_components_tab IS NOT INITIAL. + "create new line type + TRY. + lo_struc = cl_abap_structdescr=>create( P_COMPONENTS = lt_components_tab + P_STRICT = abap_false ). + CATCH cx_sy_struct_creation. + RETURN. " We can not do anything in this case. + ENDTRY. + + lo_table = cl_abap_tabledescr=>create( lo_struc ). + + CREATE DATA wo_data TYPE HANDLE lo_table. + CREATE DATA lo_data TYPE HANDLE lo_struc. + + ASSIGN wo_data->* TO <fs_ttab>. + ASSIGN lo_data->* TO <fs_stab>. + LOOP AT <fs_table> ASSIGNING <fs>. + CLEAR <fs_stab>. + MOVE-CORRESPONDING <fs> TO <fs_stab>. + APPEND <fs_stab> TO <fs_ttab>. + ENDLOOP. + ENDIF. + ENDIF. + +endmethod. + + + + + + METHOD create_text_subtotal. + DATA: l_string(256) TYPE c, + l_func TYPE string. + + CASE i_totals_function. + WHEN zcl_excel_table=>totals_function_sum. " Total + l_func = 'Total'(003). + WHEN zcl_excel_table=>totals_function_min. " Minimum + l_func = 'Minimum'(004). + WHEN zcl_excel_table=>totals_function_max. " Maximum + l_func = 'Maximum'(005). + WHEN zcl_excel_table=>totals_function_average. " Mean Value + l_func = 'Average'(006). + WHEN zcl_excel_table=>totals_function_count. " Count + l_func = 'Count'(007). + WHEN OTHERS. + CLEAR l_func. + ENDCASE. + + WRITE i_value TO l_string. + + CONCATENATE l_string l_func INTO r_text SEPARATED BY space. + +ENDMETHOD. + + + + + + method CREATE_WORKSHEET. + DATA: l_freeze_col TYPE i. + DATA: l_guid TYPE oltpguid16. + + IF wo_data IS BOUND AND wo_worksheet IS BOUND. + + wo_worksheet->zif_excel_sheet_properties~summarybelow = zif_excel_sheet_properties=>c_below_on. " By default is on + + IF wt_fieldcatalog IS INITIAL. + set_fieldcatalog( ) . + ELSE. + clean_fieldcatalog( ) . + ENDIF. + + IF i_table = abap_true. + l_freeze_col = bind_table( i_style_table = i_style_table ) . + ELSE. +* Let's check for filter. + IF wt_filter IS NOT INITIAL. + wo_autofilter = wo_excel->add_new_autofilter( io_sheet = wo_worksheet ). + l_freeze_col = bind_cells( ) . + set_autofilter_area( ) . + ELSE. + l_freeze_col = bind_cells( ) . + ENDIF. + + ENDIF. + +* Check for freeze panes + IF ws_layout-is_fixed = abap_true. + IF l_freeze_col = 0. + l_freeze_col = w_col_int. + ENDIF. + wo_worksheet->freeze_panes( EXPORTING ip_num_columns = l_freeze_col + ip_num_rows = w_row_int ) . + ENDIF. + ENDIF. + +endmethod. + + + + + + method EXECUTE_CONVERTER. + DATA: lt_fieldcatalog TYPE zexcel_t_fieldcatalog, + ls_fieldcatalog TYPE zexcel_s_converter_fcat, + lo_if TYPE REF TO zif_excel_converter, + ls_types TYPE ts_alv_types, + lo_addit TYPE REF TO cl_abap_classdescr. + + IF io_object IS BOUND. + TRY. + lo_addit ?= cl_abap_typedescr=>describe_by_object_ref( io_object ). + CATCH cx_sy_move_cast_error. + RAISE EXCEPTION TYPE zcx_excel. + ENDTRY. + ls_types-seoclass = lo_addit->get_relative_name( ). + READ TABLE wt_objects INTO ls_types WITH TABLE KEY seoclass = ls_types-seoclass. + IF sy-subrc = 0. + CREATE OBJECT lo_if TYPE (ls_types-clsname). + + TRY. + lo_if->create_fieldcatalog( + EXPORTING + is_option = ws_option + io_object = io_object + it_table = it_table + IMPORTING + es_layout = ws_layout + et_fieldcatalog = wt_fieldcatalog + eo_table = wo_table + et_colors = wt_colors + et_filter = wt_filter + ). + ENDTRY. +* data lines of highest level. + IF ws_layout-max_subtotal_level > 0. + ADD 1 TO ws_layout-max_subtotal_level. + ENDIF. + ELSE. + RAISE EXCEPTION TYPE zcx_excel. + ENDIF. + ELSE. + REFRESH wt_fieldcatalog. + GET REFERENCE OF it_table INTO wo_table. + ENDIF. + +endmethod. + + + + + + + method GET_COLOR_STYLE. + DATA: ls_colors TYPE zexcel_s_converter_col, + ls_color_styles TYPE ts_color_styles, + lo_style TYPE REF TO zcl_excel_style. + + r_style = i_style. " Default we change nothing + + IF wt_colors IS NOT INITIAL. +* Full line has color + READ TABLE wt_colors INTO ls_colors WITH KEY rownumber = i_row + columnname = space. + IF sy-subrc = 0. + READ TABLE wt_color_styles INTO ls_color_styles WITH KEY guid_old = i_style + fontcolor = ls_colors-fontcolor + fillcolor = ls_colors-fillcolor. + IF sy-subrc = 0. + r_style = ls_color_styles-style_new->get_guid( ). + ELSE. + lo_style = create_color_style( i_style = i_style + is_colors = ls_colors ) . + r_style = lo_style->get_guid( ) . + ls_color_styles-guid_old = i_style. + ls_color_styles-fontcolor = ls_colors-fontcolor. + ls_color_styles-fillcolor = ls_colors-fillcolor. + ls_color_styles-style_new = lo_style. + INSERT ls_color_styles INTO TABLE wt_color_styles. + ENDIF. + ELSE. +* Only field has color + READ TABLE wt_colors INTO ls_colors WITH KEY rownumber = i_row + columnname = i_fieldname. + IF sy-subrc = 0. + READ TABLE wt_color_styles INTO ls_color_styles WITH KEY guid_old = i_style + fontcolor = ls_colors-fontcolor + fillcolor = ls_colors-fillcolor. + IF sy-subrc = 0. + r_style = ls_color_styles-style_new->get_guid( ). + ELSE. + lo_style = create_color_style( i_style = i_style + is_colors = ls_colors ) . + ls_color_styles-guid_old = i_style. + ls_color_styles-fontcolor = ls_colors-fontcolor. + ls_color_styles-fillcolor = ls_colors-fillcolor. + ls_color_styles-style_new = lo_style. + INSERT ls_color_styles INTO TABLE wt_color_styles. + r_style = ls_color_styles-style_new->get_guid( ). + ENDIF. + ELSE. + r_style = i_style. + ENDIF. + ENDIF. + ELSE. + r_style = i_style. + ENDIF. + +endmethod. + + + + + + method GET_FILE. + data: lo_excel_writer type ref to zif_excel_writer, + lo_excel type ref to zcl_excel. + + data: ls_seoclass type seoclass. + + + if wo_excel is bound. + create object lo_excel_writer type zcl_excel_writer_2007. + e_file = lo_excel_writer->write_file( wo_excel ). + + select single * into ls_seoclass + from seoclass + where clsname = 'CL_BCS_CONVERT'. + + if sy-subrc = 0. + call method (ls_seoclass-clsname)=>xstring_to_solix + exporting + iv_xstring = e_file + receiving + et_solix = et_file. + e_bytecount = xstrlen( e_file ). + else. + " Convert to binary + call function 'SCMS_XSTRING_TO_BINARY' + exporting + buffer = e_file + importing + output_length = e_bytecount + tables + binary_tab = et_file. + endif. + endif. + +endmethod. + + + + + method GET_FUNCTION_NUMBER. +*Number Function +*1 AVERAGE +*2 COUNT +*3 COUNTA +*4 MAX +*5 MIN +*6 PRODUCT +*7 STDEV +*8 STDEVP +*9 SUM +*10 VAR +*11 VARP + + case i_totals_function. + when ZCL_EXCEL_TABLE=>TOTALS_FUNCTION_SUM. " Total + r_function_number = 9. + when ZCL_EXCEL_TABLE=>TOTALS_FUNCTION_MIN. " Minimum + r_function_number = 5. + when ZCL_EXCEL_TABLE=>TOTALS_FUNCTION_MAX. " Maximum + r_function_number = 4. + when ZCL_EXCEL_TABLE=>TOTALS_FUNCTION_AVERAGE. " Mean Value + r_function_number = 1. + when ZCL_EXCEL_TABLE=>TOTALS_FUNCTION_count. " Count + r_function_number = 2. + when others. + clear r_function_number. + endcase. +endmethod. + + + + METHOD get_option. + + rs_option = ws_option. + +ENDMETHOD. + + + + + + + + method GET_STYLE. + DATA: ls_styles TYPE ts_styles, + lo_style TYPE REF TO zcl_excel_style. + + CLEAR r_style. + + READ TABLE wt_styles INTO ls_styles WITH TABLE KEY type = i_type + alignment = i_alignment + inttype = i_inttype + decimals = i_decimals. + IF sy-subrc = 0. + r_style = ls_styles-guid. + ELSE. + CASE i_type. + WHEN c_type_hdr. " Header + lo_style = create_style_hdr( i_alignment = i_alignment ). + WHEN c_type_str. "Stripped + lo_style = create_style_stripped( i_alignment = i_alignment + i_inttype = i_inttype + i_decimals = i_decimals ). + WHEN c_type_nor. "Normal + lo_style = create_style_normal( i_alignment = i_alignment + i_inttype = i_inttype + i_decimals = i_decimals ). + WHEN c_type_sub. "Subtotals + lo_style = create_style_subtotal( i_alignment = i_alignment + i_inttype = i_inttype + i_decimals = i_decimals ). + WHEN c_type_tot. "Totals + lo_style = create_style_total( i_alignment = i_alignment + i_inttype = i_inttype + i_decimals = i_decimals ). + ENDCASE. + IF lo_style IS NOT INITIAL. + r_style = lo_style->get_guid( ). + ls_styles-type = i_type. + ls_styles-alignment = i_alignment. + ls_styles-inttype = i_inttype. + ls_styles-decimals = i_decimals. + ls_styles-guid = r_style. + ls_styles-style = lo_style. + INSERT ls_styles INTO TABLE wt_styles. + ENDIF. + ENDIF. +endmethod. + + + METHOD init_option. + + ws_option-filter = abap_true. + ws_option-hidenc = abap_true. + ws_option-subtot = abap_true. + +ENDMETHOD. + + + + + + + METHOD loop_normal. + DATA: lo_data TYPE REF TO data, + l_row_header TYPE zexcel_cell_row VALUE '2', + l_col_header TYPE zexcel_cell_column_alpha VALUE 'B', + l_row_int_start TYPE zexcel_cell_row, + l_row_int_end TYPE zexcel_cell_row, + l_row_int TYPE zexcel_cell_row, + l_col_int TYPE zexcel_cell_column, + l_col_alpha TYPE zexcel_cell_column_alpha, + l_col_alpha_start TYPE zexcel_cell_column_alpha, + l_cell_value TYPE zexcel_cell_value, + l_s_color TYPE abap_bool, + lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime, + lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi, + l_formula TYPE zexcel_cell_formula, + l_style TYPE zexcel_cell_style, + l_cells TYPE i, + l_count TYPE i, + l_table_row TYPE i. + + FIELD-SYMBOLS: <fs_stab> TYPE ANY, + <fs_tab> TYPE STANDARD TABLE, + <fs_sfcat> TYPE zexcel_s_converter_fcat, + <fs_fldval> TYPE ANY, + <fs_cell_value> TYPE zexcel_cell_value. + + ASSIGN wo_data->* TO <fs_tab> . + + DESCRIBE TABLE wt_fieldcatalog LINES l_cells. + DESCRIBE TABLE <fs_tab> LINES l_count. + l_cells = l_cells * l_count. + +* It is better to loop column by column + LOOP AT wt_fieldcatalog ASSIGNING <fs_sfcat>. + l_row_int = i_row_int. + l_col_int = i_col_int + <fs_sfcat>-position - 1. + +* Freeze panes + IF <fs_sfcat>-fix_column = abap_true. + ADD 1 TO r_freeze_col. + ENDIF. + l_s_color = abap_true. + + l_col_alpha = zcl_excel_common=>convert_column2alpha( l_col_int ). + +* Only if the Header is required create it. + IF ws_option-hidehd IS INITIAL. + " First of all write column header + l_cell_value = <fs_sfcat>-scrtext_m. + wo_worksheet->set_cell( ip_column = l_col_alpha + ip_row = l_row_int + ip_value = l_cell_value + ip_style = <fs_sfcat>-style_hdr ). + ADD 1 TO l_row_int. + ENDIF. + LOOP AT <fs_tab> ASSIGNING <fs_stab>. + l_table_row = sy-tabix. +* Now the cell values + ASSIGN COMPONENT <fs_sfcat>-columnname OF STRUCTURE <fs_stab> TO <fs_fldval>. +* Now let's write the cell values + IF ws_layout-is_stripped = abap_true AND l_s_color = abap_true. + l_style = get_color_style( i_row = l_table_row + i_fieldname = <fs_sfcat>-columnname + i_style = <fs_sfcat>-style_stripped ). + wo_worksheet->set_cell( ip_column = l_col_alpha + ip_row = l_row_int + ip_value = <fs_fldval> + ip_style = l_style ). + CLEAR l_s_color. + ELSE. + l_style = get_color_style( i_row = l_table_row + i_fieldname = <fs_sfcat>-columnname + i_style = <fs_sfcat>-style_normal ). + wo_worksheet->set_cell( ip_column = l_col_alpha + ip_row = l_row_int + ip_value = <fs_fldval> + ip_style = l_style ). + l_s_color = abap_true. + ENDIF. + READ TABLE wt_filter TRANSPORTING NO FIELDS WITH TABLE KEY rownumber = l_table_row + columnname = <fs_sfcat>-columnname. + IF sy-subrc = 0. + wo_worksheet->get_cell( EXPORTING + ip_column = l_col_alpha + ip_row = l_row_int + IMPORTING + ep_value = l_cell_value ). + wo_autofilter->set_value( i_column = l_col_int + i_value = l_cell_value ). + ENDIF. + ADD 1 TO l_row_int. + ENDLOOP. +* Now let's check for optimized + IF <fs_sfcat>-is_optimized = abap_true . + lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ). + lo_col_dim->set_auto_size( ip_auto_size = abap_true ) . + ENDIF. +* Now let's check for visible + IF <fs_sfcat>-is_hidden = abap_true. + lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ). + lo_col_dim->set_visible( ip_visible = abap_false ) . + ENDIF. +* Now let's check for total versus subtotal. + IF <fs_sfcat>-totals_function IS NOT INITIAL. + l_row_int_end = l_row_int - 1. + + l_formula = create_formular_total( i_row_int = l_row_int_end + i_column = l_col_alpha + i_totals_function = <fs_sfcat>-totals_function ). + wo_worksheet->set_cell( ip_column = l_col_alpha + ip_row = l_row_int + ip_formula = l_formula + ip_style = <fs_sfcat>-style_total ). + ENDIF. + ENDLOOP. +ENDMETHOD. + + + + + + + method LOOP_SUBTOTAL. + + DATA: lo_data TYPE REF TO data, + l_row_header TYPE zexcel_cell_row VALUE '2', + l_col_header TYPE zexcel_cell_column_alpha VALUE 'B', + l_row_int_start TYPE zexcel_cell_row, + l_row_int_end TYPE zexcel_cell_row, + l_row_int TYPE zexcel_cell_row, + l_col_int TYPE zexcel_cell_column, + l_col_alpha TYPE zexcel_cell_column_alpha, + l_col_alpha_start TYPE zexcel_cell_column_alpha, + l_cell_value TYPE zexcel_cell_value, + l_s_color TYPE abap_bool, + lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime, + lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi, + l_formula TYPE zexcel_cell_formula, + l_style TYPE zexcel_cell_style, + l_subtotalled TYPE flag, + l_text TYPE string, + ls_sort_values TYPE ts_sort_values, + ls_subtotal_rows TYPE ts_subtotal_rows, + l_sort_level TYPE int4, + l_hidden TYPE int4, + l_line TYPE i, + l_guid TYPE guid_22, + l_tabix TYPE sy-tabix, + l_cells TYPE i, + l_count TYPE i, + l_table_row TYPE i, + lt_fcat TYPE zexcel_t_converter_fcat. + + FIELD-SYMBOLS: <fs_stab> TYPE ANY, + <fs_tab> TYPE STANDARD TABLE, + <fs_sfcat> TYPE zexcel_s_converter_fcat, + <fs_fldval> TYPE ANY, + <fs_sortval> TYPE ANY, + <fs_sortv> TYPE ts_sort_values, + <fs_cell_value> TYPE zexcel_cell_value. + + ASSIGN wo_data->* TO <fs_tab> . + + REFRESH: wt_sort_values, + wt_subtotal_rows. + + DESCRIBE TABLE wt_fieldcatalog LINES l_cells. + DESCRIBE TABLE <fs_tab> LINES l_count. + l_cells = l_cells * l_count. + + READ TABLE <fs_tab> ASSIGNING <fs_stab> INDEX 1. + IF sy-subrc = 0. + l_row_int = i_row_int + 1. + lt_fcat = wt_fieldcatalog. + SORT lt_fcat BY sort_level DESCENDING. + LOOP AT lt_fcat ASSIGNING <fs_sfcat> WHERE is_subtotalled = abap_true. + ASSIGN COMPONENT <fs_sfcat>-columnname OF STRUCTURE <fs_stab> TO <fs_fldval>. + ls_sort_values-fieldname = <fs_sfcat>-columnname. + ls_sort_values-row_int = l_row_int. + ls_sort_values-sort_level = <fs_sfcat>-sort_level. + ls_sort_values-is_collapsed = <fs_sfcat>-is_collapsed. + CREATE DATA ls_sort_values-value LIKE <fs_fldval>. + ASSIGN ls_sort_values-value->* TO <fs_sortval>. + <fs_sortval> = <fs_fldval>. + INSERT ls_sort_values INTO TABLE wt_sort_values. + ENDLOOP. + ENDIF. + l_row_int = i_row_int. +* Let's check if we need to hide a sort level. + DESCRIBE TABLE wt_sort_values LINES l_line. + IF l_line <= 1. + CLEAR l_hidden. + ELSE. + LOOP AT wt_sort_values INTO ls_sort_values WHERE is_collapsed = abap_false. + IF l_hidden < ls_sort_values-sort_level. + l_hidden = ls_sort_values-sort_level. + ENDIF. + ENDLOOP. + ENDIF. + ADD 1 TO l_hidden. " As this is the first level we show. +* First loop without formular only addtional rows with subtotal text. + LOOP AT <fs_tab> ASSIGNING <fs_stab>. + ADD 1 TO l_row_int. " 1 is for header row. + l_row_int_start = l_row_int. + SORT lt_fcat BY sort_level DESCENDING. + LOOP AT lt_fcat ASSIGNING <fs_sfcat> WHERE is_subtotalled = abap_true. + l_col_int = i_col_int + <fs_sfcat>-position - 1. + l_col_alpha = zcl_excel_common=>convert_column2alpha( l_col_int ). +* Now the cell values + ASSIGN COMPONENT <fs_sfcat>-columnname OF STRUCTURE <fs_stab> TO <fs_fldval>. + IF sy-subrc = 0. + READ TABLE wt_sort_values ASSIGNING <fs_sortv> WITH TABLE KEY fieldname = <fs_sfcat>-columnname. + IF sy-subrc = 0. + ASSIGN <fs_sortv>-value->* TO <fs_sortval>. + IF <fs_sortval> <> <fs_fldval> OR <fs_sortv>-new = abap_true. +* First let's remmember the subtotal values as it has to appear later. + ls_subtotal_rows-row_int = l_row_int. + ls_subtotal_rows-row_int_start = <fs_sortv>-row_int. + ls_subtotal_rows-columnname = <fs_sfcat>-columnname. + INSERT ls_subtotal_rows INTO TABLE wt_subtotal_rows. +* Now let's write the subtotal line + l_cell_value = create_text_subtotal( i_value = <fs_sortval> + i_totals_function = <fs_sfcat>-totals_function ). + wo_worksheet->set_cell( ip_column = l_col_alpha + ip_row = l_row_int + ip_value = l_cell_value + ip_abap_type = cl_abap_typedescr=>typekind_string + ip_style = <fs_sfcat>-style_subtotal ). + lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ). + lo_row_dim->set_outline_level( ip_outline_level = <fs_sfcat>-sort_level ) . + IF <fs_sfcat>-is_collapsed = abap_true. + IF <fs_sfcat>-sort_level > l_hidden. + lo_row_dim->set_visible( ip_visible = abap_false ) . + ENDIF. + lo_row_dim->set_collapsed( ip_collapsed = <fs_sfcat>-is_collapsed ) . + ENDIF. +* Now let's change the key + ADD 1 TO l_row_int. + <fs_sortval> = <fs_fldval>. + <fs_sortv>-new = abap_false. + l_line = <fs_sortv>-sort_level. + LOOP AT wt_sort_values ASSIGNING <fs_sortv> WHERE sort_level >= l_line. + <fs_sortv>-row_int = l_row_int. + ENDLOOP. + ENDIF. + ENDIF. + ENDIF. + ENDLOOP. + ENDLOOP. + ADD 1 TO l_row_int. + l_row_int_start = l_row_int. + SORT lt_fcat BY sort_level DESCENDING. + LOOP AT lt_fcat ASSIGNING <fs_sfcat> WHERE is_subtotalled = abap_true. + l_col_int = i_col_int + <fs_sfcat>-position - 1. + l_col_alpha = zcl_excel_common=>convert_column2alpha( l_col_int ). + READ TABLE wt_sort_values ASSIGNING <fs_sortv> WITH TABLE KEY fieldname = <fs_sfcat>-columnname. + IF sy-subrc = 0. + ASSIGN <fs_sortv>-value->* TO <fs_sortval>. + ls_subtotal_rows-row_int = l_row_int. + ls_subtotal_rows-row_int_start = <fs_sortv>-row_int. + ls_subtotal_rows-columnname = <fs_sfcat>-columnname. + INSERT ls_subtotal_rows INTO TABLE wt_subtotal_rows. +* First let's write the value as it has to appear. + l_cell_value = create_text_subtotal( i_value = <fs_sortval> + i_totals_function = <fs_sfcat>-totals_function ). + wo_worksheet->set_cell( ip_column = l_col_alpha + ip_row = l_row_int + ip_value = l_cell_value + ip_abap_type = cl_abap_typedescr=>typekind_string + ip_style = <fs_sfcat>-style_subtotal ). + + l_sort_level = <fs_sfcat>-sort_level. + lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ). + lo_row_dim->set_outline_level( ip_outline_level = l_sort_level ) . + IF <fs_sfcat>-is_collapsed = abap_true. + IF <fs_sfcat>-sort_level > l_hidden. + lo_row_dim->set_visible( ip_visible = abap_false ) . + ENDIF. + lo_row_dim->set_collapsed( ip_collapsed = <fs_sfcat>-is_collapsed ) . + ENDIF. + ADD 1 TO l_row_int. + ENDIF. + ENDLOOP. +* Let's write the Grand total + l_sort_level = 0. + lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ). + lo_row_dim->set_outline_level( ip_outline_level = l_sort_level ) . +* lo_row_dim->set_collapsed( ip_collapsed = <fs_sfcat>-is_collapsed ) . Not on grand total + + l_text = create_text_subtotal( i_value = 'Grand'(002) + i_totals_function = <fs_sfcat>-totals_function ). + + l_col_alpha_start = zcl_excel_common=>convert_column2alpha( i_col_int ). + wo_worksheet->set_cell( ip_column = l_col_alpha_start + ip_row = l_row_int + ip_value = l_text + ip_abap_type = cl_abap_typedescr=>typekind_string + ip_style = <fs_sfcat>-style_subtotal ). + +* It is better to loop column by column second time around +* Second loop with formular and data. + LOOP AT wt_fieldcatalog ASSIGNING <fs_sfcat>. + l_row_int = i_row_int. + l_col_int = i_col_int + <fs_sfcat>-position - 1. +* Freeze panes + IF <fs_sfcat>-fix_column = abap_true. + ADD 1 TO r_freeze_col. + ENDIF. + l_s_color = abap_true. + l_col_alpha = zcl_excel_common=>convert_column2alpha( l_col_int ). + " First of all write column header + l_cell_value = <fs_sfcat>-scrtext_m. + wo_worksheet->set_cell( ip_column = l_col_alpha + ip_row = l_row_int + ip_value = l_cell_value + ip_abap_type = cl_abap_typedescr=>typekind_string + ip_style = <fs_sfcat>-style_hdr ). + ADD 1 TO l_row_int. + LOOP AT <fs_tab> ASSIGNING <fs_stab>. + l_table_row = sy-tabix. +* Now the cell values + ASSIGN COMPONENT <fs_sfcat>-columnname OF STRUCTURE <fs_stab> TO <fs_fldval>. +* Let's check for subtotal lines + DO. + READ TABLE wt_subtotal_rows TRANSPORTING NO FIELDS WITH TABLE KEY row_int = l_row_int. + IF sy-subrc = 0. + IF <fs_sfcat>-is_subtotalled = abap_false AND + <fs_sfcat>-totals_function IS NOT INITIAL. + DO. + READ TABLE wt_subtotal_rows INTO ls_subtotal_rows WITH TABLE KEY row_int = l_row_int. + IF sy-subrc = 0. + l_row_int_start = ls_subtotal_rows-row_int_start. + l_row_int_end = l_row_int - 1. + + l_formula = create_formular_subtotal( i_row_int_start = l_row_int_start + i_row_int_end = l_row_int_end + i_column = l_col_alpha + i_totals_function = <fs_sfcat>-totals_function ). + wo_worksheet->set_cell( ip_column = l_col_alpha + ip_row = l_row_int + ip_formula = l_formula + ip_style = <fs_sfcat>-style_subtotal ). + IF <fs_sfcat>-is_collapsed = abap_true. + lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ). + lo_row_dim->set_collapsed( ip_collapsed = <fs_sfcat>-is_collapsed ). + IF <fs_sfcat>-sort_level > l_hidden. + lo_row_dim->set_visible( ip_visible = abap_false ) . + ENDIF. + ENDIF. + ADD 1 TO l_row_int. + ELSE. + EXIT. + ENDIF. + ENDDO. + ELSE. + ADD 1 TO l_row_int. + ENDIF. + ELSE. + EXIT. + ENDIF. + ENDDO. +* Let's set the row dimension values + lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ). + lo_row_dim->set_outline_level( ip_outline_level = ws_layout-max_subtotal_level ) . + IF <fs_sfcat>-is_collapsed = abap_true. + lo_row_dim->set_visible( ip_visible = abap_false ) . + lo_row_dim->set_collapsed( ip_collapsed = <fs_sfcat>-is_collapsed ) . + ENDIF. +* Now let's write the cell values + IF ws_layout-is_stripped = abap_true AND l_s_color = abap_true. + l_style = get_color_style( i_row = l_table_row + i_fieldname = <fs_sfcat>-columnname + i_style = <fs_sfcat>-style_stripped ). + wo_worksheet->set_cell( ip_column = l_col_alpha + ip_row = l_row_int + ip_value = <fs_fldval> + ip_style = l_style ). + CLEAR l_s_color. + ELSE. + l_style = get_color_style( i_row = l_table_row + i_fieldname = <fs_sfcat>-columnname + i_style = <fs_sfcat>-style_normal ). + wo_worksheet->set_cell( ip_column = l_col_alpha + ip_row = l_row_int + ip_value = <fs_fldval> + ip_style = l_style ). + l_s_color = abap_true. + ENDIF. + READ TABLE wt_filter TRANSPORTING NO FIELDS WITH TABLE KEY rownumber = l_table_row + columnname = <fs_sfcat>-columnname. + IF sy-subrc = 0. + wo_worksheet->get_cell( EXPORTING + ip_column = l_col_alpha + ip_row = l_row_int + IMPORTING + ep_value = l_cell_value ). + wo_autofilter->set_value( i_column = l_col_int + i_value = l_cell_value ). + ENDIF. + ADD 1 TO l_row_int. + ENDLOOP. +* Let's check for subtotal lines + DO. + READ TABLE wt_subtotal_rows TRANSPORTING NO FIELDS WITH TABLE KEY row_int = l_row_int. + IF sy-subrc = 0. + IF <fs_sfcat>-is_subtotalled = abap_false AND + <fs_sfcat>-totals_function IS NOT INITIAL. + DO. + READ TABLE wt_subtotal_rows INTO ls_subtotal_rows WITH TABLE KEY row_int = l_row_int. + IF sy-subrc = 0. + l_row_int_start = ls_subtotal_rows-row_int_start. + l_row_int_end = l_row_int - 1. + + l_formula = create_formular_subtotal( i_row_int_start = l_row_int_start + i_row_int_end = l_row_int_end + i_column = l_col_alpha + i_totals_function = <fs_sfcat>-totals_function ). + wo_worksheet->set_cell( ip_column = l_col_alpha + ip_row = l_row_int + ip_formula = l_formula + ip_style = <fs_sfcat>-style_subtotal ). + IF <fs_sfcat>-is_collapsed = abap_true. + lo_row_dim = wo_worksheet->get_row_dimension( ip_row = l_row_int ). + lo_row_dim->set_collapsed( ip_collapsed = <fs_sfcat>-is_collapsed ). + ENDIF. + ADD 1 TO l_row_int. + ELSE. + EXIT. + ENDIF. + ENDDO. + ELSE. + ADD 1 TO l_row_int. + ENDIF. + ELSE. + EXIT. + ENDIF. + ENDDO. +* Now let's check for Grand total + IF <fs_sfcat>-is_subtotalled = abap_false AND + <fs_sfcat>-totals_function IS NOT INITIAL. + l_row_int_start = i_row_int + 1. + l_row_int_end = l_row_int - 1. + + l_formula = create_formular_subtotal( i_row_int_start = l_row_int_start + i_row_int_end = l_row_int_end + i_column = l_col_alpha + i_totals_function = <fs_sfcat>-totals_function ). + wo_worksheet->set_cell( ip_column = l_col_alpha + ip_row = l_row_int + ip_formula = l_formula + ip_style = <fs_sfcat>-style_subtotal ). + ENDIF. +* Now let's check for optimized + IF <fs_sfcat>-is_optimized = abap_true. + lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ). + lo_col_dim->set_auto_size( ip_auto_size = abap_true ) . + ENDIF. +* Now let's check for visible + IF <fs_sfcat>-is_hidden = abap_true. + lo_col_dim = wo_worksheet->get_column_dimension( ip_column = l_col_alpha ). + lo_col_dim->set_visible( ip_visible = abap_false ) . + ENDIF. + ENDLOOP. + +endmethod. + + + method OPEN_FILE. + data: l_bytecount type i, + lt_file type solix_tab, + l_dir type string, + l_sep type c. + + field-symbols: <fs_data> type any table. + + assign wo_data->* to <fs_data>. + +* catch zcx_excel . +*endtry. + if wo_excel is bound. + get_file( importing e_bytecount = l_bytecount + et_file = lt_file ) . + + l_dir = create_path( ) . + + cl_gui_frontend_services=>gui_download( exporting bin_filesize = l_bytecount + filename = l_dir + filetype = 'BIN' + changing data_tab = lt_file ). + cl_gui_frontend_services=>execute( + exporting + document = l_dir +* application = +* parameter = +* default_directory = +* maximized = +* minimized = +* synchronous = +* operation = 'OPEN' + exceptions + cntl_error = 1 + error_no_gui = 2 + bad_parameter = 3 + file_not_found = 4 + path_not_found = 5 + file_extension_unknown = 6 + error_execute_failed = 7 + synchronous_failed = 8 + not_supported_by_gui = 9 + ). + if sy-subrc <> 0. + message id sy-msgid type sy-msgty number sy-msgno + with sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. + endif. + + endif. + + +endmethod. + + + method SET_AUTOFILTER_AREA. + DATA: ls_area TYPE zexcel_s_autofilter_area, + l_lines TYPE i, + lt_values TYPE zexcel_t_autofilter_values, + ls_values TYPE zexcel_s_autofilter_values. + +* Let's check for filter. + IF wo_autofilter IS BOUND. + ls_area-row_start = 1. + lt_values = wo_autofilter->get_values( ) . + SORT lt_values BY column ASCENDING. + DESCRIBE TABLE lt_values LINES l_lines. + READ TABLE lt_values INTO ls_values INDEX 1. + IF sy-subrc = 0. + ls_area-col_start = ls_values-column. + ENDIF. + READ TABLE lt_values INTO ls_values INDEX l_lines. + IF sy-subrc = 0. + ls_area-col_end = ls_values-column. + ENDIF. + wo_autofilter->set_filter_area( is_area = ls_area ) . + ENDIF. + +endmethod. + + + + + + method SET_CELL_FORMAT. + DATA: l_format TYPE zexcel_number_format. + + CLEAR r_format. + CASE i_inttype. + WHEN cl_abap_typedescr=>typekind_date. + r_format = wo_worksheet->get_default_excel_date_format( ). + WHEN cl_abap_typedescr=>typekind_time. + r_format = wo_worksheet->get_default_excel_time_format( ). + WHEN cl_abap_typedescr=>typekind_float OR cl_abap_typedescr=>typekind_packed. + IF i_decimals > 0 . + l_format = '#,##0.'. + DO i_decimals TIMES. + CONCATENATE l_format '0' INTO l_format. + ENDDO. + r_format = l_format. + ENDIF. + WHEN cl_abap_typedescr=>typekind_int OR cl_abap_typedescr=>typekind_int1 OR cl_abap_typedescr=>typekind_int2. + r_format = '#,##0'. + ENDCASE. + +endmethod. + + + METHOD set_fieldcatalog. + + DATA: lr_data TYPE REF TO data, + lo_structdescr TYPE REF TO cl_abap_structdescr, + lt_dfies TYPE ddfields, + ls_dfies TYPE dfies, + ls_fieldcatalog TYPE zexcel_s_fieldcatalog. + DATA: ls_fcat TYPE zexcel_s_converter_fcat. + + FIELD-SYMBOLS: <fs_tab> TYPE ANY TABLE. + + ASSIGN wo_data->* TO <fs_tab> . + + CREATE DATA lr_data LIKE LINE OF <fs_tab>. + + lo_structdescr ?= cl_abap_structdescr=>describe_by_data_ref( lr_data ). + + lt_dfies = zcl_excel_common=>describe_structure( io_struct = lo_structdescr ). + + LOOP AT lt_dfies INTO ls_dfies. + MOVE-CORRESPONDING ls_dfies TO ls_fcat. + ls_fcat-columnname = ls_dfies-fieldname. + INSERT ls_fcat INTO TABLE wt_fieldcatalog. + ENDLOOP. + + clean_fieldcatalog( ). + +ENDMETHOD. + + + + METHOD set_option. + + IF ws_indx-begdt IS INITIAL. + ws_indx-begdt = sy-datum. + ENDIF. + + ws_indx-aedat = sy-datum. + ws_indx-usera = sy-uname. + ws_indx-pgmid = sy-cprog. + + EXPORT p1 = is_option TO DATABASE indx(xl) FROM ws_indx ID ws_indx-srtfd. + + IF sy-subrc = 0. + ws_option = is_option. + ENDIF. + +ENDMETHOD. + + + + method WRITE_FILE. + data: l_bytecount type i, + lt_file type solix_tab, + l_dir type string. + + field-symbols: <fs_data> type any table. + + assign wo_data->* to <fs_data>. + +* catch zcx_excel . +*endtry. + if wo_excel is bound. + get_file( importing e_bytecount = l_bytecount + et_file = lt_file ) . + if i_path is initial. + l_dir = create_path( ) . + else. + l_dir = i_path. + endif. + cl_gui_frontend_services=>gui_download( exporting bin_filesize = l_bytecount + filename = l_dir + filetype = 'BIN' + changing data_tab = lt_file ). + endif. +endmethod. + + + + *"* 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 + + + + + + method ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT. + data: lo_alv type REF TO cl_gui_alv_grid. + + try. + lo_alv ?= io_object. + catch cx_sy_move_cast_error . + raise exception type zcx_excel. + endtry. + +endmethod. + + + METHOD zif_excel_converter~create_fieldcatalog. + DATA: lo_alv TYPE REF TO cl_gui_alv_grid. + + TRY. + zif_excel_converter~can_convert_object( io_object = io_object ). + ENDTRY. + + ws_option = is_option. + + lo_alv ?= io_object. + + CLEAR: es_layout, + et_fieldcatalog. + + IF lo_alv IS BOUND. + lo_alv->get_frontend_fieldcatalog( IMPORTING et_fieldcatalog = wt_fcat ). + lo_alv->get_frontend_layout( IMPORTING es_layout = ws_layo ). + lo_alv->get_sort_criteria( IMPORTING et_sort = wt_sort ) . + lo_alv->get_filter_criteria( IMPORTING et_filter = wt_filt ) . + + apply_sort( EXPORTING it_table = it_table + IMPORTING eo_table = eo_table ) . + + get_color( EXPORTING io_table = eo_table + IMPORTING et_colors = et_colors ) . + + get_filter( IMPORTING et_filter = et_filter + CHANGING xo_table = eo_table ) . + + update_catalog( CHANGING cs_layout = es_layout + ct_fieldcatalog = et_fieldcatalog ). + ENDIF. +ENDMETHOD. + + + + *"* 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 + + + + + + method CONSTRUCTOR. + worksheet = io_sheet. +endmethod. + + + + method GET_FILTER_AREA. + + validate_area( ). + + rs_area = filter_area. + +endmethod. + + + + method GET_FILTER_RANGE. + DATA: l_row_start_c TYPE string, + l_row_end_c TYPE string, + l_col_start_c TYPE string, + l_col_end_c TYPE string, + l_value TYPE string. + + validate_area( ). + + l_row_end_c = filter_area-row_end. + CONDENSE l_row_end_c NO-GAPS. + + l_row_start_c = filter_area-row_start. + CONDENSE l_row_start_c NO-GAPS. + + l_col_start_c = zcl_excel_common=>convert_column2alpha( ip_column = filter_area-col_start ) . + l_col_end_c = zcl_excel_common=>convert_column2alpha( ip_column = filter_area-col_end ) . + + CONCATENATE l_col_start_c l_row_start_c ':' l_col_end_c l_row_end_c INTO r_range. + +endmethod. + + + + method GET_FILTER_REFERENCE. + DATA: l_row_start_c TYPE string, + l_row_end_c TYPE string, + l_col_start_c TYPE string, + l_col_end_c TYPE string, + l_value TYPE string. + + validate_area( ). + + l_row_end_c = filter_area-row_end. + CONDENSE l_row_end_c NO-GAPS. + + l_row_start_c = filter_area-row_start. + CONDENSE l_row_start_c NO-GAPS. + + l_col_start_c = zcl_excel_common=>convert_column2alpha( ip_column = filter_area-col_start ) . + l_col_end_c = zcl_excel_common=>convert_column2alpha( ip_column = filter_area-col_end ) . + l_value = worksheet->get_title( ) . + + r_ref = zcl_excel_common=>escape_string( ip_value = l_value ). + + CONCATENATE r_ref '!$' l_col_start_c '$' l_row_start_c ':$' l_col_end_c '$' l_row_end_c INTO r_ref. + +endmethod. + + + + method GET_VALUES. + + rt_filter = values. + +endmethod. + + + + method SET_FILTER_AREA. + + filter_area = is_area. + +endmethod. + + + + + method SET_VALUE. + DATA: ls_values TYPE zexcel_s_autofilter_values. + +* Checks a re missing. + ls_values-column = i_column. + ls_values-value = i_value. + + INSERT ls_values INTO TABLE values. +* Now we need to be sure we don't get the same value again. + DELETE ADJACENT DUPLICATES FROM values COMPARING column value. + +endmethod. + + + + method SET_VALUES. + +* Checks are missing. + values = it_values. + DELETE ADJACENT DUPLICATES FROM values COMPARING column value. + +endmethod. + + + method VALIDATE_AREA. + DATA: l_col TYPE zexcel_cell_column, + l_row TYPE zexcel_cell_row. + + l_row = worksheet->get_highest_row( ) . + l_col = worksheet->get_highest_column( ) . + + IF filter_area IS INITIAL. + filter_area-row_start = 1. + filter_area-col_start = 1. + filter_area-row_end = l_row . + filter_area-col_end = l_col . + ENDIF. + + IF filter_area-row_start < 1. + filter_area-row_start = 1. + ENDIF. + IF filter_area-col_start < 1. + filter_area-col_start = 1. + ENDIF. + IF filter_area-row_end > l_row OR + filter_area-row_end < 1. + filter_area-row_end = l_row. + ENDIF. + IF filter_area-col_end > l_col OR + filter_area-col_end < 1. + filter_area-col_end = l_col. + ENDIF. + IF filter_area-row_start >= filter_area-row_end. + filter_area-row_start = filter_area-row_end - 1. + IF filter_area-row_start < 1. + filter_area-row_start = 1. + filter_area-row_end = 2. + ENDIF. + ENDIF. + IF filter_area-col_start > filter_area-col_end. + filter_area-col_start = filter_area-col_end. + ENDIF. +endmethod. + + + + *"* 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 +TYPES: BEGIN OF ts_objects, + sheet_guid TYPE uuid, + autofilter TYPE REF TO zcl_excel_autofilter, + END OF ts_objects, + + tt_objects TYPE HASHED TABLE OF ts_objects WITH UNIQUE KEY sheet_guid. + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + + ABAP + + + + + + METHOD add. + DATA: ls_autofilters TYPE ts_objects, + l_guid TYPE uuid. + l_guid = io_sheet->get_guid( ) . + READ TABLE autofilters INTO ls_autofilters WITH TABLE KEY sheet_guid = l_guid. + IF sy-subrc = 0. + ro_autofilter = ls_autofilters-autofilter. + ELSE. + CREATE OBJECT ro_autofilter + EXPORTING + io_sheet = io_sheet. + ls_autofilters-autofilter = ro_autofilter. + ls_autofilters-sheet_guid = l_guid. + INSERT ls_autofilters INTO TABLE autofilters . + ENDIF. +ENDMETHOD. + + + method CLEAR. + + REFRESH autofilters. + +endmethod. + + + + + method GET. + + DATA: ls_autofilters TYPE ts_objects. + + READ TABLE autofilters INTO ls_autofilters WITH TABLE KEY sheet_guid = i_sheet_guid. + IF sy-subrc = 0. + ro_autofilter = ls_autofilters-autofilter. + ELSE. + CLEAR ro_autofilter. + ENDIF. + +endmethod. + + + + method IS_EMPTY. + IF autofilters IS INITIAL. + r_empty = abap_true. + ENDIF. +endmethod. + + + + method REMOVE. + DATA: ls_autofilters TYPE ts_objects. + + DELETE autofilters WHERE sheet_guid = i_sheet_guid. + +endmethod. + + + + method SIZE. + DESCRIBE TABLE autofilters LINES r_size. +endmethod. + + + + + *"* 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 +TYPES: BEGIN OF ts_col_converter, + col TYPE lvc_col, + int TYPE lvc_int, + inv TYPE lvc_inv, + fontcolor TYPE zexcel_style_color_argb, + fillcolor TYPE zexcel_style_color_argb, + END OF ts_col_converter, + + tt_col_converter TYPE HASHED TABLE OF ts_col_converter WITH UNIQUE KEY col int inv. + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + + + ABAP + KKBLO + + + + + + + + + + METHOD apply_sort. + DATA: lt_otab TYPE abap_sortorder_tab, + ls_otab TYPE abap_sortorder. + + FIELD-SYMBOLS: <fs_table> TYPE STANDARD TABLE, + <fs_sort> TYPE lvc_s_sort. + + CREATE DATA eo_table LIKE it_table. + ASSIGN eo_table->* TO <fs_table>. + + <fs_table> = it_table. + + SORT wt_sort BY spos. + LOOP AT wt_sort ASSIGNING <fs_sort>. + IF <fs_sort>-up = abap_true. + ls_otab-name = <fs_sort>-fieldname. + ls_otab-descending = abap_false. +* ls_otab-astext = abap_true. " not only text fields + INSERT ls_otab INTO TABLE lt_otab. + ENDIF. + IF <fs_sort>-down = abap_true. + ls_otab-name = <fs_sort>-fieldname. + ls_otab-descending = abap_true. +* ls_otab-astext = abap_true. " not only text fields + INSERT ls_otab INTO TABLE lt_otab. + ENDIF. + ENDLOOP. + IF lt_otab IS NOT INITIAL. + SORT <fs_table> BY (lt_otab). + ENDIF. + +ENDMETHOD. + + + method CLASS_CONSTRUCTOR. +* let's fill the color conversion routines. + DATA: ls_color TYPE ts_col_converter. +* 0 all combination the same + ls_color-col = 0. + ls_color-int = 0. + ls_color-inv = 0. + ls_color-fontcolor = 'FF000000'. " 000 000 000 Black + ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 0. + ls_color-int = 0. + ls_color-inv = 1. + ls_color-fontcolor = 'FF000000'. " 000 000 000 Black + ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 0. + ls_color-int = 1. + ls_color-inv = 0. + ls_color-fontcolor = 'FF000000'. " 000 000 000 Black + ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 0. + ls_color-int = 1. + ls_color-inv = 1. + ls_color-fontcolor = 'FF000000'. " 000 000 000 Black + ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White + INSERT ls_color INTO TABLE wt_colors. + +* Blue + ls_color-col = 1. + ls_color-int = 0. + ls_color-inv = 0. + ls_color-fontcolor = 'FF000000'. " 000 000 000 Black + ls_color-fillcolor = 'FFB0E4FC'. " 176 228 252 blue + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 1. + ls_color-int = 0. + ls_color-inv = 1. + ls_color-fontcolor = 'FFB0E4FC'. " 176 228 252 blue + ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 1. + ls_color-int = 1. + ls_color-inv = 0. + ls_color-fontcolor = 'FF000000'. " 000 000 000 Black + ls_color-fillcolor = 'FF5FCBFE'. " 095 203 254 Int blue + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 1. + ls_color-int = 1. + ls_color-inv = 1. + ls_color-fontcolor = 'FF5FCBFE'. " 095 203 254 + ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 + INSERT ls_color INTO TABLE wt_colors. + +* Gray + ls_color-col = 2. + ls_color-int = 0. + ls_color-inv = 0. + ls_color-fontcolor = 'FF000000'. + ls_color-fillcolor = 'FFE5EAF0'. " 229 234 240 gray + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 2. + ls_color-int = 0. + ls_color-inv = 1. + ls_color-fontcolor = 'FFE5EAF0'. " 229 234 240 gray + ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 2. + ls_color-int = 1. + ls_color-inv = 0. + ls_color-fontcolor = 'FF000000'. " 000 000 000 Black + ls_color-fillcolor = 'FFD8E8F4'. " 216 234 244 int gray + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 2. + ls_color-int = 1. + ls_color-inv = 1. + ls_color-fontcolor = 'FFD8E8F4'. " 216 234 244 int gray + ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White + INSERT ls_color INTO TABLE wt_colors. + +*Yellow + ls_color-col = 3. + ls_color-int = 0. + ls_color-inv = 0. + ls_color-fontcolor = 'FF000000'. " 000 000 000 Black + ls_color-fillcolor = 'FFFEFEB8'. " 254 254 184 yellow + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 3. + ls_color-int = 0. + ls_color-inv = 1. + ls_color-fontcolor = 'FFFEFEB8'. " 254 254 184 yellow + ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 3. + ls_color-int = 1. + ls_color-inv = 0. + ls_color-fontcolor = 'FF000000'. " 000 000 000 Black + ls_color-fillcolor = 'FFF9ED5D'. " 249 237 093 int yellow + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 3. + ls_color-int = 1. + ls_color-inv = 1. + ls_color-fontcolor = 'FFF9ED5D'. " 249 237 093 int yellow + ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White + INSERT ls_color INTO TABLE wt_colors. + +* light blue + ls_color-col = 4. + ls_color-int = 0. + ls_color-inv = 0. + ls_color-fontcolor = 'FF000000'. " 000 000 000 Black + ls_color-fillcolor = 'FFCEE7FB'. " 206 231 251 light blue + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 4. + ls_color-int = 0. + ls_color-inv = 1. + ls_color-fontcolor = 'FFCEE7FB'. " 206 231 251 light blue + ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 4. + ls_color-int = 1. + ls_color-inv = 0. + ls_color-fontcolor = 'FF000000'. " 000 000 000 Black + ls_color-fillcolor = 'FF9ACCEF'. " 154 204 239 int light blue + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 4. + ls_color-int = 1. + ls_color-inv = 1. + ls_color-fontcolor = 'FF9ACCEF'. " 154 204 239 int light blue + ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White + INSERT ls_color INTO TABLE wt_colors. + +* Green + ls_color-col = 5. + ls_color-int = 0. + ls_color-inv = 0. + ls_color-fontcolor = 'FF000000'. " 000 000 000 Black + ls_color-fillcolor = 'FFCEF8AE'. " 206 248 174 Green + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 5. + ls_color-int = 0. + ls_color-inv = 1. + ls_color-fontcolor = 'FFCEF8AE'. " 206 248 174 Green + ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 5. + ls_color-int = 1. + ls_color-inv = 0. + ls_color-fontcolor = 'FF000000'. " 000 000 000 Black + ls_color-fillcolor = 'FF7AC769'. " 122 199 105 int Green + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 5. + ls_color-int = 1. + ls_color-inv = 1. + ls_color-fontcolor = 'FF7AC769'. " 122 199 105 int Green + ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White + INSERT ls_color INTO TABLE wt_colors. + +* Red + ls_color-col = 6. + ls_color-int = 0. + ls_color-inv = 0. + ls_color-fontcolor = 'FF000000'. " 000 000 000 Black + ls_color-fillcolor = 'FFFDBBBC'. " 253 187 188 Red + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 6. + ls_color-int = 0. + ls_color-inv = 1. + ls_color-fontcolor = 'FFFDBBBC'. " 253 187 188 Red + ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 6. + ls_color-int = 1. + ls_color-inv = 0. + ls_color-fontcolor = 'FF000000'. " 000 000 000 Black + ls_color-fillcolor = 'FFFB6B6B'. " 251 107 107 int Red + INSERT ls_color INTO TABLE wt_colors. + + ls_color-col = 6. + ls_color-int = 1. + ls_color-inv = 1. + ls_color-fontcolor = 'FFFB6B6B'. " 251 107 107 int Red + ls_color-fillcolor = 'FFFFFFFF'. " 255 255 255 White + INSERT ls_color INTO TABLE wt_colors. + +endmethod. + + + + + METHOD get_color. + DATA: ls_con_col TYPE zexcel_s_converter_col, + ls_color TYPE ts_col_converter, + l_line TYPE i, + l_color(4) TYPE c. + FIELD-SYMBOLS: <fs_tab> TYPE STANDARD TABLE, + <fs_stab> TYPE ANY, + <fs> TYPE ANY, + <fs_tcol> TYPE lvc_t_scol, + <fs_scol> TYPE lvc_s_scol. + +* Loop trough the table to set the color properties of each line. The color properties field is +* Char 4 and the characters is set as follows: +* Char 1 = C = This is a color property +* Char 2 = 6 = Color code (1 - 7) +* Char 3 = Intensified on/of = 1 = on +* Char 4 = Inverse display = 0 = of + + ASSIGN io_table->* TO <fs_tab>. + + IF ws_layo-info_fname IS NOT INITIAL OR + ws_layo-ctab_fname IS NOT INITIAL. + LOOP AT <fs_tab> ASSIGNING <fs_stab>. + l_line = sy-tabix. + IF ws_layo-info_fname IS NOT INITIAL. + ASSIGN COMPONENT ws_layo-info_fname OF STRUCTURE <fs_stab> TO <fs>. + IF sy-subrc = 0. + IF <fs> IS NOT INITIAL. + l_color = <fs>. + IF l_color(1) = 'C'. + READ TABLE wt_colors INTO ls_color WITH TABLE KEY col = l_color+1(1) + int = l_color+2(1) + inv = l_color+3(1). + IF sy-subrc = 0. + ls_con_col-rownumber = l_line. + ls_con_col-columnname = space. + ls_con_col-fontcolor = ls_color-fontcolor. + ls_con_col-fillcolor = ls_color-fillcolor. + INSERT ls_con_col INTO TABLE et_colors. + ENDIF. + ENDIF. + ENDIF. + ENDIF. + ENDIF. + IF ws_layo-ctab_fname IS NOT INITIAL. + ASSIGN COMPONENT ws_layo-ctab_fname OF STRUCTURE <fs_stab> TO <fs_tcol>. + IF sy-subrc = 0. + LOOP AT <fs_tcol> ASSIGNING <fs_scol>. + READ TABLE wt_colors INTO ls_color WITH TABLE KEY col = <fs_scol>-color-col + int = <fs_scol>-color-int + inv = <fs_scol>-color-inv. + IF sy-subrc = 0. + ls_con_col-rownumber = l_line. + ls_con_col-columnname = <fs_scol>-fname. + ls_con_col-fontcolor = ls_color-fontcolor. + ls_con_col-fillcolor = ls_color-fillcolor. + ls_con_col-nokeycol = <fs_scol>-nokeycol. + INSERT ls_con_col INTO TABLE et_colors. + ENDIF. + ENDLOOP. + ENDIF. + ENDIF. + ENDLOOP. + ENDIF. +ENDMETHOD. + + + + + METHOD get_filter. + DATA: ls_filt TYPE lvc_s_filt, + l_line TYPE i, + ls_filter TYPE zexcel_s_converter_fil. + DATA: lo_addit TYPE REF TO cl_abap_elemdescr, + lt_components_tab TYPE cl_abap_structdescr=>component_table, + ls_components TYPE abap_componentdescr, + lo_table TYPE REF TO cl_abap_tabledescr, + lo_struc TYPE REF TO cl_abap_structdescr, + lo_trange TYPE REF TO data, + lo_srange TYPE REF TO data, + lo_ltabdata TYPE REF TO data. + + FIELD-SYMBOLS: <fs_tab> TYPE STANDARD TABLE, + <fs_ltab> TYPE STANDARD TABLE, + <fs_stab> TYPE ANY, + <fs> TYPE ANY, + <fs1> TYPE ANY, + <fs_srange> TYPE ANY, + <fs_trange> TYPE STANDARD TABLE. + + IF ws_option-filter = abap_false. + REFRESH et_filter. + RETURN. + ENDIF. + + ASSIGN xo_table->* TO <fs_tab>. + + CREATE DATA lo_ltabdata LIKE <fs_tab>. + ASSIGN lo_ltabdata->* TO <fs_ltab>. + + LOOP AT wt_filt INTO ls_filt. + LOOP AT <fs_tab> ASSIGNING <fs_stab>. + l_line = sy-tabix. + ASSIGN COMPONENT ls_filt-fieldname OF STRUCTURE <fs_stab> TO <fs>. + IF sy-subrc = 0. + IF l_line = 1. + REFRESH lt_components_tab. + ls_components-name = 'SIGN'. + lo_addit ?= cl_abap_typedescr=>describe_by_data( ls_filt-sign ). + ls_components-type = lo_addit . + INSERT ls_components INTO TABLE lt_components_tab. + ls_components-name = 'OPTION'. + lo_addit ?= cl_abap_typedescr=>describe_by_data( ls_filt-option ). + ls_components-type = lo_addit . + INSERT ls_components INTO TABLE lt_components_tab. + ls_components-name = 'LOW'. + lo_addit ?= cl_abap_typedescr=>describe_by_data( <fs> ). + ls_components-type = lo_addit . + INSERT ls_components INTO TABLE lt_components_tab. + ls_components-name = 'HIGH'. + lo_addit ?= cl_abap_typedescr=>describe_by_data( <fs> ). + ls_components-type = lo_addit . + INSERT ls_components INTO TABLE lt_components_tab. + "create new line type + TRY. + lo_struc = cl_abap_structdescr=>create( p_components = lt_components_tab + p_strict = abap_false ). + CATCH cx_sy_struct_creation. + CONTINUE. + ENDTRY. + lo_table = cl_abap_tabledescr=>create( lo_struc ). + + CREATE DATA lo_trange TYPE HANDLE lo_table. + CREATE DATA lo_srange TYPE HANDLE lo_struc. + + ASSIGN lo_trange->* TO <fs_trange>. + ASSIGN lo_srange->* TO <fs_srange>. + ENDIF. + REFRESH <fs_trange>. + ASSIGN COMPONENT 'SIGN' OF STRUCTURE <fs_srange> TO <fs1>. + <fs1> = ls_filt-sign. + ASSIGN COMPONENT 'OPTION' OF STRUCTURE <fs_srange> TO <fs1>. + <fs1> = ls_filt-option. + ASSIGN COMPONENT 'LOW' OF STRUCTURE <fs_srange> TO <fs1>. + <fs1> = ls_filt-low. + ASSIGN COMPONENT 'HIGH' OF STRUCTURE <fs_srange> TO <fs1>. + <fs1> = ls_filt-high. + INSERT <fs_srange> INTO TABLE <fs_trange>. + IF <fs> IN <fs_trange>. + IF ws_option-filter = abap_true. + ls_filter-rownumber = l_line. + ls_filter-columnname = ls_filt-fieldname. + INSERT ls_filter INTO TABLE et_filter. + ELSE. + INSERT <fs_stab> INTO TABLE <fs_ltab>. + ENDIF. + ENDIF. + ENDIF. + ENDLOOP. + IF ws_option-filter = abap_undefined. + <fs_tab> = <fs_ltab>. + REFRESH <fs_ltab>. + ENDIF. + ENDLOOP. + +ENDMETHOD. + + + + + METHOD update_catalog. + DATA: ls_fieldcatalog TYPE zexcel_s_converter_fcat, + ls_ref TYPE salv_s_ddic_reference, + ls_fcat TYPE lvc_s_fcat, + ls_sort TYPE lvc_s_sort, + l_decimals TYPE lvc_decmls. + + FIELD-SYMBOLS: <fs_scat> TYPE zexcel_s_converter_fcat. + + IF ws_layo-zebra IS NOT INITIAL. + cs_layout-is_stripped = abap_true. + ENDIF. + IF ws_layo-no_keyfix IS INITIAL OR + ws_layo-no_keyfix = '0'. + cs_layout-is_fixed = abap_true. + ENDIF. + + LOOP AT wt_fcat INTO ls_fcat. + CLEAR: ls_fieldcatalog, + l_decimals. + CASE ws_option-hidenc. + WHEN abap_false. " We make hiden columns visible + CLEAR ls_fcat-no_out. + WHEN abap_true. +* We convert column and hide it. + WHEN abap_undefined. "We don't convert hiden columns + IF ls_fcat-no_out = abap_true. + ls_fcat-tech = abap_true. + ENDIF. + ENDCASE. + IF ls_fcat-tech = abap_false. + ls_fieldcatalog-tabname = ls_fcat-tabname. + ls_fieldcatalog-fieldname = ls_fcat-fieldname . + ls_fieldcatalog-columnname = ls_fcat-fieldname . + ls_fieldcatalog-position = ls_fcat-col_pos. + ls_fieldcatalog-col_id = ls_fcat-col_id. + ls_fieldcatalog-convexit = ls_fcat-convexit. + ls_fieldcatalog-inttype = ls_fcat-inttype. + ls_fieldcatalog-scrtext_s = ls_fcat-scrtext_s . + ls_fieldcatalog-scrtext_m = ls_fcat-scrtext_m . + ls_fieldcatalog-scrtext_l = ls_fcat-scrtext_l. + l_decimals = ls_fcat-decimals_o. + IF l_decimals IS NOT INITIAL. + ls_fieldcatalog-decimals = l_decimals. + ELSE. + ls_fieldcatalog-decimals = ls_fcat-decimals . + ENDIF. + CASE ws_option-subtot. + WHEN abap_false. " We ignore subtotals + CLEAR ls_fcat-do_sum. + WHEN abap_true. " We convert subtotals and detail + + WHEN abap_undefined. " We should only take subtotals and displayed detail +* for now abap_true + ENDCASE. + CASE ls_fcat-do_sum. + WHEN abap_true. + ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_sum. + WHEN 'A'. + ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_min. + WHEN 'B' . + ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_max. + WHEN 'C' . + ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_average. + WHEN OTHERS. + CLEAR ls_fieldcatalog-totals_function . + ENDCASE. + ls_fieldcatalog-fix_column = ls_fcat-fix_column. + IF ws_layo-cwidth_opt IS INITIAL. + IF ls_fcat-col_opt IS NOT INITIAL. + ls_fieldcatalog-is_optimized = abap_true. + ENDIF. + ELSE. + ls_fieldcatalog-is_optimized = abap_true. + ENDIF. + IF ls_fcat-no_out IS NOT INITIAL. + ls_fieldcatalog-is_hidden = abap_true. + ls_fieldcatalog-position = ls_fieldcatalog-col_id. " We hide based on orginal data structure + ENDIF. +* Alignment in each cell + CASE ls_fcat-just. + WHEN 'R'. + ls_fieldcatalog-alignment = zcl_excel_style_alignment=>c_horizontal_right. + WHEN 'L'. + ls_fieldcatalog-alignment = zcl_excel_style_alignment=>c_horizontal_left. + WHEN 'C'. + ls_fieldcatalog-alignment = zcl_excel_style_alignment=>c_horizontal_center. + WHEN OTHERS. + CLEAR ls_fieldcatalog-alignment. + ENDCASE. +* Check for subtotals. + READ TABLE wt_sort INTO ls_sort WITH KEY fieldname = ls_fcat-fieldname. + IF sy-subrc = 0 AND ws_option-subtot <> abap_false. + ls_fieldcatalog-sort_level = 0 . +* IF ls_fieldcatalog-totals_function IS INITIAL. " Not clear why not +* CLEAR ls_fieldcatalog-is_subtotalled. +* ELSE. + ls_fieldcatalog-is_subtotalled = ls_sort-subtot. +* ENDIF. + ls_fieldcatalog-is_collapsed = ls_sort-expa. + IF ls_fieldcatalog-is_subtotalled = abap_true. + ls_fieldcatalog-sort_level = ls_sort-spos. + ls_fieldcatalog-totals_function = zcl_excel_table=>totals_function_sum. " we need function for text + ENDIF. + ENDIF. + APPEND ls_fieldcatalog TO ct_fieldcatalog. + ENDIF. + ENDLOOP. + + SORT ct_fieldcatalog BY sort_level ASCENDING. + cs_layout-max_subtotal_level = 0. + LOOP AT ct_fieldcatalog ASSIGNING <fs_scat> WHERE sort_level > 0. + cs_layout-max_subtotal_level = cs_layout-max_subtotal_level + 1. + <fs_scat>-sort_level = cs_layout-max_subtotal_level. + ENDLOOP. + +ENDMETHOD. + + + + *"* 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 + + + + + + METHOD ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT. + + DATA: lo_result TYPE REF TO cl_salv_ex_result_data_table. + + TRY. + lo_result ?= io_object. + CATCH cx_sy_move_cast_error . + RAISE EXCEPTION TYPE zcx_excel. + ENDTRY. + +ENDMETHOD. + + + METHOD zif_excel_converter~create_fieldcatalog. + DATA: lo_result TYPE REF TO cl_salv_ex_result_data_table, + lo_ex_cm TYPE REF TO cl_salv_ex_cm, + lo_data TYPE REF TO data. + + FIELD-SYMBOLS: <fs_table> TYPE STANDARD TABLE. + + TRY. + zif_excel_converter~can_convert_object( io_object = io_object ). + ENDTRY. + + ws_option = is_option. + + lo_result ?= io_object. + + CLEAR: es_layout, + et_fieldcatalog. + + IF lo_result IS BOUND. + lo_data = get_table( io_object = lo_result->r_model->r_data ). + IF lo_data IS BOUND. + ASSIGN lo_data->* TO <fs_table> . + + lo_ex_cm ?= lo_result->r_model->r_model. + ws_layo = lo_ex_cm->s_layo. +* T_DRDN Instance Attribute Public Type LVC_T_DROP + wt_fcat = lo_ex_cm->t_fcat. + wt_filt = lo_ex_cm->t_filt. +* T_HYPE Instance Attribute Public Type LVC_T_HYPE +* T_SELECTED_CELLS Instance Attribute Public Type LVC_T_CELL +* T_SELECTED_COLUMNS Instance Attribute Public Type LVC_T_COL + wt_sort = lo_ex_cm->t_sort. + + apply_sort( EXPORTING it_table = <fs_table> + IMPORTING eo_table = eo_table ) . + + get_color( EXPORTING io_table = eo_table + IMPORTING et_colors = et_colors ) . + + get_filter( IMPORTING et_filter = et_filter + CHANGING xo_table = eo_table ) . + + update_catalog( CHANGING cs_layout = es_layout + ct_fieldcatalog = et_fieldcatalog ). + else. +* We have a problem and should stop here. + ENDIF. + ENDIF. +ENDMETHOD. + + + + *"* 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 + + + + + method GET_TABLE. + DATA: lo_object TYPE REF TO object, + ls_seoclass TYPE seoclass, + l_method TYPE string. + + SELECT SINGLE * INTO ls_seoclass + FROM seoclass + WHERE clsname = 'IF_SALV_BS_DATA_SOURCE'. + + IF sy-subrc = 0. + l_method = 'GET_TABLE_REF'. + lo_object ?= io_object. + CALL METHOD lo_object->(l_method) + RECEIVING + value = ro_data. + ELSE. + l_method = 'GET_REF_TO_TABLE'. + lo_object ?= io_object. + CALL METHOD lo_object->(l_method) + RECEIVING + value = ro_data. + ENDIF. + +endmethod. + + + + *"* 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 + + + + + + + + + METHOD ZIF_EXCEL_CONVERTER~CAN_CONVERT_OBJECT. + + DATA: lo_result TYPE REF TO cl_salv_wd_result_data_table. + + TRY. + lo_result ?= io_object. + CATCH cx_sy_move_cast_error . + RAISE EXCEPTION TYPE zcx_excel. + ENDTRY. + +ENDMETHOD. + + + METHOD zif_excel_converter~create_fieldcatalog. + DATA: lo_result TYPE REF TO cl_salv_wd_result_data_table, + lo_data TYPE REF TO data. + + FIELD-SYMBOLS: <fs_table> TYPE STANDARD TABLE. + + TRY. + zif_excel_converter~can_convert_object( io_object = io_object ). + ENDTRY. + + ws_option = is_option. + + lo_result ?= io_object. + + CLEAR: es_layout, + et_fieldcatalog. + + break rturnheim. + + IF lo_result IS BOUND. + lo_data = get_table( io_object = lo_result->r_model->r_data ). + IF lo_data IS BOUND. + ASSIGN lo_data->* TO <fs_table> . + + wo_config ?= lo_result->r_model->r_model. + + IF wo_config IS BOUND. + wt_fields = wo_config->if_salv_wd_field_settings~get_fields( ) . + wt_columns = wo_config->if_salv_wd_column_settings~get_columns( ) . + ENDIF. + + create_wt_fcat( io_table = lo_data ). + create_wt_sort( ). + create_wt_filt( ). + + apply_sort( EXPORTING it_table = <fs_table> + IMPORTING eo_table = eo_table ) . + +* get_color( EXPORTING io_table = eo_table +* IMPORTING et_colors = et_colors ) . + + get_filter( IMPORTING et_filter = et_filter + CHANGING xo_table = eo_table ) . + + update_catalog( CHANGING cs_layout = es_layout + ct_fieldcatalog = et_fieldcatalog ). + ELSE. +* We have a problem and should stop here + ENDIF. + ENDIF. +ENDMETHOD. + + + + METHOD create_wt_fcat. + DATA: lr_data TYPE REF TO data, + lo_structdescr TYPE REF TO cl_abap_structdescr, + lt_dfies TYPE ddfields, + ls_dfies TYPE dfies, + lv_sytabix TYPE sytabix. + + DATA: ls_fcat TYPE lvc_s_fcat. + + FIELD-SYMBOLS: <fs_tab> TYPE ANY TABLE. + + ASSIGN io_table->* TO <fs_tab> . + CREATE DATA lr_data LIKE LINE OF <fs_tab>. + + lo_structdescr ?= cl_abap_structdescr=>describe_by_data_ref( lr_data ). + + lt_dfies = zcl_excel_common=>describe_structure( io_struct = lo_structdescr ). + + loop at lt_dfies into ls_dfies. + MOVE-CORRESPONDING ls_dfies TO ls_fcat. +* ls_fcat-columnname = ls_dfies-fieldname. + ls_fcat-col_pos = ls_dfies-position. + ls_fcat-key = ls_dfies-keyflag. + get_fields_info( CHANGING xs_fcat = ls_fcat ) . + + ls_fcat-col_opt = abap_true. + + get_columns_info( CHANGING xs_fcat = ls_fcat ) . + + INSERT ls_fcat INTO TABLE wt_fcat. + endloop. + +ENDMETHOD. + + + METHOD create_wt_filt. +* No neeed for superclass. +* Only for WD + DATA: lt_otab TYPE abap_sortorder_tab, + ls_otab TYPE abap_sortorder. + DATA: lt_filters TYPE salv_wd_t_filter_rule_ref, + ls_filt TYPE lvc_s_filt. + + FIELD-SYMBOLS: <fs_fields> TYPE salv_wd_s_field_ref, + <fs_filter> TYPE salv_wd_s_filter_rule_ref. + + LOOP AT wt_fields ASSIGNING <fs_fields>. + REFRESH lt_filters. + lt_filters = <fs_fields>-r_field->if_salv_wd_filter~get_filter_rules( ) . + LOOP AT lt_filters ASSIGNING <fs_filter>. + ls_filt-fieldname = <fs_fields>-fieldname. + IF <fs_filter>-r_filter_rule->get_included( ) = abap_true. + ls_filt-sign = 'I'. + ELSE. + ls_filt-sign = 'E'. + ENDIF. + ls_filt-option = <fs_filter>-r_filter_rule->get_operator( ). + ls_filt-high = <fs_filter>-r_filter_rule->get_high_value( ) . + ls_filt-low = <fs_filter>-r_filter_rule->get_low_value( ) . + INSERT ls_filt INTO TABLE wt_filt. + ENDLOOP. + ENDLOOP. + +ENDMETHOD. + + + METHOD create_wt_sort. + DATA: lo_sort TYPE REF TO cl_salv_wd_sort_rule, + l_sort_order TYPE salv_wd_constant, + ls_sort TYPE lvc_s_sort. + + FIELD-SYMBOLS: <fs_fields> TYPE salv_wd_s_field_ref. + + LOOP AT wt_fields ASSIGNING <fs_fields>. + lo_sort = <fs_fields>-r_field->if_salv_wd_sort~get_sort_rule( ) . + IF lo_sort IS BOUND. + l_sort_order = lo_sort->get_sort_order( ). + IF l_sort_order <> if_salv_wd_c_sort=>sort_order. + CLEAR ls_sort. + ls_sort-spos = lo_sort->get_sort_position( ). + ls_sort-fieldname = <fs_fields>-fieldname. +* ls_sort-GROUP + ls_sort-subtot = lo_sort->get_group_aggregation( ). +* ls_sort-COMP +* ls_sort-EXPA +* ls_sort-SELTEXT +* ls_sort-OBLIGATORY +* ls_sort-LEVEL +* ls_sort-NO_OUT + IF l_sort_order = if_salv_wd_c_sort=>sort_order_ascending. + ls_sort-up = abap_true. + ELSE. + ls_sort-down = abap_true. + ENDIF. + INSERT ls_sort INTO TABLE wt_sort. + ENDIF. + ENDIF. + ENDLOOP. + +ENDMETHOD. + + + + METHOD get_columns_info. + DATA: l_numc2 TYPE salv_wd_constant. + + + FIELD-SYMBOLS: <fs_column> TYPE salv_wd_s_column_ref. + + READ TABLE wt_columns ASSIGNING <fs_column> WITH KEY id = xs_fcat-fieldname . + IF sy-subrc = 0. + xs_fcat-col_pos = <fs_column>-r_column->get_position( ) . + l_numc2 = <fs_column>-r_column->get_fixed_position( ). + IF l_numc2 = '02'. + xs_fcat-fix_column = abap_true . + ENDIF. + l_numc2 = <fs_column>-r_column->get_visible( ). + IF l_numc2 = '01'. + xs_fcat-no_out = abap_true . + ENDIF. + ENDIF. + +ENDMETHOD. + + + + METHOD get_fields_info. + DATA: lo_aggr TYPE REF TO cl_salv_wd_aggr_rule, + l_aggrtype TYPE salv_wd_constant. + + FIELD-SYMBOLS: <fs_fields> TYPE salv_wd_s_field_ref. + + READ TABLE wt_fields ASSIGNING <fs_fields> WITH KEY fieldname = xs_fcat-fieldname. + IF sy-subrc = 0. + lo_aggr = <fs_fields>-r_field->if_salv_wd_aggr~get_aggr_rule( ) . + IF lo_aggr IS BOUND. + l_aggrtype = lo_aggr->get_aggregation_type( ) . + CASE l_aggrtype. + WHEN if_salv_wd_c_aggregation=>aggrtype_total. + xs_fcat-do_sum = abap_true. + WHEN if_salv_wd_c_aggregation=>aggrtype_minimum. + xs_fcat-do_sum = 'A'. + WHEN if_salv_wd_c_aggregation=>aggrtype_maximum . + xs_fcat-do_sum = 'B'. + WHEN if_salv_wd_c_aggregation=>aggrtype_average . + xs_fcat-do_sum = 'C'. + WHEN OTHERS. + CLEAR xs_fcat-do_sum . + ENDCASE. + ENDIF. + ENDIF. + +ENDMETHOD. + + + + *"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations + *"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + + + + + + + + method LOAD_VBAPROJECT. + + DATA lv_content TYPE xstring. + + lv_content = me->get_from_zip_archive( ip_path ). + + ip_excel->zif_excel_book_vba_project~set_vbaproject( lv_content ). + +endmethod. + + + method LOAD_WORKBOOK. + super->load_workbook( EXPORTING iv_workbook_full_filename = iv_workbook_full_filename + io_excel = io_excel ). + + CONSTANTS: lc_vba_project TYPE string VALUE 'http://schemas.microsoft.com/office/2006/relationships/vbaProject'. + + DATA: rels_workbook_path TYPE string, + rels_workbook TYPE REF TO if_ixml_document, + path TYPE string, + node TYPE REF TO if_ixml_element, + workbook TYPE REF TO if_ixml_document, + stripped_name TYPE chkfile, + dirname TYPE string, + relationship TYPE t_relationship, + fileversion TYPE t_fileversion, + workbookpr TYPE t_workbookpr. + + FIELD-SYMBOLS: <worksheet> TYPE t_relationship. + + CALL FUNCTION 'TRINT_SPLIT_FILE_AND_PATH' + EXPORTING + full_name = iv_workbook_full_filename + IMPORTING + stripped_name = stripped_name + file_path = dirname. + + " Read Workbook Relationships + CONCATENATE dirname '_rels/' stripped_name '.rels' + INTO rels_workbook_path. + + rels_workbook = me->get_ixml_from_zip_archive( rels_workbook_path ). + + node ?= rels_workbook->find_from_name( 'Relationship' ). + WHILE node IS BOUND. + me->fill_struct_from_attributes( EXPORTING ip_element = node CHANGING cp_structure = relationship ). + + CASE relationship-type. + WHEN lc_vba_project. + " Read VBA binary + CONCATENATE dirname relationship-target INTO path. + me->load_vbaproject( ip_path = path + ip_excel = io_excel ). + WHEN OTHERS. + ENDCASE. + + node ?= node->get_next( ). + ENDWHILE. + + " Read Workbook codeName + workbook = me->get_ixml_from_zip_archive( iv_workbook_full_filename ). + node ?= workbook->find_from_name( 'fileVersion' ). + IF node IS BOUND. + + fill_struct_from_attributes( EXPORTING ip_element = node + CHANGING cp_structure = fileversion ). + + io_excel->zif_excel_book_vba_project~set_codename( fileversion-codename ). + ENDIF. + + " Read Workbook codeName + workbook = me->get_ixml_from_zip_archive( iv_workbook_full_filename ). + node ?= workbook->find_from_name( 'workbookPr' ). + IF node IS BOUND. + + fill_struct_from_attributes( EXPORTING ip_element = node + CHANGING cp_structure = workbookpr ). + + io_excel->zif_excel_book_vba_project~set_codename_pr( workbookpr-codename ). + ENDIF. + +endmethod. + + + method LOAD_WORKSHEET. + + super->load_worksheet( EXPORTING ip_path = ip_path + io_worksheet = io_worksheet ). + + DATA: path TYPE string, + node TYPE REF TO if_ixml_element, + worksheet TYPE REF TO if_ixml_document, + sheetpr TYPE t_sheetpr. + + +* " Read Workbook codeName +* workbook = me->get_ixml_from_zip_archive( ip_path ). +* node ?= workbook->find_from_name( 'fileVersion' ). +* IF node IS BOUND. +* +* fill_struct_from_attributes( EXPORTING ip_element = node +* CHANGING cp_structure = fileversion ). +* +* IO_WORKSHEET->zif_excel_book_vba_project~set_codename( fileversion-codename ). +* ENDIF. + + " Read Workbook codeName + worksheet = me->get_ixml_from_zip_archive( ip_path ). + node ?= worksheet->find_from_name( 'sheetPr' ). + IF node IS BOUND. + + fill_struct_from_attributes( EXPORTING ip_element = node + CHANGING cp_structure = sheetpr ). + + io_worksheet->zif_excel_sheet_vba_project~set_codename_pr( sheetpr-codename ). + ENDIF. +endmethod. + + + + *"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations + *"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + + + *"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations + *"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + + ABAP + + + + method CONSTRUCTOR. + " default Excel palette based on + " http://msdn.microsoft.com/en-us/library/documentformat.openxml.spreadsheet.indexedcolors.aspx + + APPEND '00000000' TO colors. + APPEND '00FFFFFF' TO colors. + APPEND '00FF0000' TO colors. + APPEND '0000FF00' TO colors. + APPEND '000000FF' TO colors. + APPEND '00FFFF00' TO colors. + APPEND '00FF00FF' TO colors. + APPEND '0000FFFF' TO colors. + APPEND '00000000' TO colors. + APPEND '00FFFFFF' TO colors. + + APPEND '00FF0000' TO colors. + APPEND '0000FF00' TO colors. + APPEND '000000FF' TO colors. + APPEND '00FFFF00' TO colors. + APPEND '00FF00FF' TO colors. + APPEND '0000FFFF' TO colors. + APPEND '00800000' TO colors. + APPEND '00008000' TO colors. + APPEND '00000080' TO colors. + APPEND '00808000' TO colors. + + APPEND '00800080' TO colors. + APPEND '00008080' TO colors. + APPEND '00C0C0C0' TO colors. + APPEND '00808080' TO colors. + APPEND '009999FF' TO colors. + APPEND '00993366' TO colors. + APPEND '00FFFFCC' TO colors. + APPEND '00CCFFFF' TO colors. + APPEND '00660066' TO colors. + APPEND '00FF8080' TO colors. + + APPEND '000066CC' TO colors. + APPEND '00CCCCFF' TO colors. + APPEND '00000080' TO colors. + APPEND '00FF00FF' TO colors. + APPEND '00FFFF00' TO colors. + APPEND '0000FFFF' TO colors. + APPEND '00800080' TO colors. + APPEND '00800000' TO colors. + APPEND '00008080' TO colors. + APPEND '000000FF' TO colors. + + APPEND '0000CCFF' TO colors. + APPEND '00CCFFFF' TO colors. + APPEND '00CCFFCC' TO colors. + APPEND '00FFFF99' TO colors. + APPEND '0099CCFF' TO colors. + APPEND '00FF99CC' TO colors. + APPEND '00CC99FF' TO colors. + APPEND '00FFCC99' TO colors. + APPEND '003366FF' TO colors. + APPEND '0033CCCC' TO colors. + + APPEND '0099CC00' TO colors. + APPEND '00FFCC00' TO colors. + APPEND '00FF9900' TO colors. + APPEND '00FF6600' TO colors. + APPEND '00666699' TO colors. + APPEND '00969696' TO colors. + APPEND '00003366' TO colors. + APPEND '00339966' TO colors. + APPEND '00003300' TO colors. + APPEND '00333300' TO colors. + + APPEND '00993300' TO colors. + APPEND '00993366' TO colors. + APPEND '00333399' TO colors. + APPEND '00333333' TO colors. + +endmethod. + + + + + + method GET_COLOR. + DATA: lv_index type i. + + lv_index = ip_index + 1. + READ TABLE colors INTO ep_color INDEX lv_index. + IF sy-subrc <> 0. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Invalid color index'. + ENDIF. +endmethod. + + + + method GET_COLORS. + ep_colors = colors. +endmethod. + + + + method IS_MODIFIED. + ep_modified = modified. +endmethod. + + + + + method SET_COLOR. + DATA: lv_index TYPE i. + + FIELD-SYMBOLS: <lv_color> LIKE LINE OF colors. + + lv_index = ip_index + 1. + READ TABLE colors ASSIGNING <lv_color> INDEX lv_index. + IF sy-subrc <> 0. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Invalid color index'. + ENDIF. + + IF <lv_color> <> ip_color. + modified = abap_true. + <lv_color> = ip_color. + ENDIF. + +endmethod. + + + + + *"* use this source file for the definition and implementation of +*"* local helper classes, interface definitions and type +*"* declarations + *"* use this source file for any type of declarations (class +*"* definitions, interfaces or type declarations) you need for +*"* components in the private section + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + + + *"* 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 + + + + + + + + + + + + + METHOD if_message~get_longtext. + + IF me->error IS NOT INITIAL + OR me->syst_at_raise IS NOT INITIAL. +*--------------------------------------------------------------------* +* If message was supplied explicitly use this as longtext as well +*--------------------------------------------------------------------* + result = me->get_text( ). + ELSE. +*--------------------------------------------------------------------* +* otherwise use standard method to derive text +*--------------------------------------------------------------------* + super->if_message~get_longtext( EXPORTING + preserve_newlines = preserve_newlines + RECEIVING + result = result ). + ENDIF. +ENDMETHOD. + + + METHOD if_message~get_text. + + IF me->error IS NOT INITIAL. +*--------------------------------------------------------------------* +* If message was supplied explicitly use this +*--------------------------------------------------------------------* + result = me->error . + ELSEIF me->syst_at_raise IS NOT INITIAL. +*--------------------------------------------------------------------* +* If message was supplied by syst create messagetext now +*--------------------------------------------------------------------* + MESSAGE ID syst_at_raise-msgid TYPE syst_at_raise-msgty NUMBER syst_at_raise-msgno + WITH syst_at_raise-msgv1 syst_at_raise-msgv2 syst_at_raise-msgv3 syst_at_raise-msgv4 + INTO result. + ELSE. +*--------------------------------------------------------------------* +* otherwise use standard method to derive text +*--------------------------------------------------------------------* + CALL METHOD super->if_message~get_text + RECEIVING + result = result. + ENDIF. +ENDMETHOD. + + + + *"* 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 + + + + + + + + + + + + + method CONSTRUCTOR. +endmethod. + + + + method GET_STRUCTURE. +*initialize colors to 'not set' + es_fill-left_color-indexed = zcl_excel_style_color=>c_indexed_not_set. + es_fill-left_color-theme = zcl_excel_style_color=>c_theme_not_set. + es_fill-right_color-indexed = zcl_excel_style_color=>c_indexed_not_set. + es_fill-right_color-theme = zcl_excel_style_color=>c_theme_not_set. + es_fill-top_color-indexed = zcl_excel_style_color=>c_indexed_not_set. + es_fill-top_color-theme = zcl_excel_style_color=>c_theme_not_set. + es_fill-bottom_color-indexed = zcl_excel_style_color=>c_indexed_not_set. + es_fill-bottom_color-theme = zcl_excel_style_color=>c_theme_not_set. + es_fill-diagonal_color-indexed = zcl_excel_style_color=>c_indexed_not_set. + es_fill-diagonal_color-theme = zcl_excel_style_color=>c_theme_not_set. + +* Check if all borders is set otherwise check single border + IF me->allborders IS BOUND. + es_fill-left_color = me->allborders->border_color. + es_fill-left_style = me->allborders->border_style. + es_fill-right_color = me->allborders->border_color. + es_fill-right_style = me->allborders->border_style. + es_fill-top_color = me->allborders->border_color. + es_fill-top_style = me->allborders->border_style. + es_fill-bottom_color = me->allborders->border_color. + es_fill-bottom_style = me->allborders->border_style. + ELSE. + IF me->left IS BOUND. + es_fill-left_color = me->left->border_color. + es_fill-left_style = me->left->border_style. + ENDIF. + IF me->right IS BOUND. + es_fill-right_color = me->right->border_color. + es_fill-right_style = me->right->border_style. + ENDIF. + IF me->top IS BOUND. + es_fill-top_color = me->top->border_color. + es_fill-top_style = me->top->border_style. + ENDIF. + IF me->down IS BOUND. + es_fill-bottom_color = me->down->border_color. + es_fill-bottom_style = me->down->border_style. + ENDIF. + ENDIF. + +* Check if diagonal is set + IF me->diagonal IS BOUND. + es_fill-diagonal_color = me->diagonal->border_color. + es_fill-diagonal_style = me->diagonal->border_style. + CASE me->diagonal_mode. + WHEN 1. + es_fill-diagonalup = 1. + es_fill-diagonaldown = 0. + WHEN 2. + es_fill-diagonalup = 0. + es_fill-diagonaldown = 1. + WHEN 3. + es_fill-diagonalup = 1. + es_fill-diagonaldown = 1. + WHEN OTHERS. + es_fill-diagonalup = 0. + es_fill-diagonaldown = 0. + ENDCASE. + ENDIF. + +endmethod. + + + + *"* 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + method CONSTRUCTOR. + + +endmethod. + + + + + + + method CREATE_NEW_ARGB. + + + CONCATENATE zcl_excel_style_color=>c_alpha ip_red ip_green ip_blu INTO ep_color_argb. + +endmethod. + + + + *"* 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + method CONSTRUCTOR. + + DATA: ls_iconset TYPE zexcel_conditional_iconset. + ls_iconset-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights. + ls_iconset-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo1_value = '0'. + ls_iconset-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo2_value = '20'. + ls_iconset-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo3_value = '40'. + ls_iconset-cfvo4_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo4_value = '60'. + ls_iconset-cfvo5_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo5_value = '80'. + + + me->rule = zcl_excel_style_conditional=>c_rule_none. +* me->iconset->operator = zcl_excel_style_conditional=>c_operator_none. + me->mode_iconset = ls_iconset. + me->priority = 1. + +* inizialize dimension range + me->stop_cell-cell_row = 1. + me->stop_cell-cell_column = 1. + me->start_cell-cell_row = 1. + me->start_cell-cell_column = 1. +endmethod. + + + + method GET_DIMENSION_RANGE. + IF stop_cell EQ start_cell. "only one cell + ep_dimension_range = start_cell-cell_coords. + ELSE. + CONCATENATE start_cell-cell_coords ':' stop_cell-cell_coords INTO ep_dimension_range. + ENDIF. +endmethod. + + + + + + + method SET_RANGE. + DATA: lv_column TYPE zexcel_cell_column, + lv_row_alpha TYPE string. + + lv_column = zcl_excel_common=>convert_column2int( ip_stop_column ). + stop_cell-cell_row = 1. + stop_cell-cell_column = lv_column. + lv_row_alpha = ip_stop_row. + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE ip_stop_column lv_row_alpha INTO stop_cell-cell_coords. + + lv_column = zcl_excel_common=>convert_column2int( ip_start_column ). + start_cell-cell_row = 1. + start_cell-cell_column = lv_column. + lv_row_alpha = ip_start_row. + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE ip_start_column lv_row_alpha INTO start_cell-cell_coords. +endmethod. + + + + *"* 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + method CONSTRUCTOR. + filltype = zcl_excel_style_fill=>c_fill_none. + fgcolor-theme = zcl_excel_style_color=>c_theme_not_set. + fgcolor-indexed = zcl_excel_style_color=>c_indexed_not_set. + bgcolor-theme = zcl_excel_style_color=>c_theme_not_set. + bgcolor-indexed = zcl_excel_style_color=>c_indexed_sys_foreground. + rotation = 0. +endmethod. + + + + method GET_STRUCTURE. + es_fill-rotation = me->rotation. + es_fill-filltype = me->filltype. + es_fill-fgColor = me->fgColor. + es_fill-bgColor = me->bgColor. +endmethod. + + + + *"* 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. + + + + *"* 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + method CONSTRUCTOR. + format_code = me->c_format_general. +endmethod. + + + + method GET_STRUCTURE. + ep_number_format-numfmt = me->format_code. +endmethod. + + + + *"* 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 + + + + + + + + method CONSTRUCTOR. + locked = me->c_protection_locked. + hidden = me->c_protection_unhidden. +endmethod. + + + + method GET_STRUCTURE. + ep_protection-locked = me->locked. + ep_protection-hidden = me->hidden. +endmethod. + + + + *"* 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 CONSTRUCTOR. + +endmethod. + + + + METHOD get_bottom_row_integer. + DATA: lv_table_lines TYPE i. + FIELD-SYMBOLS: <fs_table> TYPE STANDARD TABLE. + + IF settings-bottom_right_row IS NOT INITIAL. +* ev_row = zcl_excel_common=>convert_column2int( settings-bottom_right_row ). " del issue #246 + ev_row = settings-bottom_right_row . " ins issue #246 + EXIT. + ENDIF. + + ASSIGN table_data->* TO <fs_table>. + DESCRIBE TABLE <fs_table> LINES lv_table_lines. + IF lv_table_lines = 0. + lv_table_lines = 1. "table needs at least 1 data row + ENDIF. + + ev_row = settings-top_left_row + lv_table_lines. + + IF me->has_totals( ) = abap_true." ???? AND ip_include_totals_row = abap_true. + ADD 1 TO ev_row. + ENDIF. +ENDMETHOD. + + + + method GET_ID. + ov_id = id. +endmethod. + + + + method GET_NAME. + + IF me->name IS INITIAL. + me->name = zcl_excel_common=>number_to_excel_string( ip_value = me->id ). + CONCATENATE 'table' me->name INTO me->name. + ENDIF. + + ov_name = me->name. +endmethod. + + + + + method GET_REFERENCE. + DATA: lv_column TYPE zexcel_cell_column, + lv_table_lines TYPE i, + lv_right_column TYPE zexcel_cell_column_alpha, + ls_field_catalog TYPE zexcel_s_fieldcatalog, + lv_bottom_row TYPE zexcel_cell_row, + lv_top_row_string(10) TYPE c, + lv_bottom_row_string(10) TYPE c. + + FIELD-SYMBOLS: <fs_table> TYPE STANDARD TABLE. + +*column + lv_column = zcl_excel_common=>convert_column2int( settings-top_left_column ). + lv_table_lines = 0. + LOOP AT fieldcat INTO ls_field_catalog WHERE dynpfld EQ abap_true. + ADD 1 TO lv_table_lines. + ENDLOOP. + lv_column = lv_column + lv_table_lines - 1. + lv_right_column = zcl_excel_common=>convert_column2alpha( lv_column ). + +*row + ASSIGN table_data->* TO <fs_table>. + DESCRIBE TABLE <fs_table> LINES lv_table_lines. + IF lv_table_lines = 0. + lv_table_lines = 1. "table needs at least 1 data row + ENDIF. + lv_bottom_row = settings-top_left_row + lv_table_lines . + + IF me->has_totals( ) = abap_true AND ip_include_totals_row = abap_true. + ADD 1 TO lv_bottom_row. + ENDIF. + + lv_top_row_string = zcl_excel_common=>number_to_excel_string( settings-top_left_row ). + lv_bottom_row_string = zcl_excel_common=>number_to_excel_string( lv_bottom_row ). + + CONCATENATE settings-top_left_column lv_top_row_string + ':' + lv_right_column lv_bottom_row_string INTO ov_reference. + +endmethod. + + + + + METHOD get_right_column_integer. + DATA: lv_column TYPE zexcel_cell_column, + lv_table_lines TYPE i, + ls_field_catalog TYPE zexcel_s_fieldcatalog. + + IF settings-bottom_right_column IS NOT INITIAL. + ev_column = zcl_excel_common=>convert_column2int( settings-bottom_right_column ). + EXIT. + ENDIF. + + ev_column = zcl_excel_common=>convert_column2int( settings-top_left_column ). + LOOP AT fieldcat INTO ls_field_catalog WHERE dynpfld EQ abap_true. + ADD 1 TO ev_column. + ENDLOOP. + +ENDMETHOD. + + + + + + method GET_TOTALS_FORMULA. + CONSTANTS: lc_function_id_sum TYPE string VALUE '109', + lc_function_id_min TYPE string VALUE '105', + lc_function_id_max TYPE string VALUE '104', + lc_function_id_count TYPE string VALUE '103', + lc_function_id_average TYPE string VALUE '101'. + + DATA: lv_function_id TYPE string. + + CASE ip_function. + WHEN zcl_excel_table=>totals_function_sum. + lv_function_id = lc_function_id_sum. + + WHEN zcl_excel_table=>totals_function_min. + lv_function_id = lc_function_id_min. + + WHEN zcl_excel_table=>totals_function_max. + lv_function_id = lc_function_id_max. + + WHEN zcl_excel_table=>totals_function_count. + lv_function_id = lc_function_id_count. + + WHEN zcl_excel_table=>totals_function_average. + lv_function_id = lc_function_id_average. + + WHEN zcl_excel_table=>totals_function_custom. " issue #292 + RETURN. + + WHEN OTHERS. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Invalid totals formula. See ZCL_ for possible values'. + ENDCASE. + + CONCATENATE 'SUBTOTAL(' lv_function_id ',[' ip_column '])' INTO ep_formula. +endmethod. + + + + method HAS_TOTALS. + DATA: ls_field_catalog TYPE zexcel_s_fieldcatalog. + + ep_result = abap_false. + + LOOP AT fieldcat INTO ls_field_catalog. + IF ls_field_catalog-totals_function IS NOT INITIAL. + ep_result = abap_true. + EXIT. + ENDIF. + ENDLOOP. + +endmethod. + + + + method SET_DATA. + GET REFERENCE OF ir_data INTO me->table_data. +endmethod. + + + + method SET_ID. + id = iv_id. +endmethod. + + + + + + + + *"* local class implementation for public class +*"* use this source file for the implementation part of +*"* local helper classes + +*&---------------------------------------------------------------------* +*& Class (Implementation) C_OI_PROXY_ERROR +*&---------------------------------------------------------------------* +CLASS c_oi_proxy_error IMPLEMENTATION. + METHOD constructor. +* IMPORTING object_name TYPE c +* method_name TYPE c. + error_nr = ret_call_not_flushed. + me->i_oi_error~error_code = c_oi_errors=>ret_call_not_flushed. + me->i_oi_error~is_flushed = ' '. + me->i_oi_error~has_failed = 'X'. + me->i_oi_error~has_succeeded = ' '. + me->message_id = 'SOFFICEINTEGRATION'. + me->message_nr = '899'. + me->param1 = object_name. + me->param2 = method_name. + ENDMETHOD. "constructor + + METHOD i_oi_error~flush_error. + IF error_nr EQ 0. + me->i_oi_error~error_code = c_oi_errors=>ret_ok. + me->i_oi_error~is_flushed = 'X'. + me->i_oi_error~has_failed = ' '. + me->i_oi_error~has_succeeded = 'X'. + me->message_id = ''. + me->message_nr = '000'. + CALL METHOD c_oi_errors=>translate_proxy_error_code + EXPORTING + errorcode = error_nr + IMPORTING + retcode = me->i_oi_error~error_code. + ELSEIF error_nr EQ ret_call_not_flushed. + "call still not flushed + CALL METHOD c_oi_errors=>translate_proxy_error_code + EXPORTING + errorcode = error_nr + errorstring = me->param2 "method name + objectname = me->param1 + IMPORTING + retcode = me->i_oi_error~error_code. + ELSE. + me->i_oi_error~is_flushed = 'X'. + me->i_oi_error~has_succeeded = ' '. + me->i_oi_error~has_failed = 'X'. + CALL METHOD c_oi_errors=>translate_proxy_error_code + EXPORTING + errorcode = error_nr + errorstring = error_string + IMPORTING + retcode = me->i_oi_error~error_code. + CALL METHOD c_oi_errors=>get_message + IMPORTING + message_id = me->message_id + message_number = me->message_nr + param1 = me->param1 + param2 = me->param2 + param3 = me->param3 + param4 = me->param4. + ENDIF. + ENDMETHOD. "i_oi_error~flush_error + + METHOD i_oi_error~raise_message. +* IMPORTING type TYPE c. +* EXCEPTIONS message_raised flush_failed. + IF me->i_oi_error~has_succeeded IS INITIAL. + IF NOT me->i_oi_error~is_flushed IS INITIAL. + MESSAGE ID message_id TYPE type + NUMBER message_nr WITH param1 param2 param3 param4 + RAISING message_raised. + ELSE. + RAISE flush_failed. + ENDIF. + ENDIF. + ENDMETHOD. "i_oi_error~raise_message + + METHOD i_oi_error~get_message. +* EXPORTING message_id TYPE c +* message_number TYPE c +* param1 TYPE c +* param2 TYPE c +* param3 TYPE c +* param4 TYPE c. + param1 = me->param1. param2 = me->param2. + param3 = me->param3. param4 = me->param4. + + message_id = me->message_id. + message_number = me->message_nr. + ENDMETHOD. "i_oi_error~get_message +ENDCLASS. "C_OI_PROXY_ERROR + +*&---------------------------------------------------------------------* +*& Class (Implementation) CL_GRID_ACCESSION +*&---------------------------------------------------------------------* +CLASS lcl_gui_alv_grid IMPLEMENTATION. + + METHOD get_alv_attributes. + CREATE DATA et_table LIKE io_grid->mt_outtab. + et_table = io_grid->mt_outtab. + ENDMETHOD. "get_data + +ENDCLASS. "CL_GRID_ACCESSION + *"* use this source file for any type declarations (class +*"* definitions, interfaces or data types) you need for method +*"* implementation or private method's signature +TYPE-POOLS: sydes. +TYPE-POOLS: slis. +*--------------------------------------------------------------------* +* CLASS c_oi_proxy_error +*--------------------------------------------------------------------* +* use for method bind_ALV +*--------------------------------------------------------------------* +CLASS c_oi_proxy_error DEFINITION. + PUBLIC SECTION. + INTERFACES: i_oi_error. + DATA: error_nr TYPE i. + DATA: error_string TYPE sy-msgv1. + + METHODS: constructor IMPORTING object_name TYPE c + method_name TYPE c. + PRIVATE SECTION. + CONSTANTS: + ret_call_not_flushed TYPE i VALUE -999999. + + DATA: message_id TYPE sy-msgid, + message_nr TYPE sy-msgno, + param1 TYPE sy-msgv1, + param2 TYPE sy-msgv2, + param3 TYPE sy-msgv3, + param4 TYPE sy-msgv4. +ENDCLASS. "c_oi_proxy_error DEFINITION + +*--------------------------------------------------------------------* +* CLASS lcl_gui_alv_grid +*--------------------------------------------------------------------* +* to get protected attribute and method of cl_gui_alv_grid +* use for method bind_ALV +*--------------------------------------------------------------------* +CLASS lcl_gui_alv_grid DEFINITION INHERITING FROM cl_gui_alv_grid. + + PUBLIC SECTION. +* get ALV grid data + METHODS: get_alv_attributes + IMPORTING + io_grid TYPE REF TO cl_gui_alv_grid " ALV grid + EXPORTING + et_table TYPE REF TO data. " dta table + +ENDCLASS. "lcl_gui_alv_grid DEFINITION + *"* use this source file for any macro definitions you need +*"* in the implementation part of the class + + + + + + + + + + + + + + + + + + + + ABAP + SLIS + SOI + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + METHOD zif_excel_sheet_printsettings~clear_print_repeat_columns. + +*--------------------------------------------------------------------* +* adjust internal representation +*--------------------------------------------------------------------* + CLEAR: me->print_title_col_from, + me->print_title_col_to . + + +*--------------------------------------------------------------------* +* adjust corresponding range +*--------------------------------------------------------------------* + me->print_title_set_range( ). + + +ENDMETHOD. + + + METHOD zif_excel_sheet_printsettings~clear_print_repeat_rows. + +*--------------------------------------------------------------------* +* adjust internal representation +*--------------------------------------------------------------------* + CLEAR: me->print_title_row_from, + me->print_title_row_to . + + +*--------------------------------------------------------------------* +* adjust corresponding range +*--------------------------------------------------------------------* + me->print_title_set_range( ). + + +ENDMETHOD. + + + METHOD zif_excel_sheet_printsettings~get_print_repeat_columns. + ev_columns_from = me->print_title_col_from. + ev_columns_to = me->print_title_col_to. +ENDMETHOD. + + + METHOD zif_excel_sheet_printsettings~get_print_repeat_rows. + ev_rows_from = me->print_title_row_from. + ev_rows_to = me->print_title_row_to. +ENDMETHOD. + + + METHOD zif_excel_sheet_printsettings~set_print_repeat_columns. +*--------------------------------------------------------------------* +* issue#235 - repeat rows/columns +* - Stefan Schmöcker, 2012-12-02 +*--------------------------------------------------------------------* + + DATA: lv_col_from_int TYPE i, + lv_col_to_int TYPE i, + lv_errormessage TYPE string. + + DATA: lo_range_iterator TYPE REF TO cl_object_collection_iterator, + lo_range TYPE REF TO zcl_excel_range. + + + lv_col_from_int = zcl_excel_common=>convert_column2int( iv_columns_from ). + lv_col_to_int = zcl_excel_common=>convert_column2int( iv_columns_to ). + +*--------------------------------------------------------------------* +* Check if valid range is supplied +*--------------------------------------------------------------------* + IF lv_col_from_int < 1. + lv_errormessage = 'Invalid range supplied for print-title repeatable columns'(401). + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. + + IF lv_col_from_int > lv_col_to_int. + lv_errormessage = 'Invalid range supplied for print-title repeatable columns'(401). + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. + +*--------------------------------------------------------------------* +* adjust internal representation +*--------------------------------------------------------------------* + me->print_title_col_from = iv_columns_from. + me->print_title_col_to = iv_columns_to. + + +*--------------------------------------------------------------------* +* adjust corresponding range +*--------------------------------------------------------------------* + me->print_title_set_range( ). + +ENDMETHOD. + + + METHOD zif_excel_sheet_printsettings~set_print_repeat_rows. +*--------------------------------------------------------------------* +* issue#235 - repeat rows/columns +* - Stefan Schmöcker, 2012-12-02 +*--------------------------------------------------------------------* + + DATA: lv_errormessage TYPE string. + + DATA: lo_range_iterator TYPE REF TO cl_object_collection_iterator, + lo_range TYPE REF TO zcl_excel_range. + + + +*--------------------------------------------------------------------* +* Check if valid range is supplied +*--------------------------------------------------------------------* + IF iv_rows_from < 1. + lv_errormessage = 'Invalid range supplied for print-title repeatable rowumns'(401). + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. + + IF iv_rows_from > iv_rows_to. + lv_errormessage = 'Invalid range supplied for print-title repeatable rowumns'(401). + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. + +*--------------------------------------------------------------------* +* adjust internal representation +*--------------------------------------------------------------------* + me->print_title_row_from = iv_rows_from. + me->print_title_row_to = iv_rows_to. + + +*--------------------------------------------------------------------* +* adjust corresponding range +*--------------------------------------------------------------------* + me->print_title_set_range( ). + + +ENDMETHOD. + + + method ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE. + IF zif_excel_sheet_properties~style IS NOT INITIAL. + ep_style = zif_excel_sheet_properties~style. + ELSE. + ep_style = me->excel->get_default_style( ). + ENDIF. +endmethod. + + + method ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE. + + zif_excel_sheet_properties~show_zeros = zif_excel_sheet_properties=>c_showzero. + zif_excel_sheet_properties~summarybelow = zif_excel_sheet_properties=>c_below_on. + zif_excel_sheet_properties~summaryright = zif_excel_sheet_properties=>c_right_on. + +* inizialize zoomscale values + ZIF_EXCEL_SHEET_PROPERTIES~zoomscale = 100. + ZIF_EXCEL_SHEET_PROPERTIES~zoomscale_normal = 100. + ZIF_EXCEL_SHEET_PROPERTIES~zoomscale_pagelayoutview = 100 . + ZIF_EXCEL_SHEET_PROPERTIES~zoomscale_sheetlayoutview = 100 . +endmethod. + + + method ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE. + zif_excel_sheet_properties~style = ip_style. +endmethod. + + + method ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE. + + me->zif_excel_sheet_protection~protected = zif_excel_sheet_protection=>c_unprotected. + CLEAR me->zif_excel_sheet_protection~password. + me->zif_excel_sheet_protection~auto_filter = zif_excel_sheet_protection=>c_noactive. + me->zif_excel_sheet_protection~delete_columns = zif_excel_sheet_protection=>c_noactive. + me->zif_excel_sheet_protection~delete_rows = zif_excel_sheet_protection=>c_noactive. + me->zif_excel_sheet_protection~format_cells = zif_excel_sheet_protection=>c_noactive. + me->zif_excel_sheet_protection~format_columns = zif_excel_sheet_protection=>c_noactive. + me->zif_excel_sheet_protection~format_rows = zif_excel_sheet_protection=>c_noactive. + me->zif_excel_sheet_protection~insert_columns = zif_excel_sheet_protection=>c_noactive. + me->zif_excel_sheet_protection~insert_hyperlinks = zif_excel_sheet_protection=>c_noactive. + me->zif_excel_sheet_protection~insert_rows = zif_excel_sheet_protection=>c_noactive. + me->zif_excel_sheet_protection~objects = zif_excel_sheet_protection=>c_noactive. +* me->zif_excel_sheet_protection~password = zif_excel_sheet_protection=>c_noactive. "issue #68 + me->zif_excel_sheet_protection~pivot_tables = zif_excel_sheet_protection=>c_noactive. + me->zif_excel_sheet_protection~protected = zif_excel_sheet_protection=>c_noactive. + me->zif_excel_sheet_protection~scenarios = zif_excel_sheet_protection=>c_noactive. + me->zif_excel_sheet_protection~select_locked_cells = zif_excel_sheet_protection=>c_noactive. + me->zif_excel_sheet_protection~select_unlocked_cells = zif_excel_sheet_protection=>c_noactive. + me->zif_excel_sheet_protection~sheet = zif_excel_sheet_protection=>c_noactive. + me->zif_excel_sheet_protection~sort = zif_excel_sheet_protection=>c_noactive. + +endmethod. + + + method ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME. + me->zif_excel_sheet_vba_project~codename = ip_codename. +endmethod. + + + method ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR. + me->zif_excel_sheet_vba_project~codename_pr = ip_codename_pr. +endmethod. + + + + method ADD_DRAWING. + CASE ip_drawing->get_type( ). + WHEN zcl_excel_drawing=>type_image. + drawings->include( ip_drawing ). + WHEN zcl_excel_drawing=>type_chart. + charts->include( ip_drawing ). + ENDCASE. +endmethod. + + + + method ADD_NEW_CONDITIONAL_STYLE. + + CREATE OBJECT eo_conditional_style. + conditional_styles->add( eo_conditional_style ). +endmethod. + + + + method ADD_NEW_DATA_VALIDATION. + + CREATE OBJECT eo_data_validation. + data_validations->add( eo_data_validation ). +endmethod. + + + + method ADD_NEW_RANGE. +* Create default blank range + CREATE OBJECT eo_range. + ranges->add( eo_range ). +endmethod. + + + + + + + + + method BIND_ALV. + data: lo_converter type ref to zcl_excel_converter. + + create object lo_converter. + + try. + lo_converter->convert( + exporting + io_alv = io_alv + it_table = it_table + i_row_int = i_top + i_column_int = i_left + i_table = abap_true + i_style_table = table_style + io_worksheet = me + changing + co_excel = excel ). + catch zcx_excel . + endtry. + +endmethod. + + + + + + + + + + + + + + + + + + + + + + method BIND_ALV_OLE2. +*--------------------------------------------------------------------* +* Method description: +* Method use to export a CL_GUI_ALV_GRID object to xlsx/xls file +* with list header and characteristics of ALV field catalog such as: +* + Total, group's subtotal +* + Quantity fields, amount fields (dependent fields) +* + No_out, no_zero, ... +* Technique use in method: +* SAP Desktop Office Integration (DOI) +*--------------------------------------------------------------------* + +* Data for session 0: DOI constructor +* ------------------------------------------ + + data: lo_control type ref to I_OI_CONTAINER_CONTROL. + data: lo_proxy type ref to I_OI_DOCUMENT_PROXY. + data: lo_spreadsheet type ref to I_OI_SPREADSHEET. + data: lo_error type ref to I_OI_ERROR. + data: lc_retcode type SOI_RET_STRING. + data: li_has type i. "Proxy has spreadsheet interface? + data: l_is_closed type i. + +* Data for session 1: Get LVC data from ALV object +* ------------------------------------------ + + data: l_has_activex, + l_doctype_excel_sheet(11) type c. + data: wa_DOC_HANDLE Type CNTL_HANDLE. + +* LVC + data: lt_fieldcat_lvc type LVC_T_FCAT. + data: wa_fieldcat_lvc type lvc_s_fcat. + data: lt_sort_lvc type LVC_T_SORT. + data: lt_filter_idx_lvc type LVC_T_FIDX. + data: lt_GROUPLEVELS_LVC type LVC_T_GRPL. + +* KKBLO + DATA: LT_FIELDCAT_KKBLO Type KKBLO_T_FIELDCAT. + DATA: LT_SORT_KKBLO Type KKBLO_T_SORTINFO. + DATA: LT_GROUPLEVELS_KKBLO Type KKBLO_T_GROUPLEVELS. + DATA: LT_FILTER_IDX_KKBLO Type KKBLO_T_SFINFO. + data: wa_listheader like line of it_listheader. + +* Subtotal + data: lt_collect00 type ref to data. + data: lt_collect01 type ref to data. + data: lt_collect02 type ref to data. + data: lt_collect03 type ref to data. + data: lt_collect04 type ref to data. + data: lt_collect05 type ref to data. + data: lt_collect06 type ref to data. + data: lt_collect07 type ref to data. + data: lt_collect08 type ref to data. + data: lt_collect09 type ref to data. + +* data table name + data: l_tabname type kkblo_tabname. + +* local object + data: lo_grid type ref to lcl_gui_alv_grid. + +* data table get from ALV + data: lt_alv type ref to data. + +* total / subtotal data + field-symbols: <f_collect00> type standard table. + field-symbols: <f_collect01> type standard table. + field-symbols: <f_collect02> type standard table. + field-symbols: <f_collect03> type standard table. + field-symbols: <f_collect04> type standard table. + field-symbols: <f_collect05> type standard table. + field-symbols: <f_collect06> type standard table. + field-symbols: <f_collect07> type standard table. + field-symbols: <f_collect08> type standard table. + field-symbols: <f_collect09> type standard table. + +* table before append subtotal lines + field-symbols: <f_alv_tab> type standard table. + +* data for session 2: sort, filter and calculate total/subtotal +* ------------------------------------------ + +* table to save index of subotal / total line in excel tanle +* this ideal to control index of subtotal / total line later +* for ex, when get subtotal / total line to format + types: begin of st_subtot_indexs, + index type i, + end of st_subtot_indexs. + data: lt_subtot_indexs type table of st_subtot_indexs. + data: wa_subtot_indexs like line of lt_subtot_indexs. + +* data table after append subtotal + data: lt_excel type ref to data. + + data: l_tabix type i. + data: l_save_index type i. + +* dyn subtotal table name + data: l_collect type string. + +* subtotal range, to format subtotal (and total) + data: subranges type soi_range_list. + data: subrangeitem type soi_range_item. + data: l_sub_index type i. + + +* table after append subtotal lines + field-symbols: <f_excel_tab> type standard table. + field-symbols: <f_excel_line> type any. + +* dyn subtotal tables + field-symbols: <f_collect_tab> type standard table. + field-symbols: <f_collect_line> type any. + + field-symbols: <f_filter_idx_line> like line of LT_FILTER_IDX_KKBLO. + field-symbols: <f_fieldcat_line> like line of LT_FIELDCAT_KKBLO. + field-symbols: <f_grouplevels_line> like line of LT_GROUPLEVELS_KKBLO. + field-symbols: <f_line> type any. + +* Data for session 3: map data to semantic table +* ------------------------------------------ + + types: begin of st_column_index, + fieldname type kkblo_fieldname, + tabname type kkblo_tabname, + col like sy-index, + end of st_column_index. + +* columns index + data: lt_column_index type table of st_column_index. + data: wa_column_index like line of lt_column_index. + +* table of dependent field ( currency and quantity unit field) + data: lt_fieldcat_depf type kkblo_t_fieldcat. + data: wa_fieldcat_depf type kkblo_fieldcat. + +* XXL interface: +* -XXL: contain exporting columns characteristic + data: lt_sema type table of gxxlt_s initial size 0. + data: wa_sema like line of lt_sema. + +* -XXL interface: header + data: lt_hkey type table of gxxlt_h initial size 0. + data: wa_hkey like line of lt_hkey. + +* -XXL interface: header keys + data: lt_vkey type table of gxxlt_v initial size 0. + data: wa_vkey like line of lt_vkey. + +* Number of H Keys: number of key columns + data: l_n_hrz_keys type i. +* Number of data columns in the list object: non-key columns no + data: l_n_att_cols type i. +* Number of V Keys: number of header row + data: l_n_vrt_keys type i. + +* curency to format amount + data: lt_tcurx type table of tcurx. + data: wa_tcurx like line of lt_tcurx. + data: l_def type flag. " currency / quantity flag + data: wa_t006 type t006. " decimal place of unit + + data: l_num type i. " table columns number + data: l_typ type c. " table type + data: wa type ref to data. + data: l_int type i. + data: l_counter type i. + + field-symbols: <f_excel_column> type any. + field-symbols: <f_fcat_column> type any. + +* Data for session 4: write to excel +* ------------------------------------------ + + data: data_starting_at type i value 1. + data: data_ending_at type i value -1. + data: sema_type type c. + + data l_error type ref to c_oi_proxy_error. + data count type i. + data datac type i. + data datareal type i. " exporting column number + data vkeycount type i. + data all type i. + data mit type i value 1. " index of recent row? + data li_col_pos type i value 1. " column position + data li_col_num type i. " table columns number + field-symbols: <line> type any. + field-symbols: <item> type any. + + data td type sydes_desc. + + data: typ. + data: ranges type soi_range_list. + data: rangeitem type soi_range_item. + data: contents type soi_generic_table. + data: contentsitem type soi_generic_item. + data: semaitem type gxxlt_s. + data: hkeyitem type gxxlt_h. + data: vkeyitem type gxxlt_v. + data: li_commentary_rows type i. "row number of title lines + 1 + data: lo_error_w type ref to i_oi_error. + data: l_retcode type soi_ret_string. + data: no_flush type c value 'X'. + data: li_head_top type i. "header rows position + +* Data for session 5: Save and clode document +* ------------------------------------------ + + data: li_document_size type i. + data: ls_path type RLGRAP-FILENAME. + +* MACRO: Close_document +*------------------------------------------- + + DEFINE close_document. + clear: l_is_closed. + IF lo_proxy is not initial. + +* check proxy detroyed adi + + call method lo_proxy->is_destroyed + IMPORTING + ret_value = l_is_closed. + +* if dun detroyed yet: close -> release proxy + + IF l_is_closed is initial. + call method lo_proxy->close_document +* EXPORTING +* do_save = do_save + IMPORTING + error = lo_error + retcode = lc_retcode. + ENDIF. + + call method lo_proxy->release_document + IMPORTING + error = lo_error + retcode = lC_retcode. + + else. + lc_retcode = c_oi_errors=>ret_document_not_open. + ENDIF. + +* Detroy control container + + IF lo_control is not initial. + CALL METHOD lo_control->destroy_control. + ENDIF. + + clear: + lo_spreadsheet, + lo_proxy, + lo_control. + +* free local + + clear: l_is_closed. + + END-OF-DEFINITION. + +* Macro to catch DOI error +*------------------------------------------- + + DEFINE error_doi. + if lc_retcode ne c_oi_errors=>ret_ok. + close_document. + call method lo_error->raise_message + EXPORTING + type = 'E'. + clear: lo_error. + endif. + END-OF-DEFINITION. + +*--------------------------------------------------------------------* +* SESSION 0: DOI CONSTRUCTOR +*--------------------------------------------------------------------* + +* check active windown + + call function 'GUI_HAS_ACTIVEX' + IMPORTING + return = l_has_activex. + + if l_has_activex is initial. + raise MISS_GUIDE. + endif. + +* Get Container Object of Screen + + call method c_oi_container_control_creator=>get_container_control + IMPORTING + control = lo_control + retcode = lC_retcode. + + error_doi. + +* Initialize Container control + + CALL METHOD lo_control->init_control + EXPORTING + parent = CL_GUI_CONTAINER=>DEFAULT_SCREEN + r3_application_name = '' + inplace_enabled = 'X' + no_flush = 'X' + register_on_close_event = 'X' + register_on_custom_event = 'X' + IMPORTING + error = lO_ERROR + retcode = lc_retcode. + + error_doi. + +* Get Proxy Document: +* check exist of document proxy, if exist -> close first + + if not lo_proxy is initial. + close_document. + endif. + + IF i_xls is not initial. +* xls format, doctype = soi_doctype_excel97_sheet + l_doctype_excel_sheet = 'Excel.Sheet.8'. + else. +* xlsx format, doctype = soi_doctype_excel_sheet + l_doctype_excel_sheet = 'Excel.Sheet'. + ENDIF. + + CALL METHOD lo_control->get_document_proxy + EXPORTING + document_type = l_doctype_excel_sheet + register_container = 'X' + IMPORTING + document_proxy = lo_proxy + error = lO_ERROR + retcode = lc_retcode. + + error_doi. + + IF I_DOCUMENT_URL is initial. + +* create new excel document + + call method lo_proxy->create_document + EXPORTING + create_view_data = 'X' + open_inplace = 'X' + no_flush = 'X' + IMPORTING + ERROR = lO_ERROR + retcode = lc_retcode. + + error_doi. + + else. + +* Read excel template for i_DOCUMENT_URL +* this excel template can be store in local or server + + CALL METHOD lo_proxy->open_document + EXPORTING + document_url = i_document_url + open_inplace = 'X' + no_flush = 'X' + IMPORTING + error = lo_error + retcode = lc_retcode. + + error_doi. + + endif. + +* Check Spreadsheet Interface of Document Proxy + + CALL METHOD lo_proxy->has_spreadsheet_interface + IMPORTING + is_available = li_has + error = lO_ERROR + retcode = lc_retcode. + + error_doi. + +* create Spreadsheet object + + CHECK li_has IS NOT INITIAL. + + CALL METHOD lo_proxy->get_spreadsheet_interface + IMPORTING + sheet_interface = lo_spreadsheet + error = lO_ERROR + retcode = lc_retcode. + + error_doi. + +*--------------------------------------------------------------------* +* SESSION 1: GET LVC DATA FROM ALV OBJECT +*--------------------------------------------------------------------* + +* data table + + create object lo_grid + EXPORTING + i_parent = CL_GUI_CONTAINER=>SCREEN0. + + call method lo_grid->get_alv_attributes + EXPORTING + io_grid = io_alv + IMPORTING + Et_table = lt_alv. + + assign lt_alv->* to <f_alv_tab>. + +* fieldcat + + CALL METHOD iO_alv->GET_FRONTEND_FIELDCATALOG + IMPORTING + ET_FIELDCATALOG = lt_fieldcat_LVC. + +* table name + + loop at lt_fieldcat_LVC into wa_fieldcat_lvc + where not tabname is initial. + l_tabname = wa_fieldcat_lvc-tabname. + exit. + endloop. + + if sy-subrc ne 0. + l_tabname = '1'. + endif. + clear: wa_fieldcat_lvc. + +* sort table + + CALL METHOD IO_ALV->GET_SORT_CRITERIA + IMPORTING + ET_SORT = lt_sort_lvc. + + +* filter index + + CALL METHOD IO_ALV->GET_FILTERED_ENTRIES + IMPORTING + ET_FILTERED_ENTRIES = lt_filter_idx_lvc. + +* group level + subtotal + + CALL METHOD IO_ALV->GET_SUBTOTALS + IMPORTING + EP_COLLECT00 = lt_collect00 + EP_COLLECT01 = lt_collect01 + EP_COLLECT02 = lt_collect02 + EP_COLLECT03 = lt_collect03 + EP_COLLECT04 = lt_collect04 + EP_COLLECT05 = lt_collect05 + EP_COLLECT06 = lt_collect06 + EP_COLLECT07 = lt_collect07 + EP_COLLECT08 = lt_collect08 + EP_COLLECT09 = lt_collect09 + ET_GROUPLEVELS = lt_GROUPLEVELS_LVC. + + assign lt_collect00->* to <f_collect00>. + assign lt_collect01->* to <f_collect01>. + assign lt_collect02->* to <f_collect02>. + assign lt_collect03->* to <f_collect03>. + assign lt_collect04->* to <f_collect04>. + assign lt_collect05->* to <f_collect05>. + assign lt_collect06->* to <f_collect06>. + assign lt_collect07->* to <f_collect07>. + assign lt_collect08->* to <f_collect08>. + assign lt_collect09->* to <f_collect09>. + +* transfer to KKBLO struct + + CALL FUNCTION 'LVC_TRANSFER_TO_KKBLO' + EXPORTING + IT_FIELDCAT_LVC = lt_fieldcat_lvc + IT_SORT_LVC = lt_sort_lvc + IT_FILTER_INDEX_LVC = lt_filter_idx_lvc + IT_GROUPLEVELS_LVC = lt_grouplevels_lvc + IMPORTING + ET_FIELDCAT_KKBLO = lt_fieldcat_kkblo + ET_SORT_KKBLO = lt_sort_kkblo + ET_FILTERED_ENTRIES_KKBLO = lt_filter_idx_kkblo + ET_GROUPLEVELS_KKBLO = lt_grouplevels_kkblo + TABLES + IT_DATA = <f_alv_tab> + EXCEPTIONS + IT_DATA_MISSING = 1 + IT_FIELDCAT_LVC_MISSING = 2 + OTHERS = 3. + IF SY-SUBRC <> 0. + raise ex_transfer_KKBLO_ERROR. + ENDIF. + + clear: + wa_fieldcat_lvc, + lt_fieldcat_lvc, + lt_sort_lvc, + lt_filter_idx_lvc, + lt_GROUPLEVELS_LVC. + + clear: + lo_grid. + + +*--------------------------------------------------------------------* +* SESSION 2: SORT, FILTER AND CALCULATE TOTAL / SUBTOTAL +*--------------------------------------------------------------------* + +* append subtotal & total line + + create data lt_excel like <f_ALV_TAB>. + assign lt_excel->* to <f_excel_tab>. + + loop at <f_alv_tab> assigning <f_line>. + l_save_index = sy-tabix. + +* filter base on filter index table + + read table LT_FILTER_IDX_KKBLO assigning <f_filter_idx_line> + with key index = l_save_index + binary search. + if sy-subrc ne 0. + append <f_line> to <f_excel_tab>. + endif. + +* append subtotal lines + + read table LT_GROUPLEVELS_KKBLO assigning <f_grouplevels_line> + with key index_to = l_save_index + binary search. + if sy-subrc = 0. + l_tabix = sy-tabix. + do. + if <f_grouplevels_line>-subtot eq 'X' and + <f_grouplevels_line>-hide_level is initial and + <f_grouplevels_line>-cindex_from ne 0. + +* dynamic append subtotal line to excel table base on grouplevel table +* ex <f_GROUPLEVELS_line>-level = 1 +* then <f_collect_tab> = '<F_COLLECT01>' + + l_collect = <f_grouplevels_line>-level. + condense l_collect. + concatenate '<F_COLLECT0' + l_collect '>' +* '->*' + into l_collect. + + assign (l_collect) to <f_collect_tab>. + +* incase there're more than 1 total line of group, at the same level +* for example: subtotal of multi currency + + LOOP AT <f_collect_tab> assigning <f_collect_line>. + IF sy-tabix between <f_grouplevels_line>-cindex_from + and <f_grouplevels_line>-cindex_to. + + + append <f_collect_line> to <f_excel_tab>. + +* save subtotal lines index + + wa_subtot_indexs-index = sy-tabix. + append wa_subtot_indexs to lt_subtot_indexs. + +* append sub total ranges table for format later + + add 1 to l_sub_index. + subrangeitem-name = l_sub_index. + condense subrangeitem-name. + concatenate 'SUBTOT' + subrangeitem-name + into subrangeitem-name. + + subrangeitem-rows = wa_subtot_indexs-index. + subrangeitem-columns = 1. " start col + append subrangeitem to subranges. + clear: subrangeitem. + + ENDIF. + ENDLOOP. + unassign: <f_collect_tab>. + unassign: <f_collect_line>. + clear: l_collect. + endif. + +* check next subtotal level of group + + unassign: <f_grouplevels_line>. + add 1 to l_tabix. + + read table LT_GROUPLEVELS_KKBLO assigning <f_grouplevels_line> + index l_tabix. + if sy-subrc ne 0 + or <f_grouplevels_line>-index_to ne l_save_index. + exit. + endif. + + unassign: + <f_collect_tab>, + <f_collect_line>. + + enddo. + endif. + + clear: + l_tabix, + l_save_index. + + unassign: + <f_filter_idx_line>, + <f_grouplevels_line>. + + endloop. + +* free local data + + unassign: + <f_line>, + <f_collect_tab>, + <f_collect_line>, + <f_fieldcat_line>. + +* append grand total line + + IF <f_collect00> is assigned. + assign <f_collect00> to <f_collect_tab>. + if <f_collect_tab> is not initial. + LOOP AT <f_collect_tab> assigning <f_collect_line>. + + append <f_collect_line> to <f_excel_tab>. + +* save total line index + + wa_subtot_indexs-index = sy-tabix. + append wa_subtot_indexs to lt_subtot_indexs. + +* append grand total range (to format) + + add 1 to l_sub_index. + subrangeitem-name = l_sub_index. + condense subrangeitem-name. + concatenate 'TOTAL' + subrangeitem-name + into subrangeitem-name. + + subrangeitem-rows = wa_subtot_indexs-index. + subrangeitem-columns = 1. " start col + append subrangeitem to subranges. + ENDLOOP. + endif. + ENDIF. + + clear: + subrangeitem, + LT_SORT_KKBLO, + <f_collect00>, + <f_collect01>, + <f_collect02>, + <f_collect03>, + <f_collect04>, + <f_collect05>, + <f_collect06>, + <f_collect07>, + <f_collect08>, + <f_collect09>. + + unassign: + <f_collect00>, + <f_collect01>, + <f_collect02>, + <f_collect03>, + <f_collect04>, + <f_collect05>, + <f_collect06>, + <f_collect07>, + <f_collect08>, + <f_collect09>, + <f_collect_tab>, + <f_collect_line>. + +*--------------------------------------------------------------------* +* SESSION 3: MAP DATA TO SEMANTIC TABLE +*--------------------------------------------------------------------* + +* get dependent field field: currency and quantity + + create data wa like line of <f_excel_tab>. + assign wa->* to <f_excel_line>. + + describe field <f_excel_line> type l_typ components l_num. + + do l_num times. + l_save_index = sy-index. + assign component l_save_index of structure <f_excel_line> + to <f_excel_column>. + if sy-subrc ne 0. + message e059(0k) with 'FATAL ERROR' raising fatal_error. + endif. + + loop at LT_FIELDCAT_KKBLO assigning <f_fieldcat_line> + where tabname = l_tabname. + assign component <f_fieldcat_line>-fieldname + of structure <f_excel_line> to <f_fcat_column>. + + describe distance between <f_excel_column> and <f_fcat_column> + into l_int in byte mode. + +* append column index +* this columns index is of table, not fieldcat + + if l_int = 0. + wa_column_index-fieldname = <f_fieldcat_line>-fieldname. + wa_column_index-tabname = <f_fieldcat_line>-tabname. + wa_column_index-col = l_save_index. + append wa_column_index to lt_column_index. + endif. + +* append dependent fields (currency and quantity unit) + + if <f_fieldcat_line>-cfieldname is not initial. + clear wa_fieldcat_depf. + wa_fieldcat_depf-fieldname = <f_fieldcat_line>-cfieldname. + wa_fieldcat_depf-tabname = <f_fieldcat_line>-ctabname. + collect wa_fieldcat_depf into lt_fieldcat_depf. + endif. + + if <f_fieldcat_line>-qfieldname is not initial. + clear wa_fieldcat_depf. + wa_fieldcat_depf-fieldname = <f_fieldcat_line>-qfieldname. + wa_fieldcat_depf-tabname = <f_fieldcat_line>-qtabname. + collect wa_fieldcat_depf into lt_fieldcat_depf. + endif. + +* rewrite field data type + + if <f_fieldcat_line>-inttype = 'X' + and <f_fieldcat_line>-datatype(3) = 'INT'. + <f_fieldcat_line>-inttype = 'I'. + endif. + + endloop. + + clear: l_save_index. + unassign: <f_fieldcat_line>. + + enddo. + +* build semantic tables + + l_n_hrz_keys = 1. + +* Get keyfigures + + loop at LT_FIELDCAT_KKBLO assigning <f_fieldcat_line> + where tabname = l_tabname + and tech ne 'X' + and no_out ne 'X'. + + clear wa_sema. + clear wa_hkey. + +* Units belong to keyfigures -> display as str + + read table lt_fieldcat_depf into wa_fieldcat_depf with key + fieldname = <f_fieldcat_line>-fieldname + tabname = <f_fieldcat_line>-tabname. + + if sy-subrc = 0. + wa_sema-col_typ = 'STR'. + wa_sema-col_ops = 'DFT'. + +* Keyfigures + + else. + case <f_fieldcat_line>-datatype. + when 'QUAN'. + wa_sema-col_typ = 'N03'. + + if <f_fieldcat_line>-no_sum ne 'X'. + wa_sema-col_ops = 'ADD'. + else. + wa_sema-col_ops = 'NOP'. " no dependent field + endif. + + when 'DATS'. + wa_sema-col_typ = 'DAT'. + wa_sema-col_ops = 'NOP'. + + when 'CHAR' OR 'UNIT' OR 'CUKY'. " Added fieldformats UNIT and CUKY - dd. 26-10-2012 Wouter Heuvelmans + wa_sema-col_typ = 'STR'. + wa_sema-col_ops = 'DFT'. " dependent field + +* incase numeric, ex '00120' -> display as '12' + + when 'NUMC'. + wa_sema-col_typ = 'STR'. + wa_sema-col_ops = 'DFT'. + + when others. + wa_sema-col_typ = 'NUM'. + + if <f_fieldcat_line>-no_sum ne 'X'. + wa_sema-col_ops = 'ADD'. + else. + wa_sema-col_ops = 'NOP'. + endif. + endcase. + endif. + + l_counter = l_counter + 1. + l_n_att_cols = l_n_att_cols + 1. + + wa_sema-col_no = l_counter. + + read table lt_column_index into wa_column_index with key + fieldname = <f_fieldcat_line>-fieldname + tabname = <f_fieldcat_line>-tabname. + + if sy-subrc = 0. + wa_sema-col_src = wa_column_index-col. + else. + raise fatal_error. + endif. + +* columns index of ref currency field in table + + if not <f_fieldcat_line>-cfieldname is initial. + read table lt_column_index into wa_column_index with key + fieldname = <f_fieldcat_line>-cfieldname + tabname = <f_fieldcat_line>-ctabname. + + if sy-subrc = 0. + wa_sema-col_cur = wa_column_index-col. + endif. + +* quantities fields +* treat as currency when display on excel + + elseif not <f_fieldcat_line>-qfieldname is initial. + read table lt_column_index into wa_column_index with key + fieldname = <f_fieldcat_line>-qfieldname + tabname = <f_fieldcat_line>-qtabname. + if sy-subrc = 0. + wa_sema-col_cur = wa_column_index-col. + endif. + + endif. + +* Treat of fixed currency in the fieldcatalog for column + + data: l_num_help(2) type n. + + if not <f_fieldcat_line>-currency is initial. + + select * from tcurx into table lt_tcurx. + sort lt_tcurx. + read table lt_tcurx into wa_tcurx + with key currkey = <f_fieldcat_line>-currency. + if sy-subrc = 0. + l_num_help = wa_tcurx-currdec. + concatenate 'N' l_num_help into wa_sema-col_typ. + wa_sema-col_cur = sy-tabix * ( -1 ). + endif. + + endif. + + wa_hkey-col_no = l_n_att_cols. + wa_hkey-row_no = l_n_hrz_keys. + wa_hkey-col_name = <f_fieldcat_line>-reptext. + append wa_hkey to lt_hkey. + append wa_sema to lt_sema. + + endloop. + +* free local data + + clear: + lt_column_index, + wa_column_index, + lt_fieldcat_depf, + wa_fieldcat_depf, + lt_tcurx, + wa_tcurx, + l_num, + l_typ, + wa, + l_int, + l_counter. + + unassign: + <f_fieldcat_line>, + <f_excel_line>, + <f_excel_column>, + <f_fcat_column>. + +*--------------------------------------------------------------------* +* SESSION 4: WRITE TO EXCEL +*--------------------------------------------------------------------* + + clear: wa_tcurx. + refresh: lt_tcurx. + +* if spreadsheet dun have proxy yet + + if li_has is initial. + l_retcode = c_oi_errors=>ret_interface_not_supported. + call method c_oi_errors=>create_error_for_retcode + EXPORTING + retcode = l_retcode + no_flush = no_flush + IMPORTING + error = lo_error_w. + exit. + endif. + + create object l_error + EXPORTING + object_name = 'OLE_DOCUMENT_PROXY' + method_name = 'get_ranges_names'. + + call method c_oi_errors=>add_error + EXPORTING + error = l_error. + + + describe table lt_sema lines datareal. + describe table <f_excel_tab> lines datac. + describe table lt_vkey lines vkeycount. + + if datac = 0. + raise inv_data_range. + endif. + + + if vkeycount ne l_n_vrt_keys. + raise dim_mismatch_vkey. + endif. + + all = l_n_vrt_keys + l_n_att_cols. + + if datareal ne all. + raise dim_mismatch_sema. + endif. + + data: decimal type c. + +* get decimal separator format ('.', ',', ...) in Office config + + call method lo_proxy->get_application_property + EXPORTING + property_name = 'INTERNATIONAL' + subproperty_name = 'DECIMAL_SEPARATOR' + CHANGING + retvalue = decimal. + + data: wa_usr type usr01. + select * from usr01 into wa_usr where bname = sy-uname. + endselect. + + data: comma_elim(4) type c. + data: help6 type i. + field-symbols <g> type any. + data search_item(4) value ' #'. + + concatenate ',' decimal '.' decimal into comma_elim. + + data help type i. " table (with subtotal) line number + + help = datac. + + data: rowmax type i value 1. " header row number + data: columnmax type i value 0. " header columns number + + loop at lt_hkey into hkeyitem. + if hkeyitem-col_no > columnmax. + columnmax = hkeyitem-col_no. + endif. + + if hkeyitem-row_no > rowmax. + rowmax = hkeyitem-row_no. + endif. + endloop. + + data: hkeycolumns type i. " header columns no + + hkeycolumns = columnmax. + + if hkeycolumns < l_n_att_cols. + hkeycolumns = l_n_att_cols. + endif. + + columnmax = 0. + + loop at lt_vkey into vkeyitem. + if vkeyitem-col_no > columnmax. + columnmax = vkeyitem-col_no. + endif. + endloop. + + data overflow type i value 1. + data testname(10) type c. + data temp2 type i. " 1st item row position in excel + data realmit type i value 1. + data realoverflow type i value 1. " row index in content + + call method lo_spreadsheet->screen_update + EXPORTING + updating = ''. + + call method lo_spreadsheet->load_lib. + + data: str(40) type c. " range names of columns range (w/o col header) + data: rows type i. " row postion of 1st item line in ecxel + +* calculate row position of data table + + describe table iT_LISTHEADER lines li_commentary_rows. + +* if grid had title, add 1 empy line between title and table + + if li_commentary_rows ne 0. + add 1 to li_commentary_rows. + endif. + +* add top position of block data + + li_commentary_rows = li_commentary_rows + i_top - 1. + +* write header (commentary rows) + + data: li_commentary_row_index type i value 1. + data: li_content_index type i value 1. + data: ls_index(10) type c. + data ls_commentary_range(40) type c value 'TITLE'. + data: li_font_bold type i. + data: li_font_italic type i. + data: li_font_size type i. + + loop at iT_LISTHEADER into wa_listheader. + li_commentary_row_index = i_top + li_content_index - 1. + ls_index = li_content_index. + condense ls_index. + concatenate ls_commentary_range(5) ls_index + into ls_commentary_range. + condense ls_commentary_range. + +* insert title range + + call method lo_spreadsheet->insert_range_dim + EXPORTING + name = ls_commentary_range + top = li_commentary_row_index + left = i_left + rows = 1 + columns = 1 + no_flush = no_flush. + +* format range + + case wa_listheader-typ. + when 'H'. "title + li_font_size = 16. + li_font_bold = 1. + li_font_italic = -1. + when 'S'. "subtile + li_font_size = -1. + li_font_bold = 1. + li_font_italic = -1. + when others. "'A' comment + li_font_size = -1. + li_font_bold = -1. + li_font_italic = 1. + endcase. + + call method lo_spreadsheet->set_font + EXPORTING + rangename = ls_commentary_range + family = '' + size = li_font_size + bold = li_font_bold + italic = li_font_italic + align = 0 + no_flush = no_flush. + +* title: range content + + rangeitem-name = ls_commentary_range. + rangeitem-columns = 1. + rangeitem-rows = 1. + append rangeitem to ranges. + + contentsitem-row = li_content_index. + contentsitem-column = 1. + concatenate wa_listheader-key + wa_listheader-info + into contentsitem-value + separated by space. + condense contentsitem-value. + append contentsitem to contents. + + add 1 to li_content_index. + + clear: + rangeitem, + contentsitem, + ls_index. + + endloop. + +* set range data title + + call method lo_spreadsheet->set_ranges_data + EXPORTING + ranges = ranges + contents = contents + no_flush = no_flush. + + refresh: + ranges, + contents. + + rows = rowmax + li_commentary_rows + 1. + + all = wa_usr-datfm. + all = all + 3. + + loop at lt_sema into semaitem. + if semaitem-col_typ = 'DAT' or semaitem-col_typ = 'MON' or + semaitem-col_typ = 'N00' or semaitem-col_typ = 'N01' or + semaitem-col_typ = 'N01' or semaitem-col_typ = 'N02' or + semaitem-col_typ = 'N03' or semaitem-col_typ = 'PCT' or + semaitem-col_typ = 'STR' or semaitem-col_typ = 'NUM'. + clear str. + str = semaitem-col_no. + condense str. + concatenate 'DATA' str into str. + mit = semaitem-col_no. + li_col_pos = semaitem-col_no + i_left - 1. + +* range from data1 to data(n), for each columns of table + + call method lo_spreadsheet->insert_range_dim + EXPORTING + name = str + top = rows + left = li_col_pos + rows = help + columns = 1 + no_flush = no_flush. + + data dec type i value -1. + data typeinfo type sydes_typeinfo. + loop at <f_excel_tab> assigning <line>. + assign component semaitem-col_no of structure <line> to <item>. + describe field <item> into td. + read table td-types index 1 into typeinfo. + if typeinfo-type = 'P'. + dec = typeinfo-decimals. + elseif typeinfo-type = 'I'. + dec = 0. + endif. + + describe field <line> type typ components count. + mit = 1. + do count times. + if mit = semaitem-col_src. + assign component sy-index of structure <line> to <item>. + describe field <item> into td. + read table td-types index 1 into typeinfo. + if typeinfo-type = 'P'. + dec = typeinfo-decimals. + endif. + exit. + endif. + mit = mit + 1. + enddo. + exit. + endloop. + +* format for each columns of table (w/o columns headers) + + if semaitem-col_typ = 'DAT'. + if semaitem-col_no > vkeycount. + call method lo_spreadsheet->set_format + EXPORTING + rangename = str + currency = '' + typ = all + no_flush = no_flush. + else. + call method lo_spreadsheet->set_format + EXPORTING + rangename = str + currency = '' + typ = 0 + no_flush = no_flush. + endif. + elseif semaitem-col_typ = 'STR'. + call method lo_spreadsheet->set_format + EXPORTING + rangename = str + currency = '' + typ = 0 + no_flush = no_flush. + elseif semaitem-col_typ = 'MON'. + call method lo_spreadsheet->set_format + EXPORTING + rangename = str + currency = '' + typ = 10 + no_flush = no_flush. + elseif semaitem-col_typ = 'N00'. + call method lo_spreadsheet->set_format + EXPORTING + rangename = str + currency = '' + typ = 1 + decimals = 0 + no_flush = no_flush. + elseif semaitem-col_typ = 'N01'. + call method lo_spreadsheet->set_format + EXPORTING + rangename = str + currency = '' + typ = 1 + decimals = 1 + no_flush = no_flush. + elseif semaitem-col_typ = 'N02'. + call method lo_spreadsheet->set_format + EXPORTING + rangename = str + currency = '' + typ = 1 + decimals = 2 + no_flush = no_flush. + elseif semaitem-col_typ = 'N03'. + call method lo_spreadsheet->set_format + EXPORTING + rangename = str + currency = '' + typ = 1 + decimals = 3 + no_flush = no_flush. + elseif semaitem-col_typ = 'N04'. + call method lo_spreadsheet->set_format + EXPORTING + rangename = str + currency = '' + typ = 1 + decimals = 4 + no_flush = no_flush. + elseif semaitem-col_typ = 'NUM'. + if dec eq -1. + call method lo_spreadsheet->set_format + EXPORTING + rangename = str + currency = '' + typ = 1 + decimals = 2 + no_flush = no_flush. + else. + call method lo_spreadsheet->set_format + EXPORTING + rangename = str + currency = '' + typ = 1 + decimals = dec + no_flush = no_flush. + endif. + elseif semaitem-col_typ = 'PCT'. + call method lo_spreadsheet->set_format + EXPORTING + rangename = str + currency = '' + typ = 3 + decimals = 0 + no_flush = no_flush. + endif. + + endif. + endloop. + +* get item contents for set_range_data method +* get currency cell also + + mit = 1. + + data: currcells type soi_cell_table. + data: curritem type soi_cell_item. + + curritem-rows = 1. + curritem-columns = 1. + curritem-front = -1. + curritem-back = -1. + curritem-font = ''. + curritem-size = -1. + curritem-bold = -1. + curritem-italic = -1. + curritem-align = -1. + curritem-frametyp = -1. + curritem-framecolor = -1. + curritem-currency = ''. + curritem-number = 1. + curritem-input = -1. + + data: conv_exit(10) type c. + data: const type i. + +* Change for Correction request +* Initial 10000 lines are missing in Excel Export +* if there are only 2 columns in exported List object. + + if datareal gt 2. + const = 20000 / datareal. + else. + const = 20000 / ( datareal + 2 ). + endif. + + data: lines type i. + data: innerlines type i. + data: counter type i. + data: curritem2 like curritem. + data: curritem3 like curritem. + data: length type i. + data: found. + +* append content table (for method set_range_content) + + loop at <f_excel_tab> assigning <line>. + +* save line index to compare with lt_subtot_indexs, +* to discover line is a subtotal / totale line or not +* ex use to set 'dun display zero in subtotal / total line' + + l_save_index = sy-tabix. + + do datareal times. + read table lt_sema into semaitem with key col_no = sy-index. + if semaitem-col_src ne 0. + assign component semaitem-col_src + of structure <line> to <item>. + else. + assign component sy-index + of structure <line> to <item>. + endif. + + contentsitem-row = realoverflow. + + if sy-subrc = 0. + move semaitem-col_ops to search_item(3). + search 'ADD#CNT#MIN#MAX#AVG#NOP#DFT#' + for search_item. + if sy-subrc ne 0. + raise error_in_sema. + endif. + move semaitem-col_typ to search_item(3). + search 'NUM#N00#N01#N02#N03#N04#PCT#DAT#MON#STR#' + for search_item. + if sy-subrc ne 0. + raise error_in_sema. + endif. + contentsitem-column = sy-index. + if semaitem-col_typ eq 'DAT' or semaitem-col_typ eq 'MON'. + if semaitem-col_no > vkeycount. + + " Hinweis 512418 + " EXCEL bezieht Datumsangaben + " auf den 31.12.1899, behandelt + " aber 1900 als ein Schaltjahr + " d.h. ab 1.3.1900 korrekt + " 1.3.1900 als Zahl = 61 + + data: genesis type d value '18991230'. + data: number_of_days type p. +* change for date in char format & sema_type = X + data: temp_date type d. + + if not <item> is initial and not <item> co ' ' and not + <item> co '0'. +* change for date in char format & sema_type = X starts + if sema_type = 'X'. + describe field <item> type typ. + if typ = 'C'. + temp_date = <item>. + number_of_days = temp_date - genesis. + else. + number_of_days = <item> - genesis. + endif. + else. + number_of_days = <item> - genesis. + endif. +* change for date in char format & sema_type = X ends + if number_of_days < 61. + number_of_days = number_of_days - 1. + endif. + + set country 'DE'. + write number_of_days to contentsitem-value + no-grouping + left-justified. + set country space. + translate contentsitem-value using comma_elim. + else. + clear contentsitem-value. + endif. + else. + move <item> to contentsitem-value. + endif. + elseif semaitem-col_typ eq 'NUM' or + semaitem-col_typ eq 'N00' or + semaitem-col_typ eq 'N01' or + semaitem-col_typ eq 'N02' or + semaitem-col_typ eq 'N03' or + semaitem-col_typ eq 'N04' or + semaitem-col_typ eq 'PCT'. + set country 'DE'. + describe field <item> type typ. + + if semaitem-col_cur is initial. + if typ ne 'F'. + write <item> to contentsitem-value no-grouping + no-sign decimals 14. + else. + write <item> to contentsitem-value no-grouping + no-sign. + endif. + else. +* Treat of fixed curreny for column >>Y9CK007319 + if semaitem-col_cur < 0. + semaitem-col_cur = semaitem-col_cur * ( -1 ). + select * from tcurx into table lt_tcurx. + sort lt_tcurx. + read table lt_tcurx into + wa_tcurx index semaitem-col_cur. + if sy-subrc = 0. + if typ ne 'F'. + write <item> to contentsitem-value no-grouping + currency wa_tcurx-currkey no-sign decimals 14. + else. + write <item> to contentsitem-value no-grouping + currency wa_tcurx-currkey no-sign. + endif. + endif. + else. + assign component semaitem-col_cur + of structure <line> to <g>. +* mit = index of recent row + curritem-top = rowmax + mit + li_commentary_rows. + + li_col_pos = sy-index + i_left - 1. + curritem-left = li_col_pos. + +* if filed is quantity field (qfieldname ne space) +* or amount field (cfieldname ne space), then format decimal place +* corresponding with config + + clear: l_def. + read table LT_FIELDCAT_KKBLO assigning <f_fieldcat_line> + with key tabname = l_tabname + tech = space + no_out = space + col_pos = semaitem-col_no. + IF sy-subrc = 0. + IF <f_fieldcat_line>-cfieldname is not initial. + l_def = 'C'. + else."if <f_fieldcat_line>-qfieldname is not initial. + l_def = 'Q'. + ENDIF. + ENDIF. + +* if field is amount field +* exporting of amount field base on currency decimal table: TCURX + IF l_def = 'C'. "field is amount field + select single * from tcurx into wa_tcurx + where currkey = <g>. +* if amount ref to un-know currency -> default decimal = 2 + if sy-subrc eq 0. + curritem-decimals = wa_tcurx-currdec. + else. + curritem-decimals = 2. + endif. + + append curritem to currcells. + if typ ne 'F'. + write <item> to contentsitem-value + currency <g> + no-sign no-grouping. + else. + write <item> to contentsitem-value + decimals 14 currency <g> + no-sign no-grouping. + endif. + +* if field is quantity field +* exporting of quantity field base on quantity decimal table: T006 + + else."if l_def = 'Q'. " field is quantity field + clear: wa_t006. + select single * from t006 into wa_t006 + where MSEHI = <g>. +* if quantity ref to un-know unit-> default decimal = 2 + if sy-subrc eq 0. + curritem-decimals = wa_t006-decan. + else. + curritem-decimals = 2. + endif. + append curritem to currcells. + + write <item> to contentsitem-value + unit <g> + no-sign no-grouping. + condense contentsitem-value. + + ENDIF. + + endif. "Y9CK007319 + endif. + condense contentsitem-value. + +* add function fieldcat-no zero display + + loop at LT_FIELDCAT_KKBLO assigning <f_fieldcat_line> + where tabname = l_tabname + and tech ne 'X' + and no_out ne 'X'. + if <f_fieldcat_line>-col_pos = semaitem-col_no. + if <f_fieldcat_line>-no_zero = 'X'. + if <item> = '0'. + clear: contentsitem-value. + endif. + +* dun display zero in total/subtotal line too + + else. + clear: wa_subtot_indexs. + read table lt_subtot_indexs into wa_subtot_indexs + with key index = l_save_index. + IF sy-subrc = 0. + if <item> = '0'. + clear: contentsitem-value. + endif. + ENDIF. + endif. + endif. + endloop. + unassign: <f_fieldcat_line>. + + if <item> lt 0. + search contentsitem-value for 'E'. + if sy-fdpos eq 0. + +* bring negative sign to front of amount + + translate contentsitem-value using '- '. + condense contentsitem-value no-gaps. + concatenate '-' contentsitem-value + into contentsitem-value. + else. + concatenate '-' contentsitem-value + into contentsitem-value. + endif. + endif. + set country space. +* Hier wird nur die korrekte Kommaseparatierung gemacht, wenn die +* Zeichen einer +* Zahl enthalten sind. Das ist f#ƒÂ#r Timestamps, die auch ":" enthalten. +* F#ƒÂ#r die +* darf keine Kommaseparierung stattfinden. +* Changing for correction request - Y6BK041073 + if contentsitem-value co '0123456789.,-+E '. + translate contentsitem-value using comma_elim. + endif. + else. + clear contentsitem-value. + +* if type is not numeric -> dun display with zero + + write <item> to contentsitem-value no-zero. + + shift contentsitem-value left deleting leading space. + + endif. + append contentsitem to contents. + endif. + enddo. + + realmit = realmit + 1. + realoverflow = realoverflow + 1. + + mit = mit + 1. +* overflow = current row index in content table + overflow = overflow + 1. + endloop. + + unassign: <f_fieldcat_line>. + +* set item range for set_range_data method + + testname = mit / const. + condense testname. + + concatenate 'TEST' testname into testname. + + realoverflow = realoverflow - 1. + realmit = realmit - 1. + help = realoverflow. + + rangeitem-name = testname. + rangeitem-columns = datareal. + rangeitem-rows = help. + append rangeitem to ranges. + +* insert item range dim + + temp2 = rowmax + 1 + li_commentary_rows + realmit - realoverflow. + +* items data + + call method lo_spreadsheet->insert_range_dim + EXPORTING + name = testname + top = temp2 + left = i_left + rows = help + columns = datareal + no_flush = no_flush. + +* get columns header contents for set_range_data method +* export columns header only if no columns header option = space + + data: rowcount type i. + data: columncount type i. + + if i_columns_header = 'X'. + +* append columns header to contents: hkey + + rowcount = 1. + do rowmax times. + columncount = 1. + do hkeycolumns times. + loop at lt_hkey into hkeyitem where col_no = columncount + and row_no = rowcount. + endloop. + if sy-subrc = 0. + str = hkeyitem-col_name. + contentsitem-value = hkeyitem-col_name. + else. + contentsitem-value = str. + endif. + contentsitem-column = columncount. + contentsitem-row = rowcount. + append contentsitem to contents. + columncount = columncount + 1. + enddo. + rowcount = rowcount + 1. + enddo. + +* incase columns header in multiline + + data: rowmaxtemp type i. + if rowmax > 1. + rowmaxtemp = rowmax - 1. + rowcount = 1. + do rowmaxtemp times. + columncount = 1. + do columnmax times. + contentsitem-column = columncount. + contentsitem-row = rowcount. + contentsitem-value = ''. + append contentsitem to contents. + columncount = columncount + 1. + enddo. + rowcount = rowcount + 1. + enddo. + endif. + +* append columns header to contents: vkey + + columncount = 1. + do columnmax times. + loop at lt_vkey into vkeyitem where col_no = columncount. + endloop. + contentsitem-value = vkeyitem-col_name. + contentsitem-row = rowmax. + contentsitem-column = columncount. + append contentsitem to contents. + columncount = columncount + 1. + enddo. +*--------------------------------------------------------------------* +* set header range for method set_range_data +* insert header keys range dim + + li_head_top = li_commentary_rows + 1. + li_col_pos = i_left. + +* insert range headers + + if hkeycolumns ne 0. + rangeitem-name = 'TESTHKEY'. + rangeitem-rows = rowmax. + rangeitem-columns = hkeycolumns. + append rangeitem to ranges. + clear: rangeitem. + + call method lo_spreadsheet->insert_range_dim + EXPORTING + name = 'TESTHKEY' + top = li_head_top + left = li_col_pos + rows = rowmax + columns = hkeycolumns + no_flush = no_flush. + endif. + endif. + +* format for columns header + total + subtotal +* ------------------------------------------ + + help = rowmax + realmit. " table + header lines + + data: item type colxxl_t. + data: lt_format type soi_format_table. + data: wa_format like line of lt_format. + data: wa_format_temp like line of lt_format. + + field-symbols: <f_source> type any. + field-symbols: <f_des> type any. + +* columns header format + + wa_format-front = -1. + wa_format-back = 15. "grey + wa_format-font = space. + wa_format-size = -1. + wa_format-bold = 1. + wa_format-align = 0. + wa_format-frametyp = -1. + wa_format-framecolor = -1. + +* get column header format from input record +* -> map input format + + if i_columns_header = 'X'. + wa_format-name = 'TESTHKEY'. + if i_format_col_header is not initial. + describe field i_format_col_header type l_typ components + li_col_num. + do li_col_num times. + if sy-index ne 1. " dun map range name + assign component sy-index of structure i_format_col_header + to <f_source>. + if <f_source> is not initial. + assign component sy-index of structure wa_format to <f_des>. + <f_des> = <f_source>. + unassign: <f_des>. + endif. + unassign: <f_source>. + endif. + enddo. + + clear: li_col_num. + endif. + + append wa_format to lt_format. + endif. + +* Zusammenfassen der Spalten mit gleicher Nachkommastellenzahl +* collect vertical cells (col) with the same number of decimal places +* to increase perfomance in currency cell format + + describe table currcells lines lines. + lines = lines - 1. + do lines times. + describe table currcells lines innerlines. + innerlines = innerlines - 1. + sort currcells by left top. + clear found. + do innerlines times. + read table currcells index sy-index into curritem. + counter = sy-index + 1. + read table currcells index counter into curritem2. + if curritem-left eq curritem2-left. + length = curritem-top + curritem-rows. + if length eq curritem2-top. + if curritem-decimals eq curritem2-decimals. + move curritem to curritem3. + curritem3-rows = curritem3-rows + curritem2-rows. + curritem-left = -1. + modify currcells index sy-index from curritem. + curritem2-left = -1. + modify currcells index counter from curritem2. + append curritem3 to currcells. + found = 'X'. + endif. + endif. + endif. + enddo. + if found is initial. + exit. + endif. + delete currcells where left = -1. + enddo. + +* Zusammenfassen der Zeilen mit gleicher Nachkommastellenzahl +* collect horizontal cells (row) with the same number of decimal places +* to increase perfomance in currency cell format + + describe table currcells lines lines. + lines = lines - 1. + do lines times. + describe table currcells lines innerlines. + innerlines = innerlines - 1. + sort currcells by top left. + clear found. + do innerlines times. + read table currcells index sy-index into curritem. + counter = sy-index + 1. + read table currcells index counter into curritem2. + if curritem-top eq curritem2-top and curritem-rows eq + curritem2-rows. + length = curritem-left + curritem-columns. + if length eq curritem2-left. + if curritem-decimals eq curritem2-decimals. + move curritem to curritem3. + curritem3-columns = curritem3-columns + curritem2-columns. + curritem-left = -1. + modify currcells index sy-index from curritem. + curritem2-left = -1. + modify currcells index counter from curritem2. + append curritem3 to currcells. + found = 'X'. + endif. + endif. + endif. + enddo. + if found is initial. + exit. + endif. + delete currcells where left = -1. + enddo. +* Ende der Zusammenfassung + + +* item data: format for currency cell, corresponding with currency + + call method lo_spreadsheet->cell_format + EXPORTING + cells = currcells + no_flush = no_flush. + +* item data: write item table content + + call method lo_spreadsheet->set_ranges_data + EXPORTING + ranges = ranges + contents = contents + no_flush = no_flush. + +* whole table range to format all table + + if i_columns_header = 'X'. + li_head_top = li_commentary_rows + 1. + else. + li_head_top = li_commentary_rows + 2. + help = help - 1. + endif. + + call method lo_spreadsheet->insert_range_dim + EXPORTING + name = 'WHOLE_TABLE' + top = li_head_top + left = i_left + rows = help + columns = datareal + no_flush = no_flush. + +* columns width auto fix +* this parameter = space in case use with exist template + + IF i_columns_autofit = 'X'. + call method lo_spreadsheet->fit_widest + EXPORTING + name = 'WHOLE_TABLE' + no_flush = no_flush. + ENDIF. + +* frame +* The parameter has 8 bits +*0 Left margin +*1 Top marginT +*2 Bottom margin +*3 Right margin +*4 Horizontal line +*5 Vertical line +*6 Thinness +*7 Thickness +* here 127 = 1111111 6-5-4-3-2-1 mean Thin-ver-hor-right-bot-top-left + +* ( final DOI method call, set no_flush = space +* equal to call method CL_GUI_CFW=>FLUSH ) + + call method lo_spreadsheet->set_frame + EXPORTING + rangename = 'WHOLE_TABLE' + typ = 127 + color = 1 + no_flush = space + IMPORTING + error = lo_error + retcode = lc_retcode. + + error_doi. + +* reformat subtotal / total line after format wholw table + + loop at subranges into subrangeitem. + l_sub_index = subrangeitem-rows + li_commentary_rows + rowmax. + + call method lo_spreadsheet->insert_range_dim + EXPORTING + name = subrangeitem-name + left = i_left + top = l_sub_index + rows = 1 + columns = datareal + no_flush = no_flush. + + wa_format-name = subrangeitem-name. + +* default format: +* - clolor: subtotal = light yellow, subtotal = yellow +* - frame: box + + IF subrangeitem-name(3) = 'SUB'. + wa_format-back = 36. "subtotal line + wa_format_temp = i_format_subtotal. + else. + wa_format-back = 27. "total line + wa_format_temp = i_format_total. + endif. + wa_format-FRAMETYP = 79. + wa_format-FRAMEcolor = 1. + wa_format-number = -1. + wa_format-align = -1. + +* get subtoal + total format from intput parameter +* overwrite default format + + if wa_format_temp is not initial. + describe field wa_format_temp type l_typ components li_col_num. + do li_col_num times. + if sy-index ne 1. " dun map range name + assign component sy-index of structure wa_format_temp + to <f_source>. + if <f_source> is not initial. + assign component sy-index of structure wa_format to <f_des>. + <f_des> = <f_source>. + unassign: <f_des>. + endif. + unassign: <f_source>. + endif. + enddo. + + clear: li_col_num. + endif. + + append wa_format to lt_format. + clear: wa_format-name. + clear: l_sub_index. + clear: wa_format_temp. + + endloop. + + if lt_format[] is not initial. + call method lo_spreadsheet->set_ranges_format + EXPORTING + formattable = lt_format + no_flush = no_flush. + refresh: lt_format. + endif. +*--------------------------------------------------------------------* + call method lo_spreadsheet->screen_update + EXPORTING + updating = 'X'. + + call method c_oi_errors=>flush_errors. + + lo_error_w = l_error. + lc_retcode = lo_error_w->error_code. + +** catch no_flush -> led to dump ( optional ) +* go_error = l_error. +* gc_retcode = go_error->error_code. +* error_doi. + + clear: + lt_sema, + wa_sema, + lt_hkey, + wa_hkey, + lt_vkey, + wa_vkey, + l_n_hrz_keys, + l_n_att_cols, + l_n_vrt_keys, + count, + datac, + datareal, + vkeycount, + all, + mit, + li_col_pos, + li_col_num, + ranges, + rangeitem, + contents, + contentsitem, + semaitem, + hkeyitem, + vkeyitem, + li_commentary_rows, + l_retcode, + li_head_top, + <f_excel_tab>. + + clear: + lo_error_w. + + unassign: + <line>, + <item>, + <f_excel_tab>. + +*--------------------------------------------------------------------* +* SESSION 5: SAVE AND CLOSE FILE +*--------------------------------------------------------------------* + +* ex of save path: 'FILE://C:\temp\test.xlsx' + concatenate 'FILE://' I_save_path + into ls_path. + + call method lo_proxy->save_document_to_url + EXPORTING + no_flush = 'X' + url = ls_path + IMPORTING + error = lo_error + retcode = lc_retcode + CHANGING + document_size = li_document_size. + + error_doi. + +* if save successfully -> raise successful message +* message i499(sy) with 'Document is Exported to ' p_path. + message i499(sy) with 'Data has been exported successfully'. + + clear: + ls_path, + li_document_size. + + close_document. +endmethod. + + + + + + + + METHOD bind_table. +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (wi p) 2012-12-01 +* - ... +* aligning code +* message made to support multilinguality +*--------------------------------------------------------------------* +* issue #237 - Check if overlapping areas exist +* - Alessandro Iannacci 2012-12-01 +* changes: - Added raise if overlaps are detected +*--------------------------------------------------------------------* + + CONSTANTS: + lc_top_left_column TYPE zexcel_cell_column_alpha VALUE 'B', + lc_top_left_row TYPE zexcel_cell_row VALUE '3'. + + DATA: + lv_row_int TYPE zexcel_cell_row, + lv_first_row TYPE zexcel_cell_row, + lv_last_row TYPE zexcel_cell_row, + lv_column_int TYPE zexcel_cell_column, + lv_column_alpha TYPE zexcel_cell_column_alpha, + lt_field_catalog TYPE zexcel_t_fieldcatalog, + lv_id TYPE i, + lv_rows TYPE i, + lv_formula TYPE string, + ls_settings TYPE zexcel_s_table_settings, + lo_table TYPE REF TO zcl_excel_table, + lt_column_name_buffer TYPE SORTED TABLE OF string WITH UNIQUE KEY table_line, + lv_value TYPE string, + lv_syindex TYPE char3, + lv_errormessage TYPE string, "ins issue #237 + + lv_columns TYPE i, + lt_columns TYPE zexcel_t_fieldcatalog, + lv_maxcol TYPE i, + lv_maxrow TYPE i, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_curtable TYPE REF TO zcl_excel_table. + + FIELD-SYMBOLS: + <ls_field_catalog> TYPE zexcel_s_fieldcatalog, + <ls_field_catalog_custom> TYPE zexcel_s_fieldcatalog, + <fs_table_line> TYPE ANY, + <fs_fldval> TYPE ANY. + + ls_settings = is_table_settings. + + IF ls_settings-top_left_column IS INITIAL. + ls_settings-top_left_column = lc_top_left_column. + ENDIF. + + IF ls_settings-table_style IS INITIAL. + ls_settings-table_style = zcl_excel_table=>builtinstyle_medium2. + ENDIF. + + IF ls_settings-top_left_row IS INITIAL. + ls_settings-top_left_row = lc_top_left_row. + ENDIF. + + IF it_field_catalog IS NOT SUPPLIED. + lt_field_catalog = zcl_excel_common=>get_fieldcatalog( ip_table = ip_table ). + ELSE. + lt_field_catalog = it_field_catalog. + ENDIF. + + SORT lt_field_catalog BY position. + +*--------------------------------------------------------------------* +* issue #237 Check if overlapping areas exist Start +*--------------------------------------------------------------------* + "Get the number of columns for the current table + lt_columns = lt_field_catalog. + DELETE lt_columns WHERE dynpfld NE abap_true. + DESCRIBE TABLE lt_columns LINES lv_columns. + + "Calculate the top left row of the current table + lv_column_int = zcl_excel_common=>convert_column2int( ls_settings-top_left_column ). + lv_row_int = ls_settings-top_left_row. + + "Get number of row for the current table + DESCRIBE TABLE ip_table LINES lv_rows. + + "Calculate the bottom right row for the current table + lv_maxcol = lv_column_int + lv_columns - 1. + lv_maxrow = lv_row_int + lv_rows - 1. + ls_settings-bottom_right_column = zcl_excel_common=>convert_column2alpha( lv_maxcol ). + ls_settings-bottom_right_row = lv_maxrow. + + lv_column_int = zcl_excel_common=>convert_column2int( ls_settings-top_left_column ). + + lo_iterator = me->tables->if_object_collection~get_iterator( ). + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + + lo_curtable ?= lo_iterator->if_object_collection_iterator~get_next( ). + IF ( ( ls_settings-top_left_row GE lo_curtable->settings-top_left_row AND ls_settings-top_left_row LE lo_curtable->settings-bottom_right_row ) + OR + ( ls_settings-bottom_right_row GE lo_curtable->settings-top_left_row AND ls_settings-bottom_right_row LE lo_curtable->settings-bottom_right_row ) + ) + AND + ( ( lv_column_int GE zcl_excel_common=>convert_column2int( lo_curtable->settings-top_left_column ) AND lv_column_int LE zcl_excel_common=>convert_column2int( lo_curtable->settings-bottom_right_column ) ) + OR + ( lv_maxcol GE zcl_excel_common=>convert_column2int( lo_curtable->settings-top_left_column ) AND lv_maxcol LE zcl_excel_common=>convert_column2int( lo_curtable->settings-bottom_right_column ) ) + ). + lv_errormessage = 'Table overlaps with previously bound table and will not be added to worksheet.'(400). + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. + + ENDWHILE. +*--------------------------------------------------------------------* +* issue #237 Check if overlapping areas exist End +*--------------------------------------------------------------------* + + CREATE OBJECT lo_table. + lo_table->settings = ls_settings. + lo_table->set_data( ir_data = ip_table ). + lv_id = me->excel->get_next_table_id( ). + lo_table->set_id( iv_id = lv_id ). +* lo_table->fieldcat = lt_field_catalog[]. + + me->tables->add( lo_table ). + +* It is better to loop column by column (only visible column) + LOOP AT lt_field_catalog ASSIGNING <ls_field_catalog> WHERE dynpfld EQ abap_true. + + lv_column_alpha = zcl_excel_common=>convert_column2alpha( lv_column_int ). + + " Due restrinction of new table object we cannot have two column with the same name + " Check if a column with the same name exists, if exists add a counter + " If no medium description is provided we try to use small or long +* lv_value = <ls_field_catalog>-scrtext_m. + IF <ls_field_catalog>-scrtext_m IS NOT INITIAL. + lv_value = <ls_field_catalog>-scrtext_m. + <ls_field_catalog>-scrtext_l = lv_value. + ELSEIF <ls_field_catalog>-scrtext_s IS NOT INITIAL. + lv_value = <ls_field_catalog>-scrtext_s. + <ls_field_catalog>-scrtext_l = lv_value. + ELSEIF <ls_field_catalog>-scrtext_l IS NOT INITIAL. + lv_value = <ls_field_catalog>-scrtext_l. + ELSE. + lv_value = 'Column'. " default value as Excel does + <ls_field_catalog>-scrtext_l = lv_value. + ENDIF. + WHILE 1 = 1. + + READ TABLE lt_column_name_buffer TRANSPORTING NO FIELDS WITH KEY table_line = lv_value BINARY SEARCH. + IF sy-subrc <> 0. + <ls_field_catalog>-scrtext_l = lv_value. + INSERT lv_value INTO TABLE lt_column_name_buffer. + EXIT. + ELSE. + lv_syindex = sy-index. + CONCATENATE <ls_field_catalog>-scrtext_l lv_syindex INTO lv_value. + ENDIF. + + ENDWHILE. + " First of all write column header + IF <ls_field_catalog>-style_header IS NOT INITIAL. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_value = lv_value + ip_style = <ls_field_catalog>-style_header ). + ELSE. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_value = lv_value ). + ENDIF. + + ADD 1 TO lv_row_int. + LOOP AT ip_table ASSIGNING <fs_table_line>. + + ASSIGN COMPONENT <ls_field_catalog>-fieldname OF STRUCTURE <fs_table_line> TO <fs_fldval>. + " issue #290 Add formula support in table + IF <ls_field_catalog>-formula EQ abap_true. + IF <ls_field_catalog>-style IS NOT INITIAL. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_formula = <fs_fldval> + ip_style = <ls_field_catalog>-style ). + ELSE. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_formula = <fs_fldval> ). + ENDIF. + ELSE. + IF <ls_field_catalog>-style IS NOT INITIAL. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_value = <fs_fldval> + ip_style = <ls_field_catalog>-style ). + ELSE. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_value = <fs_fldval> ). + ENDIF. + ENDIF. + ADD 1 TO lv_row_int. + + ENDLOOP. + IF sy-subrc <> 0. "create empty row if table has no data + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_value = space ). + ADD 1 TO lv_row_int. + ENDIF. + +*--------------------------------------------------------------------* + " totals +*--------------------------------------------------------------------* + IF <ls_field_catalog>-totals_function IS NOT INITIAL. + lv_formula = lo_table->get_totals_formula( ip_column = <ls_field_catalog>-scrtext_l ip_function = <ls_field_catalog>-totals_function ). + IF <ls_field_catalog>-style_total IS NOT INITIAL. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_formula = lv_formula + ip_style = <ls_field_catalog>-style_total ). + ELSE. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_formula = lv_formula ). + ENDIF. + ENDIF. + + lv_row_int = ls_settings-top_left_row. + ADD 1 TO lv_column_int. + +*--------------------------------------------------------------------* + " conditional formatting +*--------------------------------------------------------------------* + IF <ls_field_catalog>-cond_style IS NOT INITIAL. + lv_first_row = ls_settings-top_left_row + 1. " +1 to exclude header + lv_last_row = ls_settings-top_left_row + lv_rows. + <ls_field_catalog>-cond_style->set_range( ip_start_column = lv_column_alpha + ip_start_row = lv_first_row + ip_stop_column = lv_column_alpha + ip_stop_row = lv_last_row ). + ENDIF. + + ENDLOOP. + +*--------------------------------------------------------------------* + " Set field catalog +*--------------------------------------------------------------------* + lo_table->fieldcat = lt_field_catalog[]. + + es_table_settings = ls_settings. + es_table_settings-bottom_right_column = lv_column_alpha. + " >> Issue #291 + IF ip_table IS INITIAL. + es_table_settings-bottom_right_row = ls_settings-top_left_row + 2. "Last rows + ELSE. + es_table_settings-bottom_right_row = ls_settings-top_left_row + lv_rows + 1. "Last rows + ENDIF. + " << Issue #291 + +ENDMETHOD. + + + + + + + method CALCULATE_CELL_WIDTH. + DATA: cell_value TYPE zexcel_cell_value, + guid TYPE zexcel_cell_style, + stylemapping TYPE zexcel_s_stylemapping. + + me->get_cell( EXPORTING ip_column = ip_column " Cell Column + ip_row = ip_row " Cell Row + IMPORTING ep_value = cell_value + ep_guid = guid )." Cell Value ). + + + ep_width = STRLEN( cell_value ). + TRY. + stylemapping = me->excel->get_style_to_guid( guid ). + CATCH zcx_excel. + EXIT. " Do nothing if no style was found + ENDTRY. + + IF stylemapping-complete_stylex-font-size = 'X'. + ep_width = ep_width * stylemapping-complete_style-font-size / 11. + ENDIF. + +endmethod. + + + + method CALCULATE_COLUMN_WIDTHS. + TYPES: + BEGIN OF t_auto_size, + col_index TYPE int4, + width TYPE float, + END OF t_auto_size. + TYPES: tt_auto_size TYPE TABLE OF t_auto_size. + + DATA: column_dimensions TYPE zexcel_t_worksheet_columndime. + DATA: column_dimension TYPE REF TO zcl_excel_worksheet_columndime. + + DATA: auto_size TYPE flag. + DATA: auto_sizes TYPE tt_auto_size. +* DATA: col_alpha TYPE zexcel_cell_column_alpha." issue #155 - less restrictive typing for ip_column + DATA: cell_value TYPE zexcel_cell_value. + DATA: cell_style TYPE REF TO zcl_excel_style. + DATA: count TYPE int4. + DATA: highest_row TYPE int4. + DATA: width TYPE i. + + FIELD-SYMBOLS: <column_dimension> LIKE LINE OF column_dimensions. + FIELD-SYMBOLS: <auto_size> LIKE LINE OF auto_sizes. + + column_dimensions[] = me->get_column_dimensions( ). + LOOP AT column_dimensions ASSIGNING <column_dimension>. + auto_size = <column_dimension>-column_dimension->get_auto_size( ). + IF auto_size = abap_true. + APPEND INITIAL LINE TO auto_sizes ASSIGNING <auto_size>. + <auto_size>-col_index = <column_dimension>-column_dimension->get_column_index( ). + <auto_size>-width = -1. + ENDIF. + ENDLOOP. + + " There is only something to do if there are some auto-size columns + IF NOT auto_sizes IS INITIAL. + highest_row = me->get_highest_row( ). + LOOP AT auto_sizes ASSIGNING <auto_size>. +* col_alpha = zcl_excel_common=>convert_column2alpha( <auto_size>-col_index )." issue #155 - less restrictive typing for ip_column + count = 1. + WHILE count <= highest_row. +* Start of change # issue 139 - Dateretention of cellstyles +* IF cell_style IS BOUND. +* CREATE OBJECT cell_style. +* ENDIF. +* me->get_cell( +* EXPORTING +* ip_column = col_alpha " Cell Column +* ip_row = count " Cell Row +* IMPORTING +* ep_value = cell_value " Cell Value +* ep_style = cell_style " Request Cell Style as well +* ). +* " For an easy start we just take the number of characters as the width +* width = strlen( cell_value ). +* " Addition to solve issue #120, contribution by Stefan Schm#ƒÂ#cker +* " Calculate width using Font Size and Font Type +* IF cell_style IS BOUND +* AND cell_style->font IS BOUND. +* width = cell_style->font->calculate_text_width( cell_value ). +* ENDIF. +* width = calculate_cell_width( ip_column = col_alpha " issue #155 - less restrictive typing for ip_column + width = calculate_cell_width( ip_column = <auto_size>-col_index " issue #155 - less restrictive typing for ip_column + ip_row = count ). +* End of change # issue 139 - Dateretention of cellstyles + IF width > <auto_size>-width. + <auto_size>-width = width. + ENDIF. + count = count + 1. + ENDWHILE. +* column_dimension = me->get_column_dimension( col_alpha ). " issue #155 - less restrictive typing for ip_column + column_dimension = me->get_column_dimension( <auto_size>-col_index ). " issue #155 - less restrictive typing for ip_column + column_dimension->set_width( <auto_size>-width ). + ENDLOOP. + ENDIF. + +endmethod. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + method CHANGE_CELL_STYLE. + " issue # 139 + DATA: stylemapping TYPE zexcel_s_stylemapping, + + complete_style TYPE zexcel_s_cstyle_complete, + complete_stylex TYPE zexcel_s_cstylex_complete, + + borderx TYPE zexcel_s_cstylex_border, + l_guid TYPE zexcel_cell_style. "issue # 177 + +* We have a lot of parameters. Use some macros to make the coding more structured + + DEFINE clear_initial_colorxfields. + if &1-rgb is initial. + clear &2-rgb. + endif. + if &1-indexed is initial. + clear &2-indexed. + endif. + if &1-theme is initial. + clear &2-theme. + endif. + if &1-tint is initial. + clear &2-tint. + endif. + END-OF-DEFINITION. + + DEFINE move_supplied_borders. + if ip_&1 is supplied. " only act if parameter was supplied + if ip_x&1 is supplied. " + borderx = ip_x&1. " use supplied x-parameter + else. + clear borderx with 'X'. +* clear in a way that would be expected to work easily + if ip_&1-border_style is initial. + clear borderx-border_style. + endif. + clear_initial_colorxfields ip_&1-border_color borderx-border_color. + endif. + move-corresponding ip_&1 to complete_style-&2. + move-corresponding borderx to complete_stylex-&2. + endif. + END-OF-DEFINITION. + +* First get current stylsettings + TRY. + me->get_cell( EXPORTING ip_column = ip_column " Cell Column + ip_row = ip_row " Cell Row + IMPORTING ep_guid = l_guid )." Cell Value ). "issue # 177 + + + stylemapping = me->excel->get_style_to_guid( l_guid ). "issue # 177 + complete_style = stylemapping-complete_style. + complete_stylex = stylemapping-complete_stylex. + CATCH zcx_excel. +* Error --> use submitted style + ENDTRY. + +* move_supplied_multistyles: complete. + IF ip_complete IS SUPPLIED. + IF ip_xcomplete IS NOT SUPPLIED. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Complete styleinfo has to be supplied with corresponding X-field'. + ENDIF. + MOVE-CORRESPONDING ip_complete TO complete_style. + MOVE-CORRESPONDING ip_xcomplete TO complete_stylex. + ENDIF. + + + + IF ip_font IS SUPPLIED. + DATA: fontx LIKE ip_xfont. + IF ip_xfont IS SUPPLIED. + fontx = ip_xfont. + ELSE. +* Only supplied values should be used - exception: Flags bold and italic strikethrough underline + MOVE 'X' TO: fontx-bold, + fontx-italic, + fontx-strikethrough, + fontx-underline_mode. + CLEAR fontx-color WITH 'X'. + clear_initial_colorxfields ip_font-color fontx-color. + IF ip_font-family IS NOT INITIAL. + fontx-family = 'X'. + ENDIF. + IF ip_font-name IS NOT INITIAL. + fontx-name = 'X'. + ENDIF. + IF ip_font-scheme IS NOT INITIAL. + fontx-scheme = 'X'. + ENDIF. + IF ip_font-size IS NOT INITIAL. + fontx-size = 'X'. + ENDIF. + IF ip_font-underline_mode IS NOT INITIAL. + fontx-underline_mode = 'X'. + ENDIF. + ENDIF. + MOVE-CORRESPONDING ip_font TO complete_style-font. + MOVE-CORRESPONDING fontx TO complete_stylex-font. +* Correction for undeline mode + ENDIF. + + IF ip_fill IS SUPPLIED. + DATA: fillx LIKE ip_xfill. + IF ip_xfill IS SUPPLIED. + fillx = ip_xfill. + ELSE. + CLEAR fillx WITH 'X'. + IF ip_fill-filltype IS INITIAL. + CLEAR fillx-filltype. + ENDIF. + clear_initial_colorxfields ip_fill-fgcolor fillx-fgcolor. + clear_initial_colorxfields ip_fill-bgcolor fillx-bgcolor. + + ENDIF. + MOVE-CORRESPONDING ip_fill TO complete_style-fill. + MOVE-CORRESPONDING fillx TO complete_stylex-fill. + ENDIF. + + + IF ip_borders IS SUPPLIED. + DATA: bordersx LIKE ip_xborders. + IF ip_xborders IS SUPPLIED. + bordersx = ip_xborders. + ELSE. + CLEAR bordersx WITH 'X'. + IF ip_borders-allborders-border_style IS INITIAL. + CLEAR bordersx-allborders-border_style. + ENDIF. + IF ip_borders-diagonal-border_style IS INITIAL. + CLEAR bordersx-diagonal-border_style. + ENDIF. + IF ip_borders-down-border_style IS INITIAL. + CLEAR bordersx-down-border_style. + ENDIF. + IF ip_borders-left-border_style IS INITIAL. + CLEAR bordersx-left-border_style. + ENDIF. + IF ip_borders-right-border_style IS INITIAL. + CLEAR bordersx-right-border_style. + ENDIF. + IF ip_borders-top-border_style IS INITIAL. + CLEAR bordersx-top-border_style. + ENDIF. + clear_initial_colorxfields ip_borders-allborders-border_color bordersx-allborders-border_color. + clear_initial_colorxfields ip_borders-diagonal-border_color bordersx-diagonal-border_color. + clear_initial_colorxfields ip_borders-down-border_color bordersx-down-border_color. + clear_initial_colorxfields ip_borders-left-border_color bordersx-left-border_color. + clear_initial_colorxfields ip_borders-right-border_color bordersx-right-border_color. + clear_initial_colorxfields ip_borders-top-border_color bordersx-top-border_color. + + ENDIF. + MOVE-CORRESPONDING ip_borders TO complete_style-borders. + MOVE-CORRESPONDING bordersx TO complete_stylex-borders. + ENDIF. + + IF ip_alignment IS SUPPLIED. + DATA: alignmentx LIKE ip_xalignment. + IF ip_xalignment IS SUPPLIED. + alignmentx = ip_xalignment. + ELSE. + CLEAR alignmentx WITH 'X'. + IF ip_alignment-horizontal IS INITIAL. + CLEAR alignmentx-horizontal. + ENDIF. + IF ip_alignment-vertical IS INITIAL. + CLEAR alignmentx-vertical. + ENDIF. + ENDIF. + MOVE-CORRESPONDING ip_alignment TO complete_style-alignment. + MOVE-CORRESPONDING alignmentx TO complete_stylex-alignment. + ENDIF. + + IF ip_protection IS SUPPLIED. + MOVE-CORRESPONDING ip_alignment TO complete_style-alignment. + IF ip_xprotection IS SUPPLIED. + MOVE-CORRESPONDING ip_xprotection TO complete_stylex-protection. + ELSE. + IF ip_protection-hidden IS NOT INITIAL. + complete_style-protection-hidden = 'X'. + ENDIF. + IF ip_protection-locked IS NOT INITIAL. + complete_style-protection-locked = 'X'. + ENDIF. + ENDIF. + ENDIF. + + + move_supplied_borders : borders_allborders borders-allborders, + borders_diagonal borders-diagonal , + borders_down borders-down , + borders_left borders-left , + borders_right borders-right , + borders_top borders-top . + + DEFINE move_supplied_singlestyles. + if ip_&1 is supplied. + complete_style-&2 = ip_&1. + complete_stylex-&2 = 'X'. + endif. + END-OF-DEFINITION. + + move_supplied_singlestyles: number_format_format_code number_format-format_code, + font_bold font-bold, + font_color font-color, + font_color_rgb font-color-rgb, + font_color_indexed font-color-indexed, + font_color_theme font-color-theme, + font_color_tint font-color-tint, + + font_family font-family, + font_italic font-italic, + font_name font-name, + font_scheme font-scheme, + font_size font-size, + font_strikethrough font-strikethrough, + font_underline font-underline, + font_underline_mode font-underline_mode, + fill_filltype fill-filltype, + fill_rotation fill-rotation, + fill_fgcolor fill-fgcolor, + fill_fgcolor_rgb fill-fgcolor-rgb, + fill_fgcolor_indexed fill-fgcolor-indexed, + fill_fgcolor_theme fill-fgcolor-theme, + fill_fgcolor_tint fill-fgcolor-tint, + + fill_bgcolor fill-bgcolor, + fill_bgcolor_rgb fill-bgcolor-rgb, + fill_bgcolor_indexed fill-bgcolor-indexed, + fill_bgcolor_theme fill-bgcolor-theme, + fill_bgcolor_tint fill-bgcolor-tint, + + borders_diagonal_mode borders-diagonal_mode, + alignment_horizontal alignment-horizontal, + alignment_vertical alignment-vertical, + alignment_textrotation alignment-textrotation, + alignment_wraptext alignment-wraptext, + alignment_shrinktofit alignment-shrinktofit, + alignment_indent alignment-indent, + protection_hidden protection-hidden, + protection_locked protection-locked, + + borders_allborders_style borders-allborders-border_style, + borders_allborders_color borders-allborders-border_color, + borders_allbo_color_rgb borders-allborders-border_color-rgb, + borders_allbo_color_indexed borders-allborders-border_color-indexed, + borders_allbo_color_theme borders-allborders-border_color-theme, + borders_allbo_color_tint borders-allborders-border_color-tint, + + borders_diagonal_style borders-diagonal-border_style, + borders_diagonal_color borders-diagonal-border_color, + borders_diagonal_color_rgb borders-diagonal-border_color-rgb, + borders_diagonal_color_inde borders-diagonal-border_color-indexed, + borders_diagonal_color_them borders-diagonal-border_color-theme, + borders_diagonal_color_tint borders-diagonal-border_color-tint, + + borders_down_style borders-down-border_style, + borders_down_color borders-down-border_color, + borders_down_color_rgb borders-down-border_color-rgb, + borders_down_color_indexed borders-down-border_color-indexed, + borders_down_color_theme borders-down-border_color-theme, + borders_down_color_tint borders-down-border_color-tint, + + borders_left_style borders-left-border_style, + borders_left_color borders-left-border_color, + borders_left_color_rgb borders-left-border_color-rgb, + borders_left_color_indexed borders-left-border_color-indexed, + borders_left_color_theme borders-left-border_color-theme, + borders_left_color_tint borders-left-border_color-tint, + + borders_right_style borders-right-border_style, + borders_right_color borders-right-border_color, + borders_right_color_rgb borders-right-border_color-rgb, + borders_right_color_indexed borders-right-border_color-indexed, + borders_right_color_theme borders-right-border_color-theme, + borders_right_color_tint borders-right-border_color-tint, + + borders_top_style borders-top-border_style, + borders_top_color borders-top-border_color, + borders_top_color_rgb borders-top-border_color-rgb, + borders_top_color_indexed borders-top-border_color-indexed, + borders_top_color_theme borders-top-border_color-theme, + borders_top_color_tint borders-top-border_color-tint. + + +* Now we have a completly filled styles. +* This can be used to get the guid +* Return guid if requested. Might be used if copy&paste of styles is requested + ep_guid = me->excel->get_static_cellstyle_guid( ip_cstyle_complete = complete_style + ip_cstylex_complete = complete_stylex ). + me->set_cell_style( ip_column = ip_column + ip_row = ip_row + ip_style = ep_guid ). + +endmethod. + + + + + + method CONSTRUCTOR. + DATA: lv_title TYPE zexcel_sheet_title. + + me->excel = ip_excel. + + CALL FUNCTION 'GUID_CREATE' + IMPORTING + ev_guid_16 = me->guid. + + IF ip_title IS NOT INITIAL. + lv_title = ip_title. + ELSE. +* lv_title = me->guid. " del issue #154 - Names of worksheets + lv_title = me->generate_title( ). " ins issue #154 - Names of worksheets + ENDIF. + + me->set_title( ip_title = lv_title ). + + CREATE OBJECT sheet_setup. + CREATE OBJECT conditional_styles. + CREATE OBJECT data_validations. + CREATE OBJECT tables. + CREATE OBJECT ranges. " issue #163 + CREATE OBJECT drawings + EXPORTING + ip_type = zcl_excel_drawing=>type_image. + CREATE OBJECT charts + EXPORTING + ip_type = zcl_excel_drawing=>type_chart. + me->zif_excel_sheet_protection~initialize( ). + me->zif_excel_sheet_properties~initialize( ). + CREATE OBJECT hyperlinks. + +* initialize active cell coordinates + active_cell-cell_row = 1. + active_cell-cell_column = 1. + +* inizialize dimension range + lower_cell-cell_row = 1. + lower_cell-cell_column = 1. + upper_cell-cell_row = 1. + upper_cell-cell_column = 1. + +endmethod. + + + method DELETE_MERGE. + + DELETE sheet_content_merge INDEX 1. + DELETE sheet_content_merge INDEX 1. + +endmethod. + + + + + + method FREEZE_PANES. + data: lv_xsplit type i, + lv_ysplit type i. + + IF ip_num_columns IS NOT SUPPLIED AND ip_num_rows IS NOT SUPPLIED. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Pleas provide number of rows and/or columns to freeze'. + ENDIF. + + IF ip_num_columns IS SUPPLIED AND ip_num_columns <= 0. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Number of columns to freeze should be positive'. + ENDIF. + + IF ip_num_rows IS SUPPLIED AND ip_num_rows <= 0. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Number of rows to freeze should be positive'. + ENDIF. + + freeze_pane_cell_column = ip_num_columns + 1. + freeze_pane_cell_row = ip_num_rows + 1. +endmethod. + + + + method GENERATE_TITLE. + DATA: lo_worksheets_iterator TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + errormessage TYPE string. + + DATA: t_titles TYPE HASHED TABLE OF zexcel_sheet_title WITH UNIQUE KEY table_line, + title TYPE zexcel_sheet_title, + sheetnumber TYPE i. + +* Get list of currently used titles + lo_worksheets_iterator = me->excel->get_worksheets_iterator( ). + WHILE lo_worksheets_iterator->has_next( ) = abap_true. + lo_worksheet ?= lo_worksheets_iterator->get_next( ). + title = lo_worksheet->get_title( ). + INSERT title INTO TABLE t_titles. + ADD 1 TO sheetnumber. + ENDWHILE. + +* Now build sheetnumber. Increase counter until we hit a number that is not used so far + ADD 1 TO sheetnumber. " Start counting with next number + DO. + title = sheetnumber. + SHIFT title LEFT DELETING LEADING space. + CONCATENATE 'Sheet'(001) title INTO ep_title. + INSERT ep_title INTO TABLE t_titles. + IF sy-subrc = 0. " Title not used so far --> take it + EXIT. + ENDIF. + + ADD 1 TO sheetnumber. + ENDDO. +endmethod. + + + + + method GET_ACTIVE_CELL. + + DATA: lv_active_column TYPE zexcel_cell_column_alpha, + lv_active_row TYPE string. + + lv_active_column = zcl_excel_common=>convert_column2alpha( active_cell-cell_column ). + lv_active_row = active_cell-cell_row. + SHIFT lv_active_row RIGHT DELETING TRAILING space. + SHIFT lv_active_row LEFT DELETING LEADING space. + CONCATENATE lv_active_column lv_active_row INTO ep_active_cell. + +endmethod. + + + + + + + + + + method GET_CELL. + + DATA: lv_column TYPE zexcel_cell_column, + ls_sheet_content TYPE zexcel_s_cell_data. + + FIELD-SYMBOLS: <fs_sheet_content> TYPE zexcel_s_cell_data. + + lv_column = zcl_excel_common=>convert_column2int( ip_column ). + + READ TABLE sheet_content INTO ls_sheet_content WITH TABLE KEY cell_row = ip_row + cell_column = lv_column. + + ep_rc = sy-subrc. + ep_value = ls_sheet_content-cell_value. + ep_guid = ls_sheet_content-cell_style. " issue 139 - added this to be used for columnwidth calculation + + " Addition to solve issue #120, contribution by Stefan Schm#ƒÂ#cker + DATA: style_iterator TYPE REF TO cl_object_collection_iterator, + style TYPE REF TO zcl_excel_style. + IF ep_style IS REQUESTED. + style_iterator = me->excel->get_styles_iterator( ). + WHILE style_iterator->has_next( ) = 'X'. + style ?= style_iterator->get_next( ). + IF style->get_guid( ) = ls_sheet_content-cell_style. + ep_style = style. + EXIT. + ENDIF. + ENDWHILE. + ENDIF. +endmethod. + + + + + + method GET_COLUMN_DIMENSION. + FIELD-SYMBOLS: <fs_column_dimension> LIKE LINE OF column_dimensions. + DATA: lv_column_alpha TYPE zexcel_cell_column_alpha. " issue #155 - less restrictive typing for ip_column + + lv_column_alpha = zcl_excel_common=>convert_column2alpha( ip_column )." issue #155 - less restrictive typing for ip_column + READ TABLE me->column_dimensions ASSIGNING <fs_column_dimension> + WITH KEY column = lv_column_alpha. " issue #155 - less restrictive typing for ip_column + + IF NOT <fs_column_dimension> IS ASSIGNED. + CREATE OBJECT r_column_dimension + EXPORTING + ip_index = lv_column_alpha " issue #155 - less restrictive typing for ip_column + ip_excel = me->excel " issue #157 - Allow style for columns + ip_worksheet = me. " issue #157 - Allow style for columns + APPEND INITIAL LINE TO me->column_dimensions ASSIGNING <fs_column_dimension>. + <fs_column_dimension>-column = lv_column_alpha. " issue #155 - less restrictive typing for ip_column + <fs_column_dimension>-column_dimension = r_column_dimension. + ELSE. + r_column_dimension = <fs_column_dimension>-column_dimension. + ENDIF. + +endmethod. + + + + method GET_COLUMN_DIMENSIONS. + r_column_dimension[] = me->column_dimensions[]. +endmethod. + + + + method GET_COND_STYLES_ITERATOR. + + eo_iterator = me->conditional_styles->get_iterator( ). +endmethod. + + + + method GET_DATA_VALIDATIONS_ITERATOR. + + eo_iterator = me->data_validations->get_iterator( ). +endmethod. + + + + method GET_DATA_VALIDATIONS_SIZE. + ep_size = me->data_validations->size( ). +endmethod. + + + + method GET_DEFAULT_COLUMN_DIMENSION. + IF me->default_column_dimension IS NOT BOUND. + CREATE OBJECT me->default_column_dimension + EXPORTING + ip_index = 'A' " ???? + ip_worksheet = me + ip_excel = me->excel. + ENDIF. + + r_column_dimension = me->default_column_dimension. +endmethod. + + + + method GET_DEFAULT_EXCEL_DATE_FORMAT. + CONSTANTS: c_lang_e TYPE lang VALUE 'E'. + + IF default_excel_date_format IS NOT INITIAL. + ep_default_excel_date_format = default_excel_date_format. + RETURN. + ENDIF. + + "try to get defaults + TRY. + cl_abap_datfm=>get_date_format_des( EXPORTING im_langu = c_lang_e + IMPORTING ex_dateformat = default_excel_date_format ). + CATCH cx_abap_datfm_format_unknown. + + ENDTRY. + + " and fallback to fixed format + IF default_excel_date_format IS INITIAL. + default_excel_date_format = zcl_excel_style_number_format=>c_format_date_ddmmyyyydot. + ENDIF. + + ep_default_excel_date_format = default_excel_date_format. +endmethod. + + + + method GET_DEFAULT_EXCEL_TIME_FORMAT. + DATA: l_timefm TYPE xutimefm. + + IF default_excel_time_format IS NOT INITIAL. + ep_default_excel_time_format = default_excel_time_format. + RETURN. + ENDIF. + +* Let's get default + l_timefm = cl_abap_timefm=>get_environment_timefm( ). + CASE l_timefm. + WHEN 0. +*0 24 Hour Format (Example: 12:05:10) + default_excel_time_format = zcl_excel_style_number_format=>c_format_date_time6. + WHEN 1. +*1 12 Hour Format (Example: 12:05:10 PM) + default_excel_time_format = zcl_excel_style_number_format=>c_format_date_time2. + WHEN 2. +*2 12 Hour Format (Example: 12:05:10 pm) for now all the same. no chnage upper lower + default_excel_time_format = zcl_excel_style_number_format=>c_format_date_time2. + WHEN 3. +*3 Hours from 0 to 11 (Example: 00:05:10 PM) for now all the same. no chnage upper lower + default_excel_time_format = zcl_excel_style_number_format=>c_format_date_time2. + WHEN 4. +*4 Hours from 0 to 11 (Example: 00:05:10 pm) for now all the same. no chnage upper lower + default_excel_time_format = zcl_excel_style_number_format=>c_format_date_time2. + WHEN OTHERS. + " and fallback to fixed format + default_excel_time_format = zcl_excel_style_number_format=>c_format_date_time6. + ENDCASE. + + ep_default_excel_time_format = default_excel_time_format. +endmethod. + + + + method GET_DEFAULT_ROW_DIMENSION. + IF me->default_row_dimension IS NOT BOUND. + CREATE OBJECT me->default_row_dimension. + ENDIF. + + r_row_dimension = me->default_row_dimension. +endmethod. + + + + + method GET_DIMENSION_RANGE. + + me->update_dimension_range( ). + IF upper_cell EQ lower_cell. "only one cell + " Worksheet not filled +* IF upper_cell-cell_coords = '0'. + IF upper_cell-cell_coords IS INITIAL. + ep_dimension_range = 'A1'. + ELSE. + ep_dimension_range = upper_cell-cell_coords. + ENDIF. + ELSE. + CONCATENATE upper_cell-cell_coords ':' lower_cell-cell_coords INTO ep_dimension_range. + ENDIF. + +endmethod. + + + + + method GET_DRAWINGS. + + DATA: lo_drawing TYPE REF TO zcl_excel_drawing, + lo_iterator TYPE REF TO cl_object_collection_iterator. + + CASE ip_type. + WHEN zcl_excel_drawing=>type_image. + r_drawings = drawings. + WHEN zcl_excel_drawing=>type_chart. + r_drawings = charts. + WHEN space. + CREATE OBJECT r_drawings + EXPORTING + ip_type = ''. + + lo_iterator = drawings->get_iterator( ). + WHILE lo_iterator->has_next( ) = abap_true. + lo_drawing ?= lo_iterator->get_next( ). + r_drawings->include( lo_drawing ). + ENDWHILE. + lo_iterator = charts->get_iterator( ). + WHILE lo_iterator->has_next( ) = abap_true. + lo_drawing ?= lo_iterator->get_next( ). + r_drawings->include( lo_drawing ). + ENDWHILE. + WHEN OTHERS. + ENDCASE. +endmethod. + + + + + method GET_DRAWINGS_ITERATOR. + CASE ip_type. + WHEN zcl_excel_drawing=>type_image. + eo_iterator = drawings->get_iterator( ). + WHEN zcl_excel_drawing=>type_chart. + eo_iterator = charts->get_iterator( ). + ENDCASE. +endmethod. + + + + + method GET_FREEZE_CELL. + ep_row = me->freeze_pane_cell_row. + ep_column = me->freeze_pane_cell_column. +endmethod. + + + + method GET_GUID. + + ep_guid = me->guid. + +endmethod. + + + + + method GET_HIGHEST_COLUMN. + me->update_dimension_range( ). + r_highest_column = me->lower_cell-cell_column. +endmethod. + + + + + method GET_HIGHEST_ROW. + me->update_dimension_range( ). + r_highest_row = me->lower_cell-cell_row. +endmethod. + + + + method GET_HYPERLINKS_ITERATOR. + eo_iterator = hyperlinks->get_iterator( ). +endmethod. + + + + method GET_HYPERLINKS_SIZE. + ep_size = hyperlinks->size( ). +endmethod. + + + + + method GET_MERGE. + + DATA: lv_column_start TYPE string, + lv_column_end TYPE string, + lv_row TYPE string, + lv_index TYPE sy-tabix, + ls_sheet_content TYPE zexcel_s_cell_data, + range_from TYPE string, + range_to TYPE string, + lv_merge_range TYPE string, + lv_count TYPE string. + + FIELD-SYMBOLS: <fs_sheet_content> TYPE zexcel_s_cell_data. + + DESCRIBE TABLE sheet_content_merge LINES lv_count. + + WHILE lv_count GT lv_index. +* LOOP AT sheet_content_merge ASSIGNING <fs_sheet_content>. + lv_index = lv_index + 1. + READ TABLE sheet_content_merge ASSIGNING <fs_sheet_content> INDEX lv_index. + lv_column_start = zcl_excel_common=>convert_column2alpha( <fs_sheet_content>-cell_column ). + lv_row = <fs_sheet_content>-cell_row. + SHIFT lv_column_start RIGHT DELETING TRAILING space. + SHIFT lv_column_start LEFT DELETING LEADING space. + SHIFT lv_row RIGHT DELETING TRAILING space. + SHIFT lv_row LEFT DELETING LEADING space. + CONCATENATE lv_column_start lv_row + INTO range_from. + + lv_index = lv_index + 1. + READ TABLE sheet_content_merge ASSIGNING <fs_sheet_content> INDEX lv_index. + lv_column_end = zcl_excel_common=>convert_column2alpha( <fs_sheet_content>-cell_column ). + lv_row = <fs_sheet_content>-cell_row. + SHIFT lv_column_end RIGHT DELETING TRAILING space. + SHIFT lv_column_end LEFT DELETING LEADING space. + SHIFT lv_row RIGHT DELETING TRAILING space. + SHIFT lv_row LEFT DELETING LEADING space. + CONCATENATE lv_column_end lv_row + INTO range_to. + + CONCATENATE range_from range_to INTO lv_merge_range + SEPARATED BY ':'. + APPEND lv_merge_range TO merge_range. + ENDWHILE. +* ENDLOOP. + +* READ TABLE sheet_content_merge ASSIGNING <fs_sheet_content> INDEX 1. +* IF sy-subrc EQ 0 AND <fs_sheet_content> IS ASSIGNED. +* lv_column_start = zcl_excel_common=>convert_column2alpha( <fs_sheet_content>-cell_column ). +* lv_row = <fs_sheet_content>-cell_row. +* SHIFT lv_column_start RIGHT DELETING TRAILING space. +* SHIFT lv_column_start LEFT DELETING LEADING space. +* SHIFT lv_row RIGHT DELETING TRAILING space. +* SHIFT lv_row LEFT DELETING LEADING space. +* CONCATENATE lv_column_start lv_row +* INTO range_from. +* ENDIF. +* READ TABLE sheet_content_merge ASSIGNING <fs_sheet_content> INDEX 2. +* IF sy-subrc EQ 0 AND <fs_sheet_content> IS ASSIGNED. +* lv_column_end = zcl_excel_common=>convert_column2alpha( <fs_sheet_content>-cell_column ). +* SHIFT lv_column_end RIGHT DELETING TRAILING space. +* SHIFT lv_column_end LEFT DELETING LEADING space. +* CONCATENATE lv_column_end lv_row +* INTO range_to. +* ENDIF. + +* IF range_from NE space AND range_to NE space. +* CONCATENATE range_from range_to INTO ep_merge_range +* SEPARATED BY ':'. +* ENDIF. + +endmethod. + + + + method GET_RANGES_ITERATOR. + + eo_iterator = me->ranges->get_iterator( ). + +endmethod. + + + + + method GET_ROW_DIMENSION. + FIELD-SYMBOLS: <fs_row_dimension> LIKE LINE OF row_dimensions. + + READ TABLE me->row_dimensions ASSIGNING <fs_row_dimension> + WITH KEY row = ip_row. + + IF NOT <fs_row_dimension> IS ASSIGNED. + CREATE OBJECT r_row_dimension + EXPORTING + ip_index = ip_row. + APPEND INITIAL LINE TO me->row_dimensions ASSIGNING <fs_row_dimension>. + <fs_row_dimension>-row = ip_row. + <fs_row_dimension>-row_dimension = r_row_dimension. + ELSE. + r_row_dimension = <fs_row_dimension>-row_dimension. + ENDIF. + +endmethod. + + + + method GET_ROW_DIMENSIONS. + r_row_dimension[] = me->row_dimensions[]. +endmethod. + + + + method GET_TABCOLOR. + ev_tabcolor = me->tabcolor. +endmethod. + + + + method GET_TABLES_ITERATOR. + eo_iterator = tables->if_object_collection~get_iterator( ). +endmethod. + + + + method GET_TABLES_SIZE. + ep_size = tables->if_object_collection~size( ). +endmethod. + + + + + method GET_TITLE. + DATA lv_value TYPE string. + IF ip_escaped EQ abap_true. + lv_value = me->title. + ep_title = zcl_excel_common=>escape_string( lv_value ). + ELSE. + ep_title = me->title. + ENDIF. +endmethod. + + + + + + method GET_VALUE_TYPE. + DATA: lo_addit TYPE REF TO cl_abap_elemdescr, + ls_dfies TYPE dfies, + l_function TYPE funcname, + l_value(50) TYPE c. + + ep_value = ip_value. + ep_value_type = cl_abap_typedescr=>typekind_string. " Thats our default if something goes wrong. + + TRY. + lo_addit ?= cl_abap_typedescr=>describe_by_data( ip_value ). + CATCH cx_sy_move_cast_error. + CLEAR lo_addit. + ENDTRY. + IF lo_addit IS BOUND. + lo_addit->get_ddic_field( RECEIVING p_flddescr = ls_dfies + EXCEPTIONS not_found = 1 + no_ddic_type = 2 + OTHERS = 3 ) . + IF sy-subrc = 0. + ep_value_type = ls_dfies-inttype. + + IF ls_dfies-convexit IS NOT INITIAL. +* We need to convert with output conversion function + CONCATENATE 'CONVERSION_EXIT_' ls_dfies-convexit '_OUTPUT' INTO l_function. + SELECT SINGLE funcname INTO l_function + FROM tfdir + WHERE funcname = l_function. + IF sy-subrc = 0. + CALL FUNCTION l_function + EXPORTING + input = ip_value + IMPORTING +* LONG_TEXT = + output = l_value +* SHORT_TEXT = + EXCEPTIONS + OTHERS = 1. + IF sy-subrc <> 0. +* MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNO +* WITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4. + ELSE. + ep_value = l_value. + ENDIF. + ENDIF. + ENDIF. + ELSE. + ep_value_type = lo_addit->get_data_type_kind( ip_value ). + ENDIF. + ENDIF. + +endmethod. + + + method PRINT_TITLE_SET_RANGE. +*--------------------------------------------------------------------* +* issue#235 - repeat rows/columns +* - Stefan Schmöcker, 2012-12-02 +*--------------------------------------------------------------------* + + + DATA: lo_range_iterator TYPE REF TO cl_object_collection_iterator, + lo_range TYPE REF TO zcl_excel_range, + lv_repeat_range_sheetname TYPE string, + lv_repeat_range_col TYPE string, + lv_row_char_from TYPE char10, + lv_row_char_to TYPE char10, + lv_repeat_range_row TYPE string, + lv_repeat_range TYPE string. + + +*--------------------------------------------------------------------* +* Get range that represents printarea +* if non-existant, create it +*--------------------------------------------------------------------* + lo_range_iterator = me->get_ranges_iterator( ). + WHILE lo_range_iterator->has_next( ) = abap_true. + + lo_range ?= lo_range_iterator->get_next( ). + IF lo_range->name = zif_excel_sheet_printsettings=>gcv_print_title_name. + EXIT. " Found it + ENDIF. + CLEAR lo_range. + + ENDWHILE. + + + IF me->print_title_col_from IS INITIAL AND + me->print_title_row_from IS INITIAL. +*--------------------------------------------------------------------* +* No print titles are present, +*--------------------------------------------------------------------* + IF lo_range IS BOUND. + me->ranges->remove( lo_range ). + ENDIF. + ELSE. +*--------------------------------------------------------------------* +* Print titles are present, +*--------------------------------------------------------------------* + IF lo_range IS NOT BOUND. + lo_range = me->add_new_range( ). + lo_range->name = zif_excel_sheet_printsettings=>gcv_print_title_name. + ENDIF. + + lv_repeat_range_sheetname = me->get_title( ). + lv_repeat_range_sheetname = zcl_excel_common=>escape_string( lv_repeat_range_sheetname ). + +*--------------------------------------------------------------------* +* Repeat-columns +*--------------------------------------------------------------------* + IF me->print_title_col_from IS NOT INITIAL. + CONCATENATE lv_repeat_range_sheetname + '!$' me->print_title_col_from + ':$' me->print_title_col_to + INTO lv_repeat_range_col. + ENDIF. + +*--------------------------------------------------------------------* +* Repeat-rows +*--------------------------------------------------------------------* + IF me->print_title_row_from IS NOT INITIAL. + lv_row_char_from = me->print_title_row_from. + lv_row_char_to = me->print_title_row_to. + CONCATENATE '!$' lv_row_char_from + ':$' lv_row_char_to + INTO lv_repeat_range_row. + CONDENSE lv_repeat_range_row NO-GAPS. + CONCATENATE lv_repeat_range_sheetname + lv_repeat_range_row + INTO lv_repeat_range_row. + ENDIF. + +*--------------------------------------------------------------------* +* Concatenate repeat-rows and columns +*--------------------------------------------------------------------* + IF lv_repeat_range_col IS INITIAL. + lv_repeat_range = lv_repeat_range_row. + ELSEIF lv_repeat_range_row IS INITIAL. + lv_repeat_range = lv_repeat_range_col. + ELSE. + CONCATENATE lv_repeat_range_col lv_repeat_range_row + INTO lv_repeat_range SEPARATED BY ','. + ENDIF. + + + lo_range->set_range_value( lv_repeat_range ). + ENDIF. + + + +endmethod. + + + + + + + + + + + + method SET_CELL. + + DATA: lv_column TYPE zexcel_cell_column, + ls_sheet_content TYPE zexcel_s_cell_data, + lv_row_alpha TYPE string, + lv_col_alpha TYPE zexcel_cell_column_alpha, + lv_value TYPE zexcel_cell_value, + lv_data_type TYPE zexcel_cell_data_type, + lv_value_type TYPE abap_typekind, + lo_style TYPE REF TO zcl_excel_style, + lv_style_guid TYPE zexcel_cell_style, + lo_addit TYPE REF TO cl_abap_elemdescr, + lo_value TYPE REF TO data, + lo_value_new TYPE REF TO data. + + FIELD-SYMBOLS: <fs_sheet_content> TYPE zexcel_s_cell_data, + <fs_numeric> TYPE numeric, + <fs_date> TYPE d, + <fs_time> TYPE t, + <fs_value> TYPE simple. + + IF ip_value IS NOT SUPPLIED AND ip_formula IS NOT SUPPLIED. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Please provide the value or formula'. + ENDIF. + +* Begin of change issue #152 - don't touch exisiting style if only value is passed +* lv_style_guid = ip_style. + lv_column = zcl_excel_common=>convert_column2int( ip_column ). + READ TABLE sheet_content ASSIGNING <fs_sheet_content> WITH TABLE KEY cell_row = ip_row " Changed to access via table key , Stefan Schmöcker, 2013-08-03 + cell_column = lv_column. + IF sy-subrc = 0. + IF ip_style IS INITIAL. + " If no style is provided as method-parameter and cell is found use cell's current style + lv_style_guid = <fs_sheet_content>-cell_style. + ELSE. + " Style provided as method-parameter --> use this + lv_style_guid = ip_style. + ENDIF. + ELSE. + " No cell found --> use supplied style even if empty + lv_style_guid = ip_style. + ENDIF. +* End of change issue #152 - don't touch exisiting style if only value is passed + + IF ip_value IS SUPPLIED. + "if data type is passed just write the value. Otherwise map abap type to excel and perform conversion + "IP_DATA_TYPE is passed by excel reader so source types are preserved +*First we get reference into local var. + CREATE DATA lo_value LIKE ip_value. + ASSIGN lo_value->* TO <fs_value>. + <fs_value> = ip_value. + IF ip_data_type IS SUPPLIED. + IF ip_abap_type IS NOT SUPPLIED. + get_value_type( EXPORTING ip_value = ip_value + IMPORTING ep_value = <fs_value> ) . + ENDIF. + lv_value = <fs_value>. + lv_data_type = ip_data_type. + ELSE. + IF ip_abap_type IS SUPPLIED. + lv_value_type = ip_abap_type. + ELSE. + get_value_type( EXPORTING ip_value = ip_value + IMPORTING ep_value = <fs_value> + ep_value_type = lv_value_type ). + ENDIF. + CASE lv_value_type. + WHEN cl_abap_typedescr=>typekind_int OR cl_abap_typedescr=>typekind_int1 OR cl_abap_typedescr=>typekind_int2. + lo_addit = cl_abap_elemdescr=>get_i( ). + CREATE DATA lo_value_new TYPE HANDLE lo_addit. + ASSIGN lo_value_new->* TO <fs_numeric>. + IF sy-subrc = 0. + <fs_numeric> = <fs_value>. + lv_value = zcl_excel_common=>number_to_excel_string( ip_value = <fs_numeric> ). + ENDIF. + + WHEN cl_abap_typedescr=>typekind_float OR cl_abap_typedescr=>typekind_packed. + lo_addit = cl_abap_elemdescr=>get_f( ). + CREATE DATA lo_value_new TYPE HANDLE lo_addit. + ASSIGN lo_value_new->* TO <fs_numeric>. + IF sy-subrc = 0. + <fs_numeric> = <fs_value>. + lv_value = zcl_excel_common=>number_to_excel_string( ip_value = <fs_numeric> ). + ENDIF. + + WHEN cl_abap_typedescr=>typekind_char OR cl_abap_typedescr=>typekind_string OR cl_abap_typedescr=>typekind_num OR + cl_abap_typedescr=>typekind_hex. + lv_value = <fs_value>. + lv_data_type = 's'. + + WHEN cl_abap_typedescr=>typekind_date. + lo_addit = cl_abap_elemdescr=>get_d( ). + CREATE DATA lo_value_new TYPE HANDLE lo_addit. + ASSIGN lo_value_new->* TO <fs_date>. + IF sy-subrc = 0. + <fs_date> = <fs_value>. + lv_value = zcl_excel_common=>date_to_excel_string( ip_value = <fs_date> ) . + ENDIF. +* Begin of change issue #152 - don't touch exisiting style if only value is passed +* Moved to end of routine - apply date-format even if other styleinformation is passed +* IF ip_style IS NOT SUPPLIED. "get default date format in case parameter is initial +* lo_style = excel->add_new_style( ). +* lo_style->number_format->format_code = get_default_excel_date_format( ). +* lv_style_guid = lo_style->get_guid( ). +* ENDIF. +* End of change issue #152 - don't touch exisiting style if only value is passed + + WHEN cl_abap_typedescr=>typekind_time. + lo_addit = cl_abap_elemdescr=>get_t( ). + CREATE DATA lo_value_new TYPE HANDLE lo_addit. + ASSIGN lo_value_new->* TO <fs_time>. + IF sy-subrc = 0. + <fs_time> = <fs_value>. + lv_value = zcl_excel_common=>time_to_excel_string( ip_value = <fs_time> ). + ENDIF. +* Begin of change issue #152 - don't touch exisiting style if only value is passed +* Moved to end of routine - apply time-format even if other styleinformation is passed +* IF ip_style IS NOT SUPPLIED. "get default time format for user in case parameter is initial +* lo_style = excel->add_new_style( ). +* lo_style->number_format->format_code = zcl_excel_style_number_format=>c_format_date_time6. +* lv_style_guid = lo_style->get_guid( ). +* ENDIF. +* End of change issue #152 - don't touch exisiting style if only value is passed + + WHEN OTHERS. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Invalid data type of input value'. + ENDCASE. + ENDIF. + + ENDIF. + + IF ip_hyperlink IS BOUND. + ip_hyperlink->set_cell_reference( ip_column = ip_column + ip_row = ip_row ). + me->hyperlinks->add( ip_hyperlink ). + ENDIF. + +* Begin of change issue #152 - don't touch exisiting style if only value is passed +* Read table moved up, so that current style may be evaluated +* lv_column = zcl_excel_common=>convert_column2int( ip_column ). + +* READ TABLE sheet_content ASSIGNING <fs_sheet_content> WITH KEY cell_row = ip_row +* cell_column = lv_column. +* +* IF sy-subrc EQ 0. + IF <fs_sheet_content> IS ASSIGNED. +* End of change issue #152 - don't touch exisiting style if only value is passed + <fs_sheet_content>-cell_value = lv_value. + <fs_sheet_content>-cell_formula = ip_formula. + <fs_sheet_content>-cell_style = lv_style_guid. + <fs_sheet_content>-data_type = lv_data_type. + ELSE. + ls_sheet_content-cell_row = ip_row. + ls_sheet_content-cell_column = lv_column. + ls_sheet_content-cell_value = lv_value. + ls_sheet_content-cell_formula = ip_formula. + ls_sheet_content-cell_style = lv_style_guid. + ls_sheet_content-data_type = lv_data_type. + lv_row_alpha = ip_row. +* SHIFT lv_row_alpha RIGHT DELETING TRAILING space."del #152 - replaced with condense - should be faster +* SHIFT lv_row_alpha LEFT DELETING LEADING space. "del #152 - replaced with condense - should be faster + CONDENSE lv_row_alpha NO-GAPS. "ins #152 - replaced 2 shifts - should be faster + lv_col_alpha = zcl_excel_common=>convert_column2alpha( ip_column ). " issue #155 - less restrictive typing for ip_column + CONCATENATE lv_col_alpha lv_row_alpha INTO ls_sheet_content-cell_coords. " issue #155 - less restrictive typing for ip_column + INSERT ls_sheet_content INTO TABLE sheet_content ASSIGNING <fs_sheet_content>. "ins #152 - Now <fs_sheet_content> always holds the data +* APPEND ls_sheet_content TO sheet_content. +* SORT sheet_content BY cell_row cell_column. + " me->update_dimension_range( ). + + ENDIF. + +* Begin of change issue #152 - don't touch exisiting style if only value is passed +* For Date- or Timefields change the formatcode if nothing is set yet +* Enhancement option: Check if existing formatcode is a date/ or timeformat +* If not, use default + DATA: lo_format_code_datetime TYPE zexcel_number_format. + DATA: stylemapping TYPE zexcel_s_stylemapping. + CASE lv_value_type. + WHEN cl_abap_typedescr=>typekind_date. + TRY. + stylemapping = me->excel->get_style_to_guid( <fs_sheet_content>-cell_style ). + CATCH zcx_excel . + ENDTRY. + IF stylemapping-complete_stylex-number_format-format_code IS INITIAL OR + stylemapping-complete_style-number_format-format_code IS INITIAL. + lo_format_code_datetime = zcl_excel_style_number_format=>c_format_date_std. + ELSE. + lo_format_code_datetime = stylemapping-complete_style-number_format-format_code. + ENDIF. + me->change_cell_style( ip_column = ip_column + ip_row = ip_row + ip_number_format_format_code = lo_format_code_datetime ). + + WHEN cl_abap_typedescr=>typekind_time. + TRY. + stylemapping = me->excel->get_style_to_guid( <fs_sheet_content>-cell_style ). + CATCH zcx_excel . + ENDTRY. + IF stylemapping-complete_stylex-number_format-format_code IS INITIAL OR + stylemapping-complete_style-number_format-format_code IS INITIAL. + lo_format_code_datetime = zcl_excel_style_number_format=>c_format_date_time6. + ELSE. + lo_format_code_datetime = stylemapping-complete_style-number_format-format_code. + ENDIF. + me->change_cell_style( ip_column = ip_column + ip_row = ip_row + ip_number_format_format_code = lo_format_code_datetime ). + + ENDCASE. +* End of change issue #152 - don't touch exisiting style if only value is passed + +* Fix issue #162 + lv_value = ip_value. + IF lv_value CS cl_abap_char_utilities=>cr_lf. + me->change_cell_style( ip_column = ip_column + ip_row = ip_row + ip_alignment_wraptext = abap_true ). + ENDIF. +* End of Fix issue #162 + +endmethod. + + + + + + + METHOD set_cell_formula. + DATA: + lv_column TYPE zexcel_cell_column, + ls_sheet_content LIKE LINE OF me->sheet_content. + + FIELD-SYMBOLS: + <sheet_content> LIKE LINE OF me->sheet_content. + +*--------------------------------------------------------------------* +* Get cell to set formula into +*--------------------------------------------------------------------* + lv_column = zcl_excel_common=>convert_column2int( ip_column ). + READ TABLE me->sheet_content ASSIGNING <sheet_content> WITH TABLE KEY cell_row = ip_row + cell_column = lv_column. + IF sy-subrc <> 0. " Create new entry in sheet_content if necessary + CHECK ip_formula IS INITIAL. " no need to create new entry in sheet_content when no formula is passed + ls_sheet_content-cell_row = ip_row. + ls_sheet_content-cell_column = lv_column. + INSERT ls_sheet_content INTO TABLE me->sheet_content ASSIGNING <sheet_content>. + ENDIF. + +*--------------------------------------------------------------------* +* Fieldsymbol now holds the relevant cell +*--------------------------------------------------------------------* + <sheet_content>-cell_formula = ip_formula. + + +ENDMETHOD. + + + + + + + method SET_CELL_STYLE. + + DATA: lv_column TYPE zexcel_cell_column, + ls_sheet_content TYPE zexcel_s_cell_data, + lv_row_alpha TYPE string, + lo_style TYPE REF TO zcl_excel_style, + lv_style_guid TYPE zexcel_cell_style. + + FIELD-SYMBOLS: <fs_sheet_content> TYPE zexcel_s_cell_data. + + lv_style_guid = ip_style. + + lv_column = zcl_excel_common=>convert_column2int( ip_column ). + + READ TABLE sheet_content ASSIGNING <fs_sheet_content> WITH KEY cell_row = ip_row + cell_column = lv_column. + + IF sy-subrc EQ 0. + <fs_sheet_content>-cell_style = lv_style_guid. + ELSE. + set_cell( ip_column = ip_column ip_row = ip_row ip_value = '' ip_style = ip_style ). + ENDIF. + +endmethod. + + + + + + + method SET_COLUMN_WIDTH. + DATA: column_dimension TYPE REF TO zcl_excel_worksheet_columndime. + DATA: width TYPE float. + + column_dimension = me->get_column_dimension( ip_column ). + +* if a fix size is supplied use this + IF ip_width_fix IS SUPPLIED. + TRY. + width = ip_width_fix. + IF width <= 0. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Please supply a positive number as column-width'. + ENDIF. + column_dimension->set_width( width ). + EXIT. + CATCH cx_sy_conversion_no_number. +* Strange stuff passed --> raise error + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Unable to interpret supplied input as number'. + ENDTRY. + ENDIF. + +* If we get down to here, we have to use whatever is found in autosize. + column_dimension->set_auto_size( ip_width_autosize ). + + +endmethod. + + + + + method SET_DEFAULT_EXCEL_DATE_FORMAT. + + IF ip_default_excel_date_format IS INITIAL. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Default date format cannot be blank'. + ENDIF. + + default_excel_date_format = ip_default_excel_date_format. +endmethod. + + + + + + + + method SET_MERGE. + + DATA: lv_column_start TYPE zexcel_cell_column, + lv_column_end TYPE zexcel_cell_column, + ls_sheet_content TYPE zexcel_s_cell_data, + lv_row_alpha TYPE string. + + FIELD-SYMBOLS: <fs_sheet_content> TYPE zexcel_s_cell_data. + + lv_column_start = zcl_excel_common=>convert_column2int( ip_column_start ). + lv_column_end = zcl_excel_common=>convert_column2int( ip_column_end ). + + ls_sheet_content-cell_row = ip_row. + ls_sheet_content-cell_column = lv_column_start. + lv_row_alpha = ip_row. + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE ip_column_start lv_row_alpha INTO ls_sheet_content-cell_coords. + INSERT ls_sheet_content INTO TABLE sheet_content_merge. + + ls_sheet_content-cell_column = lv_column_end. + IF ip_row_to IS SUPPLIED. + ls_sheet_content-cell_row = ip_row_to. + lv_row_alpha = ip_row_to. + ELSE. + lv_row_alpha = ip_row. + ls_sheet_content-cell_row = ip_row. + ENDIF. + + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE ip_column_end lv_row_alpha INTO ls_sheet_content-cell_coords. + INSERT ls_sheet_content INTO TABLE sheet_content_merge. + +endmethod. + + + + method SET_PRINT_GRIDLINES. + me->print_gridlines = i_print_gridlines. +endmethod. + + + + + + method SET_ROW_HEIGHT. + DATA: row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. + DATA: height TYPE float. + + row_dimension = me->get_row_dimension( ip_row ). + +* if a fix size is supplied use this + TRY. + height = ip_height_fix. + IF height <= 0. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Please supply a positive number as row-height'. + ENDIF. + row_dimension->set_row_height( height ). + EXIT. + CATCH cx_sy_conversion_no_number. +* Strange stuff passed --> raise error + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Unable to interpret supplied input as number'. + ENDTRY. + + + +endmethod. + + + + method SET_SHOW_GRIDLINES. + me->show_gridlines = i_show_gridlines. +endmethod. + + + + method SET_SHOW_ROWCOLHEADERS. + me->show_rowcolheaders = i_show_rowcolheaders. +endmethod. + + + + method SET_TABCOLOR. + me->tabcolor = iv_tabcolor. +endmethod. + + + + + + + + + + + + method SET_TABLE. + + DATA: lo_tabdescr TYPE REF TO cl_abap_structdescr, + lr_data TYPE REF TO data, + ls_newline TYPE REF TO data, + ls_header TYPE x030l, + lt_dfies TYPE ddfields, + lv_row_header TYPE zexcel_cell_row VALUE '2', + lv_col_header TYPE zexcel_cell_column_alpha VALUE 'B', + lv_row_int TYPE zexcel_cell_row, + lv_column_int TYPE zexcel_cell_column, + lv_column_alpha TYPE zexcel_cell_column_alpha, + lv_cell_value TYPE zexcel_cell_value. + + + FIELD-SYMBOLS: <fs_table_line> TYPE ANY, + <fs_fldval> TYPE ANY, + <fs_dfies> TYPE dfies, + <fs_cell_value> TYPE zexcel_cell_value. + + lv_column_int = zcl_excel_common=>convert_column2int( ip_top_left_column ). + lv_row_int = ip_top_left_row. + + CREATE DATA lr_data LIKE LINE OF ip_table. + + lo_tabdescr ?= cl_abap_structdescr=>describe_by_data_ref( lr_data ). + + ls_header = lo_tabdescr->get_ddic_header( ). + + lt_dfies = lo_tabdescr->get_ddic_field_list( ). + +* It is better to loop column by column + LOOP AT lt_dfies ASSIGNING <fs_dfies>. + lv_column_alpha = zcl_excel_common=>convert_column2alpha( lv_column_int ). + + IF ip_no_header = abap_false. + " First of all write column header + lv_cell_value = <fs_dfies>-scrtext_m. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_value = lv_cell_value + ip_style = ip_hdr_style ). + IF ip_transpose = abap_true. + ADD 1 TO lv_column_int. + ELSE. + ADD 1 TO lv_row_int. + ENDIF. + ENDIF. + + LOOP AT ip_table ASSIGNING <fs_table_line>. + lv_column_alpha = zcl_excel_common=>convert_column2alpha( lv_column_int ). + ASSIGN COMPONENT <fs_dfies>-fieldname OF STRUCTURE <fs_table_line> TO <fs_fldval>. + MOVE <fs_fldval> TO lv_cell_value. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_value = <fs_fldval> "lv_cell_value + ip_style = ip_body_style ). + IF ip_transpose = abap_true. + ADD 1 TO lv_column_int. + ELSE. + ADD 1 TO lv_row_int. + ENDIF. + ENDLOOP. + IF ip_transpose = abap_true. + lv_column_int = zcl_excel_common=>convert_column2int( ip_top_left_column ). + ADD 1 TO lv_row_int. + ELSE. + lv_row_int = ip_top_left_row. + ADD 1 TO lv_column_int. + ENDIF. + ENDLOOP. + +endmethod. + + + + + method SET_TITLE. +*--------------------------------------------------------------------* +* ToDos: +* 2do§1 The current coding for replacing a named ranges name +* after renaming a sheet should be checked if it is +* really working if sheetname should be escaped +*--------------------------------------------------------------------* + +*--------------------------------------------------------------------* +* issue #230 - Pimp my Code +* - Stefan Schmöcker, (wip ) 2012-12-08 +* - ... +* changes: aligning code +* message made to support multilinguality +*--------------------------------------------------------------------* +* issue#243 - ' is not allowed as first character in sheet title +* - Stefan Schmöcker, 2012-12-02 +* changes: added additional check for ' as first character +*--------------------------------------------------------------------* + DATA: lo_worksheets_iterator TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + errormessage TYPE string, + lv_rangesheetname_old TYPE string, + lv_rangesheetname_new TYPE string, + lo_ranges_iterator TYPE REF TO cl_object_collection_iterator, + lo_range TYPE REF TO zcl_excel_range, + lv_range_value TYPE zexcel_range_value, + lv_errormessage TYPE string. " Can't pass '...'(abc) to exception-class + + +*--------------------------------------------------------------------* +* Check whether title consists only of allowed characters +* Illegal characters are: / \ [ ] * ? : --> http://msdn.microsoft.com/en-us/library/ff837411.aspx +* Illegal characters not in documentation: ' as first character +*--------------------------------------------------------------------* + IF ip_title CA '/\[]*?:'. + lv_errormessage = 'Found illegal character in sheetname. List of forbidden characters: /\[]*?:'(402). + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. + + IF ip_title IS NOT INITIAL AND ip_title(1) = `'`. + lv_errormessage = 'Sheetname may not start with &'(403). " & used instead of ' to allow fallbacklanguage + REPLACE '&' IN lv_errormessage WITH `'`. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = lv_errormessage. + ENDIF. + + +*--------------------------------------------------------------------* +* Check whether title is unique in workbook +*--------------------------------------------------------------------* + lo_worksheets_iterator = me->excel->get_worksheets_iterator( ). + WHILE lo_worksheets_iterator->has_next( ) = 'X'. + + lo_worksheet ?= lo_worksheets_iterator->get_next( ). + CHECK me->guid <> lo_worksheet->get_guid( ). " Don't check against itself + IF ip_title = lo_worksheet->get_title( ). " Not unique --> raise exception + errormessage = 'Duplicate sheetname &'. + REPLACE '&' IN errormessage WITH ip_title. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = errormessage. + ENDIF. + + ENDWHILE. + +*--------------------------------------------------------------------* +* Remember old sheetname and rename sheet to desired name +*--------------------------------------------------------------------* + CONCATENATE me->title '!' INTO lv_rangesheetname_old. + me->title = ip_title. + +*--------------------------------------------------------------------* +* After changing this worksheet's title we have to adjust +* all ranges that are referring to this worksheet. +*--------------------------------------------------------------------* +* 2do§1 - Check if the following quickfix is solid +* I fear it isn't - but this implementation is better then +* nothing at all since it handles a supposed majority of cases +*--------------------------------------------------------------------* + CONCATENATE me->title '!' INTO lv_rangesheetname_new. + + lo_ranges_iterator = me->excel->get_ranges_iterator( ). + WHILE lo_ranges_iterator->has_next( ) = 'X'. + + lo_range ?= lo_ranges_iterator->get_next( ). + lv_range_value = lo_range->get_value( ). + REPLACE ALL OCCURRENCES OF lv_rangesheetname_old IN lv_range_value WITH lv_rangesheetname_new. + IF sy-subrc = 0. + lo_range->set_range_value( lv_range_value ). + ENDIF. + + ENDWHILE. + + +endmethod. + + + + method UPDATE_DIMENSION_RANGE. + + DATA: ls_sheet_content TYPE zexcel_s_cell_data, + lt_sheet_content TYPE zexcel_t_cell_data_unsorted, + lv_row_alpha TYPE string, + lv_column_alpha TYPE zexcel_cell_column_alpha. + + CHECK sheet_content IS NOT INITIAL. + +* update dimension range + lt_sheet_content = sheet_content. + "upper left corner + SORT lt_sheet_content BY cell_row. + READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content. + upper_cell-cell_row = ls_sheet_content-cell_row. + SORT lt_sheet_content BY cell_column. + READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content. + upper_cell-cell_column = ls_sheet_content-cell_column. + + lv_row_alpha = upper_cell-cell_row. + lv_column_alpha = zcl_excel_common=>convert_column2alpha( upper_cell-cell_column ). + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE lv_column_alpha lv_row_alpha INTO upper_cell-cell_coords. + + "bottom right corner + SORT lt_sheet_content BY cell_row DESCENDING. + READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content. + lower_cell-cell_row = ls_sheet_content-cell_row. + SORT lt_sheet_content BY cell_column DESCENDING. + READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content. + lower_cell-cell_column = ls_sheet_content-cell_column. + + lv_row_alpha = lower_cell-cell_row. + lv_column_alpha = zcl_excel_common=>convert_column2alpha( lower_cell-cell_column ). + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE lv_column_alpha lv_row_alpha INTO lower_cell-cell_coords. + +endmethod. + + + + *"* 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 + + + + + + method ADD. + + worksheets->add( ip_worksheet ). + +endmethod. + + + method CLEAR. + + worksheets->clear( ). + +endmethod. + + + method CONSTRUCTOR. + + CREATE OBJECT worksheets. + +endmethod. + + + + + method GET. + + DATA lv_index TYPE i. + lv_index = ip_index. + eo_worksheet ?= worksheets->if_object_collection~get( lv_index ). + +endmethod. + + + + method GET_ITERATOR. + + eo_iterator ?= worksheets->if_object_collection~get_iterator( ). + +endmethod. + + + + method IS_EMPTY. + + is_empty = worksheets->if_object_collection~is_empty( ). + +endmethod. + + + + method REMOVE. + + worksheets->remove( ip_worksheet ). + +endmethod. + + + + method SIZE. + + ep_size = worksheets->if_object_collection~size( ). + +endmethod. + + + + *"* 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 CONSTRUCTOR. + me->column_index = zcl_excel_common=>convert_column2int( ip_index ). + me->width = -1. + me->auto_size = abap_false. + me->visible = abap_true. + me->outline_level = 0. + me->collapsed = abap_false. + me->excel = ip_excel. "ins issue #157 - Allow Style for columns + me->worksheet = ip_worksheet. "ins issue #157 - Allow Style for columns + + " set default index to cellXf + me->xf_index = 0. + +endmethod. + + + + method GET_AUTO_SIZE. + r_auto_size = me->auto_size. +endmethod. + + + + method GET_COLLAPSED. + r_Collapsed = me->Collapsed. +endmethod. + + + + method GET_COLUMN_INDEX. + r_column_index = me->column_index. +endmethod. + + + + + method GET_COLUMN_STYLE_GUID. + IF me->style_guid IS NOT INITIAL. + ep_style_guid = me->style_guid. + ELSE. + ep_style_guid = me->worksheet->zif_excel_sheet_properties~get_style( ). + ENDIF. +endmethod. + + + + method GET_OUTLINE_LEVEL. + r_outline_level = me->outline_level. +endmethod. + + + + method GET_VISIBLE. + r_Visible = me->Visible. +endmethod. + + + + method GET_WIDTH. + r_WIDTH = me->WIDTH. +endmethod. + + + + method GET_XF_INDEX. + r_xf_index = me->xf_index. +endmethod. + + + + + method SET_AUTO_SIZE. + me->auto_size = ip_auto_size. + r_worksheet_columndime = me. +endmethod. + + + + + method SET_COLLAPSED. + me->Collapsed = ip_Collapsed. + r_worksheet_columndime = me. +endmethod. + + + + + method SET_COLUMN_INDEX. + me->column_index = zcl_excel_common=>convert_column2int( ip_index ). + r_worksheet_columndime = me. +endmethod. + + + + + method SET_COLUMN_STYLE_BY_GUID. + DATA: stylemapping TYPE zexcel_s_stylemapping. + + IF me->excel IS NOT BOUND. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Internal error - reference to ZCL_EXCEL not bound'. + ENDIF. + TRY. + stylemapping = me->excel->get_style_to_guid( ip_style_guid ). + me->style_guid = stylemapping-guid. + + CATCH zcx_excel . + EXIT. " leave as is in case of error + ENDTRY. + +endmethod. + + + + method SET_OUTLINE_LEVEL. + me->outline_level = ip_outline_level. +endmethod. + + + + + method SET_VISIBLE. + me->Visible = ip_Visible. + r_worksheet_columndime = me. +endmethod. + + + + + + method SET_WIDTH. + TRY. + me->width = ip_width. + r_worksheet_columndime = me. + CATCH cx_sy_conversion_no_number. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Unable to interpret width as number'. + ENDTRY. +endmethod. + + + + + method SET_XF_INDEX. + me->XF_INDEX = ip_XF_INDEX. + r_worksheet_columndime = me. +endmethod. + + + + *"* 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 CONSTRUCTOR. + " Initialise values + me->row_index = ip_index. + me->row_height = -1. + me->visible = abap_true. + me->outline_level = 0. + me->collapsed = abap_false. + + " set row dimension as unformatted by default + me->xf_index = 0. +endmethod. + + + + method GET_COLLAPSED. + r_collapsed = me->collapsed. +endmethod. + + + + method GET_OUTLINE_LEVEL. + r_outline_level = me->outline_level. +endmethod. + + + + method GET_ROW_HEIGHT. + r_row_height = me->row_height. +endmethod. + + + + method GET_ROW_INDEX. + r_row_index = me->row_index. +endmethod. + + + + method GET_VISIBLE. + r_visible = me->visible. +endmethod. + + + + method GET_XF_INDEX. + r_xf_index = me->xf_index. +endmethod. + + + + method SET_COLLAPSED. + me->collapsed = ip_collapsed. +endmethod. + + + + + method SET_OUTLINE_LEVEL. + IF ip_outline_level < 0 + OR ip_outline_level > 7. + + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Outline level must range between 0 and 7.'. + + ENDIF. + me->outline_level = ip_outline_level. +endmethod. + + + + + method SET_ROW_HEIGHT. + TRY. + me->row_height = ip_row_height. + CATCH cx_sy_conversion_no_number. + RAISE EXCEPTION TYPE zcx_excel + EXPORTING + error = 'Unable to interpret ip_row_height as number'. + ENDTRY. +endmethod. + + + + method SET_ROW_INDEX. + me->row_index = ip_index. +endmethod. + + + + method SET_VISIBLE. + me->visible = ip_visible. +endmethod. + + + + method SET_XF_INDEX. + me->XF_INDEX = ip_XF_INDEX. +endmethod. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + *--------------------------------------------------------------------* +* REPORT ZDEMO_EXCEL26 +* Demo for method zcl_excel_worksheet-bind_object: +* export data from ALV (CL_GUI_ALV_GRID) object or cl_salv_table object +* to Excel. +*--------------------------------------------------------------------* +report zdemo_excel26. + +*----------------------------------------------------------------------* +* CLASS lcl_handle_events DEFINITION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +class lcl_handle_events definition. + public section. + methods: + on_user_command for event added_function of cl_salv_events + importing e_salv_function. +endclass. "lcl_handle_events DEFINITION + +*----------------------------------------------------------------------* +* CLASS lcl_handle_events IMPLEMENTATION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +class lcl_handle_events implementation. + method on_user_command. + perform user_command." using e_salv_function text-i08. + endmethod. "on_user_command +endclass. "lcl_handle_events IMPLEMENTATION + +*--------------------------------------------------------------------* +* DATA DECLARATION +*--------------------------------------------------------------------* + +data: lo_excel type ref to zcl_excel, + lo_worksheet type ref to zcl_excel_worksheet, + lo_salv type ref to cl_salv_table, + gr_events type ref to lcl_handle_events, + lr_events type ref to cl_salv_events_table, + gt_sbook type table of sbook. + +data: l_path type string, " local dir + lv_workdir type string, + lv_file_separator type c. + +constants: + lv_default_file_name type string value '26_Bind_ALV.xlsx'. +*--------------------------------------------------------------------* +*START-OF-SELECTION +*--------------------------------------------------------------------* + +start-of-selection. + +* get data +* ------------------------------------------ + + select * + into table gt_sbook[] + from sbook "#EC CI_NOWHERE + up to 10 rows. + +* Display ALV +* ------------------------------------------ + + try. + cl_salv_table=>factory( + exporting + list_display = abap_false + importing + r_salv_table = lo_salv + changing + t_table = gt_sbook[] ). + catch cx_salv_msg . + endtry. + + try. + lo_salv->set_screen_status( + exporting + report = sy-repid + pfstatus = 'ALV_STATUS' + set_functions = lo_salv->c_functions_all ). + catch cx_salv_msg . + endtry. + + lr_events = lo_salv->get_event( ). + create object gr_events. + set handler gr_events->on_user_command for lr_events. + + lo_salv->display( ). + + +*&---------------------------------------------------------------------* +*& Form USER_COMMAND +*&---------------------------------------------------------------------* +* ALV user command +*--------------------------------------------------------------------* +form user_command . + if sy-ucomm = 'EXCEL'. + +* get save file path + cl_gui_frontend_services=>get_sapgui_workdir( changing sapworkdir = l_path ). + cl_gui_cfw=>flush( ). + cl_gui_frontend_services=>directory_browse( + exporting initial_folder = l_path + changing selected_folder = l_path ). + + if l_path is initial. + cl_gui_frontend_services=>get_sapgui_workdir( + changing sapworkdir = lv_workdir ). + l_path = lv_workdir. + endif. + + cl_gui_frontend_services=>get_file_separator( + changing file_separator = lv_file_separator ). + + concatenate l_path lv_file_separator lv_default_file_name + into l_path. + +* export file to save file path + perform export_to_excel. + + endif. +endform. " USER_COMMAND + +*--------------------------------------------------------------------* +* FORM EXPORT_TO_EXCEL +*--------------------------------------------------------------------* +* This subroutine is principal demo session +*--------------------------------------------------------------------* +form export_to_excel. + data: lo_converter type ref to zcl_excel_converter. +* create zcl_excel_worksheet object + + create object lo_excel. + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Sheet1' ). + +* write to excel using method Bin_object + try. + lo_worksheet->bind_alv( + io_alv = lo_salv + it_table = gt_sbook + i_top = 2 + i_left = 1 + ). + catch zcx_excel . + endtry. + + perform write_file. + +endform. "EXPORT_TO_EXCEL +*&---------------------------------------------------------------------* +*& Form WRITE_FILE +*&---------------------------------------------------------------------* +* text +*----------------------------------------------------------------------* +* --> p1 text +* <-- p2 text +*----------------------------------------------------------------------* +form write_file . + data: lt_file type solix_tab, + l_bytecount type i, + l_file type xstring. + + data: lo_excel_writer type ref to zif_excel_writer. + + data: ls_seoclass type seoclass. + + create object lo_excel_writer type zcl_excel_writer_2007. + l_file = lo_excel_writer->write_file( lo_excel ). + + select single * into ls_seoclass + from seoclass + where clsname = 'CL_BCS_CONVERT'. + + if sy-subrc = 0. + call method (ls_seoclass-clsname)=>xstring_to_solix + exporting + iv_xstring = l_file + receiving + et_solix = lt_file. + + l_bytecount = xstrlen( l_file ). + else. + " Convert to binary + call function 'SCMS_XSTRING_TO_BINARY' + exporting + buffer = l_file + importing + output_length = l_bytecount + tables + binary_tab = lt_file. + endif. + + cl_gui_frontend_services=>gui_download( exporting bin_filesize = l_bytecount + filename = l_path + filetype = 'BIN' + changing data_tab = lt_file ). + +endform. " WRITE_FILE + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL28 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel28. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_excel_writer TYPE REF TO zif_excel_writer, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_hyperlink TYPE REF TO zcl_excel_hyperlink, + column_dimension TYPE REF TO zcl_excel_worksheet_columndime. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + +DATA: lv_file_name TYPE string, + lv_file_path TYPE string, + lv_full_path TYPE string, + lv_workdir TYPE string, + lv_file_separator TYPE c. + +CONSTANTS: lv_default_file_name TYPE string VALUE '28_HelloWorld.csv'. + +PARAMETERS: p_path TYPE string. + +AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. + + cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = p_path + CHANGING selected_folder = p_path ). + +INITIALIZATION. + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). + cl_gui_cfw=>flush( ). + p_path = lv_workdir. + +START-OF-SELECTION. + + IF p_path IS INITIAL. + p_path = lv_workdir. + ENDIF. + cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. + + " Creates active sheet + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Sheet1' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = sy-datum ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ). + + column_dimension = lo_worksheet->get_column_dimension( 'B' ). + column_dimension->set_width( 11 ). + + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'Sheet2' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'This is the second sheet' ). + + CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_csv. + zcl_excel_writer_csv=>set_delimiter( ip_value = cl_abap_char_utilities=>horizontal_tab ). + zcl_excel_writer_csv=>set_enclosure( ip_value = '''' ). + zcl_excel_writer_csv=>set_endofline( ip_value = cl_abap_char_utilities=>cr_lf ). + + zcl_excel_writer_csv=>set_active_sheet_index( i_active_worksheet = 2 ). +* zcl_excel_writer_csv=>set_active_sheet_index_by_name( I_WORKSHEET_NAME = 'Sheet2' ). + + lv_file = lo_excel_writer->write_file( lo_excel ). + + " Convert to binary + CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. +* " This method is only available on AS ABAP > 6.40 +* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). +* lv_bytecount = xstrlen( lv_file ). + + " Save the file + REPLACE FIRST OCCURRENCE OF '.csv' IN lv_full_path WITH '_Sheet2.csv'. + cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). + +* zcl_excel_writer_csv=>set_active_sheet_index( i_active_worksheet = 2 ). + zcl_excel_writer_csv=>set_active_sheet_index_by_name( I_WORKSHEET_NAME = 'Sheet1' ). + lv_file = lo_excel_writer->write_file( lo_excel ). + REPLACE FIRST OCCURRENCE OF '_Sheet2.csv' IN lv_full_path WITH '_Sheet1.csv'. + + " Convert to binary + CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. +* " This method is only available on AS ABAP > 6.40 +* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). +* lv_bytecount = xstrlen( lv_file ). + + " Save the file + cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). + + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL27 +*& Test Styles for ABAP2XLSX +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel27. + +CONSTANTS: c_fish TYPE string VALUE 'Fish'. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_range TYPE REF TO zcl_excel_range, + lo_data_validation TYPE REF TO zcl_excel_data_validation, + lo_style_conditional TYPE REF TO zcl_excel_style_conditional, + lo_style_1 TYPE REF TO zcl_excel_style, + lo_style_2 TYPE REF TO zcl_excel_style, + lv_style_1_guid TYPE zexcel_cell_style, + lv_style_2_guid TYPE zexcel_cell_style, + ls_cellis TYPE zexcel_conditional_cellis. + + +DATA: lv_title TYPE zexcel_sheet_title. + +CONSTANTS: gc_save_file_name TYPE string VALUE '27_ConditionalFormatting.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + + + " Creates active sheet + CREATE OBJECT lo_excel. + + lo_style_1 = lo_excel->add_new_style( ). + lo_style_1->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_1->fill->bgcolor-rgb = zcl_excel_style_color=>c_green. + lv_style_1_guid = lo_style_1->get_guid( ). + + lo_style_2 = lo_excel->add_new_style( ). + lo_style_2->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_2->fill->bgcolor-rgb = zcl_excel_style_color=>c_red. + lv_style_2_guid = lo_style_2->get_guid( ). + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lv_title = 'Data Validation'. + lo_worksheet->set_title( lv_title ). + " Set values for dropdown + lo_worksheet->set_cell( ip_row = 2 ip_column = 'A' ip_value = c_fish ). + lo_worksheet->set_cell( ip_row = 4 ip_column = 'A' ip_value = 'Anchovy' ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'A' ip_value = 'Carp' ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'A' ip_value = 'Catfish' ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'A' ip_value = 'Cod' ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'A' ip_value = 'Eel' ). + lo_worksheet->set_cell( ip_row = 9 ip_column = 'A' ip_value = 'Haddock' ). + + lo_range = lo_excel->add_new_range( ). + lo_range->name = c_fish. + lo_range->set_value( ip_sheet_name = lv_title + ip_start_column = 'A' + ip_start_row = 4 + ip_stop_column = 'A' + ip_stop_row = 9 ). + + " 1st validation + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_list. + lo_data_validation->formula1 = c_fish. + lo_data_validation->cell_row = 2. + lo_data_validation->cell_column = 'C'. + lo_worksheet->set_cell( ip_row = 2 ip_column = 'C' ip_value = 'Select a value' ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_cellis. + ls_cellis-formula = '"Anchovy"'. + ls_cellis-operator = zcl_excel_style_conditional=>c_operator_equal. + ls_cellis-cell_style = lv_style_1_guid. + lo_style_conditional->mode_cellis = ls_cellis. + lo_style_conditional->priority = 1. + lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 2 + ip_stop_column = 'C' + ip_stop_row = 2 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_cellis. + ls_cellis-formula = '"Carp"'. + ls_cellis-operator = zcl_excel_style_conditional=>c_operator_equal. + ls_cellis-cell_style = lv_style_2_guid. + lo_style_conditional->mode_cellis = ls_cellis. + lo_style_conditional->priority = 2. + lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 2 + ip_stop_column = 'C' + ip_stop_row = 2 ). + + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL17 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel17. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_protection TYPE REF TO zcl_excel_style, + lv_style_protection_guid TYPE zexcel_cell_style, + lo_style TYPE REF TO zcl_excel_style, + lv_style TYPE zexcel_cell_style. + + +CONSTANTS: gc_save_file_name TYPE string VALUE '17_SheetProtection.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + +PARAMETERS: p_pwd TYPE zexcel_aes_password LOWER CASE DEFAULT 'secret'. + +START-OF-SELECTION. + + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->zif_excel_sheet_protection~protected = zif_excel_sheet_protection=>c_protected. +* lo_worksheet->zif_excel_sheet_protection~password = 'DAA7'. "it is the encoded word "secret" + lo_worksheet->zif_excel_sheet_protection~password = zcl_excel_common=>encrypt_password( p_pwd ). + lo_worksheet->zif_excel_sheet_protection~sheet = zif_excel_sheet_protection=>c_active. + lo_worksheet->zif_excel_sheet_protection~objects = zif_excel_sheet_protection=>c_active. + lo_worksheet->zif_excel_sheet_protection~scenarios = zif_excel_sheet_protection=>c_active. + " First style to unlock a cell + lo_style_protection = lo_excel->add_new_style( ). + lo_style_protection->protection->locked = zcl_excel_style_protection=>c_protection_unlocked. + lv_style_protection_guid = lo_style_protection->get_guid( ). + " Another style which should not affect the unlock style + lo_style = lo_excel->add_new_style( ). + lo_style->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style->fill->fgcolor-rgb = 'FFCC3333'. + lv_style = lo_style->get_guid( ). + lo_worksheet->set_cell( ip_row = 3 ip_column = 'C' ip_value = 'This cell is locked locked and has the second formating' ip_style = lv_style ). + lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = 'This cell is unlocked' ip_style = lv_style_protection_guid ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'C' ip_value = 'This cell is locked as all the others empty cell' ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'C' ip_value = 'This cell is unlocked' ip_style = lv_style_protection_guid ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 'This cell is unlocked' ip_style = lv_style_protection_guid ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'This cell is locked as all the others empty cell' ). + + + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL10 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel10. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_conditional2 TYPE REF TO zcl_excel_style_conditional, + column_dimension TYPE REF TO zcl_excel_worksheet_columndime. + +DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog, + ls_table_settings TYPE zexcel_s_table_settings, + ls_iconset TYPE zexcel_conditional_iconset. + +CONSTANTS: gc_save_file_name TYPE string VALUE '10_iTabFieldCatalog.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + + FIELD-SYMBOLS: <fs_field_catalog> TYPE zexcel_s_fieldcatalog. + + " Creates active sheet + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( 'Internal table' ). + + ls_iconset-iconset = zcl_excel_style_conditional=>c_iconset_5arrows. + ls_iconset-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo1_value = '0'. + ls_iconset-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo2_value = '20'. + ls_iconset-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo3_value = '40'. + ls_iconset-cfvo4_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo4_value = '60'. + ls_iconset-cfvo5_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo5_value = '80'. + ls_iconset-showvalue = zcl_excel_style_conditional=>c_showvalue_true. + + "Conditional style + lo_style_conditional2 = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional2->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional2->mode_iconset = ls_iconset. + lo_style_conditional2->priority = 1. + + DATA lt_test TYPE TABLE OF sflight. + SELECT * FROM sflight INTO TABLE lt_test. "#EC CI_NOWHERE + + lt_field_catalog = zcl_excel_common=>get_fieldcatalog( ip_table = lt_test ). + + LOOP AT lt_field_catalog ASSIGNING <fs_field_catalog>. + CASE <fs_field_catalog>-fieldname. + WHEN 'CARRID'. + <fs_field_catalog>-position = 3. + <fs_field_catalog>-dynpfld = abap_true. + <fs_field_catalog>-totals_function = zcl_excel_table=>totals_function_count. + WHEN 'CONNID'. + <fs_field_catalog>-position = 4. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'FLDATE'. + <fs_field_catalog>-position = 2. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'PRICE'. + <fs_field_catalog>-position = 1. + <fs_field_catalog>-dynpfld = abap_true. + <fs_field_catalog>-totals_function = zcl_excel_table=>totals_function_sum. + <fs_field_catalog>-cond_style = lo_style_conditional2. + WHEN OTHERS. + <fs_field_catalog>-dynpfld = abap_false. + ENDCASE. + ENDLOOP. + + ls_table_settings-table_style = zcl_excel_table=>builtinstyle_medium5. + + lo_worksheet->bind_table( ip_table = lt_test + is_table_settings = ls_table_settings + it_field_catalog = lt_field_catalog ). + + column_dimension = lo_worksheet->get_column_dimension( ip_column = 'D' ). "make date field a bit wider + column_dimension->set_width( ip_width = 13 ). + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL11 +*& Export Organisation and Contact Persons using ABAP2XLSX +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel11. + +TYPE-POOLS: abap. + +DATA: central_search TYPE bapibus1006_central_search, + addressdata_search TYPE bapibus1006_addr_search, + others_search TYPE bapibus1006_other_data. +DATA: searchresult TYPE TABLE OF bapibus1006_bp_addr, + return TYPE TABLE OF bapiret2. +DATA: lines TYPE i. +FIELD-SYMBOLS: <searchresult_line> LIKE LINE OF searchresult. +DATA: centraldata TYPE bapibus1006_central, + centraldataperson TYPE bapibus1006_central_person, + centraldataorganization TYPE bapibus1006_central_organ. +DATA: addressdata TYPE bapibus1006_address. +DATA: relationships TYPE TABLE OF bapibus1006_relations. +FIELD-SYMBOLS: <relationship> LIKE LINE OF relationships. +DATA: relationship_centraldata TYPE bapibus1006002_central. +DATA: relationship_addresses TYPE TABLE OF bapibus1006002_addresses. +FIELD-SYMBOLS: <relationship_address> LIKE LINE OF relationship_addresses. + +DATA: lt_download TYPE TABLE OF zexcel_s_org_rel. +FIELD-SYMBOLS: <download> LIKE LINE OF lt_download. + +CONSTANTS: gc_save_file_name TYPE string VALUE '11_Export_Org_and_Contact.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +PARAMETERS: md TYPE flag RADIOBUTTON GROUP act. + +SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE a. +PARAMETERS: partnerc TYPE bu_type DEFAULT 2, " Organizations + postlcod TYPE ad_pstcd1 DEFAULT '8334*', + country TYPE land1 DEFAULT 'DE', + maxsel TYPE bu_maxsel DEFAULT 100. +SELECTION-SCREEN END OF BLOCK a. + +PARAMETERS: rel TYPE flag RADIOBUTTON GROUP act DEFAULT 'X'. + +SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE b. +PARAMETERS: reltyp TYPE bu_reltyp DEFAULT 'BUR011', + partner TYPE bu_partner DEFAULT '191'. +SELECTION-SCREEN END OF BLOCK b. + +INITIALIZATION. + a = 'Select by master data'. + b = 'Select by relationship'. + +START-OF-SELECTION. + IF md = abap_true. + " Read all Companies by Master Data + central_search-partnercategory = partnerc. + addressdata_search-postl_cod1 = postlcod. + addressdata_search-country = country. + others_search-maxsel = maxsel. + others_search-no_search_for_contactperson = 'X'. + + CALL FUNCTION 'BAPI_BUPA_SEARCH_2' + EXPORTING + centraldata = central_search + addressdata = addressdata_search + OTHERS = others_search + TABLES + searchresult = searchresult + return = return. + + SORT searchresult BY partner. + DELETE ADJACENT DUPLICATES FROM searchresult COMPARING partner. + ELSEIF rel = abap_true. + " Read by Relationship + SELECT but050~partner1 AS partner FROM but050 + INNER JOIN but000 ON but000~partner = but050~partner1 AND but000~type = '2' + INTO CORRESPONDING FIELDS OF TABLE searchresult + WHERE but050~partner2 = partner + AND but050~reltyp = reltyp. + ENDIF. + + DESCRIBE TABLE searchresult LINES lines. + WRITE: / 'Number of search results: ', lines. + + LOOP AT searchresult ASSIGNING <searchresult_line>. + " Read Details of Organization + CALL FUNCTION 'BAPI_BUPA_CENTRAL_GETDETAIL' + EXPORTING + businesspartner = <searchresult_line>-partner + IMPORTING + centraldataorganization = centraldataorganization. + " Read Standard Address of Organization + CALL FUNCTION 'BAPI_BUPA_ADDRESS_GETDETAIL' + EXPORTING + businesspartner = <searchresult_line>-partner + IMPORTING + addressdata = addressdata. + + " Add Organization to Download + APPEND INITIAL LINE TO lt_download ASSIGNING <download>. + " Fill Organization Partner Numbers + CALL FUNCTION 'BAPI_BUPA_GET_NUMBERS' + EXPORTING + businesspartner = <searchresult_line>-partner + IMPORTING + businesspartnerout = <download>-org_number + businesspartnerguidout = <download>-org_guid. + + MOVE-CORRESPONDING centraldataorganization TO <download>. + MOVE-CORRESPONDING addressdata TO <download>. + CLEAR: addressdata. + + " Read all Relationships + CLEAR: relationships. + CALL FUNCTION 'BAPI_BUPA_RELATIONSHIPS_GET' + EXPORTING + businesspartner = <searchresult_line>-partner + TABLES + relationships = relationships. + DELETE relationships WHERE relationshipcategory <> 'BUR001'. + LOOP AT relationships ASSIGNING <relationship>. + " Read details of Contact person + CALL FUNCTION 'BAPI_BUPA_CENTRAL_GETDETAIL' + EXPORTING + businesspartner = <relationship>-partner2 + IMPORTING + centraldata = centraldata + centraldataperson = centraldataperson. + " Read details of the Relationship + CALL FUNCTION 'BAPI_BUPR_CONTP_GETDETAIL' + EXPORTING + businesspartner = <relationship>-partner1 + contactperson = <relationship>-partner2 + IMPORTING + centraldata = relationship_centraldata. + " Read relationship address + CLEAR: relationship_addresses. + + CALL FUNCTION 'BAPI_BUPR_CONTP_ADDRESSES_GET' + EXPORTING + businesspartner = <relationship>-partner1 + contactperson = <relationship>-partner2 + TABLES + addresses = relationship_addresses. + + READ TABLE relationship_addresses + ASSIGNING <relationship_address> + WITH KEY standardaddress = 'X'. + + IF <relationship_address> IS ASSIGNED. + " Read Relationship Address + CLEAR addressdata. + CALL FUNCTION 'BAPI_BUPA_ADDRESS_GETDETAIL' + EXPORTING + businesspartner = <searchresult_line>-partner + addressguid = <relationship_address>-addressguid + IMPORTING + addressdata = addressdata. + + APPEND INITIAL LINE TO lt_download ASSIGNING <download>. + CALL FUNCTION 'BAPI_BUPA_GET_NUMBERS' + EXPORTING + businesspartner = <relationship>-partner1 + IMPORTING + businesspartnerout = <download>-org_number + businesspartnerguidout = <download>-org_guid. + + CALL FUNCTION 'BAPI_BUPA_GET_NUMBERS' + EXPORTING + businesspartner = <relationship>-partner2 + IMPORTING + businesspartnerout = <download>-contpers_number + businesspartnerguidout = <download>-contpers_guid. + + MOVE-CORRESPONDING centraldataorganization TO <download>. + MOVE-CORRESPONDING addressdata TO <download>. + MOVE-CORRESPONDING centraldataperson TO <download>. + MOVE-CORRESPONDING relationship_centraldata TO <download>. + + WRITE: / <relationship>-partner1, <relationship>-partner2. + WRITE: centraldataorganization-name1(20), centraldataorganization-name2(10). + WRITE: centraldataperson-firstname(15), centraldataperson-lastname(15). + WRITE: addressdata-street(25), addressdata-house_no, + addressdata-postl_cod1, addressdata-city(25). + ENDIF. + ENDLOOP. + + ENDLOOP. + + DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_body TYPE REF TO zcl_excel_style, + lo_border_dark TYPE REF TO zcl_excel_style_border, + column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. + + DATA: lv_style_body_even_guid TYPE zexcel_cell_style, + lv_style_body_green TYPE zexcel_cell_style. + + DATA: row TYPE zexcel_cell_row. + + DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + + DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog, + ls_table_settings TYPE zexcel_s_table_settings. + + DATA: column TYPE zexcel_cell_column, + column_alpha TYPE zexcel_cell_column_alpha, + value TYPE zexcel_cell_value. + + FIELD-SYMBOLS: <fs_field_catalog> TYPE zexcel_s_fieldcatalog. + + " Creates active sheet + CREATE OBJECT lo_excel. + + " Create border object + CREATE OBJECT lo_border_dark. + lo_border_dark->border_color-rgb = zcl_excel_style_color=>c_black. + lo_border_dark->border_style = zcl_excel_style_border=>c_border_thin. + "Create style with border even + lo_style_body = lo_excel->add_new_style( ). + lo_style_body->fill->fgcolor-rgb = zcl_excel_style_color=>c_yellow. + lo_style_body->borders->allborders = lo_border_dark. + lv_style_body_even_guid = lo_style_body->get_guid( ). + "Create style with border and green fill + lo_style_body = lo_excel->add_new_style( ). + lo_style_body->fill->fgcolor-rgb = zcl_excel_style_color=>c_green. + lo_style_body->borders->allborders = lo_border_dark. + lv_style_body_green = lo_style_body->get_guid( ). + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( 'Internal table' ). + + lt_field_catalog = zcl_excel_common=>get_fieldcatalog( ip_table = lt_download ). + + LOOP AT lt_field_catalog ASSIGNING <fs_field_catalog>. + CASE <fs_field_catalog>-fieldname. + WHEN 'ORG_NUMBER'. + <fs_field_catalog>-position = 1. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'CONTPERS_NUMBER'. + <fs_field_catalog>-position = 2. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'NAME1'. + <fs_field_catalog>-position = 3. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'NAME2'. + <fs_field_catalog>-position = 4. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'STREET'. + <fs_field_catalog>-position = 5. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'HOUSE_NO'. + <fs_field_catalog>-position = 6. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'POSTL_COD1'. + <fs_field_catalog>-position = 7. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'CITY'. + <fs_field_catalog>-position = 8. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'COUNTRYISO'. + <fs_field_catalog>-position = 9. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'FIRSTNAME'. + <fs_field_catalog>-position = 10. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'LASTNAME'. + <fs_field_catalog>-position = 11. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'FUNCTIONNAME'. + <fs_field_catalog>-position = 12. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'DEPARTMENTNAME'. + <fs_field_catalog>-position = 13. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'TEL1_NUMBR'. + <fs_field_catalog>-position = 14. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'TEL1_EXT'. + <fs_field_catalog>-position = 15. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'FAX_NUMBER'. + <fs_field_catalog>-position = 16. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'FAX_EXTENS'. + <fs_field_catalog>-position = 17. + <fs_field_catalog>-dynpfld = abap_true. + WHEN 'E_MAIL'. + <fs_field_catalog>-position = 18. + <fs_field_catalog>-dynpfld = abap_true. + WHEN OTHERS. + <fs_field_catalog>-dynpfld = abap_false. + ENDCASE. + ENDLOOP. + + ls_table_settings-top_left_column = 'A'. + ls_table_settings-top_left_row = '2'. + ls_table_settings-table_style = zcl_excel_table=>builtinstyle_medium5. + + lo_worksheet->bind_table( ip_table = lt_download + is_table_settings = ls_table_settings + it_field_catalog = lt_field_catalog ). + LOOP AT lt_download ASSIGNING <download>. + row = sy-tabix + 2. + IF NOT <download>-org_number IS INITIAL + AND <download>-contpers_number IS INITIAL. + " Mark fields of Organization which can be changed green + lo_worksheet->set_cell_style( + ip_column = 'C' + ip_row = row + ip_style = lv_style_body_green + ). + lo_worksheet->set_cell_style( + ip_column = 'D' + ip_row = row + ip_style = lv_style_body_green + ). +* CATCH zcx_excel. " Exceptions for ABAP2XLSX + ELSEIF NOT <download>-org_number IS INITIAL + AND NOT <download>-contpers_number IS INITIAL. + " Mark fields of Relationship which can be changed green + lo_worksheet->set_cell_style( + ip_column = 'L' ip_row = row ip_style = lv_style_body_green + ). + lo_worksheet->set_cell_style( + ip_column = 'M' ip_row = row ip_style = lv_style_body_green + ). + lo_worksheet->set_cell_style( + ip_column = 'N' ip_row = row ip_style = lv_style_body_green + ). + lo_worksheet->set_cell_style( + ip_column = 'O' ip_row = row ip_style = lv_style_body_green + ). + lo_worksheet->set_cell_style( + ip_column = 'P' ip_row = row ip_style = lv_style_body_green + ). + lo_worksheet->set_cell_style( + ip_column = 'Q' ip_row = row ip_style = lv_style_body_green + ). + lo_worksheet->set_cell_style( + ip_column = 'R' ip_row = row ip_style = lv_style_body_green + ). + ENDIF. + ENDLOOP. + " Add Fieldnames in first row and hide the row + LOOP AT lt_field_catalog ASSIGNING <fs_field_catalog> + WHERE position <> '' AND dynpfld = abap_true. + column = <fs_field_catalog>-position. + column_alpha = zcl_excel_common=>convert_column2alpha( column ). + value = <fs_field_catalog>-fieldname. + lo_worksheet->set_cell( ip_column = column_alpha + ip_row = 1 + ip_value = value + ip_style = lv_style_body_even_guid ). + ENDLOOP. + " Hide first row + row_dimension = lo_worksheet->get_row_dimension( 1 ). + row_dimension->set_visible( abap_false ). + + DATA: highest_column TYPE zexcel_cell_column, + count TYPE int4, + col_alpha TYPE zexcel_cell_column_alpha. + + highest_column = lo_worksheet->get_highest_column( ). + count = 1. + WHILE count <= highest_column. + col_alpha = zcl_excel_common=>convert_column2alpha( ip_column = count ). + column_dimension = lo_worksheet->get_column_dimension( ip_column = col_alpha ). + column_dimension->set_auto_size( ip_auto_size = abap_true ). + count = count + 1. + ENDWHILE. +* " Set Column width manuall +* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ). +* column_dimension->set_width( ip_width = 11 ). +* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). +* column_dimension->set_width( ip_width = 11 ). +* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). +* column_dimension->set_width( ip_width = 35 ). +* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'E' ). +* column_dimension->set_width( ip_width = 18 ). +* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'F' ). +* column_dimension->set_width( ip_width = 5 ). +* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'G' ). +* column_dimension->set_width( ip_width = 6 ). +* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'H' ). +* column_dimension->set_width( ip_width = 12 ). +* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'I' ). +* column_dimension->set_width( ip_width = 3 ). +* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'J' ). +* column_dimension->set_width( ip_width = 13 ). +* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'K' ). +* column_dimension->set_width( ip_width = 13 ). +* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'L' ). +* column_dimension->set_width( ip_width = 13 ). +* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'M' ). +* column_dimension->set_width( ip_width = 13 ). +* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'N' ). +* column_dimension->set_width( ip_width = 12 ). +* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'O' ). +* column_dimension->set_width( ip_width = 9 ). +* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'P' ). +* column_dimension->set_width( ip_width = 12 ). +* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'Q' ). +* column_dimension->set_width( ip_width = 9 ). +* column_dimension = lo_worksheet->get_column_dimension( ip_column = 'R' ). +* column_dimension->set_width( ip_width = 40 ). + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL12 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel12. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, + lv_file_separator TYPE c. + +CONSTANTS: gc_save_file_name TYPE string VALUE '12_HideSizeOutlineRowsAndColumns.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + +START-OF-SELECTION. + + " Creates active sheet + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( 'Sheet1' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world in AutoSize column' ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = 'Hello world in a column width size 50' ). + lo_worksheet->set_cell( ip_column = 'D' ip_row = 4 ip_value = 'Hello world (hidden column)' ). + lo_worksheet->set_cell( ip_column = 'F' ip_row = 2 ip_value = 'Outline column level 0' ). + lo_worksheet->set_cell( ip_column = 'G' ip_row = 2 ip_value = 'Outline column level 1' ). + lo_worksheet->set_cell( ip_column = 'H' ip_row = 2 ip_value = 'Outline column level 2' ). + lo_worksheet->set_cell( ip_column = 'I' ip_row = 2 ip_value = 'Small' ). + + + lo_worksheet->set_cell( ip_column = 'A' ip_row = 1 ip_value = 'Hello world (hidden row)' ). + lo_worksheet->set_cell( ip_column = 'E' ip_row = 5 ip_value = 'Hello world in a row height size 20' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 6 ip_value = 'Outline row level 0' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 7 ip_value = 'Outline row level 1' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 8 ip_value = 'Outline row level 2' ). + + lo_worksheet->zif_excel_sheet_properties~summarybelow = zif_excel_sheet_properties=>c_below_off. " By default is on + lo_worksheet->zif_excel_sheet_properties~summaryright = zif_excel_sheet_properties=>c_right_off. " By default is on + + " Column Settings + " Auto size + column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). + column_dimension->set_auto_size( ip_auto_size = abap_true ). + column_dimension = lo_worksheet->get_column_dimension( ip_column = 'I' ). + column_dimension->set_auto_size( ip_auto_size = abap_true ). + " Manual Width + column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). + column_dimension->set_width( ip_width = 50 ). + column_dimension = lo_worksheet->get_column_dimension( ip_column = 'D' ). + column_dimension->set_visible( ip_visible = abap_false ). + " Implementation in the Writer is not working yet ===== TODO ===== + column_dimension = lo_worksheet->get_column_dimension( ip_column = 'F' ). + column_dimension->set_outline_level( ip_outline_level = 0 ). + column_dimension = lo_worksheet->get_column_dimension( ip_column = 'G' ). + column_dimension->set_outline_level( ip_outline_level = 1 ). + column_dimension = lo_worksheet->get_column_dimension( ip_column = 'H' ). + column_dimension->set_outline_level( ip_outline_level = 2 ). + + row_dimension = lo_worksheet->get_row_dimension( ip_row = 1 ). + row_dimension->set_visible( ip_visible = abap_false ). + row_dimension = lo_worksheet->get_row_dimension( ip_row = 5 ). + row_dimension->set_row_height( ip_row_height = 20 ). + " Implementation in the Writer is not working yet ===== TODO ===== + row_dimension = lo_worksheet->get_row_dimension( ip_row = 6 ). + row_dimension->set_outline_level( ip_outline_level = 0 ). + row_dimension = lo_worksheet->get_row_dimension( ip_row = 7 ). + row_dimension->set_outline_level( ip_outline_level = 1 ). + row_dimension = lo_worksheet->get_row_dimension( ip_row = 8 ). + row_dimension->set_outline_level( ip_outline_level = 2 ). + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL13 +*& +*&---------------------------------------------------------------------* +*& Example by: Alvaro "Blag" Tejada Galindo. +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel13. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lv_style_bold_border_guid TYPE zexcel_cell_style, + lo_style_bold_border TYPE REF TO zcl_excel_style, + lo_border_dark TYPE REF TO zcl_excel_style_border. + + +CONSTANTS: gc_save_file_name TYPE string VALUE '13_MergedCells.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + +START-OF-SELECTION. + + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( 'sheet1' ). + + CREATE OBJECT lo_border_dark. + lo_border_dark->border_color-rgb = zcl_excel_style_color=>c_black. + lo_border_dark->border_style = zcl_excel_style_border=>c_border_thin. + + lo_style_bold_border = lo_excel->add_new_style( ). + lo_style_bold_border->font->bold = abap_true. + lo_style_bold_border->font->italic = abap_false. + lo_style_bold_border->font->color-rgb = zcl_excel_style_color=>c_black. + lo_style_bold_border->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center. + lo_style_bold_border->borders->allborders = lo_border_dark. + lv_style_bold_border_guid = lo_style_bold_border->get_guid( ). + + lo_worksheet->set_cell( ip_row = 2 ip_column = 'A' ip_value = 'Test' ). + + lo_worksheet->set_cell( ip_row = 2 ip_column = 'B' ip_value = 'Banana' ip_style = lv_style_bold_border_guid ). + lo_worksheet->set_cell( ip_row = 2 ip_column = 'C' ip_value = '' ip_style = lv_style_bold_border_guid ). + lo_worksheet->set_cell( ip_row = 2 ip_column = 'D' ip_value = '' ip_style = lv_style_bold_border_guid ). + lo_worksheet->set_cell( ip_row = 2 ip_column = 'E' ip_value = '' ip_style = lv_style_bold_border_guid ). + lo_worksheet->set_cell( ip_row = 2 ip_column = 'F' ip_value = '' ip_style = lv_style_bold_border_guid ). + lo_worksheet->set_cell( ip_row = 2 ip_column = 'G' ip_value = '' ip_style = lv_style_bold_border_guid ). + lo_worksheet->set_cell( ip_row = 4 ip_column = 'B' ip_value = 'Apple' ip_style = lv_style_bold_border_guid ). + lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = '' ip_style = lv_style_bold_border_guid ). + lo_worksheet->set_cell( ip_row = 4 ip_column = 'D' ip_value = '' ip_style = lv_style_bold_border_guid ). + lo_worksheet->set_cell( ip_row = 4 ip_column = 'E' ip_value = '' ip_style = lv_style_bold_border_guid ). + lo_worksheet->set_cell( ip_row = 4 ip_column = 'F' ip_value = '' ip_style = lv_style_bold_border_guid ). + lo_worksheet->set_cell( ip_row = 4 ip_column = 'G' ip_value = '' ip_style = lv_style_bold_border_guid ). + + lo_worksheet->set_merge( ip_row = 4 ip_column_start = 'B' ip_column_end = 'G' ). + + " Test also if merge works when oher merged chells are empty + lo_worksheet->set_cell( ip_row = 6 ip_column = 'B' ip_value = 'Tomato' ). + lo_worksheet->set_merge( ip_row = 6 ip_column_start = 'B' ip_column_end = 'G' ). + + " Test the patch provided by Victor Alekhin to merge cells in one column + lo_worksheet->set_cell( ip_row = 8 ip_column = 'B' ip_value = 'Merge cells also over multiple rows by Victor Alekhin' ). + lo_worksheet->set_merge( ip_row = 8 ip_column_start = 'B' ip_column_end = 'G' ip_row_to = 10 ). + + " Test the patch provided by Alexander Budeyev with different column merges + lo_worksheet->set_cell( ip_row = 12 ip_column = 'B' ip_value = 'Merge cells with different merges by Alexander Budeyev' ). + lo_worksheet->set_cell( ip_row = 13 ip_column = 'B' ip_value = 'Test' ). + + lo_worksheet->set_cell( ip_row = 13 ip_column = 'D' ip_value = 'Banana' ip_style = lv_style_bold_border_guid ). + lo_worksheet->set_cell( ip_row = 14 ip_column = 'D' ip_value = '' ip_style = lv_style_bold_border_guid ). + lo_worksheet->set_cell( ip_row = 13 ip_column = 'E' ip_value = 'Apple' ip_style = lv_style_bold_border_guid ). + lo_worksheet->set_cell( ip_row = 13 ip_column = 'F' ip_value = '' ip_style = lv_style_bold_border_guid ). + + " Test merge (issue) + lo_worksheet->set_merge( ip_row = 13 ip_column_start = 'B' ip_column_end = 'C' ip_row_to = 15 ). + lo_worksheet->set_merge( ip_row = 13 ip_column_start = 'D' ip_column_end = 'D' ip_row_to = 14 ). + lo_worksheet->set_merge( ip_row = 13 ip_column_start = 'E' ip_column_end = 'F' ). + + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL14 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel14. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_center TYPE REF TO zcl_excel_style, + lo_style_right TYPE REF TO zcl_excel_style, + lo_style_left TYPE REF TO zcl_excel_style, + lo_style_general TYPE REF TO zcl_excel_style, + lo_style_bottom TYPE REF TO zcl_excel_style, + lo_style_middle TYPE REF TO zcl_excel_style, + lo_style_top TYPE REF TO zcl_excel_style, + lo_style_justify TYPE REF TO zcl_excel_style, + lo_style_mixed TYPE REF TO zcl_excel_style, + lo_style_mixed_wrap TYPE REF TO zcl_excel_style, + lo_style_rotated TYPE REF TO zcl_excel_style, + lo_style_shrink TYPE REF TO zcl_excel_style, + lo_style_indent TYPE REF TO zcl_excel_style, + lv_style_center_guid TYPE zexcel_cell_style, + lv_style_right_guid TYPE zexcel_cell_style, + lv_style_left_guid TYPE zexcel_cell_style, + lv_style_general_guid TYPE zexcel_cell_style, + lv_style_bottom_guid TYPE zexcel_cell_style, + lv_style_middle_guid TYPE zexcel_cell_style, + lv_style_top_guid TYPE zexcel_cell_style, + lv_style_justify_guid TYPE zexcel_cell_style, + lv_style_mixed_guid TYPE zexcel_cell_style, + lv_style_mixed_wrap_guid TYPE zexcel_cell_style, + lv_style_rotated_guid TYPE zexcel_cell_style, + lv_style_shrink_guid TYPE zexcel_cell_style, + lv_style_indent_guid TYPE zexcel_cell_style. + +DATA: lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi. + +CONSTANTS: gc_save_file_name TYPE string VALUE '14_Alignment.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( 'sheet1' ). + + "Center + lo_style_center = lo_excel->add_new_style( ). + lo_style_center->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center. + lv_style_center_guid = lo_style_center->get_guid( ). + "Right + lo_style_right = lo_excel->add_new_style( ). + lo_style_right->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_right. + lv_style_right_guid = lo_style_right->get_guid( ). + "Left + lo_style_left = lo_excel->add_new_style( ). + lo_style_left->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_left. + lv_style_left_guid = lo_style_left->get_guid( ). + "General + lo_style_general = lo_excel->add_new_style( ). + lo_style_general->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_general. + lv_style_general_guid = lo_style_general->get_guid( ). + "Bottom + lo_style_bottom = lo_excel->add_new_style( ). + lo_style_bottom->alignment->vertical = zcl_excel_style_alignment=>c_vertical_bottom. + lv_style_bottom_guid = lo_style_bottom->get_guid( ). + "Middle + lo_style_middle = lo_excel->add_new_style( ). + lo_style_middle->alignment->vertical = zcl_excel_style_alignment=>c_vertical_center. + lv_style_middle_guid = lo_style_middle->get_guid( ). + "Top + lo_style_top = lo_excel->add_new_style( ). + lo_style_top->alignment->vertical = zcl_excel_style_alignment=>c_vertical_top. + lv_style_top_guid = lo_style_top->get_guid( ). + "Justify + lo_style_justify = lo_excel->add_new_style( ). + lo_style_justify->alignment->vertical = zcl_excel_style_alignment=>c_vertical_justify. + lv_style_justify_guid = lo_style_justify->get_guid( ). + + "Shrink + lo_style_shrink = lo_excel->add_new_style( ). + lo_style_shrink->alignment->shrinktofit = abap_true. + lv_style_shrink_guid = lo_style_shrink->get_guid( ). + + "Indent + lo_style_indent = lo_excel->add_new_style( ). + lo_style_indent->alignment->indent = 5. + lv_style_indent_guid = lo_style_indent->get_guid( ). + + "Middle / Centered / Wrap + lo_style_mixed_wrap = lo_excel->add_new_style( ). + lo_style_mixed_wrap->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center. + lo_style_mixed_wrap->alignment->vertical = zcl_excel_style_alignment=>c_vertical_center. + lo_style_mixed_wrap->alignment->wraptext = abap_true. + lv_style_mixed_wrap_guid = lo_style_mixed_wrap->get_guid( ). + + "Middle / Centered / Wrap + lo_style_mixed = lo_excel->add_new_style( ). + lo_style_mixed->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center. + lo_style_mixed->alignment->vertical = zcl_excel_style_alignment=>c_vertical_center. + lv_style_mixed_guid = lo_style_mixed->get_guid( ). + + "Center + lo_style_rotated = lo_excel->add_new_style( ). + lo_style_rotated->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center. + lo_style_rotated->alignment->vertical = zcl_excel_style_alignment=>c_vertical_center. + lo_style_rotated->alignment->textrotation = 165. " -75° == 90° + 75° + lv_style_rotated_guid = lo_style_rotated->get_guid( ). + + + " Set row size for first 7 rows to 40 + DO 7 TIMES. + lo_row_dimension = lo_worksheet->get_row_dimension( sy-index ). + lo_row_dimension->set_row_height( 40 ). + ENDDO. + + "Horizontal alignment + lo_worksheet->set_cell( ip_row = 4 ip_column = 'B' ip_value = 'Centered Text' ip_style = lv_style_center_guid ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'B' ip_value = 'Right Text' ip_style = lv_style_right_guid ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'B' ip_value = 'Left Text' ip_style = lv_style_left_guid ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'B' ip_value = 'General Text' ip_style = lv_style_general_guid ). + + " Shrink & indent + lo_worksheet->set_cell( ip_row = 4 ip_column = 'F' ip_value = 'Text shrinked' ip_style = lv_style_shrink_guid ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'F' ip_value = 'Text indented' ip_style = lv_style_indent_guid ). + + "Vertical alignment + + lo_worksheet->set_cell( ip_row = 4 ip_column = 'D' ip_value = 'Bottom Text' ip_style = lv_style_bottom_guid ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'D' ip_value = 'Middle Text' ip_style = lv_style_middle_guid ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'D' ip_value = 'Top Text' ip_style = lv_style_top_guid ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'D' ip_value = 'Justify Text' ip_style = lv_style_justify_guid ). + + " Wrapped + lo_worksheet->set_cell( ip_row = 10 ip_column = 'B' + ip_value = 'This is a wrapped text centered in the middle' + ip_style = lv_style_mixed_wrap_guid ). + + " Rotated + lo_worksheet->set_cell( ip_row = 10 ip_column = 'D' + ip_value = 'This is a centered text rotated by -75°' + ip_style = lv_style_rotated_guid ). + + " forced line break + DATA: lv_value TYPE string. + CONCATENATE 'This is a wrapped text centered in the middle' cl_abap_char_utilities=>cr_lf + 'and a manuall line break.' INTO lv_value. + lo_worksheet->set_cell( ip_row = 11 ip_column = 'B' + ip_value = lv_value + ip_style = lv_style_mixed_guid ). + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL15 +*& +*&---------------------------------------------------------------------* +*& 2010-10-30, Gregor Wolf: +*& Added the functionality to ouput the read table content +*& 2011-12-19, Shahrin Shahrulzaman: +*& Added the functionality to have multiple input and output files +*&---------------------------------------------------------------------* + +REPORT zdemo_excel15. + +TYPE-POOLS: abap. + +TYPES: + BEGIN OF t_demo_excel15, + input TYPE string, + END OF t_demo_excel15. + +DATA: excel TYPE REF TO zcl_excel, + lo_excel_writer TYPE REF TO zif_excel_writer, + reader TYPE REF TO zif_excel_reader. + +DATA: ex TYPE REF TO zcx_excel, + msg TYPE string. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + +DATA: lv_workdir TYPE string, + output_file_path TYPE string, + input_file_path TYPE string, + lv_file_separator TYPE c. + +DATA: worksheet TYPE REF TO zcl_excel_worksheet, + highest_column TYPE zexcel_cell_column, + highest_row TYPE int4, + column TYPE zexcel_cell_column VALUE 1, + col_str TYPE zexcel_cell_column_alpha, + row TYPE int4 VALUE 1, + value TYPE zexcel_cell_value. + +DATA: + lt_files TYPE TABLE OF t_demo_excel15. +FIELD-SYMBOLS: <wa_files> TYPE t_demo_excel15. + +PARAMETERS: p_path TYPE zexcel_export_dir, + p_noout TYPE xfeld DEFAULT abap_true. + + +AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. + lv_workdir = p_path. + cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir + CHANGING selected_folder = lv_workdir ). + p_path = lv_workdir. + +INITIALIZATION. + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). + cl_gui_cfw=>flush( ). + p_path = lv_workdir. + + APPEND INITIAL LINE TO lt_files ASSIGNING <wa_files>. + <wa_files>-input = '01_HelloWorld.xlsx'. + APPEND INITIAL LINE TO lt_files ASSIGNING <wa_files>. + <wa_files>-input = '02_Styles.xlsx'. + APPEND INITIAL LINE TO lt_files ASSIGNING <wa_files>. + <wa_files>-input = '03_iTab.xlsx'. + APPEND INITIAL LINE TO lt_files ASSIGNING <wa_files>. + <wa_files>-input = '04_Sheets.xlsx'. + APPEND INITIAL LINE TO lt_files ASSIGNING <wa_files>. + <wa_files>-input = '08_Range.xlsx'. + APPEND INITIAL LINE TO lt_files ASSIGNING <wa_files>. + <wa_files>-input = '13_MergedCells.xlsx'. + APPEND INITIAL LINE TO lt_files ASSIGNING <wa_files>. + <wa_files>-input = '31_AutosizeWithDifferentFontSizes.xlsx'. + +START-OF-SELECTION. + + IF p_path IS INITIAL. + p_path = lv_workdir. + ENDIF. + cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). + + LOOP AT lt_files ASSIGNING <wa_files>. + CONCATENATE p_path lv_file_separator <wa_files>-input INTO input_file_path. + CONCATENATE p_path lv_file_separator '15_' <wa_files>-input INTO output_file_path. + REPLACE '.xlsx' IN output_file_path WITH 'FromReader.xlsx'. + + TRY. + CREATE OBJECT reader TYPE zcl_excel_reader_2007. + excel = reader->load_file( input_file_path ). + + IF p_noout EQ abap_false. + worksheet = excel->get_active_worksheet( ). + highest_column = worksheet->get_highest_column( ). + highest_row = worksheet->get_highest_row( ). + + WRITE: 'Highest column: ', highest_column, 'Highest row: ', highest_row. + WRITE: /. + + WHILE row <= highest_row. + WHILE column <= highest_column. + col_str = zcl_excel_common=>convert_column2alpha( column ). + worksheet->get_cell( + EXPORTING + ip_column = col_str + ip_row = row + IMPORTING + ep_value = value + ). + WRITE: value. + column = column + 1. + ENDWHILE. + WRITE: /. + column = 1. + row = row + 1. + ENDWHILE. + ENDIF. + CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. + lv_file = lo_excel_writer->write_file( excel ). + + " Convert to binary + CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. +* " This method is only available on AS ABAP > 6.40 +* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). +* lv_bytecount = xstrlen( lv_file ). + + " Save the file + cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount + filename = output_file_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). + + + CATCH zcx_excel INTO ex. " Exceptions for ABAP2XLSX + msg = ex->get_text( ). + WRITE: / msg. + ENDTRY. + ENDLOOP. + + + + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL16 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel16. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_drawing TYPE REF TO zcl_excel_drawing. + + +DATA: ls_io TYPE skwf_io. + +CONSTANTS: gc_save_file_name TYPE string VALUE '16_Drawings.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + +PARAMETERS: p_objid TYPE sdok_docid DEFAULT '456694429165174BE10000000A1550C0', " Question mark in standard Web Dynpro WDT_QUIZ + p_class TYPE sdok_class DEFAULT 'M_IMAGE_P', + pobjtype TYPE skwf_ioty DEFAULT 'P'. + + +START-OF-SELECTION. + + " Creates active sheet + CREATE OBJECT lo_excel. + + "Load samle image + DATA: lt_bin TYPE solix_tab, + lv_len TYPE i, + lv_content TYPE xstring, + ls_key TYPE wwwdatatab. + + CALL METHOD cl_gui_frontend_services=>gui_upload + EXPORTING + filename = 'c:\Program Files\SAP\FrontEnd\SAPgui\wwi\graphics\W_bio.bmp' + filetype = 'BIN' + IMPORTING + filelength = lv_len + CHANGING + data_tab = lt_bin + EXCEPTIONS + file_open_error = 1 + file_read_error = 2 + no_batch = 3 + gui_refuse_filetransfer = 4 + invalid_type = 5 + no_authority = 6 + unknown_error = 7 + bad_data_format = 8 + header_not_allowed = 9 + separator_not_allowed = 10 + header_too_long = 11 + unknown_dp_error = 12 + access_denied = 13 + dp_out_of_memory = 14 + disk_full = 15 + dp_timeout = 16 + not_supported_by_gui = 17 + error_no_gui = 18 + OTHERS = 19. + IF sy-subrc <> 0. +* MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno +* WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. + ENDIF. + + CALL FUNCTION 'SCMS_BINARY_TO_XSTRING' + EXPORTING + input_length = lv_len + IMPORTING + buffer = lv_content + TABLES + binary_tab = lt_bin + EXCEPTIONS + failed = 1 + OTHERS = 2. + IF sy-subrc <> 0. + MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno + WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. + ENDIF. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( 'Sheet1' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Image from web repository (SMW0)' ). + + " create global drawing, set position and media from web repository + lo_drawing = lo_excel->add_new_drawing( ). + lo_drawing->set_position( ip_from_row = 3 + ip_from_col = 'B' ). + + ls_key-relid = 'MI'. + ls_key-objid = 'SAPLOGO.GIF'. + lo_drawing->set_media_www( ip_key = ls_key + ip_width = 166 + ip_height = 75 ). + + " assign drawing to the worksheet + lo_worksheet->add_drawing( lo_drawing ). + + " another drawing from a XSTRING read from a file + lo_worksheet->set_cell( ip_column = 'B' ip_row = 8 ip_value = 'Image from a file (c:\Program Files\SAP\FrontEnd\SAPgui\wwi\graphics\W_bio.bmp)' ). + lo_drawing = lo_excel->add_new_drawing( ). + lo_drawing->set_position( ip_from_row = 9 + ip_from_col = 'B' ). + lo_drawing->set_media( ip_media = lv_content + ip_media_type = zcl_excel_drawing=>c_media_type_bmp + ip_width = 83 + ip_height = 160 ). + + lo_worksheet->add_drawing( lo_drawing ). + + ls_io-objid = p_objid. + ls_io-class = p_class. + ls_io-objtype = pobjtype. + IF ls_io IS NOT INITIAL. + " another drawing from a XSTRING read from a file + lo_worksheet->set_cell( ip_column = 'B' ip_row = 18 ip_value = 'Mime repository (by default Question mark in standard Web Dynpro WDT_QUIZ)' ). + lo_drawing = lo_excel->add_new_drawing( ). + lo_drawing->set_position( ip_from_row = 19 + ip_from_col = 'B' ). + lo_drawing->set_media_mime( ip_io = ls_io + ip_width = 126 + ip_height = 145 ). + + lo_worksheet->add_drawing( lo_drawing ). + ENDIF. + + + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL18 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel18. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lv_style_protection_guid TYPE zexcel_cell_style. + + +CONSTANTS: gc_save_file_name TYPE string VALUE '18_BookProtection.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + + CREATE OBJECT lo_excel. + + " Get active sheet + lo_excel->zif_excel_book_protection~protected = zif_excel_book_protection=>c_protected. + lo_excel->zif_excel_book_protection~lockrevision = zif_excel_book_protection=>c_locked. + lo_excel->zif_excel_book_protection~lockstructure = zif_excel_book_protection=>c_locked. + lo_excel->zif_excel_book_protection~lockwindows = zif_excel_book_protection=>c_locked. + + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = 'This cell is unlocked' ip_style = lv_style_protection_guid ). + + + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL19 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel19. + +TYPE-POOLS: abap. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + + +CONSTANTS: gc_save_file_name TYPE string VALUE '19_SetActiveSheet.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + +PARAMETERS: p_noout TYPE xfeld DEFAULT abap_true. + + +START-OF-SELECTION. + + CREATE OBJECT lo_excel. + + " First Worksheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( 'First' ). + lo_worksheet->set_cell( ip_row = 1 ip_column = 'A' ip_value = 'This is Sheet 1' ). + + " Second Worksheet + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( 'Second' ). + lo_worksheet->set_cell( ip_row = 1 ip_column = 'A' ip_value = 'This is Sheet 2' ). + + " Third Worksheet + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( 'Third' ). + lo_worksheet->set_cell( ip_row = 1 ip_column = 'A' ip_value = 'This is Sheet 3' ). + + IF p_noout EQ abap_false. + " lo_excel->set_active_sheet_index_by_name( data_sheet_name ). + DATA: active_sheet_index TYPE zexcel_active_worksheet. + active_sheet_index = lo_excel->get_active_sheet_index( ). + WRITE: 'Sheet Index before: ', active_sheet_index. + ENDIF. + lo_excel->set_active_sheet_index( '2' ). + IF p_noout EQ abap_false. + active_sheet_index = lo_excel->get_active_sheet_index( ). + WRITE: 'Sheet Index after: ', active_sheet_index. + ENDIF. + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL2 +*& Test Styles for ABAP2XLSX +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel2. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_bold TYPE REF TO zcl_excel_style, + lo_style_underline TYPE REF TO zcl_excel_style, + lo_style_filled TYPE REF TO zcl_excel_style, + lo_style_border TYPE REF TO zcl_excel_style, + lo_style_button TYPE REF TO zcl_excel_style, + lo_border_dark TYPE REF TO zcl_excel_style_border, + lo_border_light TYPE REF TO zcl_excel_style_border. + +DATA: lv_style_bold_guid TYPE zexcel_cell_style, + lv_style_underline_guid TYPE zexcel_cell_style, + lv_style_filled_guid TYPE zexcel_cell_style, + lv_style_filled_green_guid TYPE zexcel_cell_style, + lv_style_border_guid TYPE zexcel_cell_style, + lv_style_button_guid TYPE zexcel_cell_style, + lv_style_filled_turquoise_guid TYPE zexcel_cell_style. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, + lv_file_separator TYPE c. + +CONSTANTS: gc_save_file_name TYPE string VALUE '02_Styles.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + + +START-OF-SELECTION. + + + " Creates active sheet + CREATE OBJECT lo_excel. + + " Create border object + CREATE OBJECT lo_border_dark. + lo_border_dark->border_color-rgb = zcl_excel_style_color=>c_black. + lo_border_dark->border_style = zcl_excel_style_border=>c_border_thin. + CREATE OBJECT lo_border_light. + lo_border_light->border_color-rgb = zcl_excel_style_color=>c_gray. + lo_border_light->border_style = zcl_excel_style_border=>c_border_thin. + " Create a bold / italic style + lo_style_bold = lo_excel->add_new_style( ). + lo_style_bold->font->bold = abap_true. + lo_style_bold->font->italic = abap_true. + lo_style_bold->font->name = zcl_excel_style_font=>c_name_arial. + lo_style_bold->font->scheme = zcl_excel_style_font=>c_scheme_none. + lo_style_bold->font->color-rgb = zcl_excel_style_color=>c_red. + lv_style_bold_guid = lo_style_bold->get_guid( ). + " Create an underline double style + lo_style_underline = lo_excel->add_new_style( ). + lo_style_underline->font->underline = abap_true. + lo_style_underline->font->underline_mode = zcl_excel_style_font=>c_underline_double. + lo_style_underline->font->name = zcl_excel_style_font=>c_name_roman. + lo_style_underline->font->scheme = zcl_excel_style_font=>c_scheme_none. + lo_style_underline->font->family = zcl_excel_style_font=>c_family_roman. + lv_style_underline_guid = lo_style_underline->get_guid( ). + " Create filled style yellow + lo_style_filled = lo_excel->add_new_style( ). + lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_filled->fill->fgcolor-theme = zcl_excel_style_color=>c_theme_accent6. + lv_style_filled_guid = lo_style_filled->get_guid( ). + " Create border with button effects + lo_style_button = lo_excel->add_new_style( ). + lo_style_button->borders->right = lo_border_dark. + lo_style_button->borders->down = lo_border_dark. + lo_style_button->borders->left = lo_border_light. + lo_style_button->borders->top = lo_border_light. + lv_style_button_guid = lo_style_button->get_guid( ). + "Create style with border + lo_style_border = lo_excel->add_new_style( ). + lo_style_border->borders->allborders = lo_border_dark. + lo_style_border->borders->diagonal = lo_border_dark. + lo_style_border->borders->diagonal_mode = zcl_excel_style_borders=>c_diagonal_both. + lv_style_border_guid = lo_style_border->get_guid( ). + " Create filled style green + lo_style_filled = lo_excel->add_new_style( ). + lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_filled->fill->fgcolor-rgb = zcl_excel_style_color=>c_green. + lo_style_filled->font->name = zcl_excel_style_font=>c_name_cambria. + lo_style_filled->font->scheme = zcl_excel_style_font=>c_scheme_major. + lv_style_filled_green_guid = lo_style_filled->get_guid( ). + + " Create filled style turquoise using legacy excel ver <= 2003 palette. (https://code.sdn.sap.com/spaces/abap2xlsx/tickets/92) + lo_style_filled = lo_excel->add_new_style( ). + lo_excel->legacy_palette->set_color( "replace built-in color from palette with out custom RGB turquoise + ip_index = 16 + ip_color = '0040E0D0' ). + + lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_filled->fill->fgcolor-indexed = 16. + lv_style_filled_turquoise_guid = lo_style_filled->get_guid( ). + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Styles' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = 'Bold text' ip_style = lv_style_bold_guid ). + lo_worksheet->set_cell( ip_column = 'D' ip_row = 4 ip_value = 'Underlined text' ip_style = lv_style_underline_guid ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 5 ip_value = 'Filled text' ip_style = lv_style_filled_guid ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = 6 ip_value = 'Borders' ip_style = lv_style_border_guid ). + lo_worksheet->set_cell( ip_column = 'D' ip_row = 7 ip_value = 'I''m not a button :)' ip_style = lv_style_button_guid ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 9 ip_value = 'Modified color for Excel 2003' ip_style = lv_style_filled_turquoise_guid ). + " Fill the cell and apply one style + lo_worksheet->set_cell( ip_column = 'B' ip_row = 6 ip_value = 'Filled text' ip_style = lv_style_filled_guid ). + " Change the style + lo_worksheet->set_cell_style( ip_column = 'B' ip_row = 6 ip_style = lv_style_filled_green_guid ). + " Add Style to an empty cell to test Fix for Issue + "#44 Exception ZCX_EXCEL thrown when style is set for an empty cell + " https://code.sdn.sap.com/spaces/abap2xlsx/tickets/44-exception-zcx_excel-thrown-when-style-is-set-for-an-empty-cell + lo_worksheet->set_cell_style( ip_column = 'E' ip_row = 6 ip_style = lv_style_filled_green_guid ). + +* CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. +* lv_file = lo_excel_writer->write_file( lo_excel ). +* +* " Convert to binary +* CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' +* EXPORTING +* buffer = lv_file +* IMPORTING +* output_length = lv_bytecount +* TABLES +* binary_tab = lt_file_tab. +** " This method is only available on AS ABAP > 6.40 +** lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). +** lv_bytecount = xstrlen( lv_file ). +* +* " Save the file +* cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount +* filename = lv_full_path +* filetype = 'BIN' +* CHANGING data_tab = lt_file_tab ). + + lcl_output=>output( lo_excel ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL26 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel29. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_excel_writer TYPE REF TO zif_excel_writer, + lo_excel_reader TYPE REF TO zif_excel_reader. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + +DATA: lv_full_path TYPE string, + lv_filename TYPE string, + lv_workdir TYPE string, + lv_file_separator TYPE c. + +PARAMETERS: p_path TYPE zexcel_export_dir OBLIGATORY. + +AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. + + DATA: lt_filetable TYPE filetable, + lv_rc TYPE i. + + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). + cl_gui_cfw=>flush( ). + p_path = lv_workdir. + + CALL METHOD cl_gui_frontend_services=>file_open_dialog + EXPORTING + window_title = 'Select Macro-Enabled Workbook template' + default_extension = '*.xlsm' + file_filter = 'Excel Macro-Enabled Workbook (*.xlsm)|*.xlsm' + initial_directory = lv_workdir + CHANGING + file_table = lt_filetable + rc = lv_rc + EXCEPTIONS + file_open_dialog_failed = 1 + cntl_error = 2 + error_no_gui = 3 + not_supported_by_gui = 4 + OTHERS = 5. + IF sy-subrc <> 0. + MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno + WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. + ENDIF. + READ TABLE lt_filetable INTO lv_filename INDEX 1. + p_path = lv_filename. + +START-OF-SELECTION. + + lv_full_path = p_path. + + CREATE OBJECT lo_excel_reader TYPE zcl_excel_reader_xlsm. + CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_xlsm. + lo_excel = lo_excel_reader->load_file( lv_full_path ). + lv_file = lo_excel_writer->write_file( lo_excel ). + REPLACE '.xlsm' IN lv_full_path WITH 'FromReader.xlsm'. + + " Convert to binary + CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. + + " Save the file + cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + *--------------------------------------------------------------------* +* REPORT ZDEMO_EXCEL32 +* Demo for export options from ALV GRID: +* export data from ALV (CL_GUI_ALV_GRID) object or cl_salv_table object +* to Excel. +*--------------------------------------------------------------------* +REPORT zdemo_excel32. + +*----------------------------------------------------------------------* +* CLASS lcl_handle_events DEFINITION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS lcl_handle_events DEFINITION. + PUBLIC SECTION. + METHODS: + on_user_command FOR EVENT added_function OF cl_salv_events + IMPORTING e_salv_function. +ENDCLASS. "lcl_handle_events DEFINITION + +*----------------------------------------------------------------------* +* CLASS lcl_handle_events IMPLEMENTATION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS lcl_handle_events IMPLEMENTATION. + METHOD on_user_command. + PERFORM user_command." using e_salv_function text-i08. + ENDMETHOD. "on_user_command +ENDCLASS. "lcl_handle_events IMPLEMENTATION + +*--------------------------------------------------------------------* +* DATA DECLARATION +*--------------------------------------------------------------------* + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_salv TYPE REF TO cl_salv_table, + gr_events TYPE REF TO lcl_handle_events, + lr_events TYPE REF TO cl_salv_events_table, + gt_sbook TYPE TABLE OF sbook. + +DATA: l_path TYPE string, " local dir + lv_workdir TYPE string, + lv_file_separator TYPE c. + +CONSTANTS: + lv_default_file_name TYPE string VALUE '32_Export_ALV.xlsx', + lv_default_file_name2 TYPE string VALUE '32_Export_Convert.xlsx'. +*--------------------------------------------------------------------* +*START-OF-SELECTION +*--------------------------------------------------------------------* + +START-OF-SELECTION. + +* get data +* ------------------------------------------ + + SELECT * + INTO TABLE gt_sbook[] + FROM sbook "#EC CI_NOWHERE + UP TO 100 ROWS. + +* Display ALV +* ------------------------------------------ + + TRY. + cl_salv_table=>factory( + EXPORTING + list_display = abap_false + IMPORTING + r_salv_table = lo_salv + CHANGING + t_table = gt_sbook[] ). + CATCH cx_salv_msg . + ENDTRY. + + TRY. + lo_salv->set_screen_status( + EXPORTING + report = sy-repid + pfstatus = 'ALV_STATUS' + set_functions = lo_salv->c_functions_all ). + CATCH cx_salv_msg . + ENDTRY. + + lr_events = lo_salv->get_event( ). + CREATE OBJECT gr_events. + SET HANDLER gr_events->on_user_command FOR lr_events. + + lo_salv->display( ). + + +*&---------------------------------------------------------------------* +*& Form USER_COMMAND +*&---------------------------------------------------------------------* +* ALV user command +*--------------------------------------------------------------------* +FORM user_command . + +* get save file path + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = l_path ). + cl_gui_cfw=>flush( ). + cl_gui_frontend_services=>directory_browse( + EXPORTING initial_folder = l_path + CHANGING selected_folder = l_path ). + + IF l_path IS INITIAL. + cl_gui_frontend_services=>get_sapgui_workdir( + CHANGING sapworkdir = lv_workdir ). + l_path = lv_workdir. + ENDIF. + + cl_gui_frontend_services=>get_file_separator( + CHANGING file_separator = lv_file_separator ). + + + +* export file to save file path + CASE sy-ucomm. + WHEN 'EXCELBIND'. + CONCATENATE l_path lv_file_separator lv_default_file_name + INTO l_path. + PERFORM export_to_excel_bind. + + WHEN 'EXCELCONV'. + + CONCATENATE l_path lv_file_separator lv_default_file_name2 + INTO l_path. + PERFORM export_to_excel_conv. + + ENDCASE. +ENDFORM. " USER_COMMAND +*--------------------------------------------------------------------* +* FORM EXPORT_TO_EXCEL_CONV +*--------------------------------------------------------------------* +* This subroutine is principal demo session +*--------------------------------------------------------------------* +FORM export_to_excel_conv. + DATA: lo_converter TYPE REF TO zcl_excel_converter. + + CREATE OBJECT lo_converter. +*TRY. + lo_converter->convert( + EXPORTING + io_alv = lo_salv + it_table = gt_sbook + i_row_int = 2 + i_column_int = 2 +* i_table = +* i_style_table = +* io_worksheet = +* CHANGING +* co_excel = + ). +* CATCH zcx_excel . +*ENDTRY. + lo_converter->write_file( i_path = l_path ). + +ENDFORM. "EXPORT_TO_EXCEL_CONV + +*--------------------------------------------------------------------* +* FORM EXPORT_TO_EXCEL_BIND +*--------------------------------------------------------------------* +* This subroutine is principal demo session +*--------------------------------------------------------------------* +FORM export_to_excel_bind. +* create zcl_excel_worksheet object + CREATE OBJECT lo_excel. + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Sheet1' ). + +* write to excel using method Bin_object +*try. + lo_worksheet->bind_alv( + io_alv = lo_salv + it_table = gt_sbook + i_top = 2 + i_left = 1 + ). +* catch zcx_excel . +*endtry. + + + PERFORM write_file. + +ENDFORM. "EXPORT_TO_EXCEL_BIND +*&---------------------------------------------------------------------* +*& Form WRITE_FILE +*&---------------------------------------------------------------------* +* text +*----------------------------------------------------------------------* +* --> p1 text +* <-- p2 text +*----------------------------------------------------------------------* +FORM write_file . + DATA: lt_file TYPE solix_tab, + l_bytecount TYPE i, + l_file TYPE xstring. + + DATA: lo_excel_writer TYPE REF TO zif_excel_writer. + + DATA: ls_seoclass TYPE seoclass. + + CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. + l_file = lo_excel_writer->write_file( lo_excel ). + + SELECT SINGLE * INTO ls_seoclass + FROM seoclass + WHERE clsname = 'CL_BCS_CONVERT'. + + IF sy-subrc = 0. + CALL METHOD (ls_seoclass-clsname)=>xstring_to_solix + EXPORTING + iv_xstring = l_file + RECEIVING + et_solix = lt_file. + + l_bytecount = XSTRLEN( l_file ). + ELSE. + " Convert to binary + CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = l_file + IMPORTING + output_length = l_bytecount + TABLES + binary_tab = lt_file. + ENDIF. + + cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = l_bytecount + filename = l_path + filetype = 'BIN' + CHANGING data_tab = lt_file ). + +ENDFORM. " WRITE_FILE + + + + + + + + + + + + + + + + + + + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_CALENDAR +*& abap2xlsx Demo: Create Calendar with Pictures +*&---------------------------------------------------------------------* +*& This report creates a monthly calendar in the specified date range. +*& Each month is put on a seperate worksheet. The pictures for each +*& month can be specified in a tab delimited file called "Calendar.txt" +*& which is saved in the Export Directory. By default this is the SAP +*& Workdir. The file contains 3 fields: +*& +*& Month (with leading 0) +*& Image Filename +*& Image Description +*& URL for the Description +*& +*& The Images should be landscape JPEG's with a 3:2 ratio and min. +*& 450 pixel height. They must also be saved in the Export Directory. +*& In my tests I've discovered a limit of 20 MB in the +*& cl_gui_frontend_services=>gui_download method. So keep your images +*& smaller or chnage to a server export using OPEN DATASET. +*&---------------------------------------------------------------------* + +REPORT zdemo_calendar. + +TYPE-POOLS: abap. +CONSTANTS: gc_save_file_name TYPE string VALUE 'Calendar.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. +INCLUDE zdemo_calendar_classes. + +DATA: lv_workdir TYPE string. + +PARAMETERS: p_from TYPE dfrom DEFAULT '20130101', + p_to TYPE dto DEFAULT '20131231'. + +SELECTION-SCREEN BEGIN OF BLOCK orientation WITH FRAME TITLE orient. +PARAMETERS: p_portr TYPE flag RADIOBUTTON GROUP orie, + p_lands TYPE flag RADIOBUTTON GROUP orie DEFAULT 'X'. +SELECTION-SCREEN END OF BLOCK orientation. + +INITIALIZATION. + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). + cl_gui_cfw=>flush( ). + p_path = lv_workdir. + orient = 'Orientation'(000). + +START-OF-SELECTION. + + DATA: lo_excel TYPE REF TO zcl_excel, + lo_excel_writer TYPE REF TO zif_excel_writer, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime, + lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi, + hyperlink TYPE REF TO zcl_excel_hyperlink, + lo_drawing TYPE REF TO zcl_excel_drawing. + + DATA: lo_style_month TYPE REF TO zcl_excel_style, + lv_style_month_guid TYPE zexcel_cell_style. + DATA: lo_style_border TYPE REF TO zcl_excel_style, + lo_border_dark TYPE REF TO zcl_excel_style_border, + lv_style_border_guid TYPE zexcel_cell_style. + DATA: lo_style_center TYPE REF TO zcl_excel_style, + lv_style_center_guid TYPE zexcel_cell_style. + + DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + + DATA: lv_full_path TYPE string, + image_descr_path TYPE string, + lv_file_separator TYPE c. + DATA: lv_content TYPE xstring, + width TYPE i, + lv_height TYPE i, + lv_from_row TYPE zexcel_cell_row. + + DATA: month TYPE i, + month_nr TYPE fcmnr, + count TYPE i VALUE 1, + title TYPE zexcel_sheet_title, + value TYPE string, + image_path TYPE string, + date_from TYPE datum, + date_to TYPE datum, + row TYPE zexcel_cell_row, + to_row TYPE zexcel_cell_row, + to_col TYPE zexcel_cell_column_alpha, + to_col_end TYPE zexcel_cell_column_alpha, + to_col_int TYPE i. + + DATA: month_names TYPE TABLE OF t247. + FIELD-SYMBOLS: <month_name> LIKE LINE OF month_names. + + TYPES: BEGIN OF tt_datatab, + month_nr TYPE fcmnr, + filename TYPE string, + descr TYPE string, + url TYPE string, + END OF tt_datatab. + + DATA: image_descriptions TYPE TABLE OF tt_datatab. + FIELD-SYMBOLS: <img_descr> LIKE LINE OF image_descriptions. + + CONSTANTS: lv_default_file_name TYPE string VALUE 'Calendar', "#EC NOTEXT + c_from_row_portrait TYPE zexcel_cell_row VALUE 28, + c_from_row_landscape TYPE zexcel_cell_row VALUE 38, + from_col TYPE zexcel_cell_column_alpha VALUE 'C', + c_height_portrait TYPE i VALUE 450, " Image Height in Portrait Mode + c_height_landscape TYPE i VALUE 670, " Image Height in Landscape Mode + c_factor TYPE f VALUE '1.5'. " Image Ratio, default 3:2 + + IF p_path IS INITIAL. + p_path = lv_workdir. + ENDIF. + cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). + CONCATENATE p_path lv_file_separator lv_default_file_name '.xlsx' INTO lv_full_path. "#EC NOTEXT + + " Read Image Names for Month and Description + CONCATENATE p_path lv_file_separator lv_default_file_name '.txt' INTO image_descr_path. "#EC NOTEXT + cl_gui_frontend_services=>gui_upload( + EXPORTING + filename = image_descr_path " Name of file + filetype = 'ASC' " File Type (ASCII, Binary) + has_field_separator = 'X' + read_by_line = 'X' " File Written Line-By-Line to the Internal Table + CHANGING + data_tab = image_descriptions " Transfer table for file contents + EXCEPTIONS + file_open_error = 1 + file_read_error = 2 + no_batch = 3 + gui_refuse_filetransfer = 4 + invalid_type = 5 + no_authority = 6 + unknown_error = 7 + bad_data_format = 8 + header_not_allowed = 9 + separator_not_allowed = 10 + header_too_long = 11 + unknown_dp_error = 12 + access_denied = 13 + dp_out_of_memory = 14 + disk_full = 15 + dp_timeout = 16 + not_supported_by_gui = 17 + error_no_gui = 18 + OTHERS = 19 + ). + IF sy-subrc <> 0. + MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno + WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. + ENDIF. + + " Creates active sheet + CREATE OBJECT lo_excel. + + " Create Styles + " Create an underline double style + lo_style_month = lo_excel->add_new_style( ). + " lo_style_month->font->underline = abap_true. + " lo_style_month->font->underline_mode = zcl_excel_style_font=>c_underline_single. + lo_style_month->font->name = zcl_excel_style_font=>c_name_roman. + lo_style_month->font->scheme = zcl_excel_style_font=>c_scheme_none. + lo_style_month->font->family = zcl_excel_style_font=>c_family_roman. + lo_style_month->font->bold = abap_true. + lo_style_month->font->size = 36. + lv_style_month_guid = lo_style_month->get_guid( ). + " Create border object + CREATE OBJECT lo_border_dark. + lo_border_dark->border_color-rgb = zcl_excel_style_color=>c_black. + lo_border_dark->border_style = zcl_excel_style_border=>c_border_thin. + "Create style with border + lo_style_border = lo_excel->add_new_style( ). + lo_style_border->borders->allborders = lo_border_dark. + lo_style_border->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_right. + lo_style_border->alignment->vertical = zcl_excel_style_alignment=>c_vertical_top. + lv_style_border_guid = lo_style_border->get_guid( ). + "Create style alignment center + lo_style_center = lo_excel->add_new_style( ). + lo_style_center->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center. + lo_style_center->alignment->vertical = zcl_excel_style_alignment=>c_vertical_top. + lv_style_center_guid = lo_style_center->get_guid( ). + + " Get Month Names + CALL FUNCTION 'MONTH_NAMES_GET' + TABLES + month_names = month_names. + + zcl_date_calculation=>months_between_two_dates( + EXPORTING + i_date_from = p_from + i_date_to = p_to + i_incl_to = abap_true + IMPORTING + e_month = month + ). + + date_from = p_from. + + WHILE count <= month. + IF count = 1. + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + ELSE. + lo_worksheet = lo_excel->add_new_worksheet( ). + ENDIF. + + lo_worksheet->zif_excel_sheet_properties~selected = zif_excel_sheet_properties=>c_selected. + + title = count. + value = count. + CONDENSE title. + CONDENSE value. + lo_worksheet->set_title( title ). + lo_worksheet->set_print_gridlines( abap_false ). + lo_worksheet->sheet_setup->paper_size = zcl_excel_sheet_setup=>c_papersize_a4. + lo_worksheet->sheet_setup->horizontal_centered = abap_true. + lo_worksheet->sheet_setup->vertical_centered = abap_true. + lo_col_dim = lo_worksheet->get_column_dimension( 'A' ). + lo_col_dim->set_width( '1.0' ). + lo_col_dim = lo_worksheet->get_column_dimension( 'B' ). + lo_col_dim->set_width( '2.0' ). + IF p_lands = abap_true. + lo_worksheet->sheet_setup->orientation = zcl_excel_sheet_setup=>c_orientation_landscape. + lv_height = c_height_landscape. + lv_from_row = c_from_row_landscape. + lo_worksheet->sheet_setup->margin_top = '0.10'. + lo_worksheet->sheet_setup->margin_left = '0.10'. + lo_worksheet->sheet_setup->margin_right = '0.10'. + lo_worksheet->sheet_setup->margin_bottom = '0.10'. + ELSE. + lo_col_dim = lo_worksheet->get_column_dimension( 'K' ). + lo_col_dim->set_width( '3.0' ). + lo_worksheet->sheet_setup->margin_top = '0.80'. + lo_worksheet->sheet_setup->margin_left = '0.55'. + lo_worksheet->sheet_setup->margin_right = '0.05'. + lo_worksheet->sheet_setup->margin_bottom = '0.30'. + lv_height = c_height_portrait. + lv_from_row = c_from_row_portrait. + ENDIF. + + " Add Month Name + month_nr = date_from+4(2). + IF p_portr = abap_true. + READ TABLE month_names WITH KEY mnr = month_nr ASSIGNING <month_name>. + CONCATENATE <month_name>-ltx ` ` date_from(4) INTO value. + row = lv_from_row - 2. + to_col = from_col. + ELSE. + row = lv_from_row - 1. + to_col_int = zcl_excel_common=>convert_column2int( from_col ) + 32. + to_col = zcl_excel_common=>convert_column2alpha( to_col_int ). + to_col_int = to_col_int + 1. + to_col_end = zcl_excel_common=>convert_column2alpha( to_col_int ). + CONCATENATE month_nr '/' date_from+2(2) INTO value. + to_row = row + 2. + lo_worksheet->set_merge( + EXPORTING + ip_column_start = to_col " Cell Column Start + ip_column_end = to_col_end " Cell Column End + ip_row = row " Cell Row + ip_row_to = to_row " Cell Row + ). + ENDIF. + lo_worksheet->set_cell( + EXPORTING + ip_column = to_col " Cell Column + ip_row = row " Cell Row + ip_value = value " Cell Value + ip_style = lv_style_month_guid + ). + +* to_col_int = zcl_excel_common=>convert_column2int( from_col ) + 7. +* to_col = zcl_excel_common=>convert_column2alpha( to_col_int ). +* +* lo_worksheet->set_merge( +* EXPORTING +* ip_column_start = from_col " Cell Column Start +* ip_column_end = to_col " Cell Column End +* ip_row = row " Cell Row +* ip_row_to = row " Cell Row +* ). + + " Add drawing from a XSTRING read from a file + UNASSIGN <img_descr>. + READ TABLE image_descriptions WITH KEY month_nr = month_nr ASSIGNING <img_descr>. + IF <img_descr> IS ASSIGNED. + value = <img_descr>-descr. + IF p_portr = abap_true. + row = lv_from_row - 3. + ELSE. + row = lv_from_row - 2. + ENDIF. + IF NOT <img_descr>-url IS INITIAL. + hyperlink = zcl_excel_hyperlink=>create_external_link( <img_descr>-url ). + lo_worksheet->set_cell( + EXPORTING + ip_column = from_col " Cell Column + ip_row = row " Cell Row + ip_value = value " Cell Value + ip_hyperlink = hyperlink + ). + ELSE. + lo_worksheet->set_cell( + EXPORTING + ip_column = from_col " Cell Column + ip_row = row " Cell Row + ip_value = value " Cell Value + ). + ENDIF. + lo_row_dim = lo_worksheet->get_row_dimension( row ). + lo_row_dim->set_row_height( '22.0' ). + + " In Landscape mode the row between the description and the + " dates should be not so high + IF p_lands = abap_true. + row = lv_from_row - 3. + lo_worksheet->set_cell( + EXPORTING + ip_column = from_col " Cell Column + ip_row = row " Cell Row + ip_value = ' ' " Cell Value + ). + lo_row_dim = lo_worksheet->get_row_dimension( row ). + lo_row_dim->set_row_height( '7.0' ). + row = lv_from_row - 1. + lo_row_dim = lo_worksheet->get_row_dimension( row ). + lo_row_dim->set_row_height( '5.0' ). + ENDIF. + + CONCATENATE p_path lv_file_separator <img_descr>-filename INTO image_path. + lo_drawing = lo_excel->add_new_drawing( ). + lo_drawing->set_position( ip_from_row = 1 + ip_from_col = 'B' ). + + lv_content = zcl_helper=>load_image( image_path ). + width = lv_height * c_factor. + lo_drawing->set_media( ip_media = lv_content + ip_media_type = zcl_excel_drawing=>c_media_type_jpg + ip_width = width + ip_height = lv_height ). + lo_worksheet->add_drawing( lo_drawing ). + ENDIF. + + " Add Calendar + CALL FUNCTION 'SLS_MISC_GET_LAST_DAY_OF_MONTH' + EXPORTING + day_in = date_from + IMPORTING + last_day_of_month = date_to. + IF p_portr = abap_true. + zcl_helper=>add_calendar( + EXPORTING + i_date_from = date_from + i_date_to = date_to + i_from_row = lv_from_row + i_from_col = from_col + i_day_style = lv_style_border_guid + i_cw_style = lv_style_center_guid + CHANGING + c_worksheet = lo_worksheet + ). + ELSE. + zcl_helper=>add_calendar_landscape( + EXPORTING + i_date_from = date_from + i_date_to = date_to + i_from_row = lv_from_row + i_from_col = from_col + i_day_style = lv_style_border_guid + i_cw_style = lv_style_center_guid + CHANGING + c_worksheet = lo_worksheet + ). + ENDIF. + count = count + 1. + date_from = date_to + 1. + ENDWHILE. + + lo_excel->set_active_sheet_index_by_name( '1' ). +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + *&---------------------------------------------------------------------* +*& Include ZDEMO_CALENDAR_CLASSES +*&---------------------------------------------------------------------* + +*&---------------------------------------------------------------------* +*& Class ZCL_DATE_CALCULATION +*&---------------------------------------------------------------------* +* Text +*----------------------------------------------------------------------* +CLASS zcl_date_calculation DEFINITION. + PUBLIC SECTION. + CLASS-METHODS: months_between_two_dates + IMPORTING + i_date_from TYPE datum + i_date_to TYPE datum + i_incl_to TYPE flag + EXPORTING + e_month TYPE i. +ENDCLASS. "ZCL_DATE_CALCULATION + + +*----------------------------------------------------------------------* +* CLASS ZCL_DATE_CALCULATION IMPLEMENTATION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS zcl_date_calculation IMPLEMENTATION. + METHOD months_between_two_dates. + DATA: date_to TYPE datum. + DATA: BEGIN OF datum_von, + jjjj(4) TYPE n, + mm(2) TYPE n, + tt(2) TYPE n, + END OF datum_von. + + DATA: BEGIN OF datum_bis, + jjjj(4) TYPE n, + mm(2) TYPE n, + tt(2) TYPE n, + END OF datum_bis. + + e_month = 0. + + CHECK NOT ( i_date_from IS INITIAL ) + AND NOT ( i_date_to IS INITIAL ). + + date_to = i_date_to. + IF i_incl_to = abap_true. + date_to = date_to + 1. + ENDIF. + + datum_von = i_date_from. + datum_bis = date_to. + + e_month = ( datum_bis-jjjj - datum_von-jjjj ) * 12 + + ( datum_bis-mm - datum_von-mm ). + ENDMETHOD. "MONTHS_BETWEEN_TWO_DATES +ENDCLASS. "ZCL_DATE_CALCULATION IMPLEMENTATION + +*----------------------------------------------------------------------* +* CLASS zcl_date_calculation_test DEFINITION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS zcl_date_calculation_test DEFINITION FOR TESTING + " DURATION SHORT + " RISK LEVEL HARMLESS + "#AU Duration Medium + "#AU Risk_Level Harmless + . + PUBLIC SECTION. + METHODS: + months_between_two_dates FOR TESTING. +ENDCLASS. "zcl_date_calculation_test DEFINITION +*----------------------------------------------------------------------* +* CLASS zcl_date_calculation_test IMPLEMENTATION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS zcl_date_calculation_test IMPLEMENTATION. + METHOD months_between_two_dates. + + DATA: date_from TYPE datum VALUE '20120101', + date_to TYPE datum VALUE '20121231'. + DATA: month TYPE i. + + zcl_date_calculation=>months_between_two_dates( + EXPORTING + i_date_from = date_from + i_date_to = date_to + i_incl_to = abap_true + IMPORTING + e_month = month + ). + + cl_aunit_assert=>assert_equals( + exp = 12 " Data Object with Expected Type + act = month " Data Object with Current Value + msg = 'Calculated date is wrong' " Message in Case of Error + ). + + ENDMETHOD. "months_between_two_dates +ENDCLASS. "zcl_date_calculation_test IMPLEMENTATION +*----------------------------------------------------------------------* +* CLASS zcl_helper DEFINITION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS zcl_helper DEFINITION. + PUBLIC SECTION. + CLASS-METHODS: + load_image + IMPORTING + filename TYPE string + RETURNING value(r_image) TYPE xstring, + add_calendar + IMPORTING + i_date_from TYPE datum + i_date_to TYPE datum + i_from_row TYPE zexcel_cell_row + i_from_col TYPE zexcel_cell_column_alpha + i_day_style TYPE zexcel_cell_style + i_cw_style TYPE zexcel_cell_style + CHANGING + c_worksheet TYPE REF TO zcl_excel_worksheet, + add_calendar_landscape + IMPORTING + i_date_from TYPE datum + i_date_to TYPE datum + i_from_row TYPE zexcel_cell_row + i_from_col TYPE zexcel_cell_column_alpha + i_day_style TYPE zexcel_cell_style + i_cw_style TYPE zexcel_cell_style + CHANGING + c_worksheet TYPE REF TO zcl_excel_worksheet, + add_a2x_footer + IMPORTING + i_from_row TYPE zexcel_cell_row + i_from_col TYPE zexcel_cell_column_alpha + CHANGING + c_worksheet TYPE REF TO zcl_excel_worksheet, + add_calender_week + IMPORTING + i_date TYPE datum + i_row TYPE zexcel_cell_row + i_col TYPE zexcel_cell_column_alpha + i_style TYPE zexcel_cell_style + CHANGING + c_worksheet TYPE REF TO zcl_excel_worksheet. +ENDCLASS. "zcl_helper DEFINITION + +*----------------------------------------------------------------------* +* CLASS zcl_helper IMPLEMENTATION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS zcl_helper IMPLEMENTATION. + METHOD load_image. + "Load samle image + DATA: lt_bin TYPE solix_tab, + lv_len TYPE i. + + CALL METHOD cl_gui_frontend_services=>gui_upload + EXPORTING + filename = filename + filetype = 'BIN' + IMPORTING + filelength = lv_len + CHANGING + data_tab = lt_bin + EXCEPTIONS + file_open_error = 1 + file_read_error = 2 + no_batch = 3 + gui_refuse_filetransfer = 4 + invalid_type = 5 + no_authority = 6 + unknown_error = 7 + bad_data_format = 8 + header_not_allowed = 9 + separator_not_allowed = 10 + header_too_long = 11 + unknown_dp_error = 12 + access_denied = 13 + dp_out_of_memory = 14 + disk_full = 15 + dp_timeout = 16 + not_supported_by_gui = 17 + error_no_gui = 18 + OTHERS = 19. + IF sy-subrc <> 0. + MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno + WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. + ENDIF. + + CALL FUNCTION 'SCMS_BINARY_TO_XSTRING' + EXPORTING + input_length = lv_len + IMPORTING + buffer = r_image + TABLES + binary_tab = lt_bin + EXCEPTIONS + failed = 1 + OTHERS = 2. + IF sy-subrc <> 0. + MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno + WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. + ENDIF. + ENDMETHOD. "load_image + METHOD add_calendar. + DATA: day_names TYPE TABLE OF t246. + DATA: row TYPE zexcel_cell_row, + row_max TYPE i, + col_int TYPE zexcel_cell_column, + col_max TYPE i, + from_col_int TYPE zexcel_cell_column, + col TYPE zexcel_cell_column_alpha, + lr_col_dim TYPE REF TO zcl_excel_worksheet_columndime, + lr_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi. + DATA: lv_date TYPE datum, + value TYPE string, + weekday TYPE wotnr, + weekrow TYPE wotnr VALUE 1, + day TYPE i, + width TYPE f, + height TYPE f. + DATA: hyperlink TYPE REF TO zcl_excel_hyperlink. + + FIELD-SYMBOLS: <day_name> LIKE LINE OF day_names. + + lv_date = i_date_from. + from_col_int = zcl_excel_common=>convert_column2int( i_from_col ). + " Add description for Calendar Week + c_worksheet->set_cell( + EXPORTING + ip_column = i_from_col " Cell Column + ip_row = i_from_row " Cell Row + ip_value = 'CW'(001) " Cell Value + ip_style = i_cw_style + ). + + " Add Days + CALL FUNCTION 'DAY_NAMES_GET' + TABLES + day_names = day_names. + + LOOP AT day_names ASSIGNING <day_name>. + row = i_from_row. + col_int = from_col_int + <day_name>-wotnr. + col = zcl_excel_common=>convert_column2alpha( col_int ). + value = <day_name>-langt. + c_worksheet->set_cell( + EXPORTING + ip_column = col " Cell Column + ip_row = row " Cell Row + ip_value = value " Cell Value + ip_style = i_cw_style + ). + ENDLOOP. + + WHILE lv_date <= i_date_to. + day = lv_date+6(2). + CALL FUNCTION 'FIMA_X_DAY_IN_MONTH_COMPUTE' + EXPORTING + i_datum = lv_date + IMPORTING + e_wochentag_nr = weekday. + + row = i_from_row + weekrow. + col_int = from_col_int + weekday. + col = zcl_excel_common=>convert_column2alpha( col_int ). + + value = day. + CONDENSE value. + + c_worksheet->set_cell( + EXPORTING + ip_column = col " Cell Column + ip_row = row " Cell Row + ip_value = value " Cell Value + ip_style = i_day_style " Single-Character Indicator + ). + + IF weekday = 7. + " Add Calender Week + zcl_helper=>add_calender_week( + EXPORTING + i_date = lv_date + i_row = row + i_col = i_from_col + i_style = i_cw_style + CHANGING + c_worksheet = c_worksheet + ). + weekrow = weekrow + 1. + ENDIF. + lv_date = lv_date + 1. + ENDWHILE. + " Add Calender Week + zcl_helper=>add_calender_week( + EXPORTING + i_date = lv_date + i_row = row + i_col = i_from_col + i_style = i_cw_style + CHANGING + c_worksheet = c_worksheet + ). + " Add Created with abap2xlsx + row = row + 2. + zcl_helper=>add_a2x_footer( + EXPORTING + i_from_row = row + i_from_col = i_from_col + CHANGING + c_worksheet = c_worksheet + ). + col_int = from_col_int. + col_max = from_col_int + 7. + WHILE col_int <= col_max. + col = zcl_excel_common=>convert_column2alpha( col_int ). + IF sy-index = 1. + width = '5.0'. + ELSE. + width = '11.4'. + ENDIF. + lr_col_dim = c_worksheet->get_column_dimension( col ). + lr_col_dim->set_width( width ). + col_int = col_int + 1. + ENDWHILE. + row = i_from_row + 1. + row_max = i_from_row + 6. + WHILE row <= row_max. + height = 50. + lr_row_dim = c_worksheet->get_row_dimension( row ). + lr_row_dim->set_row_height( height ). + row = row + 1. + ENDWHILE. + ENDMETHOD. "add_calendar + METHOD add_a2x_footer. + DATA: value TYPE string, + hyperlink TYPE REF TO zcl_excel_hyperlink. + + value = 'Created with abap2xlsx. Find more information at http://abap2xlsx.org.'(002). + hyperlink = zcl_excel_hyperlink=>create_external_link( 'http://abap2xlsx.org' ). "#EC NOTEXT + c_worksheet->set_cell( + EXPORTING + ip_column = i_from_col " Cell Column + ip_row = i_from_row " Cell Row + ip_value = value " Cell Value + ip_hyperlink = hyperlink + ). + + ENDMETHOD. "add_a2x_footer + METHOD add_calendar_landscape. + DATA: day_names TYPE TABLE OF t246. + + DATA: lv_date TYPE datum, + day TYPE i, + value TYPE string, + weekday TYPE wotnr. + DATA: row TYPE zexcel_cell_row, + from_col_int TYPE zexcel_cell_column, + col_int TYPE zexcel_cell_column, + col TYPE zexcel_cell_column_alpha. + DATA: lo_col_dim TYPE REF TO zcl_excel_worksheet_columndime, + lo_row_dim TYPE REF TO zcl_excel_worksheet_rowdimensi. + + FIELD-SYMBOLS: <day_name> LIKE LINE OF day_names. + + lv_date = i_date_from. + " Add Days + CALL FUNCTION 'DAY_NAMES_GET' + TABLES + day_names = day_names. + + WHILE lv_date <= i_date_to. + day = lv_date+6(2). + CALL FUNCTION 'FIMA_X_DAY_IN_MONTH_COMPUTE' + EXPORTING + i_datum = lv_date + IMPORTING + e_wochentag_nr = weekday. + " Day name row + row = i_from_row. + col_int = from_col_int + day + 2. + col = zcl_excel_common=>convert_column2alpha( col_int ). + READ TABLE day_names ASSIGNING <day_name> + WITH KEY wotnr = weekday. + value = <day_name>-kurzt. + c_worksheet->set_cell( + EXPORTING + ip_column = col " Cell Column + ip_row = row " Cell Row + ip_value = value " Cell Value + ip_style = i_cw_style + ). + + " Day row + row = i_from_row + 1. + value = day. + CONDENSE value. + + c_worksheet->set_cell( + EXPORTING + ip_column = col " Cell Column + ip_row = row " Cell Row + ip_value = value " Cell Value + ip_style = i_day_style " Single-Character Indicator + ). + " width + lo_col_dim = c_worksheet->get_column_dimension( col ). + lo_col_dim->set_width( '3.6' ). + + + lv_date = lv_date + 1. + ENDWHILE. + " Add ABAP2XLSX Footer + row = i_from_row + 2. + c_worksheet->set_cell( + EXPORTING + ip_column = col " Cell Column + ip_row = row " Cell Row + ip_value = ' ' " Cell Value + ). + lo_row_dim = c_worksheet->get_row_dimension( row ). + lo_row_dim->set_row_height( '5.0' ). + row = i_from_row + 3. + zcl_helper=>add_a2x_footer( + EXPORTING + i_from_row = row + i_from_col = i_from_col + CHANGING + c_worksheet = c_worksheet + ). + + " Set with for all 31 coulumns + WHILE day < 32. + day = day + 1. + col_int = from_col_int + day + 2. + col = zcl_excel_common=>convert_column2alpha( col_int ). + " width + lo_col_dim = c_worksheet->get_column_dimension( col ). + lo_col_dim->set_width( '3.6' ). + ENDWHILE. + ENDMETHOD. "ADD_CALENDAR_LANDSCAPE + + METHOD add_calender_week. + DATA: week TYPE kweek, + week_int TYPE i, + value TYPE string. + " Add Calender Week + CALL FUNCTION 'DATE_GET_WEEK' + EXPORTING + date = i_date " Date for which the week should be calculated + IMPORTING + week = week. " Week for date (format:YYYYWW) + value = week+4(2). + week_int = value. + value = week_int. + CONDENSE value. + c_worksheet->set_cell( + EXPORTING + ip_column = i_col " Cell Column + ip_row = i_row " Cell Row + ip_value = value " Cell Value + ip_style = i_style + ). + ENDMETHOD. "add_calender_week +ENDCLASS. "zcl_helper IMPLEMENTATION + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL1 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel31. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_hyperlink TYPE REF TO zcl_excel_hyperlink, + column_dimension TYPE REF TO zcl_excel_worksheet_columndime. + + +DATA: fieldval TYPE text80, + row TYPE i, + style_column_a TYPE REF TO zcl_excel_style, + style_column_a_guid TYPE zexcel_cell_style, + style_column_c TYPE REF TO zcl_excel_style, + style_column_c_guid TYPE zexcel_cell_style. + +CONSTANTS: gc_save_file_name TYPE string VALUE '31_AutosizeWithDifferentFontSizes.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + + " Creates active sheet + CREATE OBJECT lo_excel. + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Sheet1' ). + + style_column_a = lo_excel->add_new_style( ). + style_column_a->font->size = 32 . " quite large + style_column_a_guid = style_column_a->get_guid( ). + + style_column_c = lo_excel->add_new_style( ). + style_column_c->font->size = 16 . " not so large + style_column_c_guid = style_column_c->get_guid( ). + + + DO 20 TIMES. + row = sy-index. + CLEAR fieldval. + DO sy-index TIMES. + CONCATENATE fieldval 'X' INTO fieldval. + ENDDO. + lo_worksheet->set_cell( ip_column = 'A' ip_row = row ip_value = fieldval ip_style = style_column_a_guid ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = row ip_value = fieldval ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = row ip_value = fieldval ip_style = style_column_c_guid ). + ENDDO. + + column_dimension = lo_worksheet->get_column_dimension( 'A' ). + column_dimension->set_auto_size( ip_auto_size = abap_true ). + column_dimension = lo_worksheet->get_column_dimension( 'B' ). + column_dimension->set_auto_size( ip_auto_size = abap_true ). + column_dimension = lo_worksheet->get_column_dimension( 'C' ). + column_dimension->set_auto_size( ip_auto_size = abap_true ). + + + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZABAP2XLSX_DEMO_SHOW +*&---------------------------------------------------------------------* +REPORT zabap2xlsx_demo_like_se83. + + +*----------------------------------------------------------------------* +* CLASS lcl_perform DEFINITION +*----------------------------------------------------------------------* +CLASS lcl_perform DEFINITION CREATE PRIVATE. + PUBLIC SECTION. + CLASS-METHODS: setup_objects, + collect_reports, + + handle_nav FOR EVENT double_click OF cl_gui_alv_grid + IMPORTING e_row. + + PRIVATE SECTION. + TYPES: BEGIN OF ty_reports, + progname TYPE reposrc-progname, + sort TYPE reposrc-progname, + filename TYPE string, + END OF ty_reports. + + CLASS-DATA: + lo_grid TYPE REF TO cl_gui_alv_grid, + lo_text TYPE REF TO cl_gui_textedit, + cl_document TYPE REF TO i_oi_document_proxy, + + t_reports TYPE STANDARD TABLE OF ty_reports WITH NON-UNIQUE DEFAULT KEY. + CLASS-DATA:error TYPE REF TO i_oi_error, + t_errors TYPE STANDARD TABLE OF REF TO i_oi_error WITH NON-UNIQUE DEFAULT KEY, + cl_control TYPE REF TO i_oi_container_control. "Office Dokument + +ENDCLASS. "lcl_perform DEFINITION + + +START-OF-SELECTION. + lcl_perform=>collect_reports( ). + lcl_perform=>setup_objects( ). + +END-OF-SELECTION. + + WRITE '.'. " Force output + + +*----------------------------------------------------------------------* +* CLASS lcl_perform IMPLEMENTATION +*----------------------------------------------------------------------* +CLASS lcl_perform IMPLEMENTATION. + METHOD setup_objects. + DATA: lo_split TYPE REF TO cl_gui_splitter_container, + lo_container TYPE REF TO cl_gui_container. + + DATA: it_fieldcat TYPE lvc_t_fcat, + is_layout TYPE lvc_s_layo, + is_variant TYPE disvariant. + FIELD-SYMBOLS: <fc> LIKE LINE OF it_fieldcat. + + + CREATE OBJECT lo_split + EXPORTING + parent = cl_gui_container=>screen0 + rows = 1 + columns = 3 + no_autodef_progid_dynnr = 'X'. + lo_split->set_column_width( EXPORTING id = 1 + width = 20 ). + lo_split->set_column_width( EXPORTING id = 2 + width = 40 ). + +* Left: List of reports + lo_container = lo_split->get_container( row = 1 + column = 1 ). + + CREATE OBJECT lo_grid + EXPORTING + i_parent = lo_container. + SET HANDLER lcl_perform=>handle_nav FOR lo_grid. + + is_variant-report = sy-repid. + is_variant-handle = '0001'. + + is_layout-cwidth_opt = 'X'. + + APPEND INITIAL LINE TO it_fieldcat ASSIGNING <fc>. + <fc>-fieldname = 'PROGNAME'. + <fc>-tabname = 'REPOSRC'. + + APPEND INITIAL LINE TO it_fieldcat ASSIGNING <fc>. + <fc>-fieldname = 'SORT'. + <fc>-ref_field = 'PROGNAME'. + <fc>-ref_table = 'REPOSRC'. + + + lo_grid->set_table_for_first_display( EXPORTING + is_variant = is_variant + i_save = 'A' + is_layout = is_layout + CHANGING + it_outtab = t_reports + it_fieldcatalog = it_fieldcat + EXCEPTIONS + invalid_parameter_combination = 1 + program_error = 2 + too_many_lines = 3 + OTHERS = 4 ). + +* Middle: Text with coding + lo_container = lo_split->get_container( row = 1 + column = 2 ). + CREATE OBJECT lo_text + EXPORTING + parent = lo_container. + lo_text->set_readonly_mode( cl_gui_textedit=>true ). + lo_text->set_font_fixed( ). + + + +* right: DemoOutput + lo_container = lo_split->get_container( row = 1 + column = 3 ). + + c_oi_container_control_creator=>get_container_control( IMPORTING control = cl_control + error = error ). + APPEND error TO t_errors. + + cl_control->init_control( EXPORTING inplace_enabled = 'X' + no_flush = 'X' + r3_application_name = 'Demo Document Container' + parent = lo_container + IMPORTING error = error + EXCEPTIONS OTHERS = 2 ). + APPEND error TO t_errors. + + cl_control->get_document_proxy( EXPORTING document_type = 'Excel.Sheet' " EXCEL + no_flush = ' ' + IMPORTING document_proxy = cl_document + error = error ). + APPEND error TO t_errors. +* Errorhandling should be inserted here + + + ENDMETHOD. "setup_objects + + "collect_reports + METHOD collect_reports. + FIELD-SYMBOLS:<report> LIKE LINE OF t_reports. + DATA: t_source TYPE STANDARD TABLE OF text255 WITH NON-UNIQUE DEFAULT KEY. + +* Get all demoreports + SELECT progname + INTO CORRESPONDING FIELDS OF TABLE t_reports + FROM reposrc + WHERE progname LIKE 'ZDEMO_EXCEL%' + AND progname <> sy-repid + AND subc = '1'. + + LOOP AT t_reports ASSIGNING <report>. + +* Check if already switched to new outputoptions + READ REPORT <report>-progname INTO t_source. + IF sy-subrc = 0. + FIND 'INCLUDE zdemo_excel_outputopt_incl.' IN TABLE t_source IGNORING CASE. + ENDIF. + IF sy-subrc <> 0. + DELETE t_reports. + CONTINUE. + ENDIF. + + +* Build half-numeric sort + <report>-sort = <report>-progname. + REPLACE REGEX '(ZDEMO_EXCEL)(\d\d)\s*$' IN <report>-sort WITH '$1\0$2'. " REPLACE REGEX '(ZDEMO_EXCEL)([^][^])*$' IN <report>-sort WITH '$1$2'.REPLACE REGEX '(ZDEMO_EXCEL)([^][^])*$' IN <report>-sort WITH '$1$2'.REPLACE + + REPLACE REGEX '(ZDEMO_EXCEL)(\d)\s*$' IN <report>-sort WITH '$1\0\0$2'. + ENDLOOP. + SORT t_reports BY sort progname. + + ENDMETHOD. "collect_reports + + METHOD handle_nav. + CONSTANTS: filename TYPE text80 VALUE 'ZABAP2XLSX_DEMO_SHOW.xlsx'. + DATA: wa_report LIKE LINE OF t_reports, + t_source TYPE STANDARD TABLE OF text255, + t_rawdata TYPE solix_tab, + wa_rawdata LIKE LINE OF t_rawdata, + bytecount TYPE i, + length TYPE i, + add_selopt TYPE flag. + + + READ TABLE t_reports INTO wa_report INDEX e_row-index. + CHECK sy-subrc = 0. + +* Set new text into middle frame + READ REPORT wa_report-progname INTO t_source. + lo_text->set_text_as_r3table( EXPORTING table = t_source ). + + +* Unload old xls-file + cl_document->close_document( ). + +* Get the demo +* If additional parameters found on selection screen, start via selection screen , otherwise start w/o + CLEAR add_selopt. + FIND 'PARAMETERS' IN TABLE t_source. + IF sy-subrc = 0. + add_selopt = 'X'. + ELSE. + FIND 'SELECT-OPTIONS' IN TABLE t_source. + IF sy-subrc = 0. + add_selopt = 'X'. + ENDIF. + ENDIF. + IF add_selopt IS INITIAL. + SUBMIT (wa_report-progname) AND RETURN + WITH p_backfn = filename + WITH rb_back = 'X' + WITH rb_down = ' ' + WITH rb_send = ' ' + WITH rb_show = ' '. + ELSE. + SUBMIT (wa_report-progname) VIA SELECTION-SCREEN AND RETURN + WITH p_backfn = filename + WITH rb_back = 'X' + WITH rb_down = ' ' + WITH rb_send = ' ' + WITH rb_show = ' '. + ENDIF. + + OPEN DATASET filename FOR INPUT IN BINARY MODE. + IF sy-subrc = 0. + DO. + CLEAR wa_rawdata. + READ DATASET filename INTO wa_rawdata LENGTH length. + IF sy-subrc <> 0. + APPEND wa_rawdata TO t_rawdata. + ADD length TO bytecount. + EXIT. + ENDIF. + APPEND wa_rawdata TO t_rawdata. + ADD length TO bytecount. + ENDDO. + CLOSE DATASET filename. + ENDIF. + + cl_control->get_document_proxy( EXPORTING document_type = 'Excel.Sheet' " EXCEL + no_flush = ' ' + IMPORTING document_proxy = cl_document + error = error ). + + cl_document->open_document_from_table( EXPORTING document_size = bytecount + document_table = t_rawdata + open_inplace = 'X' ). + + ENDMETHOD. "handle_nav + +ENDCLASS. "lcl_perform IMPLEMENTATION + + + + + + + + *&---------------------------------------------------------------------* +*& Include ZDEMO_EXCEL_OUTPUTOPT_INCL +*&---------------------------------------------------------------------* +CLASS lcl_output DEFINITION CREATE PRIVATE. + PUBLIC SECTION. + CLASS-METHODS: output IMPORTING cl_excel TYPE REF TO zcl_excel, + f4_path RETURNING value(selected_folder) TYPE string, + parametertexts. + + PRIVATE SECTION. + METHODS: download_frontend, + download_backend, + display_online, + send_email. + + DATA: xdata TYPE xstring, " Will be used for sending as email + t_rawdata TYPE solix_tab, " Will be used for downloading or open directly + bytecount TYPE i. " Will be used for downloading or open directly +ENDCLASS. "lcl_output DEFINITION + + +SELECTION-SCREEN BEGIN OF BLOCK bl1 WITH FRAME TITLE txt_bl1. +PARAMETERS: rb_down RADIOBUTTON GROUP rb1 DEFAULT 'X' USER-COMMAND space. + +PARAMETERS: rb_back RADIOBUTTON GROUP rb1. + +PARAMETERS: rb_show RADIOBUTTON GROUP rb1. + +PARAMETERS: rb_send RADIOBUTTON GROUP rb1. + +PARAMETERS: p_path TYPE string LOWER CASE MODIF ID pat. +PARAMETERS: p_email TYPE string LOWER CASE MODIF ID ema. +PARAMETERS: p_backfn TYPE text40 NO-DISPLAY. +SELECTION-SCREEN END OF BLOCK bl1. + + +AT SELECTION-SCREEN OUTPUT. + LOOP AT SCREEN. + + IF rb_down IS INITIAL AND screen-group1 = 'PAT'. + screen-input = 0. + screen-invisible = 1. + ENDIF. + + IF rb_send IS INITIAL AND screen-group1 = 'EMA'. + screen-input = 0. + screen-invisible = 1. + ENDIF. + + MODIFY SCREEN. + + ENDLOOP. + +INITIALIZATION. + IF sy-batch IS INITIAL. + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = p_path ). + cl_gui_cfw=>flush( ). + ENDIF. + lcl_output=>parametertexts( ). " If started in language w/o textelements translated set defaults + sy-title = gc_save_file_name. + txt_bl1 = 'Output options'(bl1). + p_backfn = gc_save_file_name. " Use as default if nothing else is supplied by submit + +AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. + p_path = lcl_output=>f4_path( ). + + +*----------------------------------------------------------------------* +* CLASS lcl_output IMPLEMENTATION +*----------------------------------------------------------------------* +CLASS lcl_output IMPLEMENTATION. + METHOD output. + + DATA: cl_output TYPE REF TO lcl_output, + cl_writer TYPE REF TO zif_excel_writer. + + CREATE OBJECT cl_output. + CREATE OBJECT cl_writer TYPE zcl_excel_writer_2007. + cl_output->xdata = cl_writer->write_file( cl_excel ). + +* After 6.40 via cl_bcs_convert + cl_output->t_rawdata = cl_bcs_convert=>xstring_to_solix( iv_xstring = cl_output->xdata ). + cl_output->bytecount = xstrlen( cl_output->xdata ). + +* before 6.40 +* CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' +* EXPORTING +* buffer = cl_output->xdata +* IMPORTING +* output_length = cl_output->bytecount +* TABLES +* binary_tab = cl_output->t_rawdata. + + CASE 'X'. + WHEN rb_down. + IF sy-batch IS INITIAL. + cl_output->download_frontend( ). + ELSE. + MESSAGE e001(00) WITH 'Frontenddownload impossible in background processing'. + ENDIF. + + WHEN rb_back. + cl_output->download_backend( ). + + WHEN rb_show. + IF sy-batch IS INITIAL. + cl_output->display_online( ). + ELSE. + MESSAGE e001(00) WITH 'Online display absurd in background processing'. + ENDIF. + + WHEN rb_send. + cl_output->send_email( ). + + ENDCASE. + ENDMETHOD. "output + + METHOD f4_path. + DATA: new_path TYPE string, + repid TYPE syrepid, + dynnr TYPE sydynnr, + lt_dynpfields TYPE TABLE OF dynpread, + ls_dynpfields LIKE LINE OF lt_dynpfields. + +* Get current value + dynnr = sy-dynnr. + repid = sy-repid. + ls_dynpfields-fieldname = 'P_PATH'. + APPEND ls_dynpfields TO lt_dynpfields. + + CALL FUNCTION 'DYNP_VALUES_READ' + EXPORTING + dyname = repid + dynumb = dynnr + TABLES + dynpfields = lt_dynpfields + EXCEPTIONS + invalid_abapworkarea = 1 + invalid_dynprofield = 2 + invalid_dynproname = 3 + invalid_dynpronummer = 4 + invalid_request = 5 + no_fielddescription = 6 + invalid_parameter = 7 + undefind_error = 8 + double_conversion = 9 + stepl_not_found = 10 + OTHERS = 11. + IF sy-subrc <> 0. + MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno + WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. + EXIT. + ENDIF. + + READ TABLE lt_dynpfields INTO ls_dynpfields INDEX 1. + + new_path = ls_dynpfields-fieldvalue. + selected_folder = new_path. + + cl_gui_frontend_services=>directory_browse( + EXPORTING + window_title = 'Select path to download EXCEL-file' + initial_folder = new_path + CHANGING + selected_folder = new_path + EXCEPTIONS + cntl_error = 1 + error_no_gui = 2 + not_supported_by_gui = 3 + OTHERS = 4 + ). + cl_gui_cfw=>flush( ). + CHECK new_path IS NOT INITIAL. + selected_folder = new_path. + + ENDMETHOD. "f4_path + + METHOD parametertexts. +* If started in language w/o textelements translated set defaults +* Furthermore I don't have to change the selectiontexts of all demoreports. + DEFINE default_parametertext. + if %_&1_%_app_%-text = '&1' or + %_&1_%_app_%-text is initial. + %_&1_%_app_%-text = &2. + endif. + END-OF-DEFINITION. + + default_parametertext: rb_down 'Save to frontend', + rb_back 'Save to backend', + rb_show 'Direct display', + rb_send 'Send via email', + + p_path 'Frontend-path to download to', + p_email 'Email to send xlsx to'. + + ENDMETHOD. "parametertexts + + METHOD: download_frontend. + DATA: filename TYPE string. +* I don't like p_path here - but for this include it's ok + filename = p_path. +* Add trailing "\" or "/" + IF filename CA '/'. + REPLACE REGEX '([^/])\s*$' IN filename WITH '$1/' . + ELSE. + REPLACE REGEX '([^\\])\s*$' IN filename WITH '$1\\'. + ENDIF. + + CONCATENATE filename gc_save_file_name INTO filename. +* Get trailing blank + cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = bytecount + filename = filename + filetype = 'BIN' + CHANGING data_tab = t_rawdata ). + ENDMETHOD. "download_frontend + + METHOD download_backend. + DATA: bytes_remain TYPE i. + FIELD-SYMBOLS: <rawdata> LIKE LINE OF t_rawdata. + + OPEN DATASET p_backfn FOR OUTPUT IN BINARY MODE. + CHECK sy-subrc = 0. + + bytes_remain = bytecount. + + LOOP AT t_rawdata ASSIGNING <rawdata>. + + AT LAST. + CHECK bytes_remain >= 0. + TRANSFER <rawdata> TO p_backfn LENGTH bytes_remain. + EXIT. + ENDAT. + + TRANSFER <rawdata> TO p_backfn. + SUBTRACT 255 FROM bytes_remain. " Solix hat Länge 255 + + ENDLOOP. + + CLOSE DATASET p_backfn. + + + + + IF sy-calld = 'X'. " no need to display anything if download was selected and report was called for demo purposes + LEAVE PROGRAM. + ELSE. + MESSAGE 'Data transferred to default backend directory' TYPE 'I'. + ENDIF. + ENDMETHOD. "download_backend + + METHOD display_online. + DATA:error TYPE REF TO i_oi_error, + t_errors TYPE STANDARD TABLE OF REF TO i_oi_error WITH NON-UNIQUE DEFAULT KEY, + cl_control TYPE REF TO i_oi_container_control,"OIContainerCtrl + cl_document TYPE REF TO i_oi_document_proxy. "Office Dokument + + c_oi_container_control_creator=>get_container_control( IMPORTING control = cl_control + error = error ). + APPEND error TO t_errors. + + cl_control->init_control( EXPORTING inplace_enabled = 'X' + no_flush = 'X' + r3_application_name = 'Demo Document Container' + parent = cl_gui_container=>screen0 + IMPORTING error = error + EXCEPTIONS OTHERS = 2 ). + APPEND error TO t_errors. + + cl_control->get_document_proxy( EXPORTING document_type = 'Excel.Sheet' " EXCEL + no_flush = ' ' + IMPORTING document_proxy = cl_document + error = error ). + APPEND error TO t_errors. +* Errorhandling should be inserted here + + cl_document->open_document_from_table( EXPORTING document_size = bytecount + document_table = t_rawdata + open_inplace = 'X' ). + + WRITE: '.'. " To create an output. That way screen0 will exist + ENDMETHOD. "display_online + + METHOD send_email. +* Needed to send emails + DATA: bcs_exception TYPE REF TO cx_bcs, + errortext TYPE string, + cl_send_request TYPE REF TO cl_bcs, + cl_document TYPE REF TO cl_document_bcs, + cl_recipient TYPE REF TO if_recipient_bcs, + cl_sender TYPE REF TO cl_cam_address_bcs, + t_attachment_header TYPE soli_tab, + wa_attachment_header LIKE LINE OF t_attachment_header, + attachment_subject TYPE sood-objdes, + + sood_bytecount TYPE sood-objlen, + mail_title TYPE so_obj_des, + t_mailtext TYPE soli_tab, + wa_mailtext LIKE LINE OF t_mailtext, + send_to TYPE adr6-smtp_addr, + sent TYPE os_boolean. + + + mail_title = 'Mail title'. + wa_mailtext = 'Mailtext'. + APPEND wa_mailtext TO t_mailtext. + + TRY. +* Create send request + cl_send_request = cl_bcs=>create_persistent( ). +* Create new document with mailtitle and mailtextg + cl_document = cl_document_bcs=>create_document( i_type = 'RAW' "#EC NOTEXT + i_text = t_mailtext + i_subject = mail_title ). +* Add attachment to document +* since the new excelfiles have an 4-character extension .xlsx but the attachment-type only holds 3 charactes .xls, +* we have to specify the real filename via attachment header +* Use attachment_type xls to have SAP display attachment with the excel-icon + attachment_subject = gc_save_file_name. + CONCATENATE '&SO_FILENAME=' attachment_subject INTO wa_attachment_header. + APPEND wa_attachment_header TO t_attachment_header. +* Attachment + sood_bytecount = bytecount. " next method expects sood_bytecount instead of any positive integer *sigh* + cl_document->add_attachment( i_attachment_type = 'XLS' "#EC NOTEXT + i_attachment_subject = attachment_subject + i_attachment_size = sood_bytecount + i_att_content_hex = t_rawdata + i_attachment_header = t_attachment_header ). + +* add document to send request + cl_send_request->set_document( cl_document ). + +* set sender in case if no own email is availabe +* cl_sender = cl_cam_address_bcs=>create_internet_address( 'sender@sender.sender' ). +* cl_send_request->set_sender( cl_sender ). + +* add recipient(s) - here only 1 will be needed + send_to = p_email. + IF send_to IS INITIAL. + send_to = 'no_email@no_email.no_email'. " Place into SOST in any case for demonstration purposes + ENDIF. + cl_recipient = cl_cam_address_bcs=>create_internet_address( send_to ). + cl_send_request->add_recipient( cl_recipient ). + +* Und abschicken + sent = cl_send_request->send( i_with_error_screen = 'X' ). + + COMMIT WORK. + + IF sent IS INITIAL. + MESSAGE i500(sbcoms) WITH p_email. + ELSE. + MESSAGE s022(so). + MESSAGE 'Document ready to be sent - Check SOST or SCOT' TYPE 'I'. + ENDIF. + + CATCH cx_bcs INTO bcs_exception. + errortext = bcs_exception->if_message~get_text( ). + MESSAGE errortext TYPE 'I'. + + ENDTRY. + ENDMETHOD. "send_email + + +ENDCLASS. "lcl_output IMPLEMENTATION + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + *--------------------------------------------------------------------* +* REPORT ZDEMO_EXCEL20 +* Demo for method zcl_excel_worksheet-bind_alv: +* export data from ALV (CL_GUI_ALV_GRID) object to excel +*--------------------------------------------------------------------* +REPORT zdemo_excel20. + +*----------------------------------------------------------------------* +* CLASS lcl_handle_events DEFINITION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS lcl_handle_events DEFINITION. + PUBLIC SECTION. + METHODS: + on_user_command FOR EVENT added_function OF cl_salv_events + IMPORTING e_salv_function. +ENDCLASS. "lcl_handle_events DEFINITION + +*----------------------------------------------------------------------* +* CLASS lcl_handle_events IMPLEMENTATION +*----------------------------------------------------------------------* +* +*----------------------------------------------------------------------* +CLASS lcl_handle_events IMPLEMENTATION. + METHOD on_user_command. + PERFORM user_command." using e_salv_function text-i08. + ENDMETHOD. "on_user_command +ENDCLASS. "lcl_handle_events IMPLEMENTATION + +*--------------------------------------------------------------------* +* DATA DECLARATION +*--------------------------------------------------------------------* + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_alv TYPE REF TO cl_gui_alv_grid, + lo_salv TYPE REF TO cl_salv_table, + gr_events TYPE REF TO lcl_handle_events, + lr_events TYPE REF TO cl_salv_events_table, + gt_sbook TYPE TABLE OF sbook, + gt_listheader TYPE slis_t_listheader, + wa_listheader LIKE LINE OF gt_listheader. + +DATA: l_path TYPE string, " local dir + lv_workdir TYPE string, + lv_file_separator TYPE c. + +CONSTANTS: + lv_default_file_name TYPE string VALUE '20_BindAlv.xlsx'. +*--------------------------------------------------------------------* +*START-OF-SELECTION +*--------------------------------------------------------------------* + +START-OF-SELECTION. + +* get data +* ------------------------------------------ + + SELECT * + INTO TABLE gt_sbook[] + FROM sbook "#EC CI_NOWHERE + UP TO 10 ROWS. + +* Display ALV +* ------------------------------------------ + + TRY. + cl_salv_table=>factory( + EXPORTING + list_display = abap_false + IMPORTING + r_salv_table = lo_salv + CHANGING + t_table = gt_sbook[] ). + CATCH cx_salv_msg . + ENDTRY. + + TRY. + lo_salv->set_screen_status( + EXPORTING + report = sy-repid + pfstatus = 'ALV_STATUS' + set_functions = lo_salv->c_functions_all ). + CATCH cx_salv_msg . + ENDTRY. + + lr_events = lo_salv->get_event( ). + CREATE OBJECT gr_events. + SET HANDLER gr_events->on_user_command FOR lr_events. + + lo_salv->display( ). + + +*&---------------------------------------------------------------------* +*& Form USER_COMMAND +*&---------------------------------------------------------------------* +* ALV user command +*--------------------------------------------------------------------* +FORM user_command . + IF sy-ucomm = 'EXCEL'. + +* get save file path + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = l_path ). + cl_gui_cfw=>flush( ). + cl_gui_frontend_services=>directory_browse( + EXPORTING initial_folder = l_path + CHANGING selected_folder = l_path ). + + IF l_path IS INITIAL. + cl_gui_frontend_services=>get_sapgui_workdir( + CHANGING sapworkdir = lv_workdir ). + l_path = lv_workdir. + ENDIF. + + cl_gui_frontend_services=>get_file_separator( + CHANGING file_separator = lv_file_separator ). + + CONCATENATE l_path lv_file_separator lv_default_file_name + INTO l_path. + +* export file to save file path + + PERFORM export_to_excel. + + ENDIF. +ENDFORM. " USER_COMMAND + +*--------------------------------------------------------------------* +* FORM EXPORT_TO_EXCEL +*--------------------------------------------------------------------* +* This subroutine is principal demo session +*--------------------------------------------------------------------* +FORM export_to_excel. + +* create zcl_excel_worksheet object + + CREATE OBJECT lo_excel. + lo_worksheet = lo_excel->get_active_worksheet( ). + +* get ALV object from screen + + CALL FUNCTION 'GET_GLOBALS_FROM_SLVC_FULLSCR' + IMPORTING + e_grid = lo_alv. + +* build list header + + wa_listheader-typ = 'H'. + wa_listheader-info = sy-title. + APPEND wa_listheader TO gt_listheader. + + wa_listheader-typ = 'S'. + wa_listheader-info = 'Created by: ABAP2XLSX Group'. + APPEND wa_listheader TO gt_listheader. + + wa_listheader-typ = 'A'. + wa_listheader-info = + 'Project hosting at https://cw.sdn.sap.com/cw/groups/abap2xlsx'. + APPEND wa_listheader TO gt_listheader. + +* write to excel using method Bin_ALV + + lo_worksheet->bind_alv_ole2( + EXPORTING +* I_DOCUMENT_URL = SPACE " excel template +* I_XLS = 'X' " create in xls format? + i_save_path = l_path + io_alv = lo_alv + it_listheader = gt_listheader + i_top = 2 + i_left = 1 +* I_COLUMNS_HEADER = 'X' +* I_COLUMNS_AUTOFIT = 'X' +* I_FORMAT_COL_HEADER = +* I_FORMAT_SUBTOTAL = +* I_FORMAT_TOTAL = + EXCEPTIONS + miss_guide = 1 + ex_transfer_kkblo_error = 2 + fatal_error = 3 + inv_data_range = 4 + dim_mismatch_vkey = 5 + dim_mismatch_sema = 6 + error_in_sema = 7 + OTHERS = 8 + ). + IF sy-subrc <> 0. + MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno + WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4. + ENDIF. + +ENDFORM. "EXPORT_TO_EXCEL + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_TECHED3 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_teched3. + +******************************* +* Data Object declaration * +******************************* + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_excel_writer TYPE REF TO zif_excel_writer, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + +DATA: lo_style_title TYPE REF TO zcl_excel_style, + lo_drawing TYPE REF TO zcl_excel_drawing, + lo_range TYPE REF TO zcl_excel_range, + lv_style_title_guid TYPE zexcel_cell_style, + ls_key TYPE wwwdatatab. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, + lv_file_separator TYPE c. + +CONSTANTS: lv_default_file_name TYPE string VALUE 'TechEd01.xlsx'. + +******************************* +* Selection screen management * +******************************* + +PARAMETERS: p_path TYPE zexcel_export_dir. + +AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. + lv_workdir = p_path. + cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir + CHANGING selected_folder = lv_workdir ). + p_path = lv_workdir. + +INITIALIZATION. + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). + cl_gui_cfw=>flush( ). + p_path = lv_workdir. + +START-OF-SELECTION. + + IF p_path IS INITIAL. + p_path = lv_workdir. + ENDIF. + cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. + +******************************* +* abap2xlsx create XLSX * +******************************* + + " Create excel instance + CREATE OBJECT lo_excel. + + " Styles + lo_style_title = lo_excel->add_new_style( ). + lo_style_title->font->bold = abap_true. + lo_style_title->font->color-rgb = zcl_excel_style_color=>c_blue. + lv_style_title_guid = lo_style_title->get_guid( ). + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Demo TechEd' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 5 ip_value = 'TechEd demo' ip_style = lv_style_title_guid ). + + " add logo from SMWO + lo_drawing = lo_excel->add_new_drawing( ). + lo_drawing->set_position( ip_from_row = 2 + ip_from_col = 'B' ). + + ls_key-relid = 'MI'. + ls_key-objid = 'WBLOGO'. + lo_drawing->set_media_www( ip_key = ls_key + ip_width = 140 + ip_height = 64 ). + + " assign drawing to the worksheet + lo_worksheet->add_drawing( lo_drawing ). + + " Add new sheet + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'Values' ). + + " Set values for range + lo_worksheet->set_cell( ip_row = 4 ip_column = 'A' ip_value = 1 ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'A' ip_value = 2 ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'A' ip_value = 3 ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'A' ip_value = 4 ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'A' ip_value = 5 ). + + lo_range = lo_excel->add_new_range( ). + lo_range->name = 'Values'. + lo_range->set_value( ip_sheet_name = 'Values' + ip_start_column = 'A' + ip_start_row = 4 + ip_stop_column = 'A' + ip_stop_row = 8 ). + + lo_excel->set_active_sheet_index( 1 ). + + " Create xlsx stream + CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. + lv_file = lo_excel_writer->write_file( lo_excel ). + +******************************* +* Output * +******************************* + + " Convert to binary + lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). + lv_bytecount = xstrlen( lv_file ). + + " Save the file + cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL36 +REPORT zdemo_excel36. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + col TYPE i. + +DATA: lo_style_arial20 TYPE REF TO zcl_excel_style, + lo_style_times11 TYPE REF TO zcl_excel_style, + lo_style_cambria8red TYPE REF TO zcl_excel_style. + +DATA: lv_style_arial20_guid TYPE zexcel_cell_style, + lv_style_times11_guid TYPE zexcel_cell_style, + lv_style_cambria8red_guid TYPE zexcel_cell_style. + + +CONSTANTS: gc_save_file_name TYPE string VALUE '36_DefaultStyles.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + +START-OF-SELECTION. + + " Creates active sheet + CREATE OBJECT lo_excel. + + " Create a bold / italic style + lo_style_arial20 = lo_excel->add_new_style( ). + lo_style_arial20->font->name = zcl_excel_style_font=>c_name_arial. + lo_style_arial20->font->scheme = zcl_excel_style_font=>c_scheme_none. + lo_style_arial20->font->size = 20. + lv_style_arial20_guid = lo_style_arial20->get_guid( ). + + lo_style_times11 = lo_excel->add_new_style( ). + lo_style_times11->font->name = zcl_excel_style_font=>c_name_roman. + lo_style_times11->font->scheme = zcl_excel_style_font=>c_scheme_none. + lo_style_times11->font->size = 11. + lv_style_times11_guid = lo_style_times11->get_guid( ). + + lo_style_cambria8red = lo_excel->add_new_style( ). + lo_style_cambria8red->font->name = zcl_excel_style_font=>c_name_cambria. + lo_style_cambria8red->font->scheme = zcl_excel_style_font=>c_scheme_none. + lo_style_cambria8red->font->size = 8. + lo_style_cambria8red->font->color-rgb = zcl_excel_style_color=>c_red. + lv_style_cambria8red_guid = lo_style_cambria8red->get_guid( ). + + lo_excel->set_default_style( lv_style_arial20_guid ). " Default for all new worksheets + +* 1st sheet - do not change anything --> defaultstyle from lo_excel should apply + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( 'Style for complete document' ). + lo_worksheet->set_cell( ip_column = 2 ip_row = 4 ip_value = 'All cells in this sheet are set to font Arial, fontsize 20' ). + lo_worksheet->set_cell( ip_column = 2 ip_row = 5 ip_value = 'because no separate style was passed for this sheet' ). + lo_worksheet->set_cell( ip_column = 2 ip_row = 6 ip_value = 'but a default style was set for the complete instance of zcl_excel' ). + lo_worksheet->set_cell( ip_column = 2 ip_row = 1 ip_value = space ). " Missing feature "set active cell - use this to simulate that + + +* 2nd sheet - defaultstyle for this sheet set explicitly ( set to Times New Roman 11 ) + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( 'Style for this sheet' ). + lo_worksheet->zif_excel_sheet_properties~set_style( lv_style_times11_guid ). + + lo_worksheet->set_cell( ip_column = 2 ip_row = 4 ip_value = 'All cells in this sheet are set to font Times New Roman, fontsize 11' ). + lo_worksheet->set_cell( ip_column = 2 ip_row = 5 ip_value = 'because this style was passed for this sheet' ). + lo_worksheet->set_cell( ip_column = 2 ip_row = 6 ip_value = 'thus the default style from zcl_excel does not apply to this sheet' ). + lo_worksheet->set_cell( ip_column = 2 ip_row = 1 ip_value = space ). " Missing feature "set active cell - use this to simulate that + + +* 3rd sheet - defaultstyle for columns ( set to Times New Roman 11 ) + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( 'Style for 3 columns' ). + column_dimension = lo_worksheet->get_column_dimension( 'B' ). + column_dimension->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ). + column_dimension = lo_worksheet->get_column_dimension( 'C' ). + column_dimension->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ). + column_dimension = lo_worksheet->get_column_dimension( 'F' ). + column_dimension->set_column_style_by_guid( ip_style_guid = lv_style_times11_guid ). + + lo_worksheet->set_cell( ip_column = 2 ip_row = 4 ip_value = 'The columns B,C and F are set to Times New Roman' ). + lo_worksheet->set_cell( ip_column = 2 ip_row = 10 ip_value = 'All other cells in this sheet are set to font Arial, fontsize 20' ). + lo_worksheet->set_cell( ip_column = 2 ip_row = 11 ip_value = 'because no separate style was passed for this sheet' ). + lo_worksheet->set_cell( ip_column = 2 ip_row = 12 ip_value = 'but a default style was set for the complete instance of zcl_excel' ). + + lo_worksheet->set_cell( ip_column = 8 ip_row = 1 ip_value = 'Of course' ip_style = lv_style_cambria8red_guid ). + lo_worksheet->set_cell( ip_column = 8 ip_row = 2 ip_value = 'setting a specific style to a cell' ip_style = lv_style_cambria8red_guid ). + lo_worksheet->set_cell( ip_column = 8 ip_row = 3 ip_value = 'takes precedence over all defaults' ip_style = lv_style_cambria8red_guid ). + lo_worksheet->set_cell( ip_column = 8 ip_row = 4 ip_value = 'Here: Cambria 8 in red' ip_style = lv_style_cambria8red_guid ). + + +* Set entry into each of the first 10 columns + DO 20 TIMES. + col = sy-index. + CASE col. + WHEN 2 " B + OR 3 " C + OR 6." F + lo_worksheet->set_cell( ip_column = col ip_row = 6 ip_value = 'Times 11' ). + WHEN OTHERS. + lo_worksheet->set_cell( ip_column = col ip_row = 6 ip_value = 'Arial 20' ). + ENDCASE. + ENDDO. + + lo_worksheet->set_cell( ip_column = 2 ip_row = 1 ip_value = space ). " Missing feature "set active cell - use this to simulate that + + + + lo_excel->set_active_sheet_index( 1 ). + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL4 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel4. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + + lo_hyperlink TYPE REF TO zcl_excel_hyperlink, + + lv_tabcolor TYPE zexcel_s_tabcolor, + + ls_header TYPE zexcel_s_worksheet_head_foot, + ls_footer TYPE zexcel_s_worksheet_head_foot. + +CONSTANTS: gc_save_file_name TYPE string VALUE '04_Sheets.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + + " Creates active sheet + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Sheet1' ). + lo_worksheet->zif_excel_sheet_properties~selected = zif_excel_sheet_properties=>c_selected. + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'This is the first sheet' ). +* Set color to tab with sheetname - Red + lv_tabcolor-rgb = zcl_excel_style_color=>create_new_argb( ip_red = 'FF' + ip_green = '00' + ip_blu = '00' ). + lo_worksheet->set_tabcolor( lv_tabcolor ). + + lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet2!B2' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = 'This is link to second sheet' ip_hyperlink = lo_hyperlink ). + + " Page printing settings + lo_worksheet->sheet_setup->set_page_margins( ip_header = '1' ip_footer = '1' ip_unit = 'cm' ). + lo_worksheet->sheet_setup->black_and_white = 'X'. + lo_worksheet->sheet_setup->fit_to_page = 'X'. " you should turn this on to activate fit_to_height and fit_to_width + lo_worksheet->sheet_setup->fit_to_height = 0. " used only if ip_fit_to_page = 'X' + lo_worksheet->sheet_setup->fit_to_width = 2. " used only if ip_fit_to_page = 'X' + lo_worksheet->sheet_setup->orientation = zcl_excel_sheet_setup=>c_orientation_landscape. + lo_worksheet->sheet_setup->page_order = zcl_excel_sheet_setup=>c_ord_downthenover. + lo_worksheet->sheet_setup->paper_size = zcl_excel_sheet_setup=>c_papersize_a4. + lo_worksheet->sheet_setup->scale = 80. " used only if ip_fit_to_page = SPACE + + " Header and Footer + ls_header-right_value = 'print date &D'. + ls_header-right_font-size = 8. + ls_header-right_font-name = zcl_excel_style_font=>c_name_arial. + + ls_footer-left_value = '&Z&F'. "Path / Filename + ls_footer-left_font = ls_header-right_font. + ls_footer-right_value = 'page &P of &N'. "page x of y + ls_footer-right_font = ls_header-right_font. + + lo_worksheet->sheet_setup->set_header_footer( ip_odd_header = ls_header + ip_odd_footer = ls_footer ). + + + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'Sheet2' ). +* Set color to tab with sheetname - Green + lv_tabcolor-rgb = zcl_excel_style_color=>create_new_argb( ip_red = '00' + ip_green = 'FF' + ip_blu = '00' ). + lo_worksheet->set_tabcolor( lv_tabcolor ). + lo_worksheet->zif_excel_sheet_properties~selected = zif_excel_sheet_properties=>c_selected. + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'This is the second sheet' ). + lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet1!B2' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = 'This is link to first sheet' ip_hyperlink = lo_hyperlink ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 4 ip_value = 'Sheet3 is hidden' ). + + lo_worksheet->sheet_setup->set_header_footer( ip_odd_header = ls_header + ip_odd_footer = ls_footer ). + + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'Sheet3' ). +* Set color to tab with sheetname - Blue + lv_tabcolor-rgb = zcl_excel_style_color=>create_new_argb( ip_red = '00' + ip_green = '00' + ip_blu = 'FF' ). + lo_worksheet->set_tabcolor( lv_tabcolor ). + lo_worksheet->zif_excel_sheet_properties~hidden = zif_excel_sheet_properties=>c_hidden. + + lo_worksheet->sheet_setup->set_header_footer( ip_odd_header = ls_header + ip_odd_footer = ls_footer ). + + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'Sheet4' ). +* Set color to tab with sheetname - other color + lv_tabcolor-rgb = zcl_excel_style_color=>create_new_argb( ip_red = '00' + ip_green = 'FF' + ip_blu = 'FF' ). + lo_worksheet->set_tabcolor( lv_tabcolor ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Cell B3 has value 0' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = 0 ). + lo_worksheet->zif_excel_sheet_properties~show_zeros = zif_excel_sheet_properties=>c_hidezero. + + lo_worksheet->sheet_setup->set_header_footer( ip_odd_header = ls_header + ip_odd_footer = ls_footer ). + + lo_excel->set_active_sheet_index_by_name( 'Sheet1' ). + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL2 +*& Test Styles for ABAP2XLSX +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel35. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_excel_writer TYPE REF TO zif_excel_writer, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_bold TYPE REF TO zcl_excel_style, + lo_style_underline TYPE REF TO zcl_excel_style, + lo_style_filled TYPE REF TO zcl_excel_style, + lo_style_border TYPE REF TO zcl_excel_style, + lo_style_button TYPE REF TO zcl_excel_style, + lo_border_dark TYPE REF TO zcl_excel_style_border, + lo_border_light TYPE REF TO zcl_excel_style_border. + +DATA: lv_style_bold_guid TYPE zexcel_cell_style, + lv_style_underline_guid TYPE zexcel_cell_style, + lv_style_filled_guid TYPE zexcel_cell_style, + lv_style_filled_green_guid TYPE zexcel_cell_style, + lv_style_border_guid TYPE zexcel_cell_style, + lv_style_button_guid TYPE zexcel_cell_style, + lv_style_filled_turquoise_guid TYPE zexcel_cell_style. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, + lv_file_separator TYPE c. + +CONSTANTS: lv_default_file_name TYPE string VALUE '35_Static_Styles.xlsx'. + +PARAMETERS: p_path TYPE zexcel_export_dir. + +AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. + lv_workdir = p_path. + cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir + CHANGING selected_folder = lv_workdir ). + p_path = lv_workdir. + +INITIALIZATION. + cl_gui_frontend_services=>GET_DESKTOP_DIRECTORY( CHANGING DESKTOP_DIRECTORY = lv_workdir ). + cl_gui_cfw=>flush( ). + p_path = lv_workdir. + + sy-title = 'ZDEMO_EXCEL2;Issue 139: Change cellstyle retroactivly'. + +START-OF-SELECTION. + + IF p_path IS INITIAL. + p_path = lv_workdir. + ENDIF. + cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. + + " Creates active sheet + CREATE OBJECT lo_excel. + + " Create border object + CREATE OBJECT lo_border_dark. + lo_border_dark->border_color-rgb = zcl_excel_style_color=>c_black. + lo_border_dark->border_style = zcl_excel_style_border=>c_border_thin. + CREATE OBJECT lo_border_light. + lo_border_light->border_color-rgb = zcl_excel_style_color=>c_gray. + lo_border_light->border_style = zcl_excel_style_border=>c_border_thin. + " Create a bold / italic style + lo_style_bold = lo_excel->add_new_style( ). + lo_style_bold->font->bold = abap_true. + lo_style_bold->font->italic = abap_true. + lo_style_bold->font->name = zcl_excel_style_font=>c_name_arial. + lo_style_bold->font->scheme = zcl_excel_style_font=>c_scheme_none. + lo_style_bold->font->color-rgb = zcl_excel_style_color=>c_red. + lv_style_bold_guid = lo_style_bold->get_guid( ). + " Create an underline double style + lo_style_underline = lo_excel->add_new_style( ). + lo_style_underline->font->underline = abap_true. + lo_style_underline->font->underline_mode = zcl_excel_style_font=>c_underline_double. + lo_style_underline->font->name = zcl_excel_style_font=>c_name_roman. + lo_style_underline->font->scheme = zcl_excel_style_font=>c_scheme_none. + lo_style_underline->font->family = zcl_excel_style_font=>c_family_roman. + lv_style_underline_guid = lo_style_underline->get_guid( ). + " Create filled style yellow + lo_style_filled = lo_excel->add_new_style( ). + lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_filled->fill->fgcolor-theme = zcl_excel_style_color=>c_theme_accent6. + lv_style_filled_guid = lo_style_filled->get_guid( ). + " Create border with button effects + lo_style_button = lo_excel->add_new_style( ). + lo_style_button->borders->right = lo_border_dark. + lo_style_button->borders->down = lo_border_dark. + lo_style_button->borders->left = lo_border_light. + lo_style_button->borders->top = lo_border_light. + lv_style_button_guid = lo_style_button->get_guid( ). + "Create style with border + lo_style_border = lo_excel->add_new_style( ). + lo_style_border->borders->allborders = lo_border_dark. + lo_style_border->borders->diagonal = lo_border_dark. + lo_style_border->borders->diagonal_mode = zcl_excel_style_borders=>c_diagonal_both. + lv_style_border_guid = lo_style_border->get_guid( ). + " Create filled style green + lo_style_filled = lo_excel->add_new_style( ). + lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_filled->fill->fgcolor-rgb = zcl_excel_style_color=>c_green. + lo_style_filled->font->name = zcl_excel_style_font=>c_name_cambria. + lo_style_filled->font->scheme = zcl_excel_style_font=>c_scheme_major. + lv_style_filled_green_guid = lo_style_filled->get_guid( ). + + " Create filled style turquoise using legacy excel ver <= 2003 palette. (https://code.sdn.sap.com/spaces/abap2xlsx/tickets/92) + lo_style_filled = lo_excel->add_new_style( ). + lo_excel->legacy_palette->set_color( "replace built-in color from palette with out custom RGB turquoise + ip_index = 16 + ip_color = '0040E0D0' ). + + lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_filled->fill->fgcolor-indexed = 16. + lv_style_filled_turquoise_guid = lo_style_filled->get_guid( ). + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Styles' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = 'Bold text' ip_style = lv_style_bold_guid ). + lo_worksheet->set_cell( ip_column = 'D' ip_row = 4 ip_value = 'Underlined text' ip_style = lv_style_underline_guid ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 5 ip_value = 'Filled text' ip_style = lv_style_filled_guid ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = 6 ip_value = 'Borders' ip_style = lv_style_border_guid ). + lo_worksheet->set_cell( ip_column = 'D' ip_row = 7 ip_value = 'I''m not a button :)' ip_style = lv_style_button_guid ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 9 ip_value = 'Modified color for Excel 2003' ip_style = lv_style_filled_turquoise_guid ). + " Fill the cell and apply one style + lo_worksheet->set_cell( ip_column = 'B' ip_row = 6 ip_value = 'Filled text' ip_style = lv_style_filled_guid ). + " Change the style + lo_worksheet->set_cell_style( ip_column = 'B' ip_row = 6 ip_style = lv_style_filled_green_guid ). + " Add Style to an empty cell to test Fix for Issue + "#44 Exception ZCX_EXCEL thrown when style is set for an empty cell + " https://code.sdn.sap.com/spaces/abap2xlsx/tickets/44-exception-zcx_excel-thrown-when-style-is-set-for-an-empty-cell + lo_worksheet->set_cell_style( ip_column = 'E' ip_row = 6 ip_style = lv_style_filled_green_guid ). + + +* Demonstrate how to retroactivly change the cellstyle +*Filled text and underlinded text + lo_worksheet->change_cell_style( ip_column = 'B' + ip_row = 5 + ip_font_bold = abap_true + ip_font_italic = abap_true ). + + lo_worksheet->change_cell_style( ip_column = 'D' + ip_row = 4 + ip_font_bold = abap_true + ip_font_italic = abap_true ). + + CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. + lv_file = lo_excel_writer->write_file( lo_excel ). + + " Convert to binary + CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. +* " This method is only available on AS ABAP > 6.40 +* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). +* lv_bytecount = xstrlen( lv_file ). + + " Save the file + cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL2 +*& Test Styles for ABAP2XLSX +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel34. + +CONSTANTS: width TYPE f VALUE '10.14'. +CONSTANTS: height TYPE f VALUE '57.75'. + +DATA: current_row TYPE i, + col TYPE i, + col_alpha TYPE zexcel_cell_column_alpha, + row TYPE i, + row_board TYPE i, + colorflag TYPE i, + color TYPE zexcel_style_color_argb, + + column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, + + writing1 TYPE string, + writing2 TYPE string. + + + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + +CONSTANTS: gc_save_file_name TYPE string VALUE '34_Static Styles_Chess.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + " Creates active sheet + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Spassky_vs_Bronstein' ). + +* Header + current_row = 1. + + ADD 1 TO current_row. + lo_worksheet->set_cell( ip_row = current_row ip_column = 'B' ip_value = 'White' ). + lo_worksheet->set_cell( ip_row = current_row ip_column = 'C' ip_value = 'Spassky, Boris V -- wins in turn 23' ). + + ADD 1 TO current_row. + lo_worksheet->set_cell( ip_row = current_row ip_column = 'B' ip_value = 'Black' ). + lo_worksheet->set_cell( ip_row = current_row ip_column = 'C' ip_value = 'Bronstein, David I' ). + + ADD 1 TO current_row. +* Set size of column + Writing above chessboard + DO 8 TIMES. + + writing1 = zcl_excel_common=>convert_column2alpha( sy-index ). + writing2 = sy-index . + row = current_row + sy-index. + + col = sy-index + 1. + col_alpha = zcl_excel_common=>convert_column2alpha( col ). + +* Set size of column + column_dimension = lo_worksheet->get_column_dimension( col_alpha ). + column_dimension->set_width( width ). + +* Set size of row + row_dimension = lo_worksheet->get_row_dimension( row ). + row_dimension->set_row_height( height ). + +* Set writing on chessboard + lo_worksheet->set_cell( ip_row = row + ip_column = 'A' + ip_value = writing2 ). + lo_worksheet->change_cell_style( ip_column = 'A' + ip_row = row + ip_alignment_vertical = zcl_excel_style_alignment=>c_vertical_center ). + lo_worksheet->set_cell( ip_row = row + ip_column = 'J' + ip_value = writing2 ). + lo_worksheet->change_cell_style( ip_column = 'J' + ip_row = row + ip_alignment_vertical = zcl_excel_style_alignment=>c_vertical_center ). + + row = current_row + 9. + lo_worksheet->set_cell( ip_row = current_row + ip_column = col_alpha + ip_value = writing1 ). + lo_worksheet->change_cell_style( ip_column = col_alpha + ip_row = current_row + ip_alignment_horizontal = zcl_excel_style_alignment=>c_horizontal_center ). + lo_worksheet->set_cell( ip_row = row + ip_column = col_alpha + ip_value = writing1 ). + lo_worksheet->change_cell_style( ip_column = col_alpha + ip_row = row + ip_alignment_horizontal = zcl_excel_style_alignment=>c_horizontal_center ). + ENDDO. + column_dimension = lo_worksheet->get_column_dimension( 'A' ). + column_dimension->set_auto_size( abap_true ). + column_dimension = lo_worksheet->get_column_dimension( 'J' ). + column_dimension->set_auto_size( abap_true ). + +* Set win-position + CONSTANTS: c_pawn TYPE string VALUE 'Pawn'. + CONSTANTS: c_rook TYPE string VALUE 'Rook'. + CONSTANTS: c_knight TYPE string VALUE 'Knight'. + CONSTANTS: c_bishop TYPE string VALUE 'Bishop'. + CONSTANTS: c_queen TYPE string VALUE 'Queen'. + CONSTANTS: c_king TYPE string VALUE 'King'. + + row = current_row + 1. + lo_worksheet->set_cell( ip_row = row ip_column = 'B' ip_value = c_rook ). + lo_worksheet->set_cell( ip_row = row ip_column = 'F' ip_value = c_rook ). + lo_worksheet->set_cell( ip_row = row ip_column = 'G' ip_value = c_knight ). + row = current_row + 2. + lo_worksheet->set_cell( ip_row = row ip_column = 'B' ip_value = c_pawn ). + lo_worksheet->set_cell( ip_row = row ip_column = 'C' ip_value = c_pawn ). + lo_worksheet->set_cell( ip_row = row ip_column = 'D' ip_value = c_pawn ). + lo_worksheet->set_cell( ip_row = row ip_column = 'F' ip_value = c_queen ). + lo_worksheet->set_cell( ip_row = row ip_column = 'H' ip_value = c_pawn ). + lo_worksheet->set_cell( ip_row = row ip_column = 'I' ip_value = c_king ). + row = current_row + 3. + lo_worksheet->set_cell( ip_row = row ip_column = 'I' ip_value = c_pawn ). + row = current_row + 4. + lo_worksheet->set_cell( ip_row = row ip_column = 'D' ip_value = c_pawn ). + lo_worksheet->set_cell( ip_row = row ip_column = 'F' ip_value = c_knight ). + row = current_row + 5. + lo_worksheet->set_cell( ip_row = row ip_column = 'E' ip_value = c_pawn ). + lo_worksheet->set_cell( ip_row = row ip_column = 'F' ip_value = c_queen ). + row = current_row + 6. + lo_worksheet->set_cell( ip_row = row ip_column = 'C' ip_value = c_bishop ). + row = current_row + 7. + lo_worksheet->set_cell( ip_row = row ip_column = 'B' ip_value = c_pawn ). + lo_worksheet->set_cell( ip_row = row ip_column = 'C' ip_value = c_pawn ). + lo_worksheet->set_cell( ip_row = row ip_column = 'H' ip_value = c_pawn ). + lo_worksheet->set_cell( ip_row = row ip_column = 'I' ip_value = c_pawn ). + row = current_row + 8. + lo_worksheet->set_cell( ip_row = row ip_column = 'G' ip_value = c_rook ). + lo_worksheet->set_cell( ip_row = row ip_column = 'H' ip_value = c_king ). + +* Set Chessboard + DO 8 TIMES. + IF sy-index <= 3. " Black + color = zcl_excel_style_color=>c_black. + ELSE. + color = zcl_excel_style_color=>c_white. + ENDIF. + row_board = sy-index. + row = current_row + sy-index. + DO 8 TIMES. + col = sy-index + 1. + col_alpha = zcl_excel_common=>convert_column2alpha( col ). + TRY. +* Borders around outer limits + IF row_board = 1. + lo_worksheet->change_cell_style( ip_column = col_alpha + ip_row = row + ip_borders_top_style = zcl_excel_style_border=>c_border_thick + ip_borders_top_color_rgb = zcl_excel_style_color=>c_black ). + ENDIF. + IF row_board = 8. + lo_worksheet->change_cell_style( ip_column = col_alpha + ip_row = row + ip_borders_down_style = zcl_excel_style_border=>c_border_thick + ip_borders_down_color_rgb = zcl_excel_style_color=>c_black ). + ENDIF. + IF col = 2. + lo_worksheet->change_cell_style( ip_column = col_alpha + ip_row = row + ip_borders_left_style = zcl_excel_style_border=>c_border_thick + ip_borders_left_color_rgb = zcl_excel_style_color=>c_black ). + ENDIF. + IF col = 9. + lo_worksheet->change_cell_style( ip_column = col_alpha + ip_row = row + ip_borders_right_style = zcl_excel_style_border=>c_border_thick + ip_borders_right_color_rgb = zcl_excel_style_color=>c_black ). + ENDIF. +* Style for writing + lo_worksheet->change_cell_style( ip_column = col_alpha + ip_row = row + ip_font_color_rgb = color + ip_font_bold = 'X' + ip_font_size = 16 + ip_alignment_horizontal = zcl_excel_style_alignment=>c_horizontal_center + ip_alignment_vertical = zcl_excel_style_alignment=>c_vertical_center + ip_fill_filltype = zcl_excel_style_fill=>c_fill_solid ). +* Color of field + colorflag = ( row + col ) MOD 2. + IF colorflag = 0. + lo_worksheet->change_cell_style( ip_column = col_alpha + ip_row = row + ip_fill_fgcolor_rgb = 'FFB5866A' ). + ELSE. + lo_worksheet->change_cell_style( ip_column = col_alpha + ip_row = row + ip_fill_fgcolor_rgb = 'FFF5DEBF' ). + ENDIF. + + + + CATCH zcx_excel . + ENDTRY. + + ENDDO. + ENDDO. + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL3 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel33. + +TYPE-POOLS: abap. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_converter TYPE REF TO zcl_excel_converter, + lo_autofilter TYPE REF TO zcl_excel_autofilter. + +DATA lt_test TYPE TABLE OF t005t. + +DATA: l_cell_value TYPE zexcel_cell_value, + ls_area TYPE zexcel_s_autofilter_area. + +CONSTANTS: c_airlines TYPE string VALUE 'Airlines'. + +CONSTANTS: gc_save_file_name TYPE string VALUE '33_autofilter.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + + " Creates active sheet + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Internal table'). + + SELECT * UP TO 2 ROWS FROM t005t INTO TABLE lt_test. "#EC CI_NOWHERE + + CREATE OBJECT lo_converter. + + lo_converter->convert( EXPORTING + it_table = lt_test + i_row_int = 1 + i_column_int = 1 + io_worksheet = lo_worksheet + CHANGING + co_excel = lo_excel ) . + + lo_autofilter = lo_excel->add_new_autofilter( io_sheet = lo_worksheet ) . + + ls_area-row_start = 1. + ls_area-col_start = 1. + ls_area-row_end = lo_worksheet->get_highest_row( ). + ls_area-col_end = lo_worksheet->get_highest_column( ). + + lo_autofilter->set_filter_area( is_area = ls_area ). + + lo_worksheet->get_cell( EXPORTING + ip_column = 'C' + ip_row = 2 + IMPORTING + ep_value = l_cell_value ). + lo_autofilter->set_value( i_column = 3 + i_value = l_cell_value ). + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_TECHED3 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_teched3. + +******************************* +* Data Object declaration * +******************************* + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_excel_writer TYPE REF TO zif_excel_writer, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + +DATA: lo_style_title TYPE REF TO zcl_excel_style, + lo_drawing TYPE REF TO zcl_excel_drawing, + lo_range TYPE REF TO zcl_excel_range, + lo_data_validation TYPE REF TO zcl_excel_data_validation, + lv_style_title_guid TYPE zexcel_cell_style, + ls_key TYPE wwwdatatab. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, + lv_file_separator TYPE c. + +CONSTANTS: lv_default_file_name TYPE string VALUE 'TechEd01.xlsx'. + +******************************* +* Selection screen management * +******************************* + +PARAMETERS: p_path TYPE zexcel_export_dir. + +AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. + lv_workdir = p_path. + cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir + CHANGING selected_folder = lv_workdir ). + p_path = lv_workdir. + +INITIALIZATION. + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). + cl_gui_cfw=>flush( ). + p_path = lv_workdir. + +START-OF-SELECTION. + + IF p_path IS INITIAL. + p_path = lv_workdir. + ENDIF. + cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. + +******************************* +* abap2xlsx create XLSX * +******************************* + + " Create excel instance + CREATE OBJECT lo_excel. + + " Styles + lo_style_title = lo_excel->add_new_style( ). + lo_style_title->font->bold = abap_true. + lo_style_title->font->color-rgb = zcl_excel_style_color=>c_blue. + lv_style_title_guid = lo_style_title->get_guid( ). + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Demo TechEd' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 5 ip_value = 'TechEd demo' ip_style = lv_style_title_guid ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 7 ip_value = 'Is abap2xlsx simple' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 8 ip_value = 'Is abap2xlsx CooL' ). + + " add logo from SMWO + lo_drawing = lo_excel->add_new_drawing( ). + lo_drawing->set_position( ip_from_row = 2 + ip_from_col = 'B' ). + + ls_key-relid = 'MI'. + ls_key-objid = 'WBLOGO'. + lo_drawing->set_media_www( ip_key = ls_key + ip_width = 140 + ip_height = 64 ). + + " assign drawing to the worksheet + lo_worksheet->add_drawing( lo_drawing ). + + " Add new sheet + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'Values' ). + + " Set values for range + lo_worksheet->set_cell( ip_row = 4 ip_column = 'A' ip_value = 1 ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'A' ip_value = 2 ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'A' ip_value = 3 ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'A' ip_value = 4 ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'A' ip_value = 5 ). + + lo_range = lo_excel->add_new_range( ). + lo_range->name = 'Values'. + lo_range->set_value( ip_sheet_name = 'Values' + ip_start_column = 'A' + ip_start_row = 4 + ip_stop_column = 'A' + ip_stop_row = 8 ). + + lo_excel->set_active_sheet_index( 1 ). + + " add data validation + lo_worksheet = lo_excel->get_active_worksheet( ). + + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_list. + lo_data_validation->formula1 = 'Values'. + lo_data_validation->cell_row = 7. + lo_data_validation->cell_column = 'C'. + lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 'Select a value' ). + + + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_list. + lo_data_validation->formula1 = 'Values'. + lo_data_validation->cell_row = 8. + lo_data_validation->cell_column = 'C'. + lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ). + + " Create xlsx stream + CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. + lv_file = lo_excel_writer->write_file( lo_excel ). + +******************************* +* Output * +******************************* + + " Convert to binary + lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). + lv_bytecount = xstrlen( lv_file ). + + " Save the file + cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_TECHED3 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_teched3. + +******************************* +* Data Object declaration * +******************************* + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_excel_writer TYPE REF TO zif_excel_writer, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + +DATA: lo_style_title TYPE REF TO zcl_excel_style, + lo_drawing TYPE REF TO zcl_excel_drawing, + lo_range TYPE REF TO zcl_excel_range, + lo_data_validation TYPE REF TO zcl_excel_data_validation, + lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lv_style_title_guid TYPE zexcel_cell_style, + ls_key TYPE wwwdatatab. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, + lv_file_separator TYPE c. + +CONSTANTS: lv_default_file_name TYPE string VALUE 'TechEd01.xlsx'. + +******************************* +* Selection screen management * +******************************* + +PARAMETERS: p_path TYPE zexcel_export_dir. + +AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. + lv_workdir = p_path. + cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir + CHANGING selected_folder = lv_workdir ). + p_path = lv_workdir. + +INITIALIZATION. + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). + cl_gui_cfw=>flush( ). + p_path = lv_workdir. + +START-OF-SELECTION. + + IF p_path IS INITIAL. + p_path = lv_workdir. + ENDIF. + cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. + +******************************* +* abap2xlsx create XLSX * +******************************* + + " Create excel instance + CREATE OBJECT lo_excel. + + " Styles + lo_style_title = lo_excel->add_new_style( ). + lo_style_title->font->bold = abap_true. + lo_style_title->font->color-rgb = zcl_excel_style_color=>c_blue. + lv_style_title_guid = lo_style_title->get_guid( ). + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Demo TechEd' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 5 ip_value = 'TechEd demo' ip_style = lv_style_title_guid ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 7 ip_value = 'Is abap2xlsx simple' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 8 ip_value = 'Is abap2xlsx CooL' ). + + " add logo from SMWO + lo_drawing = lo_excel->add_new_drawing( ). + lo_drawing->set_position( ip_from_row = 2 + ip_from_col = 'B' ). + + ls_key-relid = 'MI'. + ls_key-objid = 'WBLOGO'. + lo_drawing->set_media_www( ip_key = ls_key + ip_width = 140 + ip_height = 64 ). + + " assign drawing to the worksheet + lo_worksheet->add_drawing( lo_drawing ). + + " Add new sheet + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'Values' ). + + " Set values for range + lo_worksheet->set_cell( ip_row = 4 ip_column = 'A' ip_value = 1 ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'A' ip_value = 2 ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'A' ip_value = 3 ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'A' ip_value = 4 ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'A' ip_value = 5 ). + + lo_range = lo_excel->add_new_range( ). + lo_range->name = 'Values'. + lo_range->set_value( ip_sheet_name = 'Values' + ip_start_column = 'A' + ip_start_row = 4 + ip_stop_column = 'A' + ip_stop_row = 8 ). + + lo_excel->set_active_sheet_index( 1 ). + + " add data validation + lo_worksheet = lo_excel->get_active_worksheet( ). + + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_list. + lo_data_validation->formula1 = 'Values'. + lo_data_validation->cell_row = 7. + lo_data_validation->cell_column = 'C'. + lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 'Select a value' ). + + + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_list. + lo_data_validation->formula1 = 'Values'. + lo_data_validation->cell_row = 8. + lo_data_validation->cell_column = 'C'. + lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ). + + " add autosize (column width) + lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). + lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). + lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). + lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). + + " Create xlsx stream + CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. + lv_file = lo_excel_writer->write_file( lo_excel ). + +******************************* +* Output * +******************************* + + " Convert to binary + lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). + lv_bytecount = xstrlen( lv_file ). + + " Save the file + cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_TECHED3 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_teched3. + +******************************* +* Data Object declaration * +******************************* + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_excel_writer TYPE REF TO zif_excel_writer, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + +DATA: lo_style_title TYPE REF TO zcl_excel_style, + lo_drawing TYPE REF TO zcl_excel_drawing, + lo_range TYPE REF TO zcl_excel_range, + lo_data_validation TYPE REF TO zcl_excel_data_validation, + lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lv_style_title_guid TYPE zexcel_cell_style, + ls_key TYPE wwwdatatab. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, + lv_file_separator TYPE c. + +CONSTANTS: lv_default_file_name TYPE string VALUE 'TechEd01.xlsx'. + +******************************* +* Selection screen management * +******************************* + +PARAMETERS: p_path TYPE zexcel_export_dir. + +AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. + lv_workdir = p_path. + cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir + CHANGING selected_folder = lv_workdir ). + p_path = lv_workdir. + +INITIALIZATION. + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). + cl_gui_cfw=>flush( ). + p_path = lv_workdir. + +START-OF-SELECTION. + + IF p_path IS INITIAL. + p_path = lv_workdir. + ENDIF. + cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. + +******************************* +* abap2xlsx create XLSX * +******************************* + + " Create excel instance + CREATE OBJECT lo_excel. + + " Styles + lo_style_title = lo_excel->add_new_style( ). + lo_style_title->font->bold = abap_true. + lo_style_title->font->color-rgb = zcl_excel_style_color=>c_blue. + lv_style_title_guid = lo_style_title->get_guid( ). + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Demo TechEd' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 5 ip_value = 'TechEd demo' ip_style = lv_style_title_guid ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 7 ip_value = 'Is abap2xlsx simple' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 8 ip_value = 'Is abap2xlsx CooL' ). + + lo_worksheet->set_cell( ip_column = 'B' ip_row = 10 ip_value = 'Total score' ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = 10 ip_formula = 'SUM(C7:C8)' ). + + " add logo from SMWO + lo_drawing = lo_excel->add_new_drawing( ). + lo_drawing->set_position( ip_from_row = 2 + ip_from_col = 'B' ). + + ls_key-relid = 'MI'. + ls_key-objid = 'WBLOGO'. + lo_drawing->set_media_www( ip_key = ls_key + ip_width = 140 + ip_height = 64 ). + + " assign drawing to the worksheet + lo_worksheet->add_drawing( lo_drawing ). + + " Add new sheet + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'Values' ). + + " Set values for range + lo_worksheet->set_cell( ip_row = 4 ip_column = 'A' ip_value = 1 ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'A' ip_value = 2 ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'A' ip_value = 3 ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'A' ip_value = 4 ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'A' ip_value = 5 ). + + lo_range = lo_excel->add_new_range( ). + lo_range->name = 'Values'. + lo_range->set_value( ip_sheet_name = 'Values' + ip_start_column = 'A' + ip_start_row = 4 + ip_stop_column = 'A' + ip_stop_row = 8 ). + + lo_excel->set_active_sheet_index( 1 ). + + " add data validation + lo_worksheet = lo_excel->get_active_worksheet( ). + + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_list. + lo_data_validation->formula1 = 'Values'. + lo_data_validation->cell_row = 7. + lo_data_validation->cell_column = 'C'. + lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 'Select a value' ). + + + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_list. + lo_data_validation->formula1 = 'Values'. + lo_data_validation->cell_row = 8. + lo_data_validation->cell_column = 'C'. + lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ). + + " add autosize (column width) + lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). + lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). + lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). + lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). + + " Create xlsx stream + CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. + lv_file = lo_excel_writer->write_file( lo_excel ). + +******************************* +* Output * +******************************* + + " Convert to binary + lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). + lv_bytecount = xstrlen( lv_file ). + + " Save the file + cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_TECHED3 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_teched3. + +******************************* +* Data Object declaration * +******************************* + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_excel_writer TYPE REF TO zif_excel_writer, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + +DATA: lo_style_title TYPE REF TO zcl_excel_style, + lo_style_green TYPE REF TO zcl_excel_style, + lo_style_yellow TYPE REF TO zcl_excel_style, + lo_style_red TYPE REF TO zcl_excel_style, + lo_drawing TYPE REF TO zcl_excel_drawing, + lo_range TYPE REF TO zcl_excel_range, + lo_data_validation TYPE REF TO zcl_excel_data_validation, + lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_style_conditional TYPE REF TO zcl_excel_style_conditional, + lv_style_title_guid TYPE zexcel_cell_style, + lv_style_green_guid TYPE zexcel_cell_style, + lv_style_yellow_guid TYPE zexcel_cell_style, + lv_style_red_guid TYPE zexcel_cell_style, + ls_cellis TYPE zexcel_conditional_cellis, + ls_key TYPE wwwdatatab. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, + lv_file_separator TYPE c. + +CONSTANTS: lv_default_file_name TYPE string VALUE 'TechEd01.xlsx'. + +******************************* +* Selection screen management * +******************************* + +PARAMETERS: p_path TYPE zexcel_export_dir. + +AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. + lv_workdir = p_path. + cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir + CHANGING selected_folder = lv_workdir ). + p_path = lv_workdir. + +INITIALIZATION. + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). + cl_gui_cfw=>flush( ). + p_path = lv_workdir. + +START-OF-SELECTION. + + IF p_path IS INITIAL. + p_path = lv_workdir. + ENDIF. + cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. + +******************************* +* abap2xlsx create XLSX * +******************************* + + " Create excel instance + CREATE OBJECT lo_excel. + + " Styles + lo_style_title = lo_excel->add_new_style( ). + lo_style_title->font->bold = abap_true. + lo_style_title->font->color-rgb = zcl_excel_style_color=>c_blue. + lv_style_title_guid = lo_style_title->get_guid( ). + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Demo TechEd' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 5 ip_value = 'TechEd demo' ip_style = lv_style_title_guid ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 7 ip_value = 'Is abap2xlsx simple' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 8 ip_value = 'Is abap2xlsx CooL' ). + + lo_worksheet->set_cell( ip_column = 'B' ip_row = 10 ip_value = 'Total score' ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = 10 ip_formula = 'SUM(C7:C8)' ). + + " add logo from SMWO + lo_drawing = lo_excel->add_new_drawing( ). + lo_drawing->set_position( ip_from_row = 2 + ip_from_col = 'B' ). + +* ls_key-relid = 'MI'. +* ls_key-objid = 'WBLOGO'. +* lo_drawing->set_media_www( ip_key = ls_key +* ip_width = 140 +* ip_height = 64 ). + + " assign drawing to the worksheet + lo_worksheet->add_drawing( lo_drawing ). + + " Add new sheet + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'Values' ). + + " Set values for range + lo_worksheet->set_cell( ip_row = 4 ip_column = 'A' ip_value = 1 ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'A' ip_value = 2 ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'A' ip_value = 3 ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'A' ip_value = 4 ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'A' ip_value = 5 ). + + lo_range = lo_excel->add_new_range( ). + lo_range->name = 'Values'. + lo_range->set_value( ip_sheet_name = 'Values' + ip_start_column = 'A' + ip_start_row = 4 + ip_stop_column = 'A' + ip_stop_row = 8 ). + + lo_excel->set_active_sheet_index( 1 ). + + " add data validation + lo_worksheet = lo_excel->get_active_worksheet( ). + + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_list. + lo_data_validation->formula1 = 'Values'. + lo_data_validation->cell_row = 7. + lo_data_validation->cell_column = 'C'. + lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 'Select a value' ). + + + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_list. + lo_data_validation->formula1 = 'Values'. + lo_data_validation->cell_row = 8. + lo_data_validation->cell_column = 'C'. + lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ). + + " add autosize (column width) + lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). + lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). + lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). + lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). + + " defne conditional styles + lo_style_green = lo_excel->add_new_style( ). + lo_style_green->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_green->fill->bgcolor-rgb = zcl_excel_style_color=>c_green. + lv_style_green_guid = lo_style_green->get_guid( ). + + lo_style_yellow = lo_excel->add_new_style( ). + lo_style_yellow->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_yellow->fill->bgcolor-rgb = zcl_excel_style_color=>c_yellow. + lv_style_yellow_guid = lo_style_yellow->get_guid( ). + + lo_style_red = lo_excel->add_new_style( ). + lo_style_red->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_red->fill->bgcolor-rgb = zcl_excel_style_color=>c_red. + lv_style_red_guid = lo_style_red->get_guid( ). + + " add conditional formatting + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_cellis. + ls_cellis-formula = '5'. + ls_cellis-operator = zcl_excel_style_conditional=>c_operator_greaterthan. + ls_cellis-cell_style = lv_style_green_guid. + lo_style_conditional->mode_cellis = ls_cellis. + lo_style_conditional->priority = 1. + lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 10 + ip_stop_column = 'C' + ip_stop_row = 10 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_cellis. + ls_cellis-formula = '5'. + ls_cellis-operator = zcl_excel_style_conditional=>c_operator_equal. + ls_cellis-cell_style = lv_style_yellow_guid. + lo_style_conditional->mode_cellis = ls_cellis. + lo_style_conditional->priority = 2. + lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 10 + ip_stop_column = 'C' + ip_stop_row = 10 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_cellis. + ls_cellis-formula = '0'. + ls_cellis-operator = zcl_excel_style_conditional=>c_operator_greaterthan. + ls_cellis-cell_style = lv_style_red_guid. + lo_style_conditional->mode_cellis = ls_cellis. + lo_style_conditional->priority = 3. + lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 10 + ip_stop_column = 'C' + ip_stop_row = 10 ). + + + " Create xlsx stream + CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. + lv_file = lo_excel_writer->write_file( lo_excel ). + +******************************* +* Output * +******************************* + + " Convert to binary + lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). + lv_bytecount = xstrlen( lv_file ). + + " Save the file + cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_TECHED3 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_teched3. + +******************************* +* Data Object declaration * +******************************* + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_excel_writer TYPE REF TO zif_excel_writer, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + +DATA: lo_style_title TYPE REF TO zcl_excel_style, + lo_style_green TYPE REF TO zcl_excel_style, + lo_style_yellow TYPE REF TO zcl_excel_style, + lo_style_red TYPE REF TO zcl_excel_style, + lo_drawing TYPE REF TO zcl_excel_drawing, + lo_range TYPE REF TO zcl_excel_range, + lo_data_validation TYPE REF TO zcl_excel_data_validation, + lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_style_conditional TYPE REF TO zcl_excel_style_conditional, + lv_style_title_guid TYPE zexcel_cell_style, + lv_style_green_guid TYPE zexcel_cell_style, + lv_style_yellow_guid TYPE zexcel_cell_style, + lv_style_red_guid TYPE zexcel_cell_style, + ls_cellis TYPE zexcel_conditional_cellis, + ls_key TYPE wwwdatatab. + +DATA: lo_send_request TYPE REF TO cl_bcs, + lo_document TYPE REF TO cl_document_bcs, + lo_sender TYPE REF TO cl_sapuser_bcs, + lo_recipient TYPE REF TO cl_sapuser_bcs, + lo_recipient_i TYPE REF TO CL_CAM_ADDRESS_BCS. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lv_bytecount_c TYPE sood-objlen, + lt_file_tab TYPE solix_tab. + +CONSTANTS: lv_default_file_name TYPE string VALUE 'TechEd01.xlsx'. + +******************************* +* abap2xlsx create XLSX * +******************************* + + " Create excel instance + CREATE OBJECT lo_excel. + + " Styles + lo_style_title = lo_excel->add_new_style( ). + lo_style_title->font->bold = abap_true. + lo_style_title->font->color-rgb = zcl_excel_style_color=>c_blue. + lv_style_title_guid = lo_style_title->get_guid( ). + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Demo TechEd' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 5 ip_value = 'TechEd demo' ip_style = lv_style_title_guid ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 7 ip_value = 'Is abap2xlsx simple' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 8 ip_value = 'Is abap2xlsx CooL' ). + + lo_worksheet->set_cell( ip_column = 'B' ip_row = 10 ip_value = 'Total score' ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = 10 ip_formula = 'SUM(C7:C8)' ). + + " add logo from SMWO + lo_drawing = lo_excel->add_new_drawing( ). + lo_drawing->set_position( ip_from_row = 2 + ip_from_col = 'B' ). + + ls_key-relid = 'MI'. + ls_key-objid = 'WBLOGO'. + lo_drawing->set_media_www( ip_key = ls_key + ip_width = 140 + ip_height = 64 ). + + " assign drawing to the worksheet + lo_worksheet->add_drawing( lo_drawing ). + + " Add new sheet + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'Values' ). + + " Set values for range + lo_worksheet->set_cell( ip_row = 4 ip_column = 'A' ip_value = 1 ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'A' ip_value = 2 ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'A' ip_value = 3 ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'A' ip_value = 4 ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'A' ip_value = 5 ). + + lo_range = lo_excel->add_new_range( ). + lo_range->name = 'Values'. + lo_range->set_value( ip_sheet_name = 'Values' + ip_start_column = 'A' + ip_start_row = 4 + ip_stop_column = 'A' + ip_stop_row = 8 ). + + lo_excel->set_active_sheet_index( 1 ). + + " add data validation + lo_worksheet = lo_excel->get_active_worksheet( ). + + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_list. + lo_data_validation->formula1 = 'Values'. + lo_data_validation->cell_row = 7. + lo_data_validation->cell_column = 'C'. + lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 'Select a value' ). + + + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_list. + lo_data_validation->formula1 = 'Values'. + lo_data_validation->cell_row = 8. + lo_data_validation->cell_column = 'C'. + lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Select a value' ). + + " add autosize (column width) + lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). + lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). + lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). + lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). + + " defne conditional styles + lo_style_green = lo_excel->add_new_style( ). + lo_style_green->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_green->fill->bgcolor-rgb = zcl_excel_style_color=>c_green. + lv_style_green_guid = lo_style_green->get_guid( ). + + lo_style_yellow = lo_excel->add_new_style( ). + lo_style_yellow->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_yellow->fill->bgcolor-rgb = zcl_excel_style_color=>c_yellow. + lv_style_yellow_guid = lo_style_yellow->get_guid( ). + + lo_style_red = lo_excel->add_new_style( ). + lo_style_red->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_red->fill->bgcolor-rgb = zcl_excel_style_color=>c_red. + lv_style_red_guid = lo_style_red->get_guid( ). + + " add conditional formatting + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_cellis. + ls_cellis-formula = '5'. + ls_cellis-operator = zcl_excel_style_conditional=>c_operator_greaterthan. + ls_cellis-cell_style = lv_style_green_guid. + lo_style_conditional->mode_cellis = ls_cellis. + lo_style_conditional->priority = 1. + lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 10 + ip_stop_column = 'C' + ip_stop_row = 10 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_cellis. + ls_cellis-formula = '5'. + ls_cellis-operator = zcl_excel_style_conditional=>c_operator_equal. + ls_cellis-cell_style = lv_style_yellow_guid. + lo_style_conditional->mode_cellis = ls_cellis. + lo_style_conditional->priority = 2. + lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 10 + ip_stop_column = 'C' + ip_stop_row = 10 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_cellis. + ls_cellis-formula = '0'. + ls_cellis-operator = zcl_excel_style_conditional=>c_operator_greaterthan. + ls_cellis-cell_style = lv_style_red_guid. + lo_style_conditional->mode_cellis = ls_cellis. + lo_style_conditional->priority = 3. + lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 10 + ip_stop_column = 'C' + ip_stop_row = 10 ). + + + " Create xlsx stream + CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. + lv_file = lo_excel_writer->write_file( lo_excel ). + +******************************* +* Output * +******************************* + + " Convert to binary + lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). + lv_bytecount = xstrlen( lv_file ). + lv_bytecount_c = lv_bytecount. + + " Send via email + lo_document = cl_document_bcs=>create_document( i_type = 'RAW' + i_subject = 'Demo TechEd' ). + + lo_document->add_attachment( i_attachment_type = 'EXT' + i_attachment_subject = 'abap2xlsx.xlsx' + i_attachment_size = lv_bytecount_c + i_att_content_hex = lt_file_tab ). + + lo_sender = cl_sapuser_bcs=>create( sy-uname ). + lo_recipient = cl_sapuser_bcs=>create( sy-uname ). +* lo_recipient_i = cl_cam_address_bcs=>create_internet_address( 'ivan.femia@techedge.it' ). + + lo_send_request = cl_bcs=>create_persistent( ). + lo_send_request->set_document( lo_document ). + lo_send_request->set_sender( lo_sender ). + lo_send_request->add_recipient( lo_recipient ). + lo_send_request->set_send_immediately( abap_true ). + lo_send_request->send( ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_TECHED3 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_teched3. + +******************************* +* Data Object declaration * +******************************* + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_excel_reader TYPE REF TO zif_excel_reader, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, + lv_file_separator TYPE c. + +DATA: lt_files TYPE filetable, + ls_file TYPE file_table, + lv_rc TYPE i, + lv_value TYPE zexcel_cell_value. + +CONSTANTS: gc_save_file_name TYPE string VALUE 'TechEd01.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + +START-OF-SELECTION. + +******************************* +* abap2xlsx read XLSX * +******************************* + CREATE OBJECT lo_excel_reader TYPE zcl_excel_reader_2007. + lo_excel = lo_excel_reader->load_file( lv_full_path ). + + lo_excel->set_active_sheet_index( 1 ). + lo_worksheet = lo_excel->get_active_worksheet( ). + + lo_worksheet->get_cell( EXPORTING ip_column = 'C' + ip_row = 10 + IMPORTING ep_value = lv_value ). + + WRITE: 'abap2xlsx total score is ', lv_value. + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZANGRY_BIRDS +*& Just for fun +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zangry_birds. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_excel_writer TYPE REF TO zif_excel_writer, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_border_light TYPE REF TO zcl_excel_style_border, + lo_style_color0 TYPE REF TO zcl_excel_style, + lo_style_color1 TYPE REF TO zcl_excel_style, + lo_style_color2 TYPE REF TO zcl_excel_style, + lo_style_color3 TYPE REF TO zcl_excel_style, + lo_style_color4 TYPE REF TO zcl_excel_style, + lo_style_color5 TYPE REF TO zcl_excel_style, + lo_style_color6 TYPE REF TO zcl_excel_style, + lo_style_color7 TYPE REF TO zcl_excel_style, + lo_style_credit TYPE REF TO zcl_excel_style, + lo_style_link TYPE REF TO zcl_excel_style, + lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, + lo_hyperlink TYPE REF TO zcl_excel_hyperlink. + +DATA: lv_style_color0_guid TYPE zexcel_cell_style, + lv_style_color1_guid TYPE zexcel_cell_style, + lv_style_color2_guid TYPE zexcel_cell_style, + lv_style_color3_guid TYPE zexcel_cell_style, + lv_style_color4_guid TYPE zexcel_cell_style, + lv_style_color5_guid TYPE zexcel_cell_style, + lv_style_color6_guid TYPE zexcel_cell_style, + lv_style_color7_guid TYPE zexcel_cell_style, + lv_style_credit_guid TYPE zexcel_cell_style, + lv_style_link_guid TYPE zexcel_cell_style, + lv_style TYPE zexcel_cell_style. + +DATA: lv_col_str TYPE zexcel_cell_column_alpha, + lv_row TYPE i, + lv_col TYPE i, + lt_mapper TYPE TABLE OF zexcel_cell_style, + ls_mapper TYPE zexcel_cell_style. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, + lv_file_separator TYPE c. + +CONSTANTS: lv_default_file_name TYPE string VALUE 'angry_birds.xlsx'. + +PARAMETERS: p_path TYPE zexcel_export_dir. + +AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. + lv_workdir = p_path. + cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir + CHANGING selected_folder = lv_workdir ). + p_path = lv_workdir. + +INITIALIZATION. + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). + cl_gui_cfw=>flush( ). + p_path = lv_workdir. + +START-OF-SELECTION. + + IF p_path IS INITIAL. + p_path = lv_workdir. + ENDIF. + cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. + + " Creates active sheet + CREATE OBJECT lo_excel. + + CREATE OBJECT lo_border_light. + lo_border_light->border_color-rgb = zcl_excel_style_color=>c_white. + lo_border_light->border_style = zcl_excel_style_border=>c_border_thin. + + " Create color white + lo_style_color0 = lo_excel->add_new_style( ). + lo_style_color0->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_color0->fill->fgcolor-rgb = 'FFFFFFFF'. + lo_style_color0->borders->allborders = lo_border_light. + lv_style_color0_guid = lo_style_color0->get_guid( ). + + " Create color black + lo_style_color1 = lo_excel->add_new_style( ). + lo_style_color1->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_color1->fill->fgcolor-rgb = 'FF252525'. + lo_style_color1->borders->allborders = lo_border_light. + lv_style_color1_guid = lo_style_color1->get_guid( ). + + " Create color dark green + lo_style_color2 = lo_excel->add_new_style( ). + lo_style_color2->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_color2->fill->fgcolor-rgb = 'FF75913A'. + lo_style_color2->borders->allborders = lo_border_light. + lv_style_color2_guid = lo_style_color2->get_guid( ). + + " Create color light green + lo_style_color3 = lo_excel->add_new_style( ). + lo_style_color3->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_color3->fill->fgcolor-rgb = 'FF9DFB73'. + lo_style_color3->borders->allborders = lo_border_light. + lv_style_color3_guid = lo_style_color3->get_guid( ). + + " Create color green + lo_style_color4 = lo_excel->add_new_style( ). + lo_style_color4->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_color4->fill->fgcolor-rgb = 'FF92CF56'. + lo_style_color4->borders->allborders = lo_border_light. + lv_style_color4_guid = lo_style_color4->get_guid( ). + + " Create color 2dark green + lo_style_color5 = lo_excel->add_new_style( ). + lo_style_color5->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_color5->fill->fgcolor-rgb = 'FF506228'. + lo_style_color5->borders->allborders = lo_border_light. + lv_style_color5_guid = lo_style_color5->get_guid( ). + + " Create color yellow + lo_style_color6 = lo_excel->add_new_style( ). + lo_style_color6->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_color6->fill->fgcolor-rgb = 'FFC3E224'. + lo_style_color6->borders->allborders = lo_border_light. + lv_style_color6_guid = lo_style_color6->get_guid( ). + + " Create color yellow + lo_style_color7 = lo_excel->add_new_style( ). + lo_style_color7->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_color7->fill->fgcolor-rgb = 'FFB3C14F'. + lo_style_color7->borders->allborders = lo_border_light. + lv_style_color7_guid = lo_style_color7->get_guid( ). + + " Credits + lo_style_credit = lo_excel->add_new_style( ). + lo_style_credit->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center. + lo_style_credit->alignment->vertical = zcl_excel_style_alignment=>c_vertical_center. + lo_style_credit->font->size = 20. + lv_style_credit_guid = lo_style_credit->get_guid( ). + + " Link + lo_style_link = lo_excel->add_new_style( ). + lo_style_link->alignment->horizontal = zcl_excel_style_alignment=>c_horizontal_center. + lo_style_link->alignment->vertical = zcl_excel_style_alignment=>c_vertical_center. +* lo_style_link->font->size = 20. + lv_style_link_guid = lo_style_link->get_guid( ). + + " Create image map " line 2 + DO 30 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 3 + DO 28 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 5 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 4 + DO 27 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 5 + DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 15 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 6 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 6 + DO 7 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 6 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 13 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 7 + DO 6 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 5 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 11 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 5 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 8 + DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 6 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 9 + DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 10 + DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 6 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 11 + DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 7 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 12 + DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 13 + DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 8 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 14 + DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 12 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 15 + DO 6 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 8 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 16 + DO 7 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 7 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO. + DO 5 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 17 + DO 8 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 6 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO. + DO 13 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 18 + DO 6 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 23 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 19 + DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 27 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 20 + DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 23 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 21 + DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 19 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 22 + DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 17 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 23 + DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 17 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 8 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 24 + DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 10 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 25 + DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 6 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 8 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 6 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 26 + DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color6_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 27 + DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color6_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 28 + DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color6_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 29 + DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 30 + DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 31 + DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color4_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 32 + DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 8 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 9 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color5_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 33 + DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 34 + DO 3 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 9 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 10 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 35 + DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 6 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 11 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 36 + DO 4 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 10 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 11 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 37 + DO 5 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 10 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color7_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 11 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 38 + DO 6 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 10 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 11 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 39 + DO 7 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 22 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 1 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 40 + DO 7 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 17 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 41 + DO 8 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 3 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 15 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 42 + DO 9 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 5 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 6 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 9 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 2 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 43 + DO 11 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 6 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 5 TIMES. APPEND lv_style_color3_guid TO lt_mapper. ENDDO. + DO 7 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 44 + DO 13 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 6 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + DO 4 TIMES. APPEND lv_style_color2_guid TO lt_mapper. ENDDO. + DO 8 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 45 + DO 16 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 13 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + " line 46 + DO 18 TIMES. APPEND lv_style_color0_guid TO lt_mapper. ENDDO. + DO 8 TIMES. APPEND lv_style_color1_guid TO lt_mapper. ENDDO. + APPEND INITIAL LINE TO lt_mapper. " escape + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Angry Birds' ). + + lv_row = 1. + lv_col = 1. + + LOOP AT lt_mapper INTO ls_mapper. + lv_col_str = zcl_excel_common=>convert_column2alpha( lv_col ). + IF ls_mapper IS INITIAL. + lo_row_dimension = lo_worksheet->get_row_dimension( ip_row = lv_row ). + lo_row_dimension->set_row_height( ip_row_height = 8 ). + lv_col = 1. + lv_row = lv_row + 1. + CONTINUE. + ENDIF. + lo_worksheet->set_cell( ip_column = lv_col_str + ip_row = lv_row + ip_value = space + ip_style = ls_mapper ). + lv_col = lv_col + 1. + + lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = lv_col_str ). + lo_column_dimension->set_width( ip_width = 2 ). + ENDLOOP. + + lo_worksheet->set_show_gridlines( i_show_gridlines = abap_false ). + + lo_worksheet->set_cell( ip_column = 'AP' + ip_row = 15 + ip_value = 'Created with abap2xlsx' + ip_style = lv_style_credit_guid ). + + lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'http://www.abap2xlsx.org' ). + lo_worksheet->set_cell( ip_column = 'AP' + ip_row = 24 + ip_value = 'http://www.abap2xlsx.org' + ip_style = lv_style_link_guid + ip_hyperlink = lo_hyperlink ). + + lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'AP' ). + lo_column_dimension->set_auto_size( ip_auto_size = abap_true ). + lo_worksheet->set_merge( ip_row = 15 ip_column_start = 'AP' ip_row_to = 22 ip_column_end = 'AR' ). + lo_worksheet->set_merge( ip_row = 24 ip_column_start = 'AP' ip_row_to = 26 ip_column_end = 'AR' ). + + CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. + lv_file = lo_excel_writer->write_file( lo_excel ). + + " Convert to binary + CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. +* " This method is only available on AS ABAP > 6.40 +* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). +* lv_bytecount = xstrlen( lv_file ). + + " Save the file + cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL1 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel30. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_hyperlink TYPE REF TO zcl_excel_hyperlink, + column_dimension TYPE REF TO zcl_excel_worksheet_columndime. + + +DATA: lv_value TYPE string, + lv_count TYPE i VALUE 10, + lv_packed TYPE p LENGTH 16 DECIMALS 1 VALUE '1234567890.5'. + +CONSTANTS: lc_typekind_string TYPE abap_typekind VALUE cl_abap_typedescr=>typekind_string, + lc_typekind_packed TYPE abap_typekind VALUE cl_abap_typedescr=>typekind_packed, + lc_typekind_num TYPE abap_typekind VALUE cl_abap_typedescr=>typekind_num, + lc_typekind_date TYPE abap_typekind VALUE cl_abap_typedescr=>typekind_date. + +CONSTANTS: gc_save_file_name TYPE string VALUE '30_CellDataTypes.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + + " Creates active sheet + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Cell data types' ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = 1 ip_value = 'Number as String' + ip_abap_type = lc_typekind_string ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = 2 ip_value = '11' + ip_abap_type = lc_typekind_string ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 1 ip_value = 'String' + ip_abap_type = lc_typekind_string ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Negative Value' + ip_abap_type = lc_typekind_string ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = 1 ip_value = 'Packed' + ip_abap_type = lc_typekind_string ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = 2 ip_value = '50000.01-' + ip_abap_type = lc_typekind_packed ). + lo_worksheet->set_cell( ip_column = 'D' ip_row = 1 ip_value = 'Number with Percentage' + ip_abap_type = lc_typekind_string ). + lo_worksheet->set_cell( ip_column = 'D' ip_row = 2 ip_value = '0 %' + ip_abap_type = lc_typekind_num ). + lo_worksheet->set_cell( ip_column = 'E' ip_row = 1 ip_value = 'Date' + ip_abap_type = lc_typekind_string ). + lo_worksheet->set_cell( ip_column = 'E' ip_row = 2 ip_value = '20110831' + ip_abap_type = lc_typekind_date ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = 'Positive Value' + ip_abap_type = lc_typekind_string ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = '5000.02' + ip_abap_type = lc_typekind_packed ). + lo_worksheet->set_cell( ip_column = 'D' ip_row = 3 ip_value = '50 %' + ip_abap_type = lc_typekind_num ). + + WHILE lv_count <= 15. + lv_value = lv_count. + CONCATENATE 'Positive Value with' lv_value 'Digits' INTO lv_value SEPARATED BY space. + lo_worksheet->set_cell( ip_column = 'B' ip_row = lv_count ip_value = lv_value + ip_abap_type = lc_typekind_string ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = lv_count ip_value = lv_packed + ip_abap_type = lc_typekind_packed ). + CONCATENATE 'Positive Value with' lv_value 'Digits formated as string' INTO lv_value SEPARATED BY space. + lo_worksheet->set_cell( ip_column = 'D' ip_row = lv_count ip_value = lv_value + ip_abap_type = lc_typekind_string ). + lo_worksheet->set_cell( ip_column = 'E' ip_row = lv_count ip_value = lv_packed + ip_abap_type = lc_typekind_string ). + lv_packed = lv_packed * 10. + lv_count = lv_count + 1. + ENDWHILE. + + column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ). + column_dimension->set_auto_size( abap_true ). + column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). + column_dimension->set_auto_size( abap_true ). + column_dimension = lo_worksheet->get_column_dimension( ip_column = 'C' ). + column_dimension->set_auto_size( abap_true ). + column_dimension = lo_worksheet->get_column_dimension( ip_column = 'D' ). + column_dimension->set_auto_size( abap_true ). + column_dimension = lo_worksheet->get_column_dimension( ip_column = 'E' ). + column_dimension->set_auto_size( abap_true ). + + + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_TECHED1 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_teched1. + +******************************* +* Data Object declaration * +******************************* + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_excel_writer TYPE REF TO zif_excel_writer, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, + lv_file_separator TYPE c. + +CONSTANTS: lv_default_file_name TYPE string VALUE 'TechEd01.xlsx'. + +******************************* +* Selection screen management * +******************************* + +PARAMETERS: p_path TYPE zexcel_export_dir. + +AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. + lv_workdir = p_path. + cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir + CHANGING selected_folder = lv_workdir ). + p_path = lv_workdir. + +INITIALIZATION. + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). + cl_gui_cfw=>flush( ). + p_path = lv_workdir. + +START-OF-SELECTION. + + IF p_path IS INITIAL. + p_path = lv_workdir. + ENDIF. + cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. + + +******************************* +* abap2xlsx create XLSX * +******************************* + + " Create excel instance + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Demo01' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ). + + " Create xlsx stream + CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. + lv_file = lo_excel_writer->write_file( lo_excel ). + +******************************* +* Output * +******************************* + + " Convert to binary + lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). + lv_bytecount = xstrlen( lv_file ). + + " Save the file + cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_TECHED2 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_teched2. + +******************************* +* Data Object declaration * +******************************* + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_excel_writer TYPE REF TO zif_excel_writer, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + +DATA: lo_style_title TYPE REF TO zcl_excel_style, + lv_style_title_guid TYPE zexcel_cell_style. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, + lv_file_separator TYPE c. + +CONSTANTS: lv_default_file_name TYPE string VALUE 'TechEd01.xlsx'. + +******************************* +* Selection screen management * +******************************* + +PARAMETERS: p_path TYPE zexcel_export_dir. + +AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. + lv_workdir = p_path. + cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir + CHANGING selected_folder = lv_workdir ). + p_path = lv_workdir. + +INITIALIZATION. + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). + cl_gui_cfw=>flush( ). + p_path = lv_workdir. + +START-OF-SELECTION. + + IF p_path IS INITIAL. + p_path = lv_workdir. + ENDIF. + cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. + +******************************* +* abap2xlsx create XLSX * +******************************* + + " Create excel instance + CREATE OBJECT lo_excel. + + " Styles + lo_style_title = lo_excel->add_new_style( ). + lo_style_title->font->bold = abap_true. + lo_style_title->font->color-rgb = zcl_excel_style_color=>c_blue. + lv_style_title_guid = lo_style_title->get_guid( ). + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Demo TechEd' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 5 ip_value = 'TechEd demo' ip_style = lv_style_title_guid ). + + " Create xlsx stream + CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. + lv_file = lo_excel_writer->write_file( lo_excel ). + +******************************* +* Output * +******************************* + + " Convert to binary + lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). + lv_bytecount = xstrlen( lv_file ). + + " Save the file + cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_TECHED3 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_teched3. + +******************************* +* Data Object declaration * +******************************* + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_excel_writer TYPE REF TO zif_excel_writer, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + +DATA: lo_style_title TYPE REF TO zcl_excel_style, + lo_drawing TYPE REF TO zcl_excel_drawing, + lv_style_title_guid TYPE zexcel_cell_style, + ls_key TYPE wwwdatatab. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, + lv_file_separator TYPE c. + +CONSTANTS: lv_default_file_name TYPE string VALUE 'TechEd01.xlsx'. + +******************************* +* Selection screen management * +******************************* + +PARAMETERS: p_path TYPE zexcel_export_dir. + +AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. + lv_workdir = p_path. + cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir + CHANGING selected_folder = lv_workdir ). + p_path = lv_workdir. + +INITIALIZATION. + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). + cl_gui_cfw=>flush( ). + p_path = lv_workdir. + +START-OF-SELECTION. + + IF p_path IS INITIAL. + p_path = lv_workdir. + ENDIF. + cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = lv_file_separator ). + CONCATENATE p_path lv_file_separator lv_default_file_name INTO lv_full_path. + +******************************* +* abap2xlsx create XLSX * +******************************* + + " Create excel instance + CREATE OBJECT lo_excel. + + " Styles + lo_style_title = lo_excel->add_new_style( ). + lo_style_title->font->bold = abap_true. + lo_style_title->font->color-rgb = zcl_excel_style_color=>c_blue. + lv_style_title_guid = lo_style_title->get_guid( ). + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Demo TechEd' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 5 ip_value = 'TechEd demo' ip_style = lv_style_title_guid ). + + " add logo from SMWO + lo_drawing = lo_excel->add_new_drawing( ). + lo_drawing->set_position( ip_from_row = 2 + ip_from_col = 'B' ). + + ls_key-relid = 'MI'. + ls_key-objid = 'WBLOGO'. + lo_drawing->set_media_www( ip_key = ls_key + ip_width = 140 + ip_height = 64 ). + + " assign drawing to the worksheet + lo_worksheet->add_drawing( lo_drawing ). + + " Create xlsx stream + CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. + lv_file = lo_excel_writer->write_file( lo_excel ). + +******************************* +* Output * +******************************* + + " Convert to binary + lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ). + lv_bytecount = xstrlen( lv_file ). + + " Save the file + cl_gui_frontend_services=>gui_download( EXPORTING bin_filesize = lv_bytecount + filename = lv_full_path + filetype = 'BIN' + CHANGING data_tab = lt_file_tab ). + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL23 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel23. + +TYPE-POOLS: abap. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_hyperlink TYPE REF TO zcl_excel_hyperlink. + + +CONSTANTS: gc_save_file_name TYPE string VALUE '23_Sheets_with_and_without_grid_lines.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + + + " Creates active sheet + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Sheet1' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'This is the first sheet with grid lines and print centered horizontal & vertical' ). + lo_worksheet->set_show_gridlines( i_show_gridlines = abap_true ). + + lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet2!B2' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = 'This is a link to the second sheet' ip_hyperlink = lo_hyperlink ). + + lo_worksheet->zif_excel_sheet_protection~protected = zif_excel_sheet_protection=>c_protected. + lo_worksheet->zif_excel_sheet_properties~zoomscale = 150. + lo_worksheet->ZIF_EXCEL_SHEET_PROPERTIES~ZOOMSCALE_NORMAL = 150. + + lo_worksheet->sheet_setup->vertical_centered = abap_true. + lo_worksheet->sheet_setup->horizontal_centered = abap_true. + + " Second sheet + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'Sheet2' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'This is the second sheet with grid lines in display and print' ). + lo_worksheet->set_show_gridlines( i_show_gridlines = abap_true ). + lo_worksheet->set_print_gridlines( i_print_gridlines = abap_true ). + + lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet3!B2' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = 'This is link to the third sheet' ip_hyperlink = lo_hyperlink ). + + lo_worksheet->zif_excel_sheet_protection~protected = zif_excel_sheet_protection=>c_protected. + lo_worksheet->zif_excel_sheet_properties~zoomscale = 160. + lo_worksheet->ZIF_EXCEL_SHEET_PROPERTIES~ZOOMSCALE_PAGELAYOUTVIEW = 200. + + " Third sheet + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'Sheet3' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'This is the third sheet without grid lines in display and print' ). + lo_worksheet->set_show_gridlines( i_show_gridlines = abap_false ). + lo_worksheet->set_print_gridlines( i_print_gridlines = abap_false ). + + lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet4!B2' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = 'This is link to the fourth sheet' ip_hyperlink = lo_hyperlink ). + + lo_worksheet->zif_excel_sheet_protection~protected = zif_excel_sheet_protection=>c_protected. + lo_worksheet->zif_excel_sheet_properties~zoomscale = 170. + lo_worksheet->ZIF_EXCEL_SHEET_PROPERTIES~ZOOMSCALE_SHEETLAYOUTVIEW = 150. + + " Fourth sheet + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'Sheet4' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'This is the fourth sheet with grid lines and print centered ONLY horizontal' ). + lo_worksheet->set_show_gridlines( i_show_gridlines = abap_true ). + + lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet1!B2' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = 'This is link to the first sheet' ip_hyperlink = lo_hyperlink ). + + lo_worksheet->zif_excel_sheet_protection~protected = zif_excel_sheet_protection=>c_protected. + lo_worksheet->zif_excel_sheet_properties~zoomscale = 150. + lo_worksheet->ZIF_EXCEL_SHEET_PROPERTIES~ZOOMSCALE_NORMAL = 150. + +" lo_worksheet->sheet_setup->vertical_centered = abap_true. + lo_worksheet->sheet_setup->horizontal_centered = abap_true. + + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel. + +DATA: lv_workdir TYPE string, + lv_upfile TYPE string. + +PARAMETERS: p_path TYPE zexcel_export_dir. + +AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_path. + lv_workdir = p_path. + cl_gui_frontend_services=>directory_browse( EXPORTING initial_folder = lv_workdir + CHANGING selected_folder = lv_workdir ). + p_path = lv_workdir. + +INITIALIZATION. + cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = lv_workdir ). + cl_gui_cfw=>flush( ). + p_path = lv_workdir. + +START-OF-SELECTION. + + IF p_path IS INITIAL. + p_path = lv_workdir. + ENDIF. + + cl_gui_frontend_services=>get_file_separator( CHANGING file_separator = sy-lisel ). + CONCATENATE p_path sy-lisel '01_HelloWorld.xlsx' INTO lv_upfile. + + SUBMIT zdemo_excel1 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Hello world + SUBMIT zdemo_excel2 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Styles + SUBMIT zdemo_excel3 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: iTab binding + SUBMIT zdemo_excel4 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Multi sheets, page setup and sheet properties + SUBMIT zdemo_excel5 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Conditional formatting + SUBMIT zdemo_excel6 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Formulas + SUBMIT zdemo_excel7 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Conditional formatting + SUBMIT zdemo_excel8 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Ranges + SUBMIT zdemo_excel9 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Data validation + SUBMIT zdemo_excel10 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Bind table with field catalog + " zdemo_excel11 is not added because it has a selection screen and + " you also need to have business partners maintained in transaction BP + SUBMIT zdemo_excel12 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Column size + SUBMIT zdemo_excel13 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Merge cell + SUBMIT zdemo_excel14 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Alignment + SUBMIT zdemo_excel16 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Drawing + SUBMIT zdemo_excel17 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Lock sheet + SUBMIT zdemo_excel18 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Lock workbook + SUBMIT zdemo_excel19 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Set active sheet + " zdemo_excel20 is not added because it uses ALV and cannot be processed (OLE2) + SUBMIT zdemo_excel21 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Color Picker + SUBMIT zdemo_excel22 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Bind table with field catalog & sheet style + SUBMIT zdemo_excel23 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Multiple sheets with and w/o grid lines, print options + SUBMIT zdemo_excel24 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Multiple sheets with different default date formats + SUBMIT zdemo_excel25 AND RETURN. " abap2xlsx Demo: Create and xlsx on Application Server (could be executed in batch mode) + " zdemo_excel26 is not added because it uses ALV and cannot be processed (Native) + SUBMIT zdemo_excel27 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Conditional Formatting + SUBMIT zdemo_excel28 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: CSV writer + " SUBMIT zdemo_excel29 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Macro enabled workbook + SUBMIT zdemo_excel30 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: ABAP Cell data types + SUBMIT zdemo_excel31 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Autosize Column with different Font sizes + " zdemo_excel32 is not added because it uses ALV and cannot be processed (Native) + SUBMIT zdemo_excel33 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Table autofilter + SUBMIT zdemo_excel34 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Static Styles Chess + SUBMIT zdemo_excel35 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Static Styles + SUBMIT zdemo_excel36 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Style applied to sheet, column and single cell + SUBMIT zdemo_excel37 WITH p_upfile = lv_upfile + WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Simplest call of the reader and writer - passthrough data + SUBMIT zdemo_excel38 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Show off integration of drawings ( here using the SAP-Icons ) + SUBMIT ZDEMO_EXCEL39 WITH p_path = p_path AND RETURN. " abap2xlsx Demo: Charts + " + " Reader/Writer Demo must always run at the end + " to make sure all documents where created + " + SUBMIT zdemo_excel15 WITH p_path = p_path AND RETURN. " Read Excel and write it back + + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL1 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel1. + + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_hyperlink TYPE REF TO zcl_excel_hyperlink, + column_dimension TYPE REF TO zcl_excel_worksheet_columndime. + +CONSTANTS: gc_save_file_name TYPE string VALUE '01_HelloWorld.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + " Creates active sheet + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). +* lo_worksheet->set_title( ip_title = 'Sheet1' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = sy-datum ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ). + lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'http://www.abap2xlsx.org' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 4 ip_value = 'Click here to visit abap2xlsx homepage' ip_hyperlink = lo_hyperlink ). + + column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). + column_dimension->set_width( ip_width = 11 ). + + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL21 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel21. + +TYPES: + BEGIN OF t_color_style, + color TYPE zexcel_style_color_argb, + style TYPE zexcel_cell_style, + END OF t_color_style. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_filled TYPE REF TO zcl_excel_style. + +DATA: color_styles TYPE TABLE OF t_color_style. + +FIELD-SYMBOLS: <color_style> LIKE LINE OF color_styles. + +CONSTANTS: max TYPE i VALUE 255, + step TYPE i VALUE 51. + +DATA: red TYPE i, + green TYPE i, + blue TYPE i, + red_hex(1) TYPE x, + green_hex(1) TYPE x, + blue_hex(1) TYPE x, + red_str TYPE string, + green_str TYPE string, + blue_str TYPE string. + +DATA: color TYPE zexcel_style_color_argb, + tint TYPE zexcel_style_color_tint. + +DATA: row TYPE i, + row_tmp TYPE i, + column TYPE zexcel_cell_column VALUE 1, + col_str TYPE zexcel_cell_column_alpha. + +CONSTANTS: gc_save_file_name TYPE string VALUE '21_BackgroundColorPicker.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + + " Creates active sheet + CREATE OBJECT lo_excel. + + WHILE red <= max. + green = 0. + WHILE green <= max. + blue = 0. + WHILE blue <= max. + red_hex = red. + red_str = red_hex. + green_hex = green. + green_str = green_hex. + blue_hex = blue. + blue_str = blue_hex. + " Create filled + CONCATENATE 'FF' red_str green_str blue_str INTO color. + APPEND INITIAL LINE TO color_styles ASSIGNING <color_style>. + lo_style_filled = lo_excel->add_new_style( ). + lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_filled->fill->fgcolor-rgb = color. + <color_style>-color = color. + <color_style>-style = lo_style_filled->get_guid( ). + blue = blue + step. + ENDWHILE. + green = green + step. + ENDWHILE. + red = red + step. + ENDWHILE. + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( 'Color Picker' ). + LOOP AT color_styles ASSIGNING <color_style>. + row_tmp = ( max / step + 1 ) * 3. + IF row = row_tmp. + row = 0. + column = column + 1. + ENDIF. + row = row + 1. + col_str = zcl_excel_common=>convert_column2alpha( column ). + + " Fill the cell and apply one style + lo_worksheet->set_cell( ip_column = col_str + ip_row = row + ip_value = <color_style>-color + ip_style = <color_style>-style ). + ENDLOOP. + + row = row + 2. + tint = '-0.5'. + DO 10 TIMES. + column = 1. + DO 10 TIMES. + lo_style_filled = lo_excel->add_new_style( ). + lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_filled->fill->fgcolor-theme = sy-index - 1. + lo_style_filled->fill->fgcolor-tint = tint. + <color_style>-style = lo_style_filled->get_guid( ). + col_str = zcl_excel_common=>convert_column2alpha( column ). + lo_worksheet->set_cell_style( ip_column = col_str + ip_row = row + ip_style = <color_style>-style ). + + ADD 1 TO column. + ENDDO. + ADD '0.1' TO tint. + ADD 1 TO row. + ENDDO. + + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL16 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel39. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_drawing TYPE REF TO zcl_excel_drawing. + +DATA lv_value TYPE i. + +DATA: ls_io TYPE skwf_io. + +DATA: ls_upper TYPE zexcel_drawing_location, + ls_lower TYPE zexcel_drawing_location. + +DATA lo_bar1 TYPE REF TO zcl_excel_graph_bars. +DATA lo_bar2 TYPE REF TO zcl_excel_graph_bars. +DATA lo_pie TYPE REF TO zcl_excel_graph_pie. +DATA lo_line TYPE REF TO zcl_excel_graph_line. + +CONSTANTS: gc_save_file_name TYPE string VALUE '39_Charts.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + +START-OF-SELECTION. + + " Create a pie chart and series + CREATE OBJECT lo_pie. + + CALL METHOD lo_pie->create_serie + EXPORTING + ip_order = 0 + ip_sheet = 'Values' + ip_lbl_from_col = 'B' + ip_lbl_from_row = '1' + ip_lbl_to_col = 'B' + ip_lbl_to_row = '3' + ip_ref_from_col = 'A' + ip_ref_from_row = '1' + ip_ref_to_col = 'A' + ip_ref_to_row = '3' + ip_sername = 'My serie 1'. + + " Set style + lo_pie->set_style( zcl_excel_graph=>c_style_15 ). + + " Create a bar chart, series and axes + CREATE OBJECT lo_bar1. + + CALL METHOD lo_bar1->create_serie + EXPORTING + ip_order = 0 + ip_invertifnegative = zcl_excel_graph_bars=>c_invertifnegative_no + ip_lbl = 'Values!$D$1:$D$3' + ip_ref = 'Values!$C$1:$C$3' + ip_sername = 'My serie 1'. + + CALL METHOD lo_bar1->create_serie + EXPORTING + ip_order = 1 + ip_invertifnegative = zcl_excel_graph_bars=>c_invertifnegative_no + ip_lbl = 'Values!$B$1:$B$3' + ip_ref = 'Values!$A$1:$A$3' + ip_sername = 'My serie 2'. + + CALL METHOD lo_bar1->create_ax + EXPORTING +* ip_axid = + ip_type = zcl_excel_graph_bars=>c_catax +* ip_orientation = +* ip_delete = +* ip_axpos = +* ip_formatcode = +* ip_sourcelinked = +* ip_majortickmark = +* ip_minortickmark = +* ip_ticklblpos = +* ip_crossax = +* ip_crosses = +* ip_auto = +* ip_lblalgn = +* ip_lbloffset = +* ip_nomultilvllbl = +* ip_crossbetween = + . + + CALL METHOD lo_bar1->create_ax + EXPORTING +* ip_axid = + ip_type = zcl_excel_graph_bars=>c_valax +* ip_orientation = +* ip_delete = +* ip_axpos = +* ip_formatcode = +* ip_sourcelinked = +* ip_majortickmark = +* ip_minortickmark = +* ip_ticklblpos = +* ip_crossax = +* ip_crosses = +* ip_auto = +* ip_lblalgn = +* ip_lbloffset = +* ip_nomultilvllbl = +* ip_crossbetween = + . + + " Set style + lo_bar1->set_style( zcl_excel_graph=>c_style_default ). + + " Set label to none + lo_bar1->set_print_lbl( zcl_excel_graph_bars=>c_show_false ). + + " Create a bar chart, series and axes + CREATE OBJECT lo_bar2. + + CALL METHOD lo_bar2->create_serie + EXPORTING + ip_order = 0 + ip_invertifnegative = zcl_excel_graph_bars=>c_invertifnegative_yes + ip_lbl = 'Values!$D$1:$D$3' + ip_ref = 'Values!$C$1:$C$3' + ip_sername = 'My serie 1'. + + CALL METHOD lo_bar2->create_ax + EXPORTING +* ip_axid = + ip_type = zcl_excel_graph_bars=>c_catax +* ip_orientation = +* ip_delete = +* ip_axpos = +* ip_formatcode = +* ip_sourcelinked = +* ip_majortickmark = +* ip_minortickmark = +* ip_ticklblpos = +* ip_crossax = +* ip_crosses = +* ip_auto = +* ip_lblalgn = +* ip_lbloffset = +* ip_nomultilvllbl = +* ip_crossbetween = + . + + CALL METHOD lo_bar2->create_ax + EXPORTING +* ip_axid = + ip_type = zcl_excel_graph_bars=>c_valax +* ip_orientation = +* ip_delete = +* ip_axpos = +* ip_formatcode = +* ip_sourcelinked = +* ip_majortickmark = +* ip_minortickmark = +* ip_ticklblpos = +* ip_crossax = +* ip_crosses = +* ip_auto = +* ip_lblalgn = +* ip_lbloffset = +* ip_nomultilvllbl = +* ip_crossbetween = + . + + " Set layout + lo_bar2->set_show_legend_key( zcl_excel_graph_bars=>c_show_true ). + lo_bar2->set_show_values( zcl_excel_graph_bars=>c_show_true ). + lo_bar2->set_show_cat_name( zcl_excel_graph_bars=>c_show_true ). + lo_bar2->set_show_ser_name( zcl_excel_graph_bars=>c_show_true ). + lo_bar2->set_show_percent( zcl_excel_graph_bars=>c_show_true ). + lo_bar2->set_varycolor( zcl_excel_graph_bars=>c_show_true ). + + " Create a line chart, series and axes + CREATE OBJECT lo_line. + + CALL METHOD lo_line->create_serie + EXPORTING + ip_order = 0 + ip_symbol = zcl_excel_graph_line=>c_symbol_auto + ip_smooth = zcl_excel_graph_line=>c_show_false + ip_lbl = 'Values!$D$1:$D$3' + ip_ref = 'Values!$C$1:$C$3' + ip_sername = 'My serie 1'. + + CALL METHOD lo_line->create_serie + EXPORTING + ip_order = 1 + ip_symbol = zcl_excel_graph_line=>c_symbol_none + ip_smooth = zcl_excel_graph_line=>c_show_false + ip_lbl = 'Values!$B$1:$B$3' + ip_ref = 'Values!$A$1:$A$3' + ip_sername = 'My serie 2'. + + CALL METHOD lo_line->create_serie + EXPORTING + ip_order = 2 + ip_symbol = zcl_excel_graph_line=>c_symbol_auto + ip_smooth = zcl_excel_graph_line=>c_show_false + ip_lbl = 'Values!$F$1:$F$3' + ip_ref = 'Values!$E$1:$E$3' + ip_sername = 'My serie 3'. + + CALL METHOD lo_line->create_ax + EXPORTING +* ip_axid = + ip_type = zcl_excel_graph_line=>c_catax +* ip_orientation = +* ip_delete = +* ip_axpos = +* ip_majortickmark = +* ip_minortickmark = +* ip_ticklblpos = +* ip_crossax = +* ip_crosses = +* ip_auto = +* ip_lblalgn = +* ip_lbloffset = +* ip_nomultilvllbl = +* ip_crossbetween = + . + + CALL METHOD lo_line->create_ax + EXPORTING +* ip_axid = + ip_type = zcl_excel_graph_line=>c_valax +* ip_orientation = +* ip_delete = +* ip_axpos = +* ip_formatcode = +* ip_sourcelinked = +* ip_majortickmark = +* ip_minortickmark = +* ip_ticklblpos = +* ip_crossax = +* ip_crosses = +* ip_auto = +* ip_lblalgn = +* ip_lbloffset = +* ip_nomultilvllbl = +* ip_crossbetween = + . + + + + + + + + " Creates active sheet + CREATE OBJECT lo_excel. + + " Get active sheet (Pie sheet) + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( 'PieChart' ). + + " Create global drawing, set type as pie chart, assign chart, set position and media type + lo_drawing = lo_worksheet->excel->add_new_drawing( + ip_type = zcl_excel_drawing=>type_chart + ip_title = 'CHART PIE' ). + lo_drawing->graph = lo_pie. + lo_drawing->graph_type = zcl_excel_drawing=>c_graph_pie. + + "Set chart position (anchor 2 cells) + ls_lower-row = 30. + ls_lower-col = 20. + lo_drawing->set_position2( + EXPORTING + ip_from = ls_upper + ip_to = ls_lower ). + + lo_drawing->set_media( + EXPORTING + ip_media_type = zcl_excel_drawing=>c_media_type_xml ). + + lo_worksheet->add_drawing( lo_drawing ). + + " BarChart1 sheet + + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'BarChart1' ). + + " Create global drawing, set type as bar chart, assign chart, set position and media type + lo_drawing = lo_worksheet->excel->add_new_drawing( + ip_type = zcl_excel_drawing=>type_chart + ip_title = 'CHART BARS WITH 2 SERIES' ). + lo_drawing->graph = lo_bar1. + lo_drawing->graph_type = zcl_excel_drawing=>c_graph_bars. + + "Set chart position (anchor 2 cells) + ls_upper-row = 0. + ls_upper-col = 11. + ls_lower-row = 22. + ls_lower-col = 21. + lo_drawing->set_position2( + EXPORTING + ip_from = ls_upper + ip_to = ls_lower ). + + lo_drawing->set_media( + EXPORTING + ip_media_type = zcl_excel_drawing=>c_media_type_xml ). + + lo_worksheet->add_drawing( lo_drawing ). + + " BarChart2 sheet + + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'BarChart2' ). + + " Create global drawing, set type as bar chart, assign chart, set position and media type + lo_drawing = lo_worksheet->excel->add_new_drawing( + ip_type = zcl_excel_drawing=>type_chart + ip_title = 'CHART BARS WITH 1 SERIE' ). + lo_drawing->graph = lo_bar2. + lo_drawing->graph_type = zcl_excel_drawing=>c_graph_bars. + + "Set chart position (anchor 2 cells) + ls_upper-row = 0. + ls_upper-col = 0. + ls_lower-row = 30. + ls_lower-col = 20. + lo_drawing->set_position2( + EXPORTING + ip_from = ls_upper + ip_to = ls_lower ). + + lo_drawing->set_media( + EXPORTING + ip_media_type = zcl_excel_drawing=>c_media_type_xml ). + + lo_worksheet->add_drawing( lo_drawing ). + + " LineChart sheet + + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'LineChart' ). + + " Create global drawing, set type as line chart, assign chart, set position and media type + lo_drawing = lo_worksheet->excel->add_new_drawing( + ip_type = zcl_excel_drawing=>type_chart + ip_title = 'CHART LINES' ). + lo_drawing->graph = lo_line. + lo_drawing->graph_type = zcl_excel_drawing=>c_graph_line. + + "Set chart position (anchor 2 cells) + ls_upper-row = 0. + ls_upper-col = 0. + ls_lower-row = 30. + ls_lower-col = 20. + lo_drawing->set_position2( + EXPORTING + ip_from = ls_upper + ip_to = ls_lower ). + + lo_drawing->set_media( + EXPORTING + ip_media_type = zcl_excel_drawing=>c_media_type_xml ). + + lo_worksheet->add_drawing( lo_drawing ). + + " Values sheet + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_title( ip_title = 'Values' ). + + " Set values for chart + lv_value = 1. + lo_worksheet->set_cell( ip_column = 'A' ip_row = 1 ip_value = lv_value ). + lv_value = 2. + lo_worksheet->set_cell( ip_column = 'A' ip_row = 2 ip_value = lv_value ). + lv_value = 3. + lo_worksheet->set_cell( ip_column = 'A' ip_row = 3 ip_value = lv_value ). + + " Set labels for chart + lo_worksheet->set_cell( ip_column = 'B' ip_row = 1 ip_value = 'One' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Two' ). + lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = 'Three' ). + + " Set values for chart + lv_value = 3. + lo_worksheet->set_cell( ip_column = 'C' ip_row = 1 ip_value = lv_value ). + lv_value = 2. + lo_worksheet->set_cell( ip_column = 'C' ip_row = 2 ip_value = lv_value ). + lv_value = -1. + lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = lv_value ). + + " Set labels for chart + lo_worksheet->set_cell( ip_column = 'D' ip_row = 3 ip_value = 'One (Minus)' ). + lo_worksheet->set_cell( ip_column = 'D' ip_row = 2 ip_value = 'Two' ). + lo_worksheet->set_cell( ip_column = 'D' ip_row = 1 ip_value = 'Three' ). + + " Set values for chart + lv_value = 3. + lo_worksheet->set_cell( ip_column = 'E' ip_row = 1 ip_value = lv_value ). + lv_value = 1. + lo_worksheet->set_cell( ip_column = 'E' ip_row = 2 ip_value = lv_value ). + lv_value = 2. + lo_worksheet->set_cell( ip_column = 'E' ip_row = 3 ip_value = lv_value ). + + " Set labels for chart + lo_worksheet->set_cell( ip_column = 'F' ip_row = 3 ip_value = 'Two' ). + lo_worksheet->set_cell( ip_column = 'F' ip_row = 2 ip_value = 'One' ). + lo_worksheet->set_cell( ip_column = 'F' ip_row = 1 ip_value = 'Three' ). + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + REPORT. + + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + +DATA: lv_row TYPE zexcel_cell_row, + lv_col TYPE i, + lv_row_char TYPE char10, + lv_value TYPE string, + ls_fontcolor TYPE zexcel_style_color_argb. + +CONSTANTS: gc_save_file_name TYPE string VALUE '40_Printsettings.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + + +START-OF-SELECTION. + " Creates active sheet + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Demo Printsettings' ). + +*--------------------------------------------------------------------* +* Prepare sheet with trivial data +* - first 4 columns will have fontocolor set +* - first 3 rows will have fontcolor set +* These marked cells will be used for repeatable rows/columns on printpages +*--------------------------------------------------------------------* + DO 100 TIMES. " Rows + + lv_row = sy-index . + WRITE lv_row TO lv_row_char. + + DO 20 TIMES. + + lv_col = sy-index - 1. + CONCATENATE sy-abcde+lv_col(1) lv_row_char INTO lv_value. + lv_col = sy-index. + lo_worksheet->set_cell( ip_row = lv_row + ip_column = lv_col + ip_value = lv_value ). + + TRY. + IF lv_row <= 3. + lo_worksheet->change_cell_style( ip_column = lv_col + ip_row = lv_row + ip_fill_filltype = zcl_excel_style_fill=>c_fill_solid + ip_fill_fgcolor_rgb = zcl_excel_style_color=>c_yellow ). + ENDIF. + IF lv_col <= 4. + lo_worksheet->change_cell_style( ip_column = lv_col + ip_row = lv_row + ip_font_color_rgb = zcl_excel_style_color=>c_red ). + ENDIF. + CATCH zcx_excel . + ENDTRY. + + ENDDO. + + + + ENDDO. + + +*--------------------------------------------------------------------* +* Printsettings +*--------------------------------------------------------------------* + TRY. + lo_worksheet->zif_excel_sheet_printsettings~set_print_repeat_columns( iv_columns_from = 'A' + iv_columns_to = 'D' ). + lo_worksheet->zif_excel_sheet_printsettings~set_print_repeat_rows( iv_rows_from = 1 + iv_rows_to = 3 ). + CATCH zcx_excel . + ENDTRY. + + + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + + + + + REPORT zdemo_excel37. + +DATA: excel TYPE REF TO zcl_excel, + reader TYPE REF TO zif_excel_reader, + go_error TYPE REF TO cx_root, + gv_message type string. + + +CONSTANTS: gc_save_file_name TYPE string VALUE '37-passthrough.xlsx'. + +SELECTION-SCREEN BEGIN OF BLOCK blx WITH FRAME. +PARAMETERS: p_upfile TYPE string DEFAULT 'c:\temp\whatever.xlsx' LOWER CASE. +SELECTION-SCREEN END OF BLOCK blx. + +INCLUDE zdemo_excel_outputopt_incl. + +AT SELECTION-SCREEN ON VALUE-REQUEST FOR p_upfile. + PERFORM f4_p_upfile CHANGING p_upfile. + + +START-OF-SELECTION. + + TRY. + CREATE OBJECT reader TYPE zcl_excel_reader_2007. +* CREATE OBJECT reader TYPE zcl_excel_reader_xlsm. + excel = reader->load_file( p_upfile ). + + "Use template for charts + excel->use_template = abap_true. +*--------------------------------------------------------------------* +* CL_ABAP_ZIP may have problems reading LibreOffice generated files +* You may have to use alternate ZIP-Class - see comments in issue #234 in abap2xlsx at developers network +* excel = reader->load_file( i_filename = p_upfile +* iv_use_alternate_zip = 'ZCL_EXCEL_ABAP_ZIP' ). +*--------------------------------------------------------------------* + +*** Create output + lcl_output=>output( excel ). + CATCH cx_root INTO go_error. + MESSAGE 'Error reading excelfile' TYPE 'I'. + gv_message = go_error->get_text( ). + IF gv_message IS NOT INITIAL. + MESSAGE gv_message TYPE 'I'. + ENDIF. + ENDTRY. + + +*&---------------------------------------------------------------------* +*& Form F4_P_UPFILE +*&---------------------------------------------------------------------* +FORM f4_p_upfile CHANGING p_upfile TYPE string. + + DATA: lv_repid TYPE syrepid, + lt_fields TYPE dynpread_tabtype, + ls_field LIKE LINE OF lt_fields, + lt_files TYPE filetable. + + lv_repid = sy-repid. + + CALL FUNCTION 'DYNP_VALUES_READ' + EXPORTING + dyname = lv_repid + dynumb = '1000' + request = 'A' + TABLES + dynpfields = lt_fields + EXCEPTIONS + invalid_abapworkarea = 01 + invalid_dynprofield = 02 + invalid_dynproname = 03 + invalid_dynpronummer = 04 + invalid_request = 05 + no_fielddescription = 06 + undefind_error = 07. + READ TABLE lt_fields INTO ls_field WITH KEY fieldname = 'P_UPFILE'. + p_upfile = ls_field-fieldvalue. + + cl_gui_frontend_services=>file_open_dialog( EXPORTING + default_filename = p_upfile + file_filter = zcl_excel_common=>c_xlsx_file_filter + CHANGING + file_table = lt_files + rc = sy-tabix + EXCEPTIONS + OTHERS = 1 ). + READ TABLE lt_files INDEX 1 INTO p_upfile. + +ENDFORM. " F4_P_UPFILE + + + + + + + + + REPORT. + + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_drawing TYPE REF TO zcl_excel_drawing. + +TYPES: BEGIN OF gty_icon, +* name TYPE icon_name, "Fix #228 + name TYPE iconname, "Fix #228 + objid TYPE w3objid, + END OF gty_icon, + gtyt_icon TYPE STANDARD TABLE OF gty_icon WITH NON-UNIQUE DEFAULT KEY. + +DATA: lt_icon TYPE gtyt_icon, + lv_row TYPE sytabix, + ls_wwwdatatab TYPE wwwdatatab, + lt_mimedata TYPE STANDARD TABLE OF w3mime WITH NON-UNIQUE DEFAULT KEY, + lv_xstring TYPE xstring. + +FIELD-SYMBOLS: <icon> LIKE LINE OF lt_icon, + <mimedata> LIKE LINE OF lt_mimedata. + +CONSTANTS: gc_save_file_name TYPE string VALUE '38_SAP-Icons.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +TABLES: icon. +SELECT-OPTIONS: s_icon FOR icon-name DEFAULT 'ICON_LED_*' OPTION CP. + +START-OF-SELECTION. + " Creates active sheet + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Demo Icons' ). + lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ). + lo_column_dimension->set_auto_size( 'X' ). + lo_column_dimension = lo_worksheet->get_column_dimension( ip_column = 'B' ). + lo_column_dimension->set_auto_size( 'X' ). + +* Get all icons + SELECT name + INTO TABLE lt_icon + FROM icon + WHERE name IN s_icon + ORDER BY name. + LOOP AT lt_icon ASSIGNING <icon>. + + lv_row = sy-tabix. +*--------------------------------------------------------------------* +* Set name of icon +*--------------------------------------------------------------------* + lo_worksheet->set_cell( ip_row = lv_row + ip_column = 'A' + ip_value = <icon>-name ). +*--------------------------------------------------------------------* +* Check whether the mime-repository holds some icondata for us +*--------------------------------------------------------------------* + +* Get key + SELECT SINGLE objid + INTO <icon>-objid + FROM wwwdata + WHERE text = <icon>-name. + CHECK sy-subrc = 0. " :o( + lo_worksheet->set_cell( ip_row = lv_row + ip_column = 'B' + ip_value = <icon>-objid ). + +* Load mimedata + CLEAR lt_mimedata. + CLEAR ls_wwwdatatab. + ls_wwwdatatab-relid = 'MI' . + ls_wwwdatatab-objid = <icon>-objid. + CALL FUNCTION 'WWWDATA_IMPORT' + EXPORTING + key = ls_wwwdatatab + TABLES + mime = lt_mimedata + EXCEPTIONS + wrong_object_type = 1 + import_error = 2 + OTHERS = 3. + CHECK sy-subrc = 0. " :o( + + lo_drawing = lo_excel->add_new_drawing( ). + lo_drawing->set_position( ip_from_row = lv_row + ip_from_col = 'C' ). + CLEAR lv_xstring. + LOOP AT lt_mimedata ASSIGNING <mimedata>. + CONCATENATE lv_xstring <mimedata>-line INTO lv_xstring IN BYTE MODE. + ENDLOOP. + + lo_drawing->set_media( ip_media = lv_xstring + ip_media_type = zcl_excel_drawing=>c_media_type_jpg + ip_width = 16 + ip_height = 14 ). + lo_worksheet->add_drawing( lo_drawing ). + + ENDLOOP. + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL7 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel7. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_conditional TYPE REF TO zcl_excel_style_conditional. + +DATA: ls_iconset3 TYPE zexcel_conditional_iconset, + ls_iconset4 TYPE zexcel_conditional_iconset, + ls_iconset5 TYPE zexcel_conditional_iconset. + +CONSTANTS: gc_save_file_name TYPE string VALUE '07_ConditionalAll.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + + CREATE OBJECT lo_excel. + + ls_iconset3-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset3-cfvo1_value = '0'. + ls_iconset3-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset3-cfvo2_value = '33'. + ls_iconset3-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset3-cfvo3_value = '66'. + ls_iconset3-showvalue = zcl_excel_style_conditional=>c_showvalue_true. + + ls_iconset4-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset4-cfvo1_value = '0'. + ls_iconset4-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset4-cfvo2_value = '25'. + ls_iconset4-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset4-cfvo3_value = '50'. + ls_iconset4-cfvo4_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset4-cfvo4_value = '75'. + ls_iconset4-showvalue = zcl_excel_style_conditional=>c_showvalue_true. + + ls_iconset5-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset5-cfvo1_value = '0'. + ls_iconset5-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset5-cfvo2_value = '20'. + ls_iconset5-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset5-cfvo3_value = '40'. + ls_iconset5-cfvo4_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset5-cfvo4_value = '60'. + ls_iconset5-cfvo5_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset5-cfvo5_value = '80'. + ls_iconset5-showvalue = zcl_excel_style_conditional=>c_showvalue_true. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + + ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3arrows. + + lo_style_conditional->mode_iconset = ls_iconset3. + lo_style_conditional->set_range( ip_start_column = 'B' + ip_start_row = 5 + ip_stop_column = 'B' + ip_stop_row = 9 ). + + lo_worksheet->set_cell( ip_row = 4 ip_column = 'B' ip_value = 'C_ICONSET_3ARROWS' ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'B' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'B' ip_value = 20 ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'B' ip_value = 30 ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'B' ip_value = 40 ). + lo_worksheet->set_cell( ip_row = 9 ip_column = 'B' ip_value = 50 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3arrowsgray. + lo_style_conditional->mode_iconset = ls_iconset3. + lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 5 + ip_stop_column = 'C' + ip_stop_row = 9 ). + + lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = 'C_ICONSET_3ARROWSGRAY' ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'C' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'C' ip_value = 20 ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 30 ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 40 ). + lo_worksheet->set_cell( ip_row = 9 ip_column = 'C' ip_value = 50 ). + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3flags. + lo_style_conditional->mode_iconset = ls_iconset3. + lo_style_conditional->set_range( ip_start_column = 'D' + ip_start_row = 5 + ip_stop_column = 'D' + ip_stop_row = 9 ). + + lo_worksheet->set_cell( ip_row = 4 ip_column = 'D' ip_value = 'C_ICONSET_3FLAGS' ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'D' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'D' ip_value = 20 ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'D' ip_value = 30 ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'D' ip_value = 40 ). + lo_worksheet->set_cell( ip_row = 9 ip_column = 'D' ip_value = 50 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights. + lo_style_conditional->mode_iconset = ls_iconset3. + lo_style_conditional->set_range( ip_start_column = 'E' + ip_start_row = 5 + ip_stop_column = 'E' + ip_stop_row = 9 ). + + lo_worksheet->set_cell( ip_row = 4 ip_column = 'E' ip_value = 'C_ICONSET_3TRAFFICLIGHTS' ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'E' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'E' ip_value = 20 ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'E' ip_value = 30 ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'E' ip_value = 40 ). + lo_worksheet->set_cell( ip_row = 9 ip_column = 'E' ip_value = 50 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights2. + lo_style_conditional->mode_iconset = ls_iconset3. + lo_style_conditional->set_range( ip_start_column = 'F' + ip_start_row = 5 + ip_stop_column = 'F' + ip_stop_row = 9 ). + + lo_worksheet->set_cell( ip_row = 4 ip_column = 'F' ip_value = 'C_ICONSET_3TRAFFICLIGHTS2' ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'F' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'F' ip_value = 20 ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'F' ip_value = 30 ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'F' ip_value = 40 ). + lo_worksheet->set_cell( ip_row = 9 ip_column = 'F' ip_value = 50 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3signs. + lo_style_conditional->mode_iconset = ls_iconset3. + lo_style_conditional->set_range( ip_start_column = 'G' + ip_start_row = 5 + ip_stop_column = 'G' + ip_stop_row = 9 ). + + lo_worksheet->set_cell( ip_row = 4 ip_column = 'G' ip_value = 'C_ICONSET_3SIGNS' ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'G' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'G' ip_value = 20 ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'G' ip_value = 30 ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'G' ip_value = 40 ). + lo_worksheet->set_cell( ip_row = 9 ip_column = 'G' ip_value = 50 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3symbols. + lo_style_conditional->mode_iconset = ls_iconset3. + lo_style_conditional->set_range( ip_start_column = 'H' + ip_start_row = 5 + ip_stop_column = 'H' + ip_stop_row = 9 ). + + lo_worksheet->set_cell( ip_row = 4 ip_column = 'H' ip_value = 'C_ICONSET_3SYMBOLS' ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'H' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'H' ip_value = 20 ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'H' ip_value = 30 ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'H' ip_value = 40 ). + lo_worksheet->set_cell( ip_row = 9 ip_column = 'H' ip_value = 50 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + ls_iconset3-iconset = zcl_excel_style_conditional=>c_iconset_3symbols2. + lo_style_conditional->mode_iconset = ls_iconset3. + lo_style_conditional->set_range( ip_start_column = 'I' + ip_start_row = 5 + ip_stop_column = 'I' + ip_stop_row = 9 ). + + lo_worksheet->set_cell( ip_row = 4 ip_column = 'I' ip_value = 'C_ICONSET_3SYMBOLS2' ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'I' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'I' ip_value = 20 ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'I' ip_value = 30 ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'I' ip_value = 40 ). + lo_worksheet->set_cell( ip_row = 9 ip_column = 'I' ip_value = 50 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4arrows. + lo_style_conditional->mode_iconset = ls_iconset4. + lo_style_conditional->set_range( ip_start_column = 'B' + ip_start_row = 12 + ip_stop_column = 'B' + ip_stop_row = 16 ). + + lo_worksheet->set_cell( ip_row = 11 ip_column = 'B' ip_value = 'C_ICONSET_4ARROWS' ). + lo_worksheet->set_cell( ip_row = 12 ip_column = 'B' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 13 ip_column = 'B' ip_value = 20 ). + lo_worksheet->set_cell( ip_row = 14 ip_column = 'B' ip_value = 30 ). + lo_worksheet->set_cell( ip_row = 15 ip_column = 'B' ip_value = 40 ). + lo_worksheet->set_cell( ip_row = 16 ip_column = 'B' ip_value = 50 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4arrowsgray. + lo_style_conditional->mode_iconset = ls_iconset4. + lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 12 + ip_stop_column = 'C' + ip_stop_row = 16 ). + + lo_worksheet->set_cell( ip_row = 11 ip_column = 'C' ip_value = 'C_ICONSET_4ARROWSGRAY' ). + lo_worksheet->set_cell( ip_row = 12 ip_column = 'C' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 13 ip_column = 'C' ip_value = 20 ). + lo_worksheet->set_cell( ip_row = 14 ip_column = 'C' ip_value = 30 ). + lo_worksheet->set_cell( ip_row = 15 ip_column = 'C' ip_value = 40 ). + lo_worksheet->set_cell( ip_row = 16 ip_column = 'C' ip_value = 50 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4redtoblack. + lo_style_conditional->mode_iconset = ls_iconset4. + lo_style_conditional->set_range( ip_start_column = 'D' + ip_start_row = 12 + ip_stop_column = 'D' + ip_stop_row = 16 ). + + lo_worksheet->set_cell( ip_row = 11 ip_column = 'D' ip_value = 'C_ICONSET_4REDTOBLACK' ). + lo_worksheet->set_cell( ip_row = 12 ip_column = 'D' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 13 ip_column = 'D' ip_value = 20 ). + lo_worksheet->set_cell( ip_row = 14 ip_column = 'D' ip_value = 30 ). + lo_worksheet->set_cell( ip_row = 15 ip_column = 'D' ip_value = 40 ). + lo_worksheet->set_cell( ip_row = 16 ip_column = 'D' ip_value = 50 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4rating. + lo_style_conditional->mode_iconset = ls_iconset4. + lo_style_conditional->set_range( ip_start_column = 'E' + ip_start_row = 12 + ip_stop_column = 'E' + ip_stop_row = 16 ). + + lo_worksheet->set_cell( ip_row = 11 ip_column = 'E' ip_value = 'C_ICONSET_4RATING' ). + lo_worksheet->set_cell( ip_row = 12 ip_column = 'E' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 13 ip_column = 'E' ip_value = 20 ). + lo_worksheet->set_cell( ip_row = 14 ip_column = 'E' ip_value = 30 ). + lo_worksheet->set_cell( ip_row = 15 ip_column = 'E' ip_value = 40 ). + lo_worksheet->set_cell( ip_row = 16 ip_column = 'E' ip_value = 50 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + ls_iconset4-iconset = zcl_excel_style_conditional=>c_iconset_4trafficlights. + lo_style_conditional->mode_iconset = ls_iconset4. + lo_style_conditional->set_range( ip_start_column = 'F' + ip_start_row = 12 + ip_stop_column = 'F' + ip_stop_row = 16 ). + + lo_worksheet->set_cell( ip_row = 11 ip_column = 'F' ip_value = 'C_ICONSET_4TRAFFICLIGHTS' ). + lo_worksheet->set_cell( ip_row = 12 ip_column = 'F' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 13 ip_column = 'F' ip_value = 20 ). + lo_worksheet->set_cell( ip_row = 14 ip_column = 'F' ip_value = 30 ). + lo_worksheet->set_cell( ip_row = 15 ip_column = 'F' ip_value = 40 ). + lo_worksheet->set_cell( ip_row = 16 ip_column = 'F' ip_value = 50 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + ls_iconset5-iconset = zcl_excel_style_conditional=>c_iconset_5arrows. + lo_style_conditional->mode_iconset = ls_iconset5. + lo_style_conditional->set_range( ip_start_column = 'B' + ip_start_row = 19 + ip_stop_column = 'B' + ip_stop_row = 23 ). + + lo_worksheet->set_cell( ip_row = 18 ip_column = 'B' ip_value = 'C_ICONSET_5ARROWS' ). + lo_worksheet->set_cell( ip_row = 19 ip_column = 'B' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 20 ip_column = 'B' ip_value = 20 ). + lo_worksheet->set_cell( ip_row = 21 ip_column = 'B' ip_value = 30 ). + lo_worksheet->set_cell( ip_row = 22 ip_column = 'B' ip_value = 40 ). + lo_worksheet->set_cell( ip_row = 23 ip_column = 'B' ip_value = 50 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + ls_iconset5-iconset = zcl_excel_style_conditional=>c_iconset_5arrowsgray. + lo_style_conditional->mode_iconset = ls_iconset5. + lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 19 + ip_stop_column = 'C' + ip_stop_row = 23 ). + + lo_worksheet->set_cell( ip_row = 18 ip_column = 'C' ip_value = 'C_ICONSET_5ARROWSGRAY' ). + lo_worksheet->set_cell( ip_row = 19 ip_column = 'C' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 20 ip_column = 'C' ip_value = 20 ). + lo_worksheet->set_cell( ip_row = 21 ip_column = 'C' ip_value = 30 ). + lo_worksheet->set_cell( ip_row = 22 ip_column = 'C' ip_value = 40 ). + lo_worksheet->set_cell( ip_row = 23 ip_column = 'C' ip_value = 50 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + ls_iconset5-iconset = zcl_excel_style_conditional=>c_iconset_5rating. + lo_style_conditional->mode_iconset = ls_iconset5. + lo_style_conditional->set_range( ip_start_column = 'D' + ip_start_row = 19 + ip_stop_column = 'D' + ip_stop_row = 23 ). + + lo_worksheet->set_cell( ip_row = 18 ip_column = 'D' ip_value = 'C_ICONSET_5RATING' ). + lo_worksheet->set_cell( ip_row = 19 ip_column = 'D' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 20 ip_column = 'D' ip_value = 20 ). + lo_worksheet->set_cell( ip_row = 21 ip_column = 'D' ip_value = 30 ). + lo_worksheet->set_cell( ip_row = 22 ip_column = 'D' ip_value = 40 ). + lo_worksheet->set_cell( ip_row = 23 ip_column = 'D' ip_value = 50 ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + ls_iconset5-iconset = zcl_excel_style_conditional=>c_iconset_5quarters. + lo_style_conditional->mode_iconset = ls_iconset5. + lo_style_conditional->set_range( ip_start_column = 'E' + ip_start_row = 19 + ip_stop_column = 'E' + ip_stop_row = 23 ). + + lo_worksheet->set_cell( ip_row = 18 ip_column = 'E' ip_value = 'C_ICONSET_5QUARTERS' ). + lo_worksheet->set_cell( ip_row = 19 ip_column = 'E' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 20 ip_column = 'E' ip_value = 20 ). + lo_worksheet->set_cell( ip_row = 21 ip_column = 'E' ip_value = 30 ). + lo_worksheet->set_cell( ip_row = 22 ip_column = 'E' ip_value = 40 ). + lo_worksheet->set_cell( ip_row = 23 ip_column = 'E' ip_value = 50 ). + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL8 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel8. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_range TYPE REF TO zcl_excel_range. + +DATA: lv_title TYPE zexcel_sheet_title. + +CONSTANTS: gc_save_file_name TYPE string VALUE '08_Range.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lv_title = 'Sheet1'. + lo_worksheet->set_title( lv_title ). + lo_range = lo_excel->add_new_range( ). + lo_range->name = 'range'. + lo_range->set_value( ip_sheet_name = lv_title + ip_start_column = 'C' + ip_start_row = 4 + ip_stop_column = 'C' + ip_stop_row = 8 ). + + + lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = 'Apple' ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'C' ip_value = 'Banana' ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'C' ip_value = 'Blueberry' ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 'Ananas' ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Grapes' ). + + " Define another Range with a name longer than 40 characters that + " tests the fix of issue #168 ranges namescan be only up to 20 chars + + lo_range = lo_excel->add_new_range( ). + lo_range->name = 'A_range_with_a_name_that_is_longer_than_20_characters'. + lo_range->set_value( ip_sheet_name = lv_title + ip_start_column = 'D' + ip_start_row = 4 + ip_stop_column = 'D' + ip_stop_row = 5 ). + lo_worksheet->set_cell( ip_row = 4 ip_column = 'D' ip_value = 'Range Value 1' ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'D' ip_value = 'Range Value 2' ). + + " issue #163 + " Define another Range with sheet visibility + lo_range = lo_worksheet->add_new_range( ). + lo_range->name = 'A_range_with_sheet_visibility'. + lo_range->set_value( ip_sheet_name = lv_title + ip_start_column = 'E' + ip_start_row = 4 + ip_stop_column = 'E' + ip_stop_row = 5 ). + lo_worksheet->set_cell( ip_row = 4 ip_column = 'E' ip_value = 'Range Value 3' ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'E' ip_value = 'Range Value 4' ). + " issue #163 + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL9 +*& +*&---------------------------------------------------------------------* +*& abap2xlsx Demo: Data validations +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel9. + +CONSTANTS: c_fruits TYPE string VALUE 'Fruits', + c_vegetables TYPE string VALUE 'Vegetables', + c_meat TYPE string VALUE 'Meat', + c_fish TYPE string VALUE 'Fish'. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_range TYPE REF TO zcl_excel_range, + lo_data_validation TYPE REF TO zcl_excel_data_validation. + +DATA: row TYPE zexcel_cell_row. + + +DATA: lv_title TYPE zexcel_sheet_title. + + +CONSTANTS: gc_save_file_name TYPE string VALUE '09_DataValidation.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + +PARAMETERS: p_sbook TYPE flag. + + +START-OF-SELECTION. + + " Creates active sheet + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lv_title = 'Data Validation'. + lo_worksheet->set_title( lv_title ). + " Set values for dropdown + lo_worksheet->set_cell( ip_row = 2 ip_column = 'A' ip_value = c_fish ). + lo_worksheet->set_cell( ip_row = 4 ip_column = 'A' ip_value = 'Anchovy' ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'A' ip_value = 'Carp' ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'A' ip_value = 'Catfish' ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'A' ip_value = 'Cod' ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'A' ip_value = 'Eel' ). + lo_worksheet->set_cell( ip_row = 9 ip_column = 'A' ip_value = 'Haddock' ). + + lo_range = lo_excel->add_new_range( ). + lo_range->name = c_fish. + lo_range->set_value( ip_sheet_name = lv_title + ip_start_column = 'A' + ip_start_row = 4 + ip_stop_column = 'A' + ip_stop_row = 9 ). + + lo_worksheet->set_cell( ip_row = 2 ip_column = 'B' ip_value = c_meat ). + lo_worksheet->set_cell( ip_row = 4 ip_column = 'B' ip_value = 'Pork' ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'B' ip_value = 'Beef' ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'B' ip_value = 'Chicken' ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'B' ip_value = 'Turkey' ). + + lo_range = lo_excel->add_new_range( ). + lo_range->name = c_meat. + lo_range->set_value( ip_sheet_name = lv_title + ip_start_column = 'B' + ip_start_row = 4 + ip_stop_column = 'B' + ip_stop_row = 7 ). + + lo_worksheet->set_cell( ip_row = 2 ip_column = 'C' ip_value = c_fruits ). + lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = 'Apple' ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'C' ip_value = 'Banana' ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'C' ip_value = 'Blueberry' ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 'Ananas' ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Grapes' ). + + lo_range = lo_excel->add_new_range( ). + lo_range->name = c_fruits. + lo_range->set_value( ip_sheet_name = lv_title + ip_start_column = 'C' + ip_start_row = 4 + ip_stop_column = 'C' + ip_stop_row = 8 ). + + lo_worksheet->set_cell( ip_row = 2 ip_column = 'D' ip_value = c_vegetables ). + lo_worksheet->set_cell( ip_row = 4 ip_column = 'D' ip_value = 'Cucumber' ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'D' ip_value = 'Sweet pepper ' ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'D' ip_value = 'Lettuce' ). + + lo_range = lo_excel->add_new_range( ). + lo_range->name = c_vegetables. + lo_range->set_value( ip_sheet_name = lv_title + ip_start_column = 'D' + ip_start_row = 4 + ip_stop_column = 'D' + ip_stop_row = 6 ). + + lo_worksheet = lo_excel->add_new_worksheet( ). + lv_title = 'Table with Data Validation'. + lo_worksheet->set_title( lv_title ). + + " Maximum Text length + lo_worksheet->set_cell( ip_row = 1 ip_column = 'A' ip_value = 'Validate Maximum Text length of <= 10 in Cell A2:' ). + lo_worksheet->set_cell( ip_row = 2 ip_column = 'A' ip_value = 'abcdefghij' ). + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_textlength. + lo_data_validation->operator = zcl_excel_data_validation=>c_operator_lessthanorequal. + lo_data_validation->formula1 = 10. + lo_data_validation->cell_row = 2. + lo_data_validation->cell_column = 'A'. + + " Integer Value between 1 and 10 + lo_worksheet->set_cell( ip_row = 4 ip_column = 'A' ip_value = 'Validate Integer Value between 1 and 10 in Cell A5:' ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'A' ip_value = '5' ). + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_whole. + lo_data_validation->operator = zcl_excel_data_validation=>c_operator_between. + lo_data_validation->formula1 = 1. + lo_data_validation->formula2 = 10. + lo_data_validation->prompttitle = 'Range'. + lo_data_validation->prompt = 'Enter a value between 1 and 10'. + lo_data_validation->errortitle = 'Error'. + lo_data_validation->error = 'You have entered a wrong value. Please use only numbers between 1 and 10.'. + lo_data_validation->cell_row = 5. + lo_data_validation->cell_column = 'A'. + + " Evaluation by Formula from issue #161 + lo_worksheet->set_cell( ip_row = 7 ip_column = 'A' ip_value = 'Validate if B8 contains a "-":' ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'A' ip_value = 'Text' ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'B' ip_value = '-' ). + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_custom. + lo_data_validation->formula1 = '"IF(B8<>"""";INDIRECT(LEFT(B8;SEARCH(""-"";B8;1)));EMPTY)"'. + lo_data_validation->cell_row = 8. + lo_data_validation->cell_column = 'A'. + + " There was an error when data validation was combined with cell merges this should test that: + lo_worksheet->set_cell( ip_row = 10 ip_column = 'A' ip_value = 'Demo for data validation with a dropdown list' ). + lo_worksheet->set_merge( ip_row = 10 ip_column_start = 'A' ip_column_end = 'F' ). + + " Headlines + lo_worksheet->set_cell( ip_row = 11 ip_column = 'A' ip_value = c_fruits ). + lo_worksheet->set_cell( ip_row = 11 ip_column = 'B' ip_value = c_vegetables ). + + row = 12. + WHILE row < 20. " Starting with 14500 the data validation is dropped 14000 are still ok + " 1st validation + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_list. + lo_data_validation->formula1 = c_fruits. + lo_data_validation->cell_row = row. + lo_data_validation->cell_column = 'A'. + lo_worksheet->set_cell( ip_row = row ip_column = 'A' ip_value = 'Select a value' ). + " 2nd + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_list. + lo_data_validation->formula1 = c_vegetables. + lo_data_validation->cell_row = row. + lo_data_validation->cell_column = 'B'. + lo_worksheet->set_cell( ip_row = row ip_column = 'B' ip_value = 'Select a value' ). + " 3rd + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_list. + lo_data_validation->formula1 = c_meat. + lo_data_validation->cell_row = row. + lo_data_validation->cell_column = 'C'. + lo_worksheet->set_cell( ip_row = row ip_column = 'C' ip_value = 'Select a value' ). + " 4th + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_list. + lo_data_validation->formula1 = c_fish. + lo_data_validation->cell_row = row. + lo_data_validation->cell_column = 'D'. + lo_worksheet->set_cell( ip_row = row ip_column = 'D' ip_value = 'Select a value' ). + " Increment row + row = row + 1. + ENDWHILE. + + IF p_sbook = abap_true. + DATA: bookings type TABLE OF sbook. + + lo_worksheet = lo_excel->add_new_worksheet( ). + lv_title = 'SBOOK'. + lo_worksheet->set_title( lv_title ). + + SELECT * from sbook INTO TABLE bookings UP TO 4000 ROWS. + + lo_worksheet->bind_table( + EXPORTING + ip_table = bookings +* it_field_catalog = " Table binding field catalog +* is_table_settings = " Excel table binding settings +* IMPORTING +* es_table_settings = " Excel table binding settings + ). + ENDIF. + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL3 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel3. + +TYPE-POOLS: abap. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + column_dimension TYPE REF TO zcl_excel_worksheet_columndime. + +DATA: ls_table_settings TYPE zexcel_s_table_settings. + + +DATA: lv_title TYPE zexcel_sheet_title, + lt_carr TYPE TABLE OF scarr, + row TYPE zexcel_cell_row VALUE 2, + lo_range TYPE REF TO zcl_excel_range. +DATA: lo_data_validation TYPE REF TO zcl_excel_data_validation. +FIELD-SYMBOLS: <carr> LIKE LINE OF lt_carr. + +CONSTANTS: c_airlines TYPE string VALUE 'Airlines'. + + +CONSTANTS: gc_save_file_name TYPE string VALUE '03_iTab.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + +PARAMETERS: p_empty TYPE flag. + +START-OF-SELECTION. + " Creates active sheet + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Internal table'). + + DATA lt_test TYPE TABLE OF sflight. + + IF p_empty <> abap_true. + SELECT * FROM sflight INTO TABLE lt_test. "#EC CI_NOWHERE + ENDIF. + + ls_table_settings-table_style = zcl_excel_table=>builtinstyle_medium2. + ls_table_settings-show_row_stripes = abap_true. + + lo_worksheet->bind_table( ip_table = lt_test + is_table_settings = ls_table_settings ). + + lo_worksheet->freeze_panes( ip_num_rows = 3 ). "freeze column headers when scrolling + + column_dimension = lo_worksheet->get_column_dimension( ip_column = 'E' ). "make date field a bit wider + column_dimension->set_width( ip_width = 11 ). + " Add another table for data validations + lo_worksheet = lo_excel->add_new_worksheet( ). + lv_title = 'Data Validation'. + lo_worksheet->set_title( lv_title ). + lo_worksheet->set_cell( ip_row = 1 ip_column = 'A' ip_value = c_airlines ). + SELECT * FROM scarr INTO TABLE lt_carr. "#EC CI_NOWHERE + LOOP AT lt_carr ASSIGNING <carr>. + lo_worksheet->set_cell( ip_row = row ip_column = 'A' ip_value = <carr>-carrid ). + row = row + 1. + ENDLOOP. + row = row - 1. + lo_range = lo_excel->add_new_range( ). + lo_range->name = c_airlines. + lo_range->set_value( ip_sheet_name = lv_title + ip_start_column = 'A' + ip_start_row = 2 + ip_stop_column = 'A' + ip_stop_row = row ). + " Set Data Validation + lo_excel->set_active_sheet_index( 1 ). + lo_worksheet = lo_excel->get_active_worksheet( ). + + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_list. + lo_data_validation->formula1 = c_airlines. + lo_data_validation->cell_row = 4. + lo_data_validation->cell_column = 'C'. + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL22 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel22. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style TYPE REF TO zcl_excel_style, + lo_style_date TYPE REF TO zcl_excel_style, + lo_style_editable TYPE REF TO zcl_excel_style, + lo_data_validation TYPE REF TO zcl_excel_data_validation. + +DATA: lt_field_catalog TYPE zexcel_t_fieldcatalog, + ls_table_settings TYPE zexcel_s_table_settings, + ls_table_settings_out TYPE zexcel_s_table_settings. + +DATA: lv_style_guid TYPE zexcel_cell_style. + +DATA: lv_row TYPE char10. + +FIELD-SYMBOLS: <fs_field_catalog> TYPE zexcel_s_fieldcatalog. + +CONSTANTS: gc_save_file_name TYPE string VALUE '22_itab_fieldcatalog.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + + " Creates active sheet + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'PN_MASSIVE'). + + DATA lt_test TYPE TABLE OF sflight. + SELECT * FROM sflight INTO TABLE lt_test. "#EC CI_NOWHERE + + " sheet style (white background) + lo_style = lo_excel->add_new_style( ). + lo_style->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style->fill->fgcolor-rgb = zcl_excel_style_color=>c_white. + lv_style_guid = lo_style->get_guid( ). + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->zif_excel_sheet_properties~set_style( lv_style_guid ). + lo_worksheet->zif_excel_sheet_protection~protected = zif_excel_sheet_protection=>c_protected. + lo_worksheet->zif_excel_sheet_protection~password = zcl_excel_common=>encrypt_password( 'test' ). + lo_worksheet->zif_excel_sheet_protection~sheet = zif_excel_sheet_protection=>c_active. + lo_worksheet->zif_excel_sheet_protection~objects = zif_excel_sheet_protection=>c_active. + lo_worksheet->zif_excel_sheet_protection~scenarios = zif_excel_sheet_protection=>c_active. + + " Create cell style for display only fields + lo_style = lo_excel->add_new_style( ). + lo_style->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style->fill->fgcolor-rgb = zcl_excel_style_color=>c_gray. + lo_style->number_format->format_code = zcl_excel_style_number_format=>c_format_text. + + " Create cell style for display only date field + lo_style_date = lo_excel->add_new_style( ). + lo_style_date->fill->filltype = zcl_excel_style_fill=>c_fill_solid. + lo_style_date->fill->fgcolor-rgb = zcl_excel_style_color=>c_gray. + lo_style_date->number_format->format_code = zcl_excel_style_number_format=>c_format_date_ddmmyyyy. + + " Create cell style for editable fields + lo_style_editable = lo_excel->add_new_style( ). + lo_style_editable->protection->locked = zcl_excel_style_protection=>c_protection_unlocked. + + lt_field_catalog = zcl_excel_common=>get_fieldcatalog( ip_table = lt_test ). + + LOOP AT lt_field_catalog ASSIGNING <fs_field_catalog>. + CASE <fs_field_catalog>-fieldname. + WHEN 'CARRID'. + <fs_field_catalog>-position = 3. + <fs_field_catalog>-dynpfld = abap_true. + <fs_field_catalog>-style = lo_style->get_guid( ). + WHEN 'CONNID'. + <fs_field_catalog>-position = 1. + <fs_field_catalog>-dynpfld = abap_true. + <fs_field_catalog>-style = lo_style->get_guid( ). + WHEN 'FLDATE'. + <fs_field_catalog>-position = 2. + <fs_field_catalog>-dynpfld = abap_true. + <fs_field_catalog>-style = lo_style_date->get_guid( ). + WHEN 'PRICE'. + <fs_field_catalog>-position = 4. + <fs_field_catalog>-dynpfld = abap_true. + <fs_field_catalog>-style = lo_style_editable->get_guid( ). + <fs_field_catalog>-totals_function = zcl_excel_table=>totals_function_sum. + WHEN OTHERS. + <fs_field_catalog>-dynpfld = abap_false. + ENDCASE. + ENDLOOP. + + ls_table_settings-table_style = zcl_excel_table=>builtinstyle_medium2. + ls_table_settings-show_row_stripes = abap_true. + + lo_worksheet->bind_table( EXPORTING + ip_table = lt_test + it_field_catalog = lt_field_catalog + is_table_settings = ls_table_settings + IMPORTING + es_table_settings = ls_table_settings_out ). + + lo_worksheet->freeze_panes( ip_num_rows = 3 ). "freeze column headers when scrolling + + lo_data_validation = lo_worksheet->add_new_data_validation( ). + lo_data_validation->type = zcl_excel_data_validation=>c_type_custom. + lv_row = ls_table_settings_out-top_left_row. + CONDENSE lv_row. + CONCATENATE 'ISNUMBER(' ls_table_settings_out-top_left_column lv_row ')' INTO lo_data_validation->formula1. + lo_data_validation->cell_row = ls_table_settings_out-top_left_row. + lo_data_validation->cell_column = ls_table_settings_out-top_left_column. + lo_data_validation->cell_row_to = ls_table_settings_out-bottom_right_row. + lo_data_validation->cell_column_to = ls_table_settings_out-bottom_right_column. + + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL25 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel25. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_excel_writer TYPE REF TO zif_excel_writer, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_exception TYPE REF TO cx_root. + +DATA: lv_file TYPE xstring. + +CONSTANTS: lv_file_name TYPE string VALUE '25_HelloWorld.xlsx'. +DATA: lv_default_file_name TYPE string. +DATA: lv_error TYPE string. + +CALL FUNCTION 'FILE_GET_NAME_USING_PATH' + EXPORTING + logical_path = 'LOCAL_TEMPORARY_FILES' " Logical path' + file_name = lv_file_name " File name + IMPORTING + file_name_with_path = lv_default_file_name. " File name with path +" Creates active sheet +CREATE OBJECT lo_excel. + +" Get active sheet +lo_worksheet = lo_excel->get_active_worksheet( ). +lo_worksheet->set_title( ip_title = 'Sheet1' ). +lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ). + +CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. +lv_file = lo_excel_writer->write_file( lo_excel ). + +TRY. + OPEN DATASET lv_default_file_name FOR OUTPUT IN BINARY MODE. + TRANSFER lv_file TO lv_default_file_name. + CLOSE DATASET lv_default_file_name. + CATCH cx_root INTO lo_exception. + lv_error = lo_exception->get_text( ). + MESSAGE lv_error TYPE 'I'. +ENDTRY. + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL6 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel6. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lv_row TYPE syindex, + lv_formula TYPE string. + + +CONSTANTS: gc_save_file_name TYPE string VALUE '06_Formulas.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + +*--------------------------------------------------------------------* +* Get some testdata +*--------------------------------------------------------------------* + lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = 100 ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'C' ip_value = 1000 ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'C' ip_value = 150 ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = -10 ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 500 ). + + +*--------------------------------------------------------------------* +* Demonstrate using formulas +*--------------------------------------------------------------------* + lo_worksheet->set_cell( ip_row = 9 ip_column = 'C' ip_formula = 'SUM(C4:C8)' ). + + +*--------------------------------------------------------------------* +* Demonstrate standard EXCEL-behaviour when copying a formula to another cell +* by calculating the resulting formula to put into another cell +*--------------------------------------------------------------------* + DO 10 TIMES. + + lv_formula = zcl_excel_common=>shift_formula( iv_reference_formula = 'SUM(C4:C8)' + iv_shift_cols = 0 " Offset in Columns - here we copy in same column --> 0 + iv_shift_rows = sy-index ). " Offset in Row - here we copy downward --> sy-index + lv_row = 9 + sy-index. " Absolute row = sy-index rows below reference cell + lo_worksheet->set_cell( ip_row = lv_row ip_column = 'C' ip_formula = lv_formula ). + + ENDDO. + +*--------------------------------------------------------------------* +*** Create output +*--------------------------------------------------------------------* + lcl_output=>output( lo_excel ). + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL5 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel5. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_conditional TYPE REF TO zcl_excel_style_conditional. + +DATA: ls_iconset TYPE zexcel_conditional_iconset. + + + +CONSTANTS: gc_save_file_name TYPE string VALUE '05_Conditional.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + + + ls_iconset-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights2. + ls_iconset-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo1_value = '0'. + ls_iconset-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo2_value = '33'. + ls_iconset-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent. + ls_iconset-cfvo3_value = '66'. + ls_iconset-showvalue = zcl_excel_style_conditional=>c_showvalue_true. + + lo_style_conditional->mode_iconset = ls_iconset. + lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 4 + ip_stop_column = 'C' + ip_stop_row = 8 ). + + + lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = 100 ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'C' ip_value = 1000 ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'C' ip_value = 150 ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 500 ). + + + lo_style_conditional = lo_worksheet->add_new_conditional_style( ). + lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. + lo_style_conditional->priority = 1. + ls_iconset-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights2. + ls_iconset-showvalue = zcl_excel_style_conditional=>c_showvalue_false. + lo_style_conditional->mode_iconset = ls_iconset. + lo_style_conditional->set_range( ip_start_column = 'E' + ip_start_row = 4 + ip_stop_column = 'E' + ip_stop_row = 8 ). + + + lo_worksheet->set_cell( ip_row = 4 ip_column = 'E' ip_value = 100 ). + lo_worksheet->set_cell( ip_row = 5 ip_column = 'E' ip_value = 1000 ). + lo_worksheet->set_cell( ip_row = 6 ip_column = 'E' ip_value = 150 ). + lo_worksheet->set_cell( ip_row = 7 ip_column = 'E' ip_value = 10 ). + lo_worksheet->set_cell( ip_row = 8 ip_column = 'E' ip_value = 500 ). + + + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZDEMO_EXCEL23 +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel24. + +TYPE-POOLS: abap. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + column_dimension TYPE REF TO zcl_excel_worksheet_columndime, + lo_hyperlink TYPE REF TO zcl_excel_hyperlink. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE solix_tab. + +DATA: lv_full_path TYPE string, + lv_workdir TYPE string, + lv_file_separator TYPE c. + +DATA: lv_value TYPE string. + +CONSTANTS: gc_save_file_name TYPE string VALUE '24_Sheets_with_different_default_date_formats.xlsx'. +INCLUDE zdemo_excel_outputopt_incl. + + +START-OF-SELECTION. + + " Creates active sheet + CREATE OBJECT lo_excel. + + " Get active sheet + lo_worksheet = lo_excel->get_active_worksheet( ). + lo_worksheet->set_title( ip_title = 'Sheet1' ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = 1 ip_value = 'Default Date Format' ). + " Insert current date + lo_worksheet->set_cell( ip_column = 'A' ip_row = 3 ip_value = 'Current Date:' ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = 4 ip_value = sy-datum ). + + lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet2!A1' ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = 6 ip_value = 'This is a link to the second sheet' ip_hyperlink = lo_hyperlink ). + column_dimension = lo_worksheet->get_column_dimension( ip_column = 'A' ). + column_dimension->set_auto_size( ip_auto_size = abap_true ). + + + " Second sheet + lo_worksheet = lo_excel->add_new_worksheet( ). + lo_worksheet->set_default_excel_date_format( zcl_excel_style_number_format=>c_format_date_yyyymmdd ). + lo_worksheet->set_title( ip_title = 'Sheet2' ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = 1 ip_value = 'Date Format set to YYYYMMDD' ). + " Insert current date + lo_worksheet->set_cell( ip_column = 'A' ip_row = 3 ip_value = 'Current Date:' ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = 4 ip_value = sy-datum ). + + lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet3!B2' ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = 6 ip_value = 'This is link to the third sheet' ip_hyperlink = lo_hyperlink ). + + " Third sheet + lo_worksheet = lo_excel->add_new_worksheet( ). + " TODO: It seems that the zcl_excel_style_number_format=>c_format_date_yyyymmddslash + " does not produce a valid output + lo_worksheet->set_default_excel_date_format( zcl_excel_style_number_format=>c_format_date_yyyymmddslash ). + lo_worksheet->set_title( ip_title = 'Sheet3' ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = 1 ip_value = 'Date Format set to YYYY/MM/DD' ). + " Insert current date + lo_worksheet->set_cell( ip_column = 'A' ip_row = 3 ip_value = 'Current Date:' ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = 4 ip_value = sy-datum ). + + lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet4!B2' ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = 6 ip_value = 'This is link to the 4th sheet' ip_hyperlink = lo_hyperlink ). + + " 4th sheet + lo_worksheet = lo_excel->add_new_worksheet( ). + " Illustrate the Problem caused by: + " Excel 2000 incorrectly assumes that the year 1900 is a leap year. + " http://support.microsoft.com/kb/214326/en-us + lo_worksheet->set_title( ip_title = 'Sheet4' ). + " Loop from Start Date to the Max Date current data in daily steps + CONSTANTS: lv_max type d VALUE '19000302'. + + DATA: lv_date TYPE d VALUE '19000226', + lv_row TYPE i. + lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = 'Formated date' ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = 'Integer value for this date' ). + lo_worksheet->set_cell( ip_column = 'D' ip_row = 3 ip_value = 'Date as string' ). + + lv_row = 4. + WHILE lv_date < lv_max. + lo_worksheet->set_cell( ip_column = 'B' ip_row = lv_row ip_value = lv_date ). + lv_value = zcl_excel_common=>date_to_excel_string( lv_date ). + lo_worksheet->set_cell( ip_column = 'C' ip_row = lv_row ip_value = lv_value ). + lv_value = lv_date. + lo_worksheet->set_cell( ip_column = 'D' ip_row = lv_row ip_value = lv_value ). + lv_date = lv_date + 1. + lv_row = lv_row + 1. + ENDWHILE. + + lv_row = lv_row + 1. + + lo_hyperlink = zcl_excel_hyperlink=>create_internal_link( iv_location = 'Sheet1!B2' ). + lo_worksheet->set_cell( ip_column = 'A' ip_row = lv_row ip_value = 'This is link to the first sheet' ip_hyperlink = lo_hyperlink ). + + lo_excel->set_active_sheet_index_by_name( 'Sheet1' ). + +*** Create output + lcl_output=>output( lo_excel ). + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/ABAP2XLSX_V_7_0.zip b/build/ABAP2XLSX_V_7_0.zip new file mode 100644 index 0000000000000000000000000000000000000000..24789f84dcd648b05addad1141133528ae9f709f GIT binary patch literal 288666 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�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 @6cY>1siteLiluJ&!Uews39<2|Zy!)9!ZU=;+8U zLq3f+3(+)b4|M{VJd*==AJO}hPIH{h=G#OcPMHey$7w{%am4bs`!(Mk=xqplB!B}S z0zInEjL5w>PB$#RqQG%vnB{^$d<3Q;eN=L4y(Sr)hE(1EhGb+SVEuFUO(Ur+EjZZtaiH#7p3iN4$Hy0fV{4YjfV|Bk;{sBuX$*&3o)35e zymvGocVYV6Xe3C+bSmqvITPwb?OEOup>?3V+!W#WD)&qqc4#2%Q*;arE5zvnN;b?? z->86#O(ESuwrwg0w-K+I#UR&~B&-!v-0R}xXutWWG`^YX(cH3`No52R$t%dc`)(FI zbsmZ$i!kXaY`YS-d`o?4Byqj2vXgrRb9eD>1??Wi`FPSPU%0GX6bd(NQCYRqwwz6y zP`>!Ft#wYTsdDD|%OZpNNd7VLOOz1`&#fXC1NSD(gju?Jy{4?Bc#~E=exS9T6=&Nt z3vHh>ZH`r=m-H+M$#}p5sCMM1=H34>v_4{*ksxO>xIRXFRj)>ze5x zh;^NFNo|G;`EE;7@fuP7aG&AKTl0OHm;ZrV7xNYI&ZA(%_)2zx(yl?&B%2dnw`$=Uqm3ei<6)JbQODBVxB(QFpvYMa( zS98|oO~n--rQQ7UQ?eAS?>mQwa~F>Ri)Qz`PK#_Bm)*S80^#-_e*9Vqxb){*vh6Q^GU_Se~U^n6lQAO6UG zX~Wxjhf{t){cMJ{J(w!8P3XlUW+Sxv-uPW`_C>h@)t!(RtM|a}bO2CZy&P4%dE-tB zkGoN)KcFrm?pPVFwiZ}Qg%F5t;$Ty47sCsuj%ilzax#mlQTua-gg0Mxcyq9?qq(YA zr?Za%wb@+cL*qhd?MGCzqB*2gWMITJccmhWp*Ta3#C2i!@`SEXUUa&Hl(kNuexlaBPn!CvK zw>7iH7L?{IF-QldY3gu8Jiq$xi(%c~u`8pP=Sh+|Z)%4S1dwjI24*h-62snvM$|^j z8wz{a{!o-*_0 zTgG5IzTr{8iZ+}xUEittPR4;kqVAL19gK8`^Hj-mjb~?Sm#`GL<=Jn;G8Ur7d$T#* zxBk8PFbWIR%pzScjvC%HuY zYJ+WKh>@v!>NYQwBZ2E2CQG~+{$7&MGG(3B5re=vjEt}(oNmd7C#z#uL^WY)wMm>qSgqktFxSy?b93B?)^K1⩔V&bCKM9pWr;d48O9g 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

T|?MetaA>NUO1ib%#e-6o(EF4B{ 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

Vo%|cvqujza4k@*Y4-je+O97 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�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�QJUL;8k7|2w@i&j@6~qz@Sq#dsQ3E-h7{ouy_&=G&WdECObbs%^!n;6Wh%*M! z-ulBq23&WBBE_;c+dqYYN}(=N0*1Pj`9F+el_tjM{%t3_5)7P=@14iR2dhv-s%n?M;D{g>MNBW1~BP8n)r-xe7@_!VOHo%EP1kDjPbho0QCR{E=B%!Cr|%DXk^z}rPP z=b0mb-~*FB)PA>&TEnCU$t=8rvWh7}S;b20L@dvttYY_2axg_G?HH6Q>_lO7jLVO%rn+ zGT*OoADB`D+%`3n*GT~n$*;TU#rg^lyy+oNyV^lClFLDJ73yVDMOSZANPhwJ9_!v3 zWt;3J4N`pwE$1VJ$@XIJx#1blHA}IbHsan#Xt3?I1Fn^@?ef3h%cJ2JX>fBwMHg1k zPjYm!DpJ1ZQnv+6j^5=Ml^C3<3%RWzKW#Ih);_i%g{f+qS}_pvMfvn3(DI3#Gs{_rF(fm#o*hdn$Sv;_F3N_5Z5QsY?^Lm zU6x$W@uR*sg-#A++@Fw?*e7vh8ez2#-ye_nOjKf+x6m{9X_H*FkAqItpF?6(KeRr7 z&rNezU-MR-ownE@(f3@Hf^PgR8Q_OgyS?egTU)A3(1fvleQjXrDBM*x)!eD=<>k^H zU+Mf#ZGaPN?2p*y41u&f&qv%E%k9W(f`Ff$GM z`44Y1bk@NS=_2nx-JuLU%+pXblNocbHHKMUYG$G8WRSYX%d5zX1LFCIKbNv~s3zL+ zE~~HMx6i`qtE!KGD%nF4&LjyLXBV9ei63^?0X_R*hb(bX_U9VJV6Xz`Ddkh1xF~W+ zCRj$FD@)QOCS@m1XOo2{S=Ia*XS+^u+yH3r)kP<%s#rRYY1J9B_r72F(igA3VaVOX z6?V~8(-nx%E%?gIc*WN_(;N6PckdMCFXso2dEhAV?mw744r|N=M(6ot zd+}1{cdX8|j|se;7n_tfTfgxKv2fk)A-@Zq`w6fi3!*_?@b>`0O&HmYaQxKz>wy$5 zexn!s@$GTpO21oLqB>|3et(eJS+zrfX{P9`U<_V?iyd0@US1_=^q8)*517}Xum62W zv9s<eksjZ=s3HllOJ|)f`VD#}V?VK6(3LWyQS? z&~%cYP^@F3JS>2^Xn{Rk@UJseM0~Acp{+~$RebULD&CrpAm&6Cn;7+KWKK+XQn*E0 z_e9XvL!WiYKLCNKFk7qeLs&x(qfJZiUf`iCiter00=bLJ8v~asPvJ~h;SENhEz&Y9 z%apzvPiqrOcRKyOnMb$U1!47e>SXor@`MbznJC+DO12J-6rDlEsH=(#`zz&r#5U#( zN7G5`EgP*Jf!hd2*DDN15r=2Lc=nLOAMuv}TM}9^*BhlP2HWCk&eze!H*W(gC0!qB ziVBCN5-rT%R@3;#xM_1JY%M0nDX*hBvxmG1)JcZ7C0q_hZLb-V0=4-?XWO2-$fItR z8_)T*QRCq>d>r-Ae~;h-!*Vs||6TPyT&Z!-&xoehwv7^1mjZAVr3ZGP&>LqtzcHMA zKsvt3_z@ylw1YGKc~e!$QKphiAzIo-t4lpzXG)fQn)aK#LJiS;Ti=0e`D54xSI=gN zQs+RNgqn{E%d0*&8#;NL&3&)hy1}7Dbncwwdib&D#N8lb)VmwGcJjwcZW=``!A8I? z!i%&=YgP2Z54726JsCZwlDa78j^y>?}ZWd#?a3jXo~ z#sb_loB(EHV^8^k`}cV1389M(R-<2)cr4dEOQu8L>Q@<}X`yy8<&k`g*4mtw$D#zy zZ?YBMG-FT2DC@+SvSl%VV{Y$c8mQAWc5Cx)57@r;c-=n~sNKd)dGe`uHbq=#hN_Aw z`J|T7yrJ3iqWF0HXm>00qjh3Z`0CC%NF>jm3N_yBWbz##X~=-A{$+?4TA}~CY@N!! zo`1<^(e6OLXwGZ!9aOUrMgVjP% z_=?3IGrdw56$o%#m?xV6KS030UImsHj;?k#uoQaBKDY-~lPV2=&|O+Bp=uF0Rv7nh zb}oHSR3ZAKk`E)3ig&pzB<6S%hy?SLOiXTg>}^JS&VLxw@Ge&heX_f>F|V4arN*a> zmuts;Y}LQGh-J?EE>K!6EeCh)jHY;a&-lF9`Y;9yriHhC`WUXQ0Cg+z?!$n&FWAH& zOUH>>WO^)-)<{Gl*mb{RtD1`2&-^{Z+e^}-h2=_r&-0ld?ql6|O9rW2h5HSIgwb`v zB!@gePj2B^c)b0^x?ibe#WATZ(sWY> zm7zlJPPW~gai8)-a4prmmyoL?xX4WYsn(!;r0BxDwZ!Up22NFNmwn}FNy4<6#U{HX z&wZm-xf-@DFk=U!2DoI9KTv+#jOkg{7nVVxWEc3v*%rxHc7Vi(s&Iaw|BFZIgWz8z z+^;(Q>JV-IlPW_3J@C~Fx2uX=SC6K}xY;RM$-@PrIG&FS`lKI`MwBbPKg^TUn;Frn zO}U1@+yLY_XTg^9$EA1Sq3@b>WlLx%v zSG?={uiVz`UoL$0o`!qZMz=(;846YxD>ZINq+$2y*JT~YEHy@zGi1Mf66xgS>3(nuX2T5?Sap zuH=j+Dz67KlAA6_VcgF&i0^)Bff6)V2}O3a7DWbX?wZ!FSp#tJ6ipspCzLML)qKNV z1dr8x2+N7fPEw@v_tELKSGu;n`*)|r84K~diqXzlv#&(-zrL%bF- z7g_kF_T&yJyR_4kNkN{AU7(Q2xo2ay88AhYxkTYQLys~#XSsmZJs z>iE1=UHV2`{tveycv=KIc+YX;L;W6|EO(ftqxBtmlMoYgsB(=I zq9xcwDjF*v>{E5+pxlOhF+?`t$$wtuG9j;WQ-2CcdHzJd4`u%QRc`NJuX1j6f4$08 z7XUF(ZIZyy1nr^!<|q7{G~_?|3I8Sy`Cs@6|9+JV{gZ(WeU*cTy5S+(P%7!tKlwI7 ze>kocAhW*z;#K?tfJVYAK^jns!zTuiIW(X)5@k>K4*;WqtCShuSBLw*>JljyY;s5) zM1|Ny=5@(a%Jp87vz>iM$!^TU7SEuXLBd2>McpNu&vkQ-EOVPh^K7tk1!qRNa28)R zo0}io5c)f27@1|xlliZ+H?7x)V^!g8ZD?EZ2aq#Vcu2h}QI zLF1E@4mkjUkZFJ#R3{dyBjGdeWr6+@#8<=xqMWA$2o_Isu(QzK4;CICZfDLH_Eu92 zl~Tm5Z6ZpDw}>~5Zf^18qWFNM{q8P8)uV)v3&t5J1$~WW_Sw}V1?O45%yw&y(G$of zA?>Zswch&MM5|T3T({3quCkp11{o@#J~TLh32vuQSYJcLvS;}K(9?^lE1zb{ou!Ew{{Rr%$eBC<3RRln zxQz7XQ%ldCt(QhB~v_U-3bs!@tDv+w_J=T9^kd$-xU6 zFVpDJ(dg;*Zo`SfJ;O_!qEKqMAmbj*=Ieg>Wg0}CrZC5eww>)cE>8Z~I)PXVi{@eDfdH5nm{W+kU#i4?Qf?kTjE+h-)`Wo!U%{g&`Jou!hKw z(fIL_%!7NbNs`Agx$iu2w7d&VqPHvbza7K`X`Iv1omr+Trfm+KQ%LNRmKcV z#OSfk1Bzsymfnvh%5pn?1^8bw9weum$2qtmiP0Yg%VH94$DliF+|=lW6xb^C*pE7h zcN<_tGcgT(kX|1}K(^#*yOa}(^qavMhkpnJ#&>S3(PEw#(FV3ow(g-j*@g025}nfx zlr_MnqpCCR^;DM8cO7TGCzs^LNst(Bc5g?yK0imoi8@oJx9BfUme3jK1}QkL$BnC4NH8 z`(ZtyhZm+z6a-1liflM%u5R>s?~hAP>5al7k1&g29ys7uINpl+Ln^g&jD5Z(HT5M|^yuNx|qHXtpKH7B0-w z&_DFr`dnr((%8IByYdWoZ%DE#^0Qxx8p&2i1|U~&&{`qE%JudM;o+iv7?2^%LY*&s zV)inrc+W&C{mvkCZNLFD?RIF5@$vn)ksX;_=C@QCXfgR;Sto`qLO$9WkD*q*cI_&) z46_ug8Y^cDOjn5dkYV6nE9j##)6J3cl|Ah?ps{tZ;RQ}%0SNI_nxdsk-sTWCCgYCTccf6enRXfW;FD~J>Z$zX^sG_ ziKF&Ied$X0Fs=Q7!mQYpr?Fh{HD9=bn$LyPBfp+PrckA^m%u?e-OUc8F~(*tr-HGK zPtApnNMW&y(mhC^Wmj$x+~wazpu?|{`9as3Qn^^(i~h54mlS_-n!wR7itkC}hq_1F zX$hG?hgdpxKNX?dOP^1~bXe)d=Mv~OX6=&gig z%_*z$&vmnYBy#1L`^xn@KDhvMvsU-0G5Ee@@MXiD9P=FmNf-MikrO95U1yb zGxN@yo!~$bk&GBbnnChHOeMh{-fik2F~YNfPvW{O0_YN17eyr-S6iSjo6rEBlkUExJ{CyW&YOvow?-`_X?h``9VPLKaqgp5`^ zxu|Rdf2}&x-<4usx4pXj&4e4LGK~~7d6QN}al3iO?rg$dqL)gW(=i=bsDy{(M?pYH zR;}_=Z~THl$1`aL{OQ)!j@1r$HBHUY+nG^4cD&kqD@z-oP?;onX|I+~;Ux+1qb^qW z-xTLfvW1yQLxf*$IbSQpPy&u9yly_c^T7TgLp6WOUEh;_sC%AXnP%B|xnwD#eAIMF z+5Z`2XH3WX4$m4KG*4~4PX|+PrVP7WZhHSwk@89sOce-Bt-svHgxrO>h}QdC`pzYR z;{zp|w!< z0thW(k!RO^_2KFTDDw`_di{Y-!rhr^;Rsr+cP>Tsqr2x2-I{qVRv#p^u*3u)0ntE{ z8BDhHJIn&=aV&w*%!xf{wnGeLRQMU9pa;#D==eLUf)^@Eg4#GkZM+~_&fWh<=0vPE zL=`3BuWXB{!NWf})o6`DO#dDK@6^KX{yRk?a9J|D_=g$Yw|`P3NWS9lp<_jDr$`Px zC$BzOO#$AxN#;gnIWDPWmF&-Qiv(3j8dxUUPY=_hOLb{EyWVT)oo*EWB8U@=kPo`l z53fa8Z?FvvATz-LLJT$$XSK| zPg-lK|2;*U0OAlfK&GGoDd~R_sgw5q>=%UG4>c6mu^w^l*Q`y|9Y0)yj-ijyQnJaM zn19?tkc1J8G(KN5w2H5MJb@|3DCOgv!tytNT-ZqR2o-f1h8fPzwHKFHU+*06mtk2+ zS8HU*sho$(MA(uBXP4a>5`4-9@!mISJGPf7&=GAj#EVo#>Nq!)#@#$N9I3cnqzjK% zRVe4LaJ==q3O!4dj3ijoug6 ziC7jwBl`u=T>{9B(Rug<8uo{74pc&8{LWCh8g$bj6f!v|w~$pAg8`BILPo_|5Up{H z+Jw6Dm$iWYA!H+*UFv?tVwFXkro%z)Q?v7{g2mnPbIJQivm&D+=jlUM21NrZhc=`* zTC1I(HQzIBsYfWXXj@rVVISCfvp?N_CwMTO%Z7{T&7vNH!4K>CqLPl>sJWTCJ02_P zw9k?{;pw(yQBQEH5Okr0jJ#1y5^4B!afGav5TJ*-+paTMbU2&+_+8kUMWS#{Z>hh> z^6&)kEYx`LtY>HyTHf2_@F2eRGEKhRKC}8-VnA0zKRfACIT$bT!Hj9K*Og=TTog-0 z%!fYJM4%0KCW_v-TD9+2uR$=5_NL5SRzFkr;Hs6ebzYT7ik@iFot3ey;#}5HMOMf< zeJ0xw-@@pRxgM3+s?%62$#W*gTq-lnJP8qdRapjbj*j!`2waX)-SB#r-dy?yoG8Ps zN611tJ?Tcs+@U(r!J5g%`|h?6n>8J&Eo>*RhKTxZyzpfOFkLgg5am%WWrQ>V9+pPk zIy#@dMuj+>(r}0UGS;32S#|^GCel;=>t9wRTf9&pcl_R-X(SVrw!WG-w!W+QnWyAK z@)XgBWc)|%CZd?2@*_g_pwq#uw3lp zTNVk=YTL1_MJCgqw2Ub)Zec3M7?9qXcJD5bTWS^VcKaN>b;fv{jLX7Mt|*!aKH&W9 z_^y{!@O)?0Ikfk)Hiz#SpN=CB-*~j5{pl{wC1qQagxbQrjR$Au`$s?Uo^mQxsie^t zV%HAa@5eH!4?cX8^O;g7wSIFjcS%b(jw{Am zp%Ef8$I)!&-O^e&A>B5x@w|ISr#*<4)^R;7wX8Jt!!2civZ@V7|49in&PeOc0vZLue=!}VceJ3!7?yXvkeDJX;L?g<$U@`fDu&DL4#FTl~@F) zi9vkt65jI5vztQ_Y3-HB-8ei_26mNjy%L^5sHI5IilX-$b1w|3UH?6-y zV(X;J1IcYL_@tlcKORmN#Gi@kj$$qWQ=%z`xr0Kgm2(=YhcbpowzQk@s~W!~`GI{@ zIB=MUBQaDrX{jetcO1R%u|)0O_xBSvm%9z06q%$#fuEwc1w_-`o&f~*mdd>~ILYR$bie2g?d{zg>9rUsrpYasK zuHFV<;rMAguRjN-^vLpN_C|GCndPt*D2#8%dR3dhc1aAOJ~zocu<9`>VO?xI@l|87GKj!E!%Glz2B$Qsg7Sa*mG8rLJQwY1?X-5Z>`D6@=M!1V?4 z)~+mFu*)OW(gM1z^^)g=W8(;-KJ3*(_za)1=@$c6$)<*17-y15pFmzN=y1YQt3U0E7>;*+Z?6 z1yvTdCV~CNxFB37AR_2hLKK0GvbY-+h( z&WFyH{}VnA;!~MGTo(O5Neh1w;O72AfcvjVm(ai5tRH`>%0Li@$p_+MO+)-AC+6!oXy6y{7EFZSJ-?c% zTh)J+T+mZ8?B0Rh1!KK+Zve;gB3WKw`b|j97i1(eKkc}zs_69>)PbKkDx&uVjSZ=D z>lf|vf1l7y9`1cZ@Ou!FlNh!=e3#aO_BL-pXdtBHkj9$C5|0UhRtww`T4RHv8Ms0^ zm{7^j`iMFs$l%Hc(z%6#9q2%&c_5N4C}x5mM7jtCMKJjrF9C|Qun(2cKmie;01Hq! z1@XUO7vQY90+YViH_>qcXz6Gf1SYGUVY0o3i-p!*9vt{m20O!MZ9XL)XFJ^7ekPKl z4>h_`i^nxRS%u^E@aCLYA&LD&qKn4rqUz}j=dE;ibMgy@r0k1F&@f3ON^8fM2d16H z6=^U((BRVPyKac4bnVg+_3k8`&OW-3l47?w+dgWT=3z{qsdb-{hDpKn<=iwL`k}H+ zLn_8F(@AyhT~bT+;?*-6O8uvfC*_ATNz9MD^QW9iY0W<>q816oYInd&wD@PWk2crC zn+JIn3<8^NabJ?~jIvekwC6Uh;QU-Dyc1lk%K^7C>5aQ_<4L^EQCt{(NnbgdaLNGn zvJs7^wm40v&#M7&&iwKbjR>Okxv)Mn<1(86Fol}#NIwf=YZF2b2?zG;ChUYnKKi2xAxQSfk>=u`?1p@LxHtZnQ zaq%^n%eVZt#iIHv?9wKA0gZC!vtaNlVa{hS$H?93ft>ylMOMWoB7O?;>5kx0Gp& z=BB2^hz4Q>WEskP)WeLc(%U;+4IEgo+oi#=WV}6$QVRO@NY-(7KLtfQz_mTK_NF1R z>U{~go-pu@HQE`Ys_y-r5TcV(T4nJNe4EK3F^p-L5J#z~C5N&&8t=Q24hS7x8Kr3G zivPXyll~@93~lmVldeS2XY%xhc1v;hG4H3Jp)Xm;jJ^-cCr>$;isX?Gw7y{`*s<9S z9CD1|=RJm{O@f`YDt@bnUjQ7a|D8fo)6aA&y?8F09a6Hx562KFidMi}Br>N_vI8e2 zqSLx6`rQ-FuMg2;^Vc*?SJv%UIfA8biAb)wE@_JvQOvNKnFjPCtJjO@HS=2EUI%B) zy_U{1KFDX%&zG0qRZN~72@?vm?YNfMGDbA$9?zSAp%~k$ZG?&IF7$inL(O5;oSui= zlABh34&O-QY2rU#=5-5BC~oe>6ek*XJ<4eOj^Z3|9Xd**S}!(%?xKL7Bp~&apDRR` z#w8?&EbJPQ=MOWzD)~Mj89zKBO zHb{7I4c+k;9h23B^Vy6a@(Kd1VTF`(42oam9Y2?-7yqOV&S#e^wazRcy^9I6Viri>iz@QD>{-XC zvk@W^nc~(Z#C%$dOorPxapR$DR@hwL|JWYc*rJ z0t=Y+1ZFYC0k^)+NyxLxyHcvD6@Q2Pmt{r3zL(2IH?|_^%EBDlK-v4X{ChOrUNxnH zaVksaLN8`Co%&j@dXGh3s7%!b5!XQe z22l(GjTyOO1^GVl-GT*6oJ-HZ0)G*zRZO#QlA?>8n?!Y`MHeUOfg=A?B92#x#iEiW zhNAKiCh@rcw`y27r*Y%V?qmIOxHL&jA7jf#&MsE;ft|WDyb|S`;&erE(?IlP&m{cP zEREY#=GNokjh52sN|^RMeZ#D7jiK8KT4%0|WlK4Yd)py21`e3B?~klTLB=Ze+2v^si?j;wG26Yr%3egB%R?iex<04lEotJulz0d_dWY|_y zj|7$!C)p{IR(Zk98&*bMH;fu`bb%AK6uK&~Ja=eI`ja6uAf~n5sdR@H+&mk@STa&$?#rC;)JCFqKT^6h|ZOZE7eD!`Ed>%3CHd>uhn`qVrvgTvr42_Dtm=iI$he8C%GM|u( zE?J$%PA+q*fH&y;T6o?rk?J`)jJX#Fo70>?HEo%TTl9ZI zVk!G9NZ!&P*pM+$SAE}ndaaLOvN=PJFhfcz`NoJg*7w@|Ww5vZH_Czc$Yb@BhEECF zyb{jsC))zjiJOi;atjLL1QRjZsgo#_mz4Ry;!G)3bNlnp)R$4UZFWqwfnSwN0qwMJ z*i^Lm=+}?BT`t7p~;(yX7CPMj@08jkh%YA(*qEw=IBJ2w_2xU{SAi_uw)|(SiW#qcRJ&56ieu9MfjN4ge>Ns`#F)v51^X5JmLIvD2KxnDWz zcdM&#@6gfqvoYFr2P+&(6GlHDq+wys0hJWqHB`zA zN#j2~CAHKpTtB}}u<~-eq<%V&qJ7Uhj0)db+0yYKVpp9HnoQHK45wNyno?_u?H5CL zlv<@Pl%v$*RtDMR_z%C31(X{ml%M$dIpCe-Ka@s0FG6qwRHA^ zfF*%7`eVC0OHEpm2Gl=_rF-;2`Zq8|N%av6NMN8-mMbs9g+ z$TA4nbSVXiueFdLjw2Xl$r5y@k6ai1V%xWE?>e;?r*JCobCWgI z3)3mvlNc-$pA3_T)s`MNA#$LY(&{%oN;7n7+T9T@P@hLxI*c_J1YiZ$eObjf2@+G!n90T&#F_oRd}o9)N7BV@@Bi{gN!1^9P{_nNptD<*I2|{GjZAr z*C;I&>}wU9j)`=}qHVmMbfRUkwN*inLlY)Z!y&OGB@gZ^W>uo4%p|a=)NsqYV-&a} z7|5_&=%4#>?0&~cV%DgeC$g>yb_7v#MYW@VqlT}hM&hm28` z6&;EYGWtBf%N3N#32sQc$T?qdh048`edMhV{+_5;qF_a1xK>OLTn1N1? z3-Q<4J_C;&I6yiE=59St{XtRUUq2-a?q@rpsQ*=8Nq`aho~y%+ag$xz}T= zV;IpyO{0o)1{aTEBxv$}4o6El>1CTQ&nm(uFs#Q8E`KIH`)yAhHHA8ebuIS~R@9d> zNa;^6MCN9$K5e9e&8GQPhRpAkr&a>}5#v62g&%KiP>bu&o+?ln1qx(;N-GYy{wd#) z=G&u>yitQ3$tWTyUhyl2Bw{_OZt9Erwtsb^7gBuMdGfPTM?q)j#Y?wEPctoy)9MTJjn_EqAf1KE=c1!ziQ$7$@U|#k0Pjh_uDZb`2x)a=Hs$CvY@{ z_y^%9Cd(8pVkJ%AqAPkShbk_VsP@-)J<-&kUs`dGgc%3>0v|fPB|@0D-afvhbGF`; z*no3gX%UmoT+LfZHljs~Nj@bUO6^+9=mRx!qTd>Fy(^5xD}G&&uc11VqaV)}M0x&P z_5Y>vLf8G65dUD?vt;p@f zlUOI2Pm}GOnNtEBVH(CQO#{LpA&_>vmvhcZWe=*A83L9GoUxsO4(moMJO_mYPo@SO z5w{1QsAeQ%lL36@DueIb3J57#-SKMQEGZ2oZG=!4{Q%(lH5keFWuG}2SlCV;A}JrQ zjjtH@z-<>9@30PznKT&V4Z`6iyLDWK^!6AwS4(XFU<~;IuqVk}XSWnlL@k=6kaCI6 z9%{wwcNFWGZ@ki{Do(C_eRW0aupVvnBy>#{W{!BmR@$`LxOr-paCK$s5L5|qoeGD0 zrDZn` z3yvxnW_e}oD4shp>q=L>_fwZ4JM6qC#knjz=1((X<5Er?-p*(!vDZ&2!k(CA89bZX zTh<%1!~rNk{HT_l|BtP^sWIgG6o_XeY4ZnN>F=$(e<3Up{tIEr>%S0|panBr5;DP!|cg3BNGyZ2vA#CqO5pb~^X&-bFmk|jMh4SvH86q5cB zhrTRisnwl|95#R$Q7=;5JkuzjF6(Bpr;ac9wPf2o7-P0Dp*ab>xVudPKt4N*OKrDw z!F#g2hteN-g2Lw&8@__NZM+sZ{{@Exr79p8L$>1j^@jpsDhtve{jCvXt0YLf7YFp1 zLE2$5#MmFw!a?CcD7;c8-bO6M?q1*z7vz#jeF82e1Z zzp<&8S8h1=lS}fMB{Bv2Co^oz$GU9BACKBF$mgaexTtDN)hp`lYbu7HY0rlf2`<); zjEvHG{MH4^`PB3xvrb!{Z|8$tH57NEO}c0`IvI|26V70@7HBjc8TGklZyOrsn}a0y zb075TkIt%9)%FGuvGF3}XfH);FF&}Sufc+2a8k~)8J7;?g6e0BW(pRN?3n@lTl(wT zg;vZ?YW26s&>gD;7#%ChfB#U1=j_Jepa7Yu@j%&IbIZ|%>Z6HJsmhW5HB)1^YR~Jk;sK92p1&B*zrEo z{efeKH%&5TNk58dB&!V@_G@}B5ER?ri95%@>b27udBv*Of5_-(JUf6@7<;t2g`Xh4 zL`hKb?(vs)f=^VVG@IG_cYrAH3GCM$*kaNeDp(=W=@eR{1*V+OI#eQ^mrK(VFQgX` zm#s<2G`q6G=3ZMhB-rP8r%2^> z&-@#+WcJPV;fgtb6;p=!4otOM7;(I#fv!>1lws1;%h{P7>vqeIu4k`FA+ZZaRwc{w zu`)Yc8ws<$A5s>)9{S4dY&Lp7FbuAZaj(0iJd)&{!rc&a;QKtK8Ov52uFieh``T1W zHHoUr?&_}rDa4|xpG0Tsmd2@u=maLEWRy>d2OIiyhzeGZnVnP!kwc<>Wa{k9ehh7c z%b>rG@3`abG_B1-MWf0*+3)M`%i$8ZCtq`gQEc%h&$b z{Pr!dvV14!lVoECT{7#bGpaIbSYlg)TB9Cf1-K0~8~$d;AO?=T$YwR4BVzFscsL5E zvU$JT6roLc$}`yD6r_+&6tg#iF#n)X^!xPG7}G+@M|eo>Z2pAAwYAUOUw+li?<2zT z=jX=`1*uBd%G@H-&IEX`JW9uz|p|`LA-9Latk!iztVt77G^QbIZK0&ZeMoeT~jA4pbOD$es^r32o|k2Le3=kh0JhF?H>Q~A@#FJ zmbO$KCXO07&6)2F)d7OmZ4XO)^5kzX&YgNRXB6SzRp_Fp-#2k=^W=BF4$RjnRhnSr+2OAg)V&>A~z1Fwz7H}-cQUEyt(fpzH_+R zxJ~dxA`R%0I`t0eUJ~K)XyJ4?#K$Te%vUZR3ZI;sD4NpmF?Kdq*k{(QW@ar6`JvFh zy!#WVSYUUqe^6kT1TZ8vsYP59fB1SU7<}UFS+K}%t%kD6^t!WZ`bL>f<}fz8MDCD{ zzA|ze6uRiiTu50Bd|8Z7fJjx~8w4Ny{gC|Jd&3xjQ}{m)Cvy_=A_bzN@P=9iS=PZ* z5t{|az)Fv0bh(%+@mp`EXThS#$g!A$$ga)LXVksrKnoOf1+qg~gc#|suFHwFdmyG7;!@*NG7nzH$+U+n|uSVEBp=DA(D`w@(-=+*jXlZvWg> zvS8hf|ER_El#o2l*VxU&&}Hrx7?-MsVHx&bN;ygBuyUw2nUqJ(#^fzU^U+od*}g&B zn)oecl0lpH1aFNaL1ibFakv2C3QY@wY)#q0n{;jRqDq;1@wyeH`bbL|fLKPI_{>{& z{(Z10bC2GzKgYV_mzJ=)Hxxw)LnOM+k`4QfB6cbA-+nda>==tH#?@oG)fR?^D>^7{ zlYuLvj+7h~`$;y{>X|#wK#Dm(O4_JfaN~}jjqL6*?Be?mZMYXG4^-n~Q;HrMW73K~ zHEQp2sq?M8;i=*A1%`y3zGo&}Q5yLVlngSCWJPj4?PE zRO2Z*ESUdQNKvh32H4p%GE?M2Zit+fu+lrwKhQ5AS$Ji)uj2Ol2P1m$;-^%JOi_k} zcZQ`@4aVqTqmY>L`GTmJ0g&5LpOnIWB@hsxe^Hb0s|_SWzEhsGAsV(ws_1k;UO%P- z=#42)Do@G}9l^Cr`aPORQ*LVbtyBE7U68}45b7q~zrKP3iGv(gg)UH`qyiK8){%x! zS-u>|kX}u4pHfWx)n_qFd<41>Ay}m3Vn)I$yBicqqXW*}~uJSnwsraw8 zxT}R?)R~A!)MafZ$?e8*3+KE4fDpk5C>&uM|HDG=1{QfOjs5HbL*&7A@l7ZFa#&E} z*JMt)sEmYo>6=$IS>N$~P2GLuEmCx2uIz77MxiB023g&~a&lF2-5(}IrJS3Lp@}N| z&TKgrb5%_b0J@=C2E3;q$?kISt>tDaCZBs)%uPKhAS{_>-ngyhp4&FCADh=VCj#7f zd}UJTV&vPsk*YdyuxE1my`|J)1*g-x9yGpKN8xjfmkOsSq zJK`5kIU0J=QAbwKLv9((&b^OzvwCVAB>XaAt`_K146fA4uY$~HXL+=%X{?utGnZ>m z)A}492TcYZ8*XBXt~i;Gth;IkeUmmC)va>+@fXo+$Q+ynmc-*Vr~v(s%vx?!2g9k9_E7jrro_s@AUJ!y}=Kv&su4M4+ZK$W3L~llpRKG-cLx0ExV`s~2gU zhhouo&u&_o?Dd?9i{kE6d|zi}q~m2q8@QowCM9I8tFK-qSPqv)7ONyD5PCy>03ZI4 zG22w22iNrF)T&Kbh_ar03Gz@)>@Qov^ah*adAT2 z7Tq%Mjgc~6RqcJCt3TTvtQQR<4Aj@jKB!SDrvX2jr-vWdp~wa-8>zpJPDAJe<$&lI zE}1Z19kMnTekunRDN%uoONw;utZCxZl#AOz!lsiJ`UcXzh{OWg04nq~$nTOG`b+77yH2HBR))y@C8KDhcfP zpX(i!1 zXP5yWxwkz21=+`9ve4x859b#MECKTs`^gc8u+`od@ttKV z?}>fz-$4JCs4{|+ywK+>%fW@6V;73a4)#q?%v_<{CTPTHj2SI{(p8o2Sb`)AYj0%- z$~xY_I4$PJGL|rA)ug*EW~Nd&co4bYjxKg3umZQ5{x?=QGNnOQp%prZS9 z<+$2kj?oz0x$n{#NS+rvYsl_9&#ABA$2kPi9|DZ#Tg5mlitl+xu8@xNE@g)G!s`6d ziD}NY@;*AS@e4;S9BeYZ!WJ#Y1v$?31QGXs`+;f3>P%pkBW=VX z#ZS6HzAXjyXAt#GKEh-g_k&oaoh0kcuthXPSL+h*Mejv{O&^ttd1N`V=IBO?JX7*F z;QR(w`ilw-{6&+BlD!U4x;EK?eqoX6fxZHLO9iL*;?RY?g~kPKn+3i1mxC_7Z|rvK zsy;e^A^E>MF=a_*NqLPw@a$x(YjN}U%zNRl`}94_fWZI{hpf;8OlpNTP)%Q77f65e zjHd9Doov-q_LcP~fNj<1Br)Q5V9SJep^NN_t1}_i7=L%j4#*G4sTn4G7u{q)@qu<< zfVYcTCVI?YXXtW7|6eYcTDvyvCacAHUq(#W4X~^9rURr(?){&aE1$Ud$Nf6a7z=Ow z_a=*5!ci6SYfG2A?6d;j_5vBIU$JnMBQn*I>~)-Sd8J_lL}qiKeHfa}-Nw$X5cW zw5zCB>-!x%8>U)B1v!NZy_-L_my0VRs{|S$OBGK|eb&e|dH3TURF*MjV1|@I)ze2n z{a97-(^wpSMx%anP6JPGJ}d1Y<*1@^k`pyTq-F*0Fg^EU4m%}ya#YdwN9qOdB!+yn3TDr%}RuA)Gk`6YqWE`$ypJ-cNN@<=mrm+1qCEsG}i@E-?Fn zy;VqTr|+*qB~=~^{AsOTFpf@AlfP2Q)Rv1h+-w((>MeMyV5^&km@Q&<&uDH0m;Si3(C70WzDx;FG zi$8Yp(od zB6Z65ksJQ<+DrC{DjzUo6d1OKZJ9MCUYLKm1{9YG@GA zg&_AR2fgZ8Byfv7K512`P@C=0phh=dLoHDwkzU@U+A5zuRC1`Gx*?Cy-&O-oT^(*L z7Ktu^i7_}T* z`kjY7)|G2)?GU*HGej;7U6dChQqTq|ECfPEK#zK5%lkHnf~!76q!14=)PoqB1wiE; z5IG%mK}4t_H^eX&YIp_JQiE#wLA2(Nx(@#e#;RWDbs+qMb@`w4wEVB%dzSfTTOA<& z*RHjvx4$QzHFfxqM#$EZ5w8T7rK%KXO4Z!uRg35cL7*iU0cPhf)u|*)|BMiY1*yKQ z>swy2F0Zrg5qr)Q+KpQ)`ho)Enx1crMQz;3jiSX70}86HrPgy>qGtpq7?Cm zNEW*P{CClBE@U|QPxVH~pZF=}pR__~A;+Z+bnm&vDyRjTBX~b$yvHUY)KI+ee~F($ zX_uPzeHWG>)208BPxuXTu980`#6ys&T*wp@i?bXu1uZXuT-E-L?*it(7<5(tWFMM9 z(+d-U>(1LP8&`ilO1J0p73KeIgTc|Xy-#AP_LCdH$1t?Gx!Cxp&&>9UgsA?*-P$LhD;v^55On{bictR^V zen3W>P_2eFHgo{n%9Y)0eLC$gRjpakd=&tJy#Yy_^K>29*xuG%pa zj;4}@ThEuDtYY_PjYy`gN+w-2Z5!*V$&FbQKSx1&)oEqk_ink5QPeZnWjvo?^l*5H z*HFc!<~a9CM7Z}5?rhf&?K;)OvizLbg%&xZU++hOx$Ja>Y7%n8T1@n9hx?A<;pRqI zinTFrC`snaAC@10t2NJYs}an>5=5O*%n67t*%k6gS4)71-sT}u`_W2l0QcGTu1#*( zrr~fw-FFr0wKYzmFH^sTEEz@nF>tugICOmD>*Y+x^bj$U+Bbs-(*q^;Ow+YxHHKy; z?<-PkgI(x9)RdfJaGtK{maOwom z+W9!qWzd7Fon6ZUOGn9T>R%t;G~9J*KBi5(;@0FN8;hsYI>4GI;2lVD0^F7z_|{sV zy=p_4E{IuEFY}=V96Ns%aE!PhRV0_eE0EVyKAMkLQMd))%V&3w6SZE{1!~GXW3}$? zZST9vqb%9to#%PgrcLvXa8z`VRe1Xy5~QS?YU!(`%uJ6vCMsimMx8vF|0+TA#ZU#6 z^$u?6p+!;BMR7u@!!d2u*j?(F;)3Z&OW~_L;o_%xK*TZLjIZ;~D3883+!ZG!gMdU* zT>*LMnsZ_nqvT|9yrY|RoLfd%mnKT!*+x-@Q^*u%ZUH~VMUvYaxF}al`Al^RVP?@u z?L^v+X!g2Z7sy_;3vc4AIU=ixbjhDfyF3tP7iFsi*gUM zQzozvtpkJ8sypKM*QkIyN#`bOVyv7De)8F^_XS9&PdjT#QGD{LSLFu&w-oU$Ta5cz z36ppS82M>5Qop^sAA~l1c9kzU8cV5p)7*1Tv7ew2AFoSov!t^BzRe2>Di_V>ecMiE z(;lgP)m};eQbsdP7^gFf)q>F#+kM?b6dqGT2lu9C-SjAV=Ep?UzR$s1dyM<)xGW6n zyE2`*GgWWyGFrEUZd47z2;8yw=Jd2(dt4cD;!DGy$L|+E5{)@0{t$2r$xQ%C;Hc72ETbcz{i3X>+-A`dEb#%L|P&c|FRJVv}YE=*@_nyck4CH1)EhWo-0_P5$lo?C_0n88B^BeT=4P(leds|dLlw9 zp}A%E@b>LF)wHDm$tc@5*IUX)Xtnx#+ z2;&-h0G7zR7$q-n^Gt|UeCo{CRj?cpH%kQqJmuP7*=(`dygHs5RfN`WzBnCtZQCil&J2KMkYOCj&44`J{yqfeqmp_hqg z)IZhte>B1fGVIA$>)EoRfxo(uzcH{R&W|cui!O=8++U{pUP|aCB_%*Zz7^!ISh{N! zr9K#@$nay!GdLttLwaj<{u_v=JiliG31r>4)*#bY-*qi4GrT`o^t(tg05EIcYTWJe zt;IwC%9&QP0C1?Dkt!rg)2s;FQGNG*FRR66hmpcCKBXPyQs4O`%X{ani&VEtg@TZV$y0*`ja8Vyy)HVwC~87%)6<&1Ov+UP4&vbpNq>M@@;b2aOZs5WHuYj%cpo3d23 zvwJlfwVaDCwaRDGY|>%9b_&}NEyKJp8MHDa5-+9fF=yUs_hvCF zvpsXMl{C=TD?WriH;Pg}3ej$lGj-9HJNJFvA!gFWa)#S6NcW-z@!=$U6YSHkD%kZI z=@_xea%%B*qcx7o76CK>rPC~0YEbC57$2GUTIq_Iot3QZ?Wo15qbmfo4|dc_>>ajR zfQNfA7wibfzNwMa68)QV)BN8xC#BGyGqk4$Egb2AR+@n7j4bi6K`IM(Q2AfAB=FG5 z(}w!TKLsUur7MH~1QxG35xk`FyY|;M1Z^TH8C6=ObH^0E0E2$KQ^w`PJbs4j==dI; z&1?DN{2@2$yxHJ(vxox8-Q4rz%$s=;&)L|4qkf!fK1x z&A%86!h*=H{}3;kDMEb1Oo(p?S(7f+2B8-6p;3`ONH2356W%EXD`Ht3(M0><;3IP50) z=cSh6nN+@0pXAtnKX>P%eHTl5fA8n>wYrHt&@z1ibIgeN{Heuq&Y&`B}9?gV!ls;ZeaK9+DGgG)JFT0(w>W>C zUwq8Gb8@#Y3`MDSx;Z^@uy!sR{5{-f{o%(qEF00phKY3aBYDB`^QqOGUgRf3u**_C>%1F0R%?7Qvo{gcHZs@~P;^;ttej$*;4jWyUoQQzDLK`Qg7K_64Q zLgSdhx`f%_h`}NG;)>p+1c^{nyOORGz7kJU03NVYNXR|3B{@D^3&C&Moy z$`8>)Rk>j+FX>c{t*0hIVLhGamt^=ol7*XS1D7hHjlq`QkSt5F1r8ZoN^}#?>onIY z@yx?_`Z;Hxeoau+&KkUf{^=V$5Qer?S27J-9?SWZl}sy`|MDZr@G?tQ%MW1#e6I{z z9!2SDA)O$8)?bJX>3n4Hy==(TY9>}DUFi)1x9{Ch7IkJ}j;V8lG6BuFIbUN`3x#lf z_6V~}Ec6**W!2@v3=<+Q@V7{s%>C$4CVx0Fu3K4za2YC!-Q{`hFZMdy3{U5!x-{n5 z4l63EWLf5^z_RKztu9_kF6&iE0+O}F!%&rmQ{K1Z50YirVfa=1&T=g~Fz z-L0Y8-NHNj-Y1smCAr`LOf5O(&pv(OkA9bGi<7*MzI0yf)Nt~)80DY)Rg1Ou!=pVl zexifUo%0c+s$Fq%eq@I*@yXT+E{`zC6xWA298(rFBS*WZw82M8pJE6zrBVy($?-Xa zVwKk-@ttQR;@_{;HT*147i~IRS!!g>*6TJO&ASl=%z#lo%Bk+2$F|F%6%bQtNLyZj zT$a^>v+K zUCQdtUa)Z$G%vhmx~#94$@3Jak|Q#VP0ck^kt<}(P<$o`zSq2ywj3e91pi7U(=cKS z={Mu#zZ=>Q>*E`DcvYLHpzmHhhn}%Mz#U=2ME#hxdfYC$kGU;fnQ^wCGS)EGwnn3; zu9Y#_8gfN1#W@8o-svg;2~3R8Hgq>N=ZCWC4ia#jZ7^1!B)4x`RV({SXSH>tJv$D} z$Hi@@31zs)hP%`7Ok8#eUM3cE{5TYYRcvXDE9z@&(q~L9dramEqR4Z-+%o@?X63Hr zLD!FNmuhVwO|AIew;r`zS9(s(VRD69*3RHAPctKS&@txtU0} z9(Fp5exb+ya<7n_)qQXnT+HZR$l}xY~OpJP{DQ%$&{8dzI)F*i!V3#B|0@)R*@ske^>u!qf_g08v0oPOIdk5ncK z>7~b1^kNKChW+BTXYynsdLT6MzS-NPenh$`%8}m1SryU_kXIThZLnhL8GhZWY~Cq9 z(Ri~a{Pyi6?oItiRz=Rpb>i|@X`uigYUNUt2m_A*oNtF@((ZTf9xy z^Yp`Ms^fVTg^G7(O&Wy?g$ihs0PXQS#X<%2c?|^gVVnK6X_?9@)T#`lI65$uwoJNa zl5j=jd4+N@*H*rkf?fOeZWYeZ-6wR=tp@SXX!lJTB6sSz#>6o>Q>rdGcPy(f#)c@b z6r$+!;cf=q6yQosxJH>e^Kf5+c_2h|{Jtw=+(WrqboC&cV&Saj-SVeISR4uCMWvc< zo^n+OMgK#8O|Yo~HA5AJ>*!pXnFyQFY%>6UkBaNkILX1^= zQM}N2!L&fj<@;`p`*Cq^V`x z?9Aj^oQFffldk9(FQ3$LvC-N;DD4`+!RD%e2lvvB9MOC;{vxtL{flSa1uI1q_|gm( zN@U}r{P3jlMFdGG-a(g<`+0X`$$99czh0{@{^J|FHlZ_)KA>3#QCZ=Jbrq|a zCT>qR3npDiPw)JV;P?NN`;zV-kUzV0JgdI}+5e-|7byFuc7o!0{o!w9MG9B8{sO~c=5x}(45gNg zM};is(5t|GofegDP?2snh@D+4z z5s<{y&GV#xU< zpv0Ra$X3>n>xtQgtDm)jIE=1!1W)#WC>nAKxiR}BH3A#aTT?b(2S>t?+&wLB+yd1; znW*Vro6q8=%qJoo9(7}}z8^XxgR`m#6&Pde z&Nxmmo=i>xJm(yk8JNv=+L!N&U{-Hh%2x)O?_JFi+~veF7M4!A6ZV6r@VX!LXrHYc zlucsxD@zXupcN#@U6EmQ|71y;CgN9nd@gF*h~_^-W#9Z9BicLD?qnVH)j^Ji_tngL zLO&_cS*jpXBTZK2m1&{Rn^diuhp+atdOC#R6AWX8IK!1*W28as9(gmOyyt2?n_{=G zj;*lbu5PE%M>aLMOFsn{`I8QNM-d>bszqYSv=u(lt{NgO6E|NUwb6X0xqE^Of!~4LO#9&wd{lmK%DO;<~f;s^Q`OMEXi{0Gv->8eEwtrtF=kEP=m= z7C2vkWOG}%?IRGL&$f+;C7(2CHl@!zxplCXVO-fXIA@wWm#n5LV|KQNX%ZEsT`)M? zNj90&*vnDe=+9wRFbF7=z!gb1K^L5etJAvwRkc!YOtH&%dwhN!eHnym1eu=lE=18Z0Kn1f9?Cxy)zeD#bKw8!dRy{M9Cka*w$X ze+{PVX2S>_JTl^qoB?LJ`_(*Vereezx#E^nzt4wd^_U4`>$k(4c�W*L$x$%41C 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�+uvVZ#t7ktVM60gl1g#q$HHGw6RSbV{7 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�?C<0g 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∈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

$UDpyfmi%$ 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�nU>37*l+F${jAeF$bq9cv)*WEjq8)fY?K?oQ1v@|jVBH0U zF4zeX59@9?ywFj91dbjNht*kUHe$Sj5eN@X?WWgDI!A>Hzlc-oX% zla=)!Rb065;TwTAyDIm|={HtR1JSEg$dg0X6_EVMk712Ha&El@GDcN{ozr5Q zoto8ewiHbTo$|f@NO8<-1|c1u-EWHdp5Al_4K!5nA$OC$4gcZ(&=fi9+09C{RI>+=iAo!*6bsqy^D|w*@6B7`D zitCQe+bL{98+bp3^;P#9DneaXGiTBduC&HSfbzdfCAW!h3w=SVeedPJ#EtRv`aRc( zW!Dx9tLdyk(#S`Gr;TJy_kg1^spYTxvYmDpSlCJ+J8nXuxFf~Nd=vShs6YlR68^~)2xN6 z(VdZ&I{0&uI&9N0(MNr-z1eP$+k@s;=Dg4rC?^nxDbjDZRm45_E2Jpc|G`Ral1J7s zUQ^xqe!9Uc6J=4hvH-3h0OZ*COS9W)H}gyA_f>FH=L(qI^--tSruD{+G{x7sn#%Yb zh$Ov^>7y1I?_GpTs7}2ZZ=8DKBJ=$V+TKw$^03<(ra$a=G&62?zZmB`ZueW~r*LVV z54z+Xgp=lA@9kSw+kSY~YzdPef9sMlw~Qde<`;K-)*PLP<<|N4eK;hEfq;LX&pYtr z@#g`3G60hr%yV?&Hi4Z=kaZym#gEf89*_ED-FMg+8^YIJ_jr``J>H{+W3gX8TfBz9 z$=AO^D`0T+k2@pVX7J{r2~}KI>JRXee$^Sdr@C2^uc@Q4Xgljh&^?1bh$)iO&Tt4h z)@EFHzl}$OW^V{ikmKKfKkD|!?qJX#(65i-dXPWr^uFNbI)IiI{j}XV9RuuOB(0P2 zm*3s*+AoIgX_NH~k&Zh(^r7;QM6=sE@4~GN^Je_D(;l4+jjv5)s0Fk>^-4$59+_K$ zyqf6%+Q761L&STV^v&_Wb^m}Xspk$e#@0JOrNT$0I?Z(q2J9UJOyq$boa6nY^^MFq z^>juPSa@K4!+kefYoCdrIqz|BY`G7$h|lm6zBapOCruGvwd)Wt_>c;;+65RZzOYI) zLLZB8gBF>|cd+olAL*&!F#&;fdqcLhtvM|NjR&dTOgkexACMNXLH^jYpQADM&Nf5a zUcokn?1mxKKj1V;*P_`Vpm49$jii6{f5909_SYq^wo}k_$BMad-@Okzf8^Lu-A?cK4KrQncYV!+%$H0Q2tu>S#)gN-H0ndUi885# z)ZLt#kx=F716{wGO_KN5Pj`sOv|$k;eXb`S!%f?F7)CJYhMm(h!TuJZNZ?l*8~sAp z2tSvZYJxx3HDF84AaeYB{TYFhQ1sPojF4HgEpm7m%4#BG{Ls}l7-i2wOJ@S$_Sz*H zn`n{2lM1{^Ksefi;u3Y#Z+|b|iiDB!Q>yBlIfK3vu&$6JFt~F z*_N_5kND%AGBI^lj?m)#?96^_+)B3ULfj$F&)U%WsGKk#^^2nTV%nQ8|9z{9pVt%{ z-Y}dNn&3;B3a`ND<9-KTFMs<^oygS=0tSW*Q@uFIY=qY%NVy2RKfW`KR+A)*z{js0 zSIBykJ3my#q;p0agB#O&w04RZt8i+kq5`l3J zLGZ{V9iQ0_e)uD!wT9s`_bgfNST#yB-O!na z?b(0=n|F726<8?#Y*8x|N+NF&&w!pD19R`^-I$Y;w$>yWu*FKqPI<+@XUair0=R)1 zI6@H*9V4kan8mpNl+$s3$(oCM&%(5fUr8zP0HB?f_DnZEL}BI725f@@1`i5Df( zl}gKoHMI-SyN;!jr|L>+)d#{#454OGSHq9&DPDo4KvsWF$AU7E`sSbOpmFAT8d|0X z**xfvQ9=pio&j<%1-Wm4+)qIs7$6U*STCl*rS*2D-ol@F_=cIc_<)Iw;xoM&lP}N;>d4Hsu4%@E1jZ=~(uHOQ|0D9q zafl=dTh(olTvO2@azU7mIVZO#o;QUGJaa`a^tc{zkmOI4vRCOFoXOr3ZY88yV+0FPW z0-Q-5OogQesR#jC?O9rPhQyd7uLgj@d0?~P2T)ZZLW@}lP6ew3d`Xo7g*?mvvtcwG z7wj7jHix+?RsXu9bB=JY$q4Ax_;2}c516rv6!Fxb%z)UVpf=~F>Nerg`tchv-W^~- z#Dgf}SI%9yauz<^bHa!aUqGU`SD=%IIA}2_DUR#J!PUY`RuK?+9?JR28GdiOFndz^ ztlNPfy{<^MUOQO2ko6?kf>rhaS;5KUTm*|L4oI!43+xh8ry#Hp$)_g0LCj?MBaP7LK=OYXg>!Y3MAA|V_BEO`3>?P@(MBSzvGl&jOnLQc792V7Rz}60IQ7+G zV_nXAWwx>!90e@a5!odrd?-~`Sh)n>6z(Aqnq-G#IV77L-plyjcIr){&~|g1Ltt_L zVw;q>Gc7Xw|L7|;ATl1(KN=96+c`SiWT)>zCk_3(+HMQ^&To>j}wIex!u`Q+g48gEOn>%V({8bZg8)U~|Dy942D zhBYYK4{)uPX#f^IeUdcSL*HD2^-u&kJlhsh)<8@WK%zjFi*(LZeK`R69`e=Nlk>5-K^`&ESI{Gj;( zv$|{HhQ*Uom2jhgPJ8&=$fzN|7Bei~i>ibfji>%9R+a&oct53$44w)gsOxi z>G}r+>@!Y=N5CjvsiAUaSv>t*A+yvP5>J+4xY|YK+_HEwx=L<|bvT|5tJE-Gi&B-) zQI86I5-)!-gSuf+2kU)fe*+eEdg>36KZaQABIZL29Z%czbZW&Vn^&nD?>E4uM{_*Y z#<3S+(;&Pp#v>~a!e)8I1IZsIk4Of9g_euFTlkDcQSD~oFZkHlguj4K^#Sq$eUtwH znUTsiFHaY!2@WDT; zRbk;-sdH64l8Z<=TeIjbBz#4z*cD{M!i7@92_owbQpiMokSvnQrsi|Vg%2<|x9p5J z2^WcScW*4PZs8~?>)$HGoQJ(;G<9t2Ws8+(WCQp1kAW?y46wE1*H2bUD;8KdK5AGQ zx=VR+mJgQ;*!x_u`+d*C)v*En^w1sbxQIeQYZt{Z+F80bt`OU2C7!aSi%RoYJb)P_ zGduCGG4NqGef^{qIxo6D$m|~=UwFw7o7YK~4t!F$;OS$}!awr#P9H1@ipr-*LCElWUQL9lq!_$^k;BM-I2 zc8u$t5q6=C;hK#%(oyZCBOTRGx?mCe(I#d@I^w>znmekWbT|=A>ZG2Is3NJqqu?ea ziKF$dBd&jIo>4sU7hV*EaqS)X&|5a1g_9rtlxw2eI$AB{u4?EA9obSpHFOk4ntlp) zl<}yXVyxu7ai~qI;V=8-TawM`)S2Qde)MwZweOI(=khK8f{*$Yx$fWC%ZIrH94FA^;k$-xhg-oZ{I#}CJXAdX{5Beb?sp9-r?*QoCGrUZ)?U2Ri2Xx3(# z?H82-`bmWt{zS?ZlOtU4d#;)K1di| zqVfiBocSt7cRs+pNA=PEZI=8y{N~fn4wQ!))=>s!i@s@1UQ|So#9NMDOk|6u8uEVY zTHN2bsB{H9OlwYoXl3NN>o-j$sRUfE_* zShmzxSW%lkD#_X9RZyy0qNBb=cm}+7^QTun+%=FPdjb7gR&;!KUv%t<%B@i`)!?%$ z7COzpOt!9J<*1Uxd;cVfC%*w~y|L2Uk89tX`jOq%`r$!rtx_TBnutlBMz+{MR!Mjn zaB|)T)8yKYnjfD$HB&D}TZQew(mz-#S)PE6(Y$+aTa5fBb-f#m@|3p4L2q@Dgb6SP zXTidc3sLmm&LQ_fQA=`;7%dBt^4<<5mZW4ar>{Xu{?@uhmTs_^!prKbRWS8ob@F)- z$H-rvaV9QHv??cQcs|}jaNuJGmq1p*i54|V4Z>G+&US5`Q80qa31+VmiI7^p?lgaIFI}Y#0{wf zxFE)zUgjJGSK(so$0EFC)?$AdzhQrj?v|NHmv!eWd%WpnDlOAZLL;YsJc$BC+fVoz z0rCYZ2^*5Kw2tQ}9u4Ash9Ey@@y{LV_`^7mKXnG3HN-lEM?q(D4Xl6(Fap3A!2~^5 z37tBZfj^r%6L3JBg;!3znp`_xOa|jPzd2|hf8$(5;cCeWoD)-tL;YjrEs`L)!{`97 zym`1c2(dBvOdLRfbGjk5^HfBI4Q#@XIR#eqluUnD|a-k@#1*JgW1u-S51rj$yD*bkPH=^2UCQ>Z0y`azHO) zA#ez0kC(sZ`N^4~o5dswXL7mW4tx{=<`^|QJs7PFejD_=+fqYRBpuQ+)sVU8(X$G2 zt9Tg!;lOb`sfNQdux8q5S<9_(DRy07Xn~8slQDY&2)|1UfCeaIV!+}UFk~>k_DBpC zDauaDDxaa5!7s(pvXGs>3pmC>Jf6%#_+AVv?5^cnhAEGO=}*>5 z98ahHO@>G1n7i&5w>um|w#e|G2WMR}abyj`rqDY1HL1&h7{-UodsntyGgWYH*^!nJmGlJYFzw825q25*ZtcvrN+`=Sj#6m9S^ zvjOBge#8WotEW%uQLO|%#qa5<>(}}5;{vF3@;yO>Ux=l;P|*COwtfl=8H@TpKzdxT z*gsXa(kwv}C-q~PC-%_nFbjme8i17AR(v^OwvMej3x0$jKXP@ZZG%o5aUjCzfw=V9N%aRm^{O=xr#*&JfXAiCNbp^)yvZ6SWt7`62lcScT`M?qL7YN>L1l#hmCpd&Ig6psn4t+Z@3 zhO>Db{8S?hB#llyFPM=bZ^z8P@ni z^s!9nJ440KsTw7UU20g)B^`>U!QUgprXu@L0_6s#07^cT06}M%i1FQ4szO4pb;uHB7om zdO%}afrSrm6G#M0Lke!~JgR$76W2D4hnucY?TS z&QaN?D9sTn`v65M+r_#buKWcsHzs3#w2<2f{iNC`-N1FDoa|5&Vy6g@&@BSR0dXm|z!~`6R&XH>Z)lS{vWWU6Q4(K4whyF1uk% z^Tbca?9fdcEJFM;usX2`Sq@T&qjEzBw)!!=Y?aq7nI$&_VqpbomGRq8&Jg;XkVk6< z2R{ubD@ejMuHJ$%MKVTqnQoJc$1uSoCGmsq=Rxyq3mi0E7^y(^kke*s(EsGL;Em!~ z7@+<5$N<~!ai`}x6A95aKKD#!z86V%m*k7iF~8Rhps|)vvy&Q8*Z$;(g8`;~5`}m0 z(co!7-*k4Mvv5Y=1g5x9qFsP=18%~PU!Bu4bmjF~Jg-3+!h&(A3=)nZ0A}ZE!Mnfn zft`sU9MlnL4(12`LVfd*!O01?wLvV*jrMFD{X}I5Z2{Bp$OK;V8B9au+5+Pzzlqb+ z&e?IqE%uNtOc_R8cZb4NH=BanYj=*fE!aVbBupuDcyw_3fze@sZ(G8UFo-{k`S^s} z`9o|tAY}0&9#g{C6MRlQ1jk*{lurz-ZNz%!|0PFExb=x*%-qAOAmfp=n%%B*>W)tO zZ2=n5hR7-XEHwf|ShR-Nw4}I(H^Rq=;^GG!De_52zK`#|WW*`CNBwX0kGIgm?y%ff zpfb=y&Cm|>lF2m+4IvCFtu^qLFb(M|^fj049T9p}OyjJ8^>lM+VM9t)!v0C@7s zI~OcrZE;yc%JYzH8LqHph{OwpJqx*bg3Ij;8Wy0F@dt%h4c#FOFQXwkt$uGf8l1OA z{Xw-cL0Avtm=EU`h3YOa2N8`gR|{Mu8U#}Q~F~S38P?Ibjdn>98d;ql;H%d1#uQcQjn~%HBQ&h7(jbT z7$Nb4@3p5O3=^bk;ZRtN!sJbQOk5Ih9vwVwxasrBFm$j*hJt}KllxAI`Vt&@)Uy-% zIixXpEIJF3fIh}FYzBClW@io??iwUs#M3NjKIxwL{T zbV#UCkr!0q1z!wv`;kbc(Sk-TQ}(82k0+2ffq#q2a+tJ(<3RgxOq3RxqyaLesSJ=B z;};P&o7@_LYsj4@I9VK!umfN`(r^cVzC_^`@c0@?3}HbK3gpCFI2Z8l6vm1K3mQ!Y zPruO(H;k3_z?p*xX~7yMp{oe)pu+JNd|=><9Z&4}AuRyic|_uc9UlY(rG?b?P>B2O z(0d!G#;J;}l70D#Hw-FU$ax%Cc7fUxUGT4dG=6y~Xbz@+)|)m}asDzeGB9qH2!;JdlT&&6uYoNrMDW8uqndOiWCJL5U5?-R-nNPVh2b!)P;B z1wA%(MJ{=1p(X?H;yAckkk3%pFeoz}??%tn!wz8*&@!M3w7TsmH&Lcl(ngFU zs!oz(z_;~{8m2~#j7EE=Mtd2J_DzlUGa4P38XaUbdTVO*HlxuyQ=@kojozCYz0YX$ z!PMwOMx&3WMjwSOCo$xY3yR?QyoX+gAgUE58qr+!Q6C5MiS}=57wrh4gd}B&n>tBq zBOy(Yl9j<(6RJ<89&qequkC&lnrRfE&`6U^#TrRbjkHzP?yBTS$#X;DXUg87G>~Vf zHc(YNX{^pqZKlb>(#}w5ho3?csDwRmIC(l`aj21?!{^gDNl@eU7{EbS3oy*6C=t@AD{Pl~pCXUCyC zf3=4JH4OaUy!rCqg~R}JK#acz>4<B!;9%=i@Y0S=*kiV_L7B}4B5UhRep$?g-4O?V3QNc6Zi1yUV^CLWx~DNJXF z!HaZ2;`lJgMX>OqJ0}JbHo4}PWjf2+p$t+YvyG&LO+?3pAvg=I6~sU3F=PVaN*iA}D(h0_p|%V0n^B<~xj zAkiZn@T`r9%Tv^V;-2}RxEz5-^VKW~SZuI7;%>ix<}^nJaZp#jnm4m8Qwi+(Y?(S2 zesb$GLCaebCUO(H!df8th?0G(Hby=EviW<$X|WWk7%Xv{pcDqU0b5?g5*{l*L- z5S9Xgo|pk9_o_sPe+1 zlJsRN!&BDeR}sq@7S35@&osT7k=5#R-={ib33X3zM|zVVv_<2P@O-@G$^^WON)2je#%g~hE^ zroSjjO79&t1s3doa!z6GLFhpq^})xd&EBZf!an9|J&CY3ikfPU{`*OvZ=Uun-YR+6 zCJz_c{BAwHUs2h6aMj8SpA5-dlLBX_PQv*zT%cSqlt)Lgge3Vj3Fb_#q+O4qej~$V z2xV}T@DFc#R*|nA6h@-VjVF`l`3*^2yyNe_{rGbC$1Cz~5!wz=)n6Q!De8r!UN(J_qNuwa87>VNuCME|9=i)Abex9i>n-(OYlh`#RUQa3{0Sz>m zlm|~OZ;+`bhpP~2z#WO6R7b5J!70bQcNx^pz{6{4nDMCWO=E$DHt^4(>A1r!HmME< zHrP@{Gi0%4Bvz}sIxo$2FkVSCHO+0p32CsNiBXX%iXoFj`pSws69ao>Og8+Pq!~n= zsHsXGSdtUNRMaDA2I2mBZ-o12WrX`@4TO8`L_SXb$D0)n)kEbFET{^4k@B3Bs8~T! zrJBNyVB44buUPX=Z=@tj8PB$!@H3M*~GPMaXa&GsyPwNT4~SY7R`2B124@!8$qvsMi9`${3290WC?Z3 zoheWYoMwgvs0F}tp!Fj)^bTLsEYN#e;OvCXVQ!BUnXojH3q)`xft4oSpnG7{ba%J0 zM=na!E1ZPq?xinvg(>#VPg@(9VygEL-iF3@OW^$U(Jldo`c8A;pcEF_hhx*SPQXfOKU~1) zlDjvs(FQA;iIGJlC)4f_q1wUgvBHiS6NMXg{FtZ=F|$Nw3LsY|Q)G&hV_5(nIYY-b z95w61Qfx6NJ<=ak&xH$GIg7J7hYSC_cP{+16cQ{)i2Uer?4SOWGlA6d zqoYJ`w7}Q|+zG`cl#&}?`?KZCJ@UB3V%v7funy%+Q#|t6M~AT2xPCh>wuiXH7|1K^ zA$XX0lKNC;xqyWh@RPMZrZA0yg9C*BW~?4E1q;4$N@13v-VuVSKgqlSA~vOnflfi( zR5N9Sh4s94UOHP1^u&F(gb+ON5JEQ@$5D2qZ5b>IZzV8#M%&h4Lo32e*vMZd{!e-} z&K*a%MrSCL*p$D=)k8z6_@~ufvJ@$-tx>BiGfn6+JU?+@-N#f0Ih6P(Vlew1u#|zZ z4*}!Z@A7`Hy}wBjR=T~A-Kv_exEEBu6xX<2tH1O(_~d+r$zkxu13mjy#l|%T zFayA`@cNUeM~InzDLn@Si%?y|%WRyjf9LbU4J2(=leL#!{D|eiqUuNSY6;64vPgkc zQ52yy$(hI5tw2%Jj_3;4%^V<}{h`B+P369dZ9b$z zF$_VZRV}wQkecf&jKU_;l2^|}QB1td zu7qhC%*XQ}p2H$kwDz#fb4cMsxlZqI>Q*8Q7M1)2J%VQDj+oC(?1+>>B_(i4VOsHO z6Mqr=@O|2ZM_j%n5`q7DL&W9{{d0SJ`xP{d$g^)?lfDeD($bU4g%>OEfNz$5l$eT* z(63pg9>Ig_4thA%Q2A!UXUSzsb02@LxbO`T6c zm>C+mzS8nbWOCBz$yfO5oR)Nj?TOh)H2|juFuCR)eRo7CFw5Ldyh>)Ojx*lDQ_Xj` zm9`V5#w^4jq_tn;gb^@pTJ3b3ng8??YC$5#uztDEm5t<3ZK8Feh?t4di7;boaN{2n z=THS!aH=;MymTv_xxzG+E+Ju((Be>oY7Iy32%T+GXt`x2q*(c{5XO7;ALYswboIIn>|ehWJi$iMw~b(UJOb& zEd$G*4`Qg`h9Z=7PK^V8ZyGG^3id#~1+;9ib_)Uq}KRC(+9TPE|Gw6!D0RAb9qtl12g{Z+D>fnh_CyB`KO%WQ9Nz zFiu2tfQ@m3J>oR^i5)nvg{Pz>R?(LP1ZSIK-UOp@w=*1_xXrdZAVyBQ2r}8^0~m82 zOo4Si#g&iWkT6alOV~nUks!D*GP=X#ePat=EwC)aP`!R!7q39uxW!1&%=gbz-QS|LA)*|iB!a)n^R+>IFAUMY@1_mZs zF6aw(eVwhAa6?k69hmMJ2T~z?S~Cz1$EtyA)`&`hnSYrO*kBC*5YE3mxVgbU6(g53 zPs7xagpUpiNdPS++1V0(bHer9iF}oc$SVw95nC{%ciZW&>AE;%VkUk|7sVlc_dyxL zP#yv_Km+3-BqZyPfZP(2uF35jF{TM$%ML{QH6IE6mS59ZNplR2a}ZOOTLnr24HU@| z<4bQI%^t{yBeWSOFa@)@;HNR z204zB522;PwhGFP-A3v=vLDhfh@)4^5@0C;Orf#&9AI-ceS^m3z$AE+_a^FHc}WYG zLi|St2^N=O8ipJXg0t|@S4Jt>l97o+`jS$? z)JzJQd^|%emaxdacd&?vlb*FYi35#Fn4~ZThd-MyapiHj40xfeg(XnVX$MXPlhk_XhpL?uQL&8m*0i3FwN zH%V+N#pvS9F3a%3Ot)ja$T{gVIRjq@gvky6`gd->U;#V+$}msIqnqewtU+~z)*@P29jhF#Eu*p#KgbQ7nt*}o|5J8N zKMIqip?;aM$eyH4mPr8cd#xrLb51>uHMVbFV}KRMnZS^0UZ8C!lM8z1dI6t$MDbe1JVEvzuYXt2_^j~hkh^jzrDW6|>lOLLoFGJyZJV9(2fP8(%(ZQRf^vC4-DE$S#Gt%@Q0YSpjtNjYh z6UEA^Uox&_jh#GbouW~&Sgsh21g?aOn=w3)>jD$d*Ks1o0=x!-*1E?2O)$t-2!@2; z(Tx0muKbw3`%B(_1Qt5@A;Bmftoa(msPsy(aM0Uy;J+|{o3w)d3={_mLBqxD&e;=^ z(8wG1{?zHB2Ln;e^L9EQ_9}7q_$^QjXT67pu_H$m3tCo%d&#l=2FCD;E-NK|7SAgc zOA#y0McpcpnM7A|%|KvY z$yY3eysE669WP{uFWKhsX(gOPq?Vz3gRW0QnBX>n!Dgf_5FlPTa|aiuqvew#m_bGA zL$6{~Q5s&M;RS-8!Y0XbfBI1fMM*`3@W^SxS*6yI)(*Ll$nHlun<{-DC8SQ#v{a>< zQra^Wt0j-}Jk_9qy5*MeXeyS7(OFtWSBk$lbwhn9g&%IqUO#;{*&IO2WPwS_h!s4> zdHHX!j`Ry;wFQ5O?>!1CleLVV$-Xaoz@HWf(QQVH&I#x(} z@T(ChK_pm+B`-uOnP&)h7V8-TGyE^T-Cgj%2Ke6|_}@PG-@#viLG_n*6U@Bd`^#`N zcqp^g2O^{vkKPf?>f&c#_A)S?GtACqEYpd^fSv@4TOVk#w~f7n#s@73%HMJ>{67Q# zI&s=wvYN+06MGl%(Ps_3w}L08g|pw-ZtQJ0K79Q62DAp-^VFXu`WDbQXnX{l9JDum zpb3YQYj2kPw|5&rO35+8~LCDu0OJKoIen1Y6$&JZ3 z9ex;7Jx1;E_)<(2l6Lv!j`U(e`uj;p(*rrx2Sk&8fvOo81P9G%tWcVFf(>k zwj0_>DgMJ8A`SPIv7l^=cMY3CD<5n*=~n3rVEh9uGo&e_JC=rJkO>^StuA(((6B|g zg{o!)n>1_Jl7C>-!`6SV;v@hPu3pm00~ce>_z!yM2|qWS8X+)Dp@A$VJxS!!i3^U0 zF~+d5wkZMBU_+*Yyl8cl%)I3_IbztR$^3d^m=GtRv6&DnRj8RJc*>@kCO*oh*?zfZ z2W6V+d|K9v$5K^i88)yYf~GnM1BQcT<%Nzj7jVANm0Pdu2ed{96Xr>49N4U`&5q7? z&A!%`9Jv#!iy)H|{_p$8*6+K!@An%YQ~XIW6KVHdjaF0O4$~i{%3<)v#mbMccG@x| z^v6_=#D?~?QUP%`s8dPxWj;I#5LU8|dap{Nc?1`6~UDGw zjX&Gt0lL=?G}jezMNG`s#KA4pyPCjWqVP7gFH^rNilGz&nsNA(A@5GcA%&Ilurno~ z)X*=25Q8(fSz_O1Fat^hsBTu|7jFVDg|bgTn2`nZ3bp}i#harrIs!P+0KUNwsu3HL z=5a4)=+SyuD-1|O4A?S-Mh*l1`;H+^AKu4B_T^e&hh z^^99c1{asJyn&?_w6ed^CCxrom-O!LyR^K>%1y79sDINqFm*yg)hy7dX2yCI0ARTW zK%>>L5-EVwp?lKNEq^vLMFGG%{~KHTVCe88Piq2JweZ!?bC!L&LA8q+5;$i$*e!pr*psBE(74j_%WU z)EAyZgXYcBo$BLsDx`AHE1Lk_$JI6XN$ADriFe^d5xvV{4r`=C1 zY>aF?qHu$iA3(7H691(-@-J~-v{75>2eAe6WNo{6BrTH4GaIuO9FTq4pl6C zsSrhlF}pu4e-_SqJd7>Jz_|=Xh?Kmy)Vye$N>1G(-r+(!k0C?e>P}&!BhZPN@`>(V z<+XDX_z_s2(bQS2BA{h_diCr(zr#BelKKyzR)AAiK($V;lQ+(-zkoUkIVJw^g9&t6 z_&``A^Z~q+2IGZS-r#e<za;3QTfzvH){HPAn>l!hDta=a-O3x8slZz`tn0wL|tB z&z+Qtt;xYp(i;bA-sNlXna~cO)e>!8Hkx_v$W4@P)S7j6n*y$4foKx3`)WhjF~mx1 z+>yEL;Gj&@J=3!kX4_PKa^wzaY!AbS?<3@vS+u2o*EDbFH>A#_CLAqQ*+uAAU(7`c zNljIBfjyyba!R_e@>2r6QE327Sy&)Ya8fr+l{ffAQ*(QbP{(2|@G@lzQUUftc>+o+ z`jt?h08N2@Zmd{kC`up{B%su0y&J1mp*VOc(bzJ89=j;iwkVnz1r4RXSt8BPT*z=} zte7ClZcj%MLlnxF@N3XRKx&T1W70wT$dG!9kqt)BUbwa=Q&e;;JOO_ivbw5L_^UWL zFN+FsnqXD<7I_DY<+DGKG3o1`-f~!;*OTGfwS%hacvU06s!D5o}=4t zvYVtgRUHPgdWmhEq(C$iEQzyC6UKI{Q`s;6C6)z{ivkGJ#eV%wtU$)zyCV-lDPjwD zwE1e51pIM%x$-YmAL1%PY$d{r%!r0K6xx7k%q{tQt!RrKDUxkk5Tt$uD=(a?VNryQ zrjlM7UTQ^3msL`n`L^s&SB1zH0U2KN-f5N|yAkx5o);N>$Sf3`p_asfODaXXoNtT@ zLBBlZ;={I5V#`Mx9#Vc(_o4+f7ik@CW-z9bQn3BO>>bhomC9Gl9(2PFzehz!4b@^< z*-`N_9$OW%VTF;Ck|RomZC2u1jBZbvg4{wq`Q81lEVGp5rxxkfn2ti%DvR}YBH=Ff zG%*n2h*MkTDc#&fP`O|!Wts?4q#_ljU0N$46HuU``$RB)3$LTF5WuxuD`%N2U?Jmc*%}5oi~o0}giA%)KS~Mx>|R`2&uQ4~nS?qo&|C z8xu{a0I2b&k2X<4V0A5#oZzrqUUrOa{8-B@R@?_R4TVor_8LAZU>D0mtcVXiTaaA5 zro3ca*%ctuj9*rusWl^+W$bE6SW}r{I+nxYDuIoFEJOvLyhsnTN1OIB>5!&9$!aSt z`qV3=Q_)dKqtjIG%kd`sDK$QOSp|xF#UHEKgNDZ?7#)1M5s2P!iCxgp+j2ESe(K2S zd6VlO$aS3fvzfp6)4QG#1%|=}Zouvvzz5lI!u?C|`73gV1)m~}QNSKf01q$a7`>Pz z)q?XA*h#<%YUxLp;oMtHaQ=vt@h`4u<&^=R?oVGBSdc}4|2`!D(jyaEGAI*TSS>j? zdHytA_&lNdQ2c|R%TPQq$8&Lq?S+Kd-Pkit6QRjs78A8i8N3`R2`Hw^0N;OzN!X|# z_H3;X(Als-Oj}BLc>qLksRV!e|Kw0x#9pN$P7=WnLN`ftch|PD2{WhjC`*s zcFI`^xfhm&I|=e-PEW$FLfV5_={0%@;-#Bjbd|jYa$9WJ`u|l5*;`i zUHFF|%!;bQ>o5xb1eO+8hCm!%J?lb8rwifY7c|6^(uHtts?tJ^Ub&i#|4%k5lLARA zO(eyF)>IGMM#ZV9@PMj>Gqz|qRjXIUPTtzDSHwUI>|x^#$_3H`IhFZ=n^c~#%>;>mqIfv?k! znn(04D+-zI2i(ZTFKu)iOu?$~R*;FoPh>J&gGCL4jsQXMwg#O$$Yg+41S~v+RuWj} zuxge+U&1IGOvui$z;TH5GDr+8&!IVJI0j=wwYKnFvLA}dp}5)eDJIz<#}P_R1-2C@ z0er&wgL4tUlEs4+7Ze(iWLWi zq_)(H*6clNhd*e|Ej#jVHvDcvU(O~f1=sqShP0qu@11Ms^QoJkBPnNjzY}z? zp%G#<-Tb6L+CaDm{g40DGt>T{BUdxlY&jSJA5ac?&l>&jXzC5qXWk6=996}E(F8RSiQlaz>Q~$zW zBovc>C;Ua?q4;;gU+^{d>*&uhjLH!{q7SqSAKd_JNq|Cb9`ZXhPbR|e&{QFRvRaGe zZ)lg}-{t}Rj0cIx9{_bgK9C+NR9|hR$A0Bc0fHv;kw0ljr!Yj}&$MmHh(Nf=0qLoi ze4?qht6`%ce%nfvKKw&0d-8^UK$9rg2fA*mi|-n`!(pf2bKZV(hRrXo)9kgu`KUj1 zo#Rf|t*$3h2N>>gu=4QIOMucMx&5G{PdhuUPya8}$^S15IN$y`i+}RtQaYu8v>{mq z9h@Hsk;=Ore?l65r+1$$qwwb)R$>szG@PuUNC0M!SJBMmJQ0+#qbf9}@S>S8l0!O- z+_M{jHlE+e_e|Gdh}KE7_gTQlCPFHw10j|^GMxMZ!l8IInSkT_G^urkpdipVlDvSL$HlvIobZ}4mNrI2I2m?gFnT8FsH(>2kiR87k{+6V^lMC z{Ix&$eR$%!qZdx=^bCJ{)akXcH{gZy#T~%4cle_5!s!C$ogcmcpSIm$YtT6x9ljXC z2q1XfMKUp=E$`uj_6sDE!}9?^x%a{uj+!GE;c?rYQGd{O2Zt{X9DuAdJnOU%U+jY4 zo9CmGKKT6DJ?%8XkOnSj)Q0`0b2vnQg7JWV+1T(efSFh>`^`AM!%iR-7S@oa@2LZY0yl=yP+R~Lcq&0& zXfll)IdQ%;yXQ0so%mtj=*M$P$mP+@|(CPF#qfWEC z&5TYX@S%ot$^~D#Lp-SD4hVX7X9D1%D*DKwax=*nEKe*uefrq+a0=Q z^yRe_3As3cwxKsA?!$wU|%ZSdc}|u+O@&H7Wrr& z!zEI}OK0JeOJMQ{m~#te>n))3{2DqGl3SY3sRo3yI~#(%b?r}npt70f1~{H0egnbq zuc*G6M}yKB4QMi_iIiLMBue0#p%)TgPdb3{4Jj!YtZ`}v7|ex1vo|CT9iX`I9yr97 zf@~t-1&2oktlQ?`yEAl~gVqV_Oe|*wM~xUR=D6oiMd(Cm*Xa%2!H9R?=>fwiV^%^_ z_giPg{uDH(V!dde{Q+hRIA^&%s3t9jE}%mLOie^Arv-jT{MwcT=onh}sLIrAMncx4 zOe*4*=IRhyHE56EyR*D{G`0l}HpWMfG>8Xd};F5JW^5)2_z(qah#aMpiD z19hmc?vIrMEjVFbagGS(G=<$hbE{Xm%=a^uwXl*=K<@a+bu6o|pT%m}j+^5qE{mQ9 z^MFyvC>_vm4QNh)t$Mba`i`7esQMu?QF40)H@29He1VNPkKU;hAiCv&jn8sY9W-xa<-Poy7^%B$CbMdg5In7iFW-*t?hO3E3ZMpc~>p>=L_X zj@-|k9^6k86jhAwnAn~5jKn))Z`mR_pttoXv>E=OZ!Tw{hp)|nT!9Z|Y(j@lB7Bb9 zGKZDig85Ggn_w`czlee2ixuzSZ5aJP!5w4`LBMTubCavhfQBRD<7Tt=uC_Jb$K?A& zr2!id^ORcXtts|x8&EM?iM}rh6{j%01XXeW$A5BH!xdwt06?7#)L2ammu$7_=0}t%mxn_m z=$85+8yRc;l4>6Ht9RnGgBFiKsFX`kTojTB z319HpQSm8AdcO1vIXJR7_DVpmmIuS$0sJ|{aVXAGIP{7O23pXf{h_VP<488PpwOsO z1O@`M(D$ik%(@iRl-O(_+f=F06a3=~Cn`ZXiip0*<%h+m$LP@;nga{R_u@PJzA1DA z!Pgs|#QWhR9}Z6dhL;=OB=Muz@nZBH66X}sQNP{)Gsfv3HE4vJ#aKijj^w;Qa zDGU+=AHuV3*X_L&rzVac$TNmSs?xB~q@Y;SVmx$IShWB+FXE*ZR8#yJX?2{fi(d+Y z^U8>WnfPd&y0w5OBAB>DiHK*hI;>K7!38}K{egugDgx)5o9~O=h`-zWP~6*VB()4O*k?folt$%aH;jZFbw)PPTB9I= zaak60D;N&*Zm<5}3`h$)QJc67fmrfA5ZZq6l@s6zpLT9@c(ArOkl^&H}(%Za$+BEMWES@N$mU z7@Lh=s-K5(@~Vz_<05=0Y6f&Fi-650`=I}|5Y3T<8|e*e1K5+hpw)FRH#&w@k6Ej&^$UQk)i2+oUk=&G=^wv><(7K@Oq36Tgy- zL!dHgnGZFv3?)1f5F~B-z_UTKGjttDQp7akFrNIxCX|J9hb9bSOZRN%d$9vduA5-$ zXKQpW{zA^Y8aU zK!MXUAYKyI*$%8BIkO2d_B{4f#$D*Dz;rZa!KZTfhuVWKf*qc8jz>z1LFez} zMaKxJt}gtA*C^Mu>bl25BOt(Sxs4cemzuqd3I*Bu%ds%(x{g4Q|Mr@Mr#@QgkAjP! zh*$02^@pN3fHjQ|Fcw~Ner;5TD%pT<63(4QTQs|8C(ZJQ6Fn)xp~RAogYdSFqsFF) z2q#)4?ZEzpvVbh9_XRKI>a!Qi(yvjFet5DKQ*h9-xuZ!|(E<|?TA%Qc<_w|N8Q#^{ zWrP;Y2CtK*!|%iMBQS5Xk)X2H2HqKxE}0`!zR8VJ%~&8(+9wA3rxA_f zP~caFD9ZKdKy$jx5L;T>*fo+us?u~&g9OqLJnzV=m-?fpbdqjy+oIdHeRCu+E^A5fjJmp(f_vON@7}+wu3(DD zhsOIyv>J>wzDM6u;RB65!8hhxG7;8ruo2c8esx3Vd8m1v4fkhBC#1o9LpT4)I6|Az~lu7&;Fz$8@gfrXV$ehQ;$ zth&g>m@|C~5=Q%p)csHAWFa6Lkfw}dGY<6jp!wCVMmJc-G0m(4+hO8OuJNk|s7@hN z+BOS%uVC2g$3}^~8bJy;Dg-9fpA|or0%iU1MWzo3Owc~P)B&;h0 zYeTt|MF~l!YgRM@p{N5?Do&-#wxWP6*2DzM0#ItwMX+9m-L8yX2C$HYm3Ao@$MLAn zl$dDZny@4zfP#<6#`w^EaApL9N- zxWiG7!m^O%qK}?ECikLBB;inHN52im+*a;NET`~gx@=oJPa;;MP*wZ-LNfJfeL8~- zYsg|*6pWO3l*EdkW3^^p`{vyAIxsh z?eu5VRA&kyCbO^gA zP|QboS#Dhv3zB%W>*Ah+h3Z%jR>49F36wA)Mb>MN46>|#M}y*U9XGU#S;_JvseM;U zmI>*Y1f#!guc+~Zzd%I{Q5lU#m!5#{Rmbw{$!TGi>Ices#`u8}C*#FV0tX}?ePV=@ zAB;7_Der$`xI6fkWAL*~R0ngA1c#eZ)KPb+m&SnY-?ad5;8W3Z3Ugl)FOS4P*8qks4m!& z;O^!eeV2n=LZYt#xzuugV zp)NQ#!0ArXXRmV=+UpI(;oWD9`d+~x+ehUs zH^rtGDunj%ZjNlKwMbs_N{P4O!2ZHDSsq|ue>$LFe-f0U_|w%`q_54TSY)vD?w0BW zn{BKJ3#+=zpOKf#ucU{WUwcJrLr=}Qg;#{vZ8NK`6rQqNIwke>mO_I(Sf#*Al zDoFFLbz_TPGAejAwO^E{`;Eu5dQvpK-zf4TwA<8mtwJKrRV@}Pv>JlTF)oxa=0f&A z8@szDLoIo4TW)m}H5wn`>L_+;%P9<>4}B!7#Oe}PAct~+o3{dLz0n<7mwz7?F8{t? zW6kJ$6>mhkY4^c!|g&&+S4Rz$_){^0by+q9(PaTv{4 zGtY{WHP#edM-thDYb7hHqi3`EFRo_(R*Swx?sOK@V1jGVS&+DB4Z7X>o|O|xOeS9| zfmy6rK9Nso;FuLnYmB`u{jjt+Tbmb>Damr4F^~dd3O;9`YpV|c!Z%IiVfb{vy1*S= zv_F5G2u^N_s)(Uy__CWaI8D##_Ncjc;VscuKZ34Bmxcik++*k&<#&n*Snd{m zgwvifM~&br4PL^}+!2Bs-Y2}oTK_(tCxl1O8xOubf}AsO7>3vFWGW(Gu}Cd(p2Ayx zWDYEZ3lWt=qPa+7LEY)V?ACq(!@As_1DMUkW$MS12wfpl;TZ>D3H1jSPz^hg37M?J)%}uF^pO8bpBu3y+63&97GuU;S^$Ev z>SsnrxNXoZR8(UoibbXY^Ii&26s5@&rY9A6teDh=OG@xufs-yNSOqJ2`Xs>=c|lh( z*r9`kGx1_rEP(FWK};W97sZWfz(WTO6P@wBDIl?bi@$lvV<2P!1^r&m4{7oOnk*j0 z7?AFz159A7G5})qEg9k=>vKyGJNzZikj6+R;S>_aAu|R<>BKRh)nE4CI$OFaSfD#p zb@^C=$H5|O7AVVUI-lQxpJ|wE(+)KQ`b`>;qR*rOLR!JkU$Q_qq+bPfXe*6LFfSsF z5PSpD2)n6W8aKpzIG1(vSSb#225a5?mM{T!yAdH2hSj$zCkw8Qf=~x zrJVj0l8EuA1fpnsJZV-eG@CC)35oV~yHwFZ9#5^Fi9u`W13FxwXq5$iB&=IGkspaB z+74|JrE8Bsp^gM=e-^zvL84=IcT%)y#=gCqFyrn7{MmEAf{8;X$_8&zC?OxH#&x6HL(9r?1o%6MXr)3^MXU9~wL&gWA}nNvxY!7G^hb|-7isaif!_d=%) z57WWINv?w!O-Sp{uF00OtZ6VTSJPm>aHXe5Qqy3lscFCrH=quigHa*#4Zfcq)l$gs zULG8-@}}2JX0SMl5!qc#>&a+&dL*viVy^Lh)^#mr>nn7d5*^05RY_M0A#6&GoC2OZYrh>HF&(eL=~c?*Rl?z=b$3ar+J&56wk|K6 z&08mt0T&-MiFs~y-2|@5M8tKA3PwpgD7V|gA>LM|V$s(hcOOY9H-UuW2AfIMI_f!B z9+f84w`%sFQ%9HMBkIx4+j) z+@e`OAuS062pz=UiWpwJFjp5!}+r39oFT{p~Fm;|o2@HoXu>a=> z|5Lk=QsP&C;w!kLZ;I^n#7C&TZ-4wl$)M}C-81WDm zp#ze9^dc?Q^I8l8m1e=hw*kHOy{R9GSby&B@6JS^WIP25JeIni!jERtIDJlJ2vet0 zXt^UQ5@+Tf{wH}=#CP6;upWMx(TLAM7@B^5D%p#j z%ad?9p81#TnS)p2!H)3#Py*xyP)IowxGdS)l4`TSW{}2ooWjce`=M^J;$U0&TX5lz zFYa(8OXOd^WE}|J10v#wB4QT4H=PC(0>R@n*fPv$gVrRFia4R|UOSxxhB;pN2~_?` z2pWe=T6f~&&f&3ev|K3bD0N}O#DT}=NGqUF;WL@@G^mcmt{ewZoWN*74{RW}QIPm_ z$e1j=f4-6qQ^VW>1WNp$;Lt0F?9mWGIWSO}jqbXML;yO(r9kA&07=&Op*&0jFu6uT z;(9%e$lsJI&34;qIJkZz>6Cm!nMTDm%`{n4uwYLN=d}8#XZ@br8>NYdglPe+2Dlu6 zEqC4;fg`y=0fDil)C}wEwExA`XdyfwNhM(Tb=g#eQ3Y9*V%9}Cy;HcA#V=kI6aFRW zDxIQIQStRcZ~It*%^I9J=Vw4Wy2YP}K1Ts(LMgk{{ok(1sZ*>z|GhotC7XJBI>~ll z$}N}gbx$&yBtj0_Y7vJ(%T2R9_J&{vMSW*mFl0MfX}L=_D0#$(ns7#}-_Z-p4wQ7D z)}sa1=P1rGg+vH-+*ZO1Qm~{ztlnjcTB}bx+CW z^^S543DrNuw5~;|AKyckQ2i_NwmbS?cUs-%5d8*!$=uj2O8>FCo^pAn^K-ZzfB4uu z-urOS+TT4mdh71BU9kVcpVn^k!*R0#eKBClpZkOFc-u5w;jo={*P=9r&128IANNq5 zqR(w`l!YJelAjll9LJqr6M1RiAFWoW*TR1tcfP?HgWt}3omRi?YQwleo1+#p1ls3= zCMxGe>T5 zgtSTI!@U-N5&xI^ybd+tjMx8G%?*ONF5x-gLOKe{^Xr|s@+!oB>bH9z8 zZH5s_u7rgTevH1uNU)!WizSHAe{jxq*-wQm*?F?8f7t7rh8Kw-ZjG)7c;>GnC`t73D2 zHMeNlxx79ooZLlb%{#fX&T#BPPjF^O6o~Y4+--iAu?$>zqO6{su;y4c32;$1GO&&V zRI|L=u>y#~1pMt!>8E_r(r@Zsx2zw!biqK?QIW9*H$cZ|Mv6YKeVn)#je-&MWS*=c zHpufpbDM<|Z`PSFXFfQqB%VA$^d*^4AiZg)3*_1Nnid@$wLmC=-R`B8jV5r?zQlDU_4(sgHd*|-}JS(4I|4AksOo)25Iber1OHpd=7p|Ks}~k*IAT*fGlwI3OUIr~iv9F3xs-oC zv2YvOl-aXCOQad1C3j}Y-%SwP!ka6ptF}e>dvglRAaCKgSbf4B7b?wGp=!N_>u}oh zX7izWDH4j&5CwF?Es>iF`v%^ zu^GpG$DKJg`Y1j-UDeq1XUR`z%n043$K zPr_tPVG8L_y^%i;Z~TpUCM=(G!cYDJxyN;3@hgEu+p|r;M(RI2RjDubQr5$f>~&to zBF|wVc~OY(p$?goW-b?of_OD zc+(2S*rf6*)1fisThul)He?`y(h!l}=pc==e?Ed~MwqWTNF~@ztY16r(Mb+A1jFKL z`b|wN(6?i&$x<-mkcL{~m1Rucyfng>8wVw>kJQjLJkpL`g3F?Xz#e_f68v7^%*JOd zGhRDJ3c}~P(NRM21UkJx&JENWa5&N(R2$=?e!r_-;@#%i&~4|hZw!}@@=IsfIqK$( zkw9gm8>T0%h3oIqn~pK8V8q5~Lvf>0 zl{gMZRJ5~WGD~QDv|%+0AbPa7j4v^Vqw}j`WgF zi11MJdC)%xM_(wY@{w_LcFs@c-_E+7RtKM+;2Wm&4-)tUrg-Z`(>CYa-yp)j?r6R! z5SAtlmdE_ig=}%vy8?P0p11#AQPi4UQOiP6Ys}HWbj8Do3)C}!={SoUlW;ckma#vz zV!*p+2G}xy?TuDEfJt}gI@yK`HihSF4rXxeylgJvra#xFwfDx+iVZUHUmR3bz(zdq#Nrbt@(yI6Tq z$E4H}t1N`03X4=>q;~1eVqb*1!5b;Vf#0Bw zRuWK%O`S0^b^d>cY3Y%)B~Wh}lP*65?D3NaZ0-V^;OR7~Ygj`dZH?9Nsl*jUAg{_F>#Vk+==7k$p}k=ii^e|MG92M^Y|$&Eg! ziMVBzQHhh#Q!sK;*A3MMecZRYs_4$5V3Cl=Y8097EYwuir(qmrcn?yDGv1OgHRjmU)Fv6H8h9jvQ8+R@-*~^ zWL4KduxAZYNP|dsphStVvJXg)D7U0*s**xA;s*V%Z?K0>~ zaGSkqDwk=Il`I8j#8t3T7sFF~A+5Ew*~SZLtv_O8AuYCWwe_kpggRXkOOk}lf>`)v z;N8sUg|o!$xlq<~p{#o@lqH(UqcVlEYOakXj;~BhZ=B&0NX+5+;>RMqUA(HSaE<-tQqckuM29?}8Xj6Mt(l8dQ5~Cg*gzgc zeMm(;)?o zvZ?&UY9G;Okih{79in653Ly$_Nt_=lpCr9BDS%x2!PRx*r0YD16`XA9H#ts50jKQp zO<)|(l-?IOUhJ$E;Jh;jst+{2xTB6-0e4;HoU|fZQ6-$hu@?_ILeYj&MGE1pWiULP zs79NdNNPRU*U*`yYv@essG(zIYDGc1H70~Sq$TiNSmd!37BR9g|Bzop3eDq`c9B$q zsITiLd0eudSF(XqgGjnydmX0jv5m?2no(g-t5TE=r4$K&Kt&wxO_4J?2%@c&abO>9 zM6lP+yeJ&(_&CM7L{X?`Gu>EE>PD?6byIykDI+V_5Agj(RQV&Q#&d6q{9dZ@XgO6? zsf@xEv>%^PuTv`HiD+{hPiwX|H&%L>$dw*8=XI$tHTr()#ehG1?pH8ZZD4fmOJdzb z>Bpe*3nzQP`T$E5`&2DaStxKmHC;M{7=>`b=%&4I-Ql-PT2@EDBFW^PV;HKcq>elP zHcS59*~NjY{ek9tpf#NLC$7~%<6q$-9*jD@&-4Sw z@uLXP=g`4XbJD9|&U_UoPUJ1FeCNVXZhe2@>^k0J3i`$1qQsX!5ikgUKgUfr=*2XR+*(95-S~j!n7Ns>z-IMf7;N-1%QblNZYJt|*Ip z&>6Xd@!sz4d%JVl%(;yM$bZ}f=WQQ-JaYG12d$4EKD>R~-fO!JoE_cTZGJdzHa@;6 zpSNw`63(2?<5Hu6v%4Qo+BQos3Kmzn{1~{$9HetBfymr45HyE~A9oL|i3lc7g?Yy+ z1D#J~6N%@%w~F%3;jn}xHX=#EA#{Y>mMVF>-q&w5Epm zXgVAXI=#;%9TfX9{-YHFJ}r_l$`Sm}?Vs}*ad4!PMb!@4{npu_e>NO9&(4har{Ux* z3YYPYw_KJ&-s%tBeC(4j@{6Dc3leFZ;YsJrOq_A#&*GhJ_+MMZ-@4=Wp!pSGGNb)D z+nGk*El^@H{pBx31~2phCt}wTo{QLB(Rta?4D^Y+f<;s=!th6#u7)Sgf!oH|GrNkf zy$CGKB!Y7+NJC_7Wg%x}VB#J0Pf;cjYc7XFLNAzbysyG!8-4F)taV7Q+f-@z}GM)H^2>RkIh;}jdV^y(iU8c^Ug4f$ za*^T{-$XjdXyiR64=Dk*Kr8MnHDHBXN_A)@wOAcmLCIq*nvx!UerVK7JpaCyfg#=Y z;6_&;L!@n~V$6&RRZtQ(`Z8{|Mx8G%y_INwX7!q|s=)uPei{`^1)d8LIjICmwL?ex zyHb>+W>!6(KK|Z71fgwJqk+44r5NenT>(-ko_o-1X(ZR#7>O_w=Dbdc3zT#UPUVBQ z>0(aOPM=#03%%oj@(889pMRV;rgRyx=K?y<1$5Rdpp%`yE_%dxO0aCWS-io5odnJZ zE#T9xa||cg^X7g<#U6@yB*jejJ+b~tjz_~H=^ZPA`>#4+;F@R`=QFLjTo&h*MP-x< zd8PLbJt0QHqlV4$ib^aiixM4muu68dJ$_z+L$$??@f|?=1@7Zk3hzTcYe-GpDp<4o zWLVLwoD=Ui%8ABP;e>RC&S%QNpT)%$m_=Q*3Kdw&ng95?B)DSodGvGECU*hFIb~5u z@MGgcRh-JcA9+%2L%x!Fd1p~aswUoLUO7DpHWpNqKWF6>rNt)pe%GcFzby+hZ}6T3 z=OkCI4d;g9O=EEuT3CeDve0ld`b3!Lx)yQykZJI-42fCJ$e%A~USh?ykDKON#+CEa z;hgoRhuD`^nT1%`u!vfGzx%cx9%fwVKMi)GOA{+rqQHX^zC$bLVWo;w36Xdbj6#<` zHhdbvAdV7jvho{N$tHcw$&+9fy;rm0*H>brm0+2b|FG)KO^)Mv?CdI#k~_n3x}jZp z>>6Do8O49oPpv&ry365P`3%6uyF;vDD-Kw=Jj$*PoAS&0V6=zI4k`A{f*sfxn0w15 z;D;4EEW8-+3k2ksXNNM?`uV}`x=+nHRuWgv+WMr2|3UwZk2_uWg*J;Oqk))IgYxQO zMooxQ?9q4ra*Qs$dHGb7mGIJem6dIy%q=&UOuuI$Ik328!+8=&8QWf47f5|7qK`M1 zRF+9GmPJNGJ~#LLY7uG`Ey6@1j7*ij(MV9j#J~Kn*G~WPGMM-%A&Z4=%)P`3V#jkP z-UST5i2WNM=FI`Sh2&w}2FbPK|4c|l?d_kl_$LmuZ8t~FPtGhH{~0VD=?4xDW+geJ zzB8GPQN3;e^oE8BIj|KwJnCBg37VlL$HC;*-XsZbd;v+J)-W>-S}3LwhZq0tPtcpF zGaRkNTF7`7ew_GI0bNNviAT$$XVLg!YpNsmorZR`#Bq@1wx090wSkF4xmIJ3qXw12pHe7LipJjam2cl4@mo^coASg zS8XLfaP<#I?wQm0@=j;_68&(`n|LFg^tr1z_+cgYl?~~J< zP904g6ATdrox;HglBR6A^z$)_h{GGOLxzjMyy^6%vw(gy@WUI+?Km^Y5ARLr`c)nC z-^cS8?rZJl4Ipvw;B~MpGHTi{)(-@#|EgZTcjLfqa9-h=7{h_Pk%`O&t5|!9PHRCv5f>O^Q(px4B0;eZ+K1-R)XS2yTfDuA-9{o8BW08oQJT z^i~ZO<`ctAL~;nnnnTHhfquIJ<}$ypW1s?MQb#HS78OpALfMu*bQ-49FN3P)c`#R-gdh#EMV!32F*?v{u09)Ri;K=_gHAt zb(?Lq$-q79He0UK>~@`gt93pYxV@G;bo$36LGUm5AE(ok=JvHSI!TY(tVD#i8d_&4 z4uz=r4630l`eNH!8W4CTB0=RsUErxT|7tyw@zcJXL;XTWJ{VPhVkAt< zDX7+0c7l@#tGePnq%~fyRSElh$$RD#6&xIg?0ZHb$QQAfR=)?!I`yDSfnRDPGVTx| zVCYC{Kf5-C$%B3NwMdP$C>%04y;K`T0DcKHEn*+u$MG4By2os`Y%(g=#vncPdv)KT zpJPVGV}HI(?w~MeHU*+tQ%g^$VN2@R!dli&qWJ8k-CGh!!DS~aK*0@(fs3mcide5- z@-+-;uNAKx1!GGZqOxu1quV7UH0x6;OC4L2%cPQXR;1%J+ij;o#99({#X3?~Z^c%4 z16$#9e;Rm}hBjkEdYh=n6sD5BrXj4cEI4vDJ4A_>qBSV&1zKQbPtfiN2r#uF==6W4 z+?h6j3|XsHdiI#h9i}#;Qg-yj<}b(ehFO?W?A`d38|zji&A1aSoEVKKk(+sJmw5Y> zZ<|%hig(ZCt6%5#StbU%)pA;-*psser#@Q2!rda+%I32%{03jquth9fqB*!c1r|Fb zhWJK>dn3qXofJ;ATWuqXmmZswlO z02B;`Gz}V|;y3tNs9Xw_iHm4YRLa7Pi>L_5noJ_V2_iF6Pi-Us<3*fJgX<(&e%jfI zC)fVmi?_q2zW^9;fCKn5y4nFf{P3>)9k68I?T{I4C0e-=N5|-2>|S<^A;*Tn6PNTdTeNmG0p|vU$TMy=&UBou z0VTfu%0;QK(vUGs>~ny4^M+~2burQuIiJahGij>Nelp;N_kWBG7IctHAQ(tz?;V%esLlEYXXz_HZ9Vb+6%*kkp9sZx)$32G;IJV@8Hn7_$JM;XQ5YtMh6F_0E@Oa(c8f_k z<&lrtb_7Ij2x#tm^Gk1%gwdV8AqE)}7`b_fzswph0g>B9P@zPAl+liYWX8#^6X#k{ zlxsCXt{EY&YNV-fZw>5Q8ABjPQ_7$d2^4;?uf%=k8gps*IQUbF)isPn4FDBEZQ?*B z)I>!zHaJkcxhPbk3;f6v7-rv4OuGs`(RjgqRM& z(qU>%K5~nCjROBOJqAZK$ci7t_EK&W!m#6R@EI zed9;t7~Rrhb$&iN-ugg%qAXB@O-4Ip`t8ef1MFV}GR~(ZQosxkT{Tm07A^prnD@E1 zm{=lR(3HjQAr_~b+Gh?^!zEORQGH1Y&3wd%Y2QMjD{%P-9JslYoHB(`Q5-3wB$L1K zBBrA{XmxiCp^IMY#)G=3z4OR@up}o%G zmOmIRbEto1jS&dGwRHwD$&y20Vgmg%o?HhrczfdC;$JZtDOc%r5aB*aWPE17neyBZ zcAxy`9*=4T0Nn&v&VJ%ce-PZ)xO$5ap1FeWll#=OQ!VfL<-xN6m}yU)`1i?w;$Ewk z{jBoFv-USro?TkpC;OR~xmp1@W6ri`5y+rEyJWgg5n%4{>U9A2LNN(Q`DG3rW4ZzK zna~4iyRT_G>YSqR0649OAzK;Jh4Ja)+ZFed8nUi>r}ROU@-tT~$V%_4N-F^RRmn(f zZ7(zgP(Qz#*P0;crt!U6XC#HzoLTX*%b)aMN~}E;me%eQX8nN`k#2$dY&DhIJuj~^0Ii=p3J+JS_p|_U0ft1oGN}wzJfNbux0zd;qE8%{{Q4w!hR0Jt*=-~K1 zGEzC7P#cmX#}f*HIW(B?Foj5LPN2r5`z2xn@CnH_8zE|t7v+8)9%^HC!MG$Q}x%*Qxs`YJWY{@qf;$s%+_O&nZe>h z7GCRv);(;R%m=9C!CX7P}*#eN6_^y2q#vv}f zAj(PiJHe1=5Hb_xjXx2~{AQrUklDz*DDZ@Ww;9MVWG1%RQVrZSVMCCaxPk+9lQrQA z4zhD4f@J2$;U%;v;!H#%1lhlY*{9h&n1u5sd>uT0a4ig(O}1e1BVH|&a0*p?7Pc;g zJYSB&Hh|0)WR%PT7D&DzBS^47vIQB~K@l40Hzg-9$>YW}8N-)@++7n`M>J+9ub^+`K@>l^Kam-j%tvKKm;5Qh?gLKmt_i z#RCqkaj@~7U^AB!Jz>>tSvT4Nxe zs4=(pSg?V$`D7*GP+Y0o*OT#9DmMIfhF^AaS*1=;+P%qHi*UR&-LzEYR~K9amC{#m zQmnB!*C(_vj{7Av^PE&lX6Cu6QHaUKJ$&Y8?;;FmFU{2EjwIt9#Ac{1`jsjrxaiud zmgds-2=-#VDuZuy?I?~zi2^tyA-x|`adbLe?EAlma`C50u7ai?HUTn_` zQH#`aAqEE~Qh{&Qrc!XQ=3J_#&6+Du%+g{xOSn~j)p(^r-m4rbc5HB21K!{JnpSLF zd)(NB6Htp5-O+=46FBeP8FR0hL?-Yk_J zQQ2)sOiQIZ<%Hv`QW$L&QUqw>7E^=EdHrlcQlQ^dKeVv z;b8aej#i_?s`W{$QECr^`sv`gd*%X?A#TNY!Otlg4=6>W z)gQQJb2Q}lCTx;44t|*=4NTYPEDc7C;%ORCyu?%uQ}io@vrN=Li&lsaG@`_C*|F_j zoXo>%a2fd1i@S`3004JN;EuAx<*`ng+6^x!{G1Lg4;O`7E9zMeQ#N;&=-!u-5P8v+ z7;9$@u?pV5d#9J5U86r-R$u+wI$Z)CJ&6W9QpxcZgWH6(FTQvCC0- ze);4PynK=q?fx9+{v7B2q~hFVJ5zJ6wvKf--;KyN?|Szc;`IpHcGpB#LlFHZYE@Yd zO%waeBR2sS6yABbSttu-2EcdS1o(Lh{lOx#*ocTmjGTw^@MxY>NhLyMe4 z%U8O|P$3w1*~Knu4J6T}5v_T5g{N`9-emdgUJJWqH$oL$TT9ok$u)U4_shH%@ut+a z$Vy(qIO-y!inOOSM88i#_25rccoMe1+t}UOeZRGP zFlropdi&wi+x6{GZ75%!md-mAD%dNi5t+RdiJoWpY>?T`)Bat21qIewc;@ zp|S<2Gu^X7vzLcv-wMrs=455_CNt$(mSQ z>vXP|N5#9ps@PjQM31vSi(D4j_wG~V_U>2Y_No^-s9v81E{o`m`xLmw{R&*8GJ&gj z<9>Gj-@o(!TX)cf~x}9~&PY**$5sqm z2fq(bT-SIHz-i7NWv}CMpa@CD%Yj|_a-bnx4(!v*0f9zrwmUVEw33UJz0J_BvWpdg z6nWPwfH+_U_C~``vTN=(p7KibI@jSe`g9w&(-}?pM?|%V$3G#m^1f4|MCLQ>HjS4+ z+f0$@ledfQM&V^msPHJD1Hhu+aN$q<+00u^uEQvkoB*-~Ae#u%0`p}Q&huCVVJuK3 zA^t22RT5etS_YF`L;%JDlm9cx#ROn1FimCw*iWJ3KNA@SYXdNbGZSk#%N-wpu^C@D z3okEoG4(GmEs#awZSJrDj2))jVF4I%SefhZ2Jn5Ep#~tn#m!kTIkOS|3BZ@DpeDT= zYh-9}dB`jW2awIe$q)0Tv4jssmH2U8`HUGS399@kCJh=Yfj0+$-I3zjRBTX;Gv( zwI7PNqB)~?)L>SZN0+w}RW z`uVE*FQBICT>F}u_%PNTidV%zyt*&TsqSvF9siozPCw1HAy zwwB_u!tS(Yy;O!zZ%?ha5F}h{tO)*-QQrDB_!?PruuCV8-^#2}!}TT$QLHn^%zFOJ zq&O6K&qNP)4ZoF2;6mHM3=O{J(BNFuc6&pYcGBx_eQu&?boE<^lz*#|u^h=Q z^5qp5&d&gXlTJ54lq!DfTqQ-oY4d)F@?X3E^#CaX#P8l@1d9HHq{#irNTV_tfyx^m zs0*rX*knDe4KS2f+W9J5s6(!*;oD%ET#xIezOW@T1QeipE(%mvLeM|rtQEi zVD{ISHn}mRbs5`(UZ-Jv&34;qKrb(MplUWr^*fUW0iU;;Bew_s$I})G`53-V4|hi! zR;&N%m14~jxZc`E_mp*yuz;Vch{Md_rHV=qA^POcFZ_!4lER8yW$$|YC3nL$vv|!( zmen9I@}Sy93j-c%*ymK9uEkOmNAV!mER5GEy_-dBE7a|)>yZcrhirsI8`^QJS~2)C z+d;S4MUHR6CHQ)$IF4w2-*o1?i+OH#YwBS?wZ`lzi4OWts>24))zx7W*sMWXC_h8F z)SyBvy|9+=N3i*MPTqK!$s4fD&N>+!xR8^W$5F7T)B9g2nS&7fIisWEj1HBqzj|5+ zqQ~}g!K~+kS(O*elDZG3;{duyQ3a$riyxt0o-6x2mC8PuVX4&wrDlet$}*Jol!zP# zs>F=qh|%XVMbELHk0SQ-xlGZMDN_W;N?)LzP96L}yl6@xrpC@S(6)#)Tz4HhyOdf_ zGjJ1P)8A9w_f6HkmQ^Vl(o{uR72BJa>T0QISEp#E+6E!beXzTX;V`6VP(=#1w|5ZW zPM$23pR`pC7Yjm{DBSYw2>b;cf$LOp|2ZT6Ke0}1LI2-}qGieV9-sg3VbyiFCtzKE zs^`+~{O8$Ib)Ti(gXvGJV(Nd%M4wSi9oQbosAfgN>vWSb6F%2%m%#F-8yOSoDR(?E zDt<`^ROfhbPx%A72KMrFBLhM`4H5D+O1eWyPK2Cn7EBU2S7J~W83@R*r^zUN8t#3D&~n`PSFud_4nVOcU` z`rB{L9{UFCX#OSo0vuG2N8;Cm&gYYn({{V=2po8w(V*Gs!e7u4NZ+LE9t$nHZnG^n z(Cs}bM<)CfK@Z%sZnNb&&2HD}w_4|ef!k}jL#KaCM3S6XoK8=R`DPBKPKGV*DsD>K{ik9f!|;iH5=E)l?#in#fajRVI9 zOOS~~97x7J*;zxfs3p-Ddq z^UK^c#;Xgl?eh&~J=rhJgOJ9;vtJmHEPV;Ckd6|{#Zi#*>B84wA;w{p_*1d-nA&M% zl_<@XukGuqYf^6@j$BAVSzvhc)$Lv4T?9YX-tniJ?o$H|j6I7$gxbd)x7*$tem_0x zcZZ*xf14%$ei@U)F0t02@uU!s(LVKL2>6k3;29zmSq!M_o*7Fhp>vE24*TBZ+F?>h z@0EGhfzb;lCmg_r^`so|Wm84c!P%MHYdhemi;tQ!HK#)2H9B4kYbzaZ?cf8kE3eS6 zC+@&SrJTobw^_|Rr!#bV{Si3Kc1E3Mcbjf@Q=nLZsY{_qzZ5exh>u)n)I91cJ>UsY zp-1C7?SFCkG7$1Apiq&)vNJtjdIcN-yiv9*05$3lM)Hu4zGI5;aC<_!X8Zp(Tfj&?lsocEPKLr*d>_)<3O(Q!T4~=u^o11i`8Rfd38z0I=R+)0R`w3y zUdxoF==o*bY>hf!+;rketoZZa`l7Ql3AqoTq@SPwZWio)ishbw>XMOT4vdu(10SN;} zo9QRH6Zuxo|nM1ESC8n+7Hs7w*A zcr^z)@9x5%@%_iBOfl>cgtb8$!B_Pxkq#hiPMMPnY}fd__KGp&$-5X5*i4+X<`J~i zXqtGI{S0BDrIu6JCB6=CucBZIt=YVKDG>HEfbBxqT&!T{2d2rj?@j$E&cQkeZ(HH) z1jA-x_Q2+NqbxHMW(=FP%sXrSo9ns6WO<8yIyI#^t3iGL5*rpP9I> zgXz>?*x|yk+2ROa&9odEg3ZJ>^)J2EERm3!uzlQa>}K;5COO*j6T)V% zV|=Vdv3Ck8V?0{#TUSovvDoGg^JCH3BqRUjsoM#7Rsd; z$6!~tD&9`6u1^!VI#2Fqnr2(FABogW^@!b+iqAT;bkxr%Bg4A z4FL8S!R9Cm81M!b+iIR$Y7WD;Fsubupdc)aehdp#LpDl$UX~9MSw|f&$vjAiIISj6 za9T_rL)uLq!{$yt04MOsa-bO2W}q1I`flk*K-v9>^Rb>VSPR5<6u_{#6j%l~VFHdB zGvC5l1Yt)AHhY1hBMW>@*Pl|s%69Q~5p2F-Vd&L@8w6AzoLKz72p9WD%;eGEZoJUet4Hb-HEi7h$| zn@u>W%xMnc@`{~S=>0?ZZan)-0RWr5%ly2Q>%wN>0nw^K#5PnISloQbH@l^TLd;| z;>*BS%zE?0A#C>IiM*8R&v2sVsD8w1%fVsTY>gO1aRP5s7OVLMQH@582w~3vY!AWa z;03yUNyIT{m;iPZp5=)n!YKPLvN2j5-Vsj4H~v$|6U9 z1cEbz`^TCY#M%bhnZiLu;q5pTrz7K=d2u4d`-$_?7Yl%yu1L)0-g1f7wcLhOpe5fb z1c`kAPoIq~O-1mbxdmZ?9qCi;FjI@LobKeLXg_KhkezH-l51j_L0m#euzppr&}Y&! zgctgys37a?Q2}TIY%UHltEM=Furd*bZs&IwWv)Ysl@{(cClDbrn@}uuoM?%%ZJ39O zD?N%-Z^B3WgjVG%p!nO|?_(d4bd~dP+oX`H8&;Ic9+3)wc38{8X$)Bf`1 zQ?&LVqAG?lpR7F&day4)l= zH%Uhf=XSsz;K0oZ?&ur@Z1=nBTnm)25QEEYrp780AaQRrF%+ zgmoDNAY!z2=Q#b+JE`FS(}K|7mq9X4LUebbRu;pH;PX**&rnGZSW3dG zY|v5~Sowjgh6x!rcH}xR=N}>0>S)2+`_k#0p7jT)NTt6-UaCWl>)B$QsNfOuIHwSh z&jl+;3m3#s zxqwk41a=R>zH|bsWu;J1iysHtz_SIt{lq29Ko1$x#?S+r!}`5F@W0I2v0-$2xaO|N zpu+3{2Z64Cned#|(mX0T0BnSuu^KAHkB~SBTu72$XE<@!jmGF)S2;7})f=68CmSpYWY7Y$3T-9{eR&%Q1SNiA#ljlSS{F0xD z^~iuo9QDt8?QLdmY2hR`-~eX$ECc-XkX($zpHglbG3mb8K{i!a;FZoEEHEKzi}AC$ zgozxT_O{=@WucJ>o(Z&gs?Tf3Td`LFaDxKR2H*y{&o7o?i&_w%v@1;(aGKjM%C{WI zlOx}%TG5EOjL$6M5*&ZX1P)It-D#Q1#=u$@X0WDF{_D2uF`5==D7XYo=NOG;r_^77 z-_VlbN}P~fGCURf!#Sz_dP~33rSKlg-*kKsBW5~s=y0w6bOa)mttHvgkEj%Dl^PlA zE@7p_g~-6Pu_5zN7e*$tQ3tW5eprZ^ps|6OFt+Qkf?mt9l#Xj{mJ)lf1WT(lZc}y_ z`4Uy|q@UT_q?K81u>b0hd6kH~NF(9t_e$?qtc0T+1!Uu<@G2r-pvRf-cb6>WeV+%` zUIXLqSiW=bX9b-TsrxGK^QF`;w~;_o!9*&5ePnNXNOLq5J>zqhjQKSsH)Ysue7?h>-=df4$cuJVTfq5NVU4vbo9Dn%R$n-pE2<@fMfXRnTU3wwCX$PV@NF|PP zXN!=Ay2bA4d#({J15%f8b2^2bcLdK;h38khu%Qw>6lM?^6p$Sm9=MXRzNyMTFb-j9 zRt>F~%!{ElEX;#kdwe1h1DTN>ubJnv(6%x%I)S@uwu4@>U4r z=2?uQWo~m3=g`Xvr#}#gp>HZ2=kSkssIx&J8F&H$WLH_VH<&~=O@+-Kla-z!M1zXZ zdLR;4kP%Cos@FdSg_M*(OH~Qi2VyFx8@|NsZ!JrXFf}gC;!tfkiNt9qLk5ZST?u8T zAk^142IyMMCUyMDn25z8r;NDBwc6L2Odl^YN3r9L6UslQSjc6@X`}=-(xuN!3F%O_ zwv7}Jb&FQ7SP(#W7%4UP*k;0|6%xL)AzkEaB*n2I{3ZTgVVvHiwCQIw{L*8r-j=en zAtzxNO=DqD#IIm(fuG>eMy@-~02qy=ij77*|a~cT?BKV9O-;AMysR_v6leW)Z~K zpyMe?m!QT$wp6D#`jT>;efOC&fC{=-1Z4eXrplI*HM4eLIdSUo4l41Nt?Q(P9ZKs- zC?scQrDmU!!jmcr{}DX6f`_yvlus1i7Zp6ctYD)te0(vb=W^YIgYs!B#X;K%esOq$a!3{1hIYg`T7pmR^Ip-!zA=73ZKHbbDC^X>nrc7`CC$rwF?` zxhRs#qNcqk^w|}01FH0_PdZrRG?9Cr$X3I2hG0+6rzHU%?ivavn0GSt|_r9t?aus=ZYa)VWiPs%W99%8d z#&I{lfVc3KU|E+%62Gg&wYM#!YMz||c~)wRK(Cld>!lj)@0V%y?!8s3g6rg<3ei5O zO0*Av%?pkCHIew!Bt#Dyt%=C2kgE`by|-mry)D((d%M003eVdrgy(Hl!t?f@D=z}a zrgg`IWw3g7muhuTs@1zvtv=YbLPF9Xow$Rcf-T4V13kfgUor$}sFG4jpWZW=#=wqK zH=$xiR_Yss_}8)`E$m2xFRaS*68@3z z;`+Wm-NB~FfeO0$0&$}$d2mE;N0xBaE9KJYwEhpOlM0=JIVF7Auq}=&^ijwPqKgTp z;uF>$R@n7Rl)CDw^pHwAsP~X+!wL1q%W!PWcg|O_gk-WaZ>6+vtR0~&I^j|tnzF9z z9RDJBHKi1GAq=Jt@1h<3tUUZF z+No~-S{(goXzJTc6*&40e6B0KS7!AZdddDOK20|?YG~Q48^v41I?B*#*vqFIr0`&| zRwi`yT9gakjLTGUE7pcdl_m@ycdg_}J-+;?h@_6bc2Y^tNk2MLiKDN8RPys@Mm1qh zpAcFX3=ZQKDQYo-R+ECBg4uX zy$#7EUEj_%nhk<2s!X7)@oTa~#hV}bQAmRYhrSdFaLJ8wDlM-mlc*0AYgvbxTPpN` zaa{gcXX+W(?s*1*SEc`W9XbA;scvDdq2U=_mYo=2C)d-9twa%sh zCh_H^rq9$hom2k=M;YSJLNQ{?C`|Bq=6}eq{#0kh2+x_EdeK!-&zY6H=tPH9$6`M1 ze{qYE#fxJAJay7rJ}yX35*hUYyQOpo?b2@kxl!q892pgfGbWFUoLmMoaMUG;QuWfo zw6{Jt&xY$LOV|zWrHIDN3L+{pNwTW2r5D#ZPuvsf=pLsEukGreC+y`uCW(De$X>5? zmbf2lv!kwQ)-SeXqW34ZWU6(GE$-&N#1`zS{LO}1=ZSl|M}Cs2Uf(VKXr!HEj40vO zrQ5b`+qP}{wC(QGwr$(CZQHhOpYG|K`%Px%_aybBc6KVMq~1!Z*1Pt4&}e+D4O+Tt zJ+th$fucIw=>bRR9<<0MI@)5_X#+DE{NZh;zqCrjKKi$}Mp+KSd+!Pes$62K5W^2FiBA0l$h* zn_HZeUW~h3*Lt>XV={6L%)GeCgImOQXZzZ}qwPbHV)kF(BKRAhEmiPPvlhV&4fmJP(Z ztmV63$m5ke69ah~>4bevrh3#C>cS$-^=vghbU>qeDNl@`1B`0`;L&txioMG}ZmB80 zQ>C~m8GH)9VqMB3`WA03vi--Mj1w5o|5&#q+giLQ^2dh?C76+4sI0O8&Ba`jzzDOM zRRYZ$s$|%hQ<-GSeb;2`LWw4Ysr#8NT?YNH37l=1S4@2B0!q3T_hgbnZpdgL#_X50 zwU{wBVzCTF7`Jai$gr9r9iq%jnHAH#)+}Cfnk*9CWd^iB_jvlAIQ3-)%t+7p``&BH zWd{6z&UApfHFv!jULGDb`3DHA=l0`)e7J&&%EZTssnlx^T+}^Vj5Eg*FseCmEV}y32Yf7AMNPHrg-FAZ=zwQD8BpBytF(_gdbTf5;8k%n;I5S|CfX>GlGO(I$ z+XdRF@%O8o6A?qSTx+EHiJ)w~TO!viyEQ`oRaMhX&O_-XsfbdBRl0KZ%dyFke(C%X zHLmcE6xz1-h>Rf5DgSUmL?UE)7UOVpMg2!rFiG_?+EA~Rj|DciS|>Z1Yra>Mg4iKc zK<|+u*GyU}TBm%JnZ6Q@PugEZMJzp}Rw}aSQ^8zE^>7`o$8)xRSg*{W1po)&O*9O7 zhmCyCJt)d9R@Q!nzNzLt8*88IuBf!i+e>8j;4BlMqT+WZO-8L%J7S5oE=cO`02!p4 z87V1%tES9G@FT?e!?o^}u5&?^F6;D91CnfUIoz4cqT(C+HtNmqp>-2OxcPOnVZi%Z zhWIuG#f{8gWk1ae4f~+zY*ojk5v)WC@5ob8^+An=ZYY;Nk$Z4bK3R7N;!#(5N-2Zc zF8_p9d69^=TclBiiBKNWpZ#-+3i_t<2wdvb{wRmjj-Qj3gm6awYa#&n`@WkKQSWQC zm>m%64Gx|L;DAUH4d~YqO*IU_Ftod;hD21)>5r9oqt9iG5gOBLeEXLvOJJbH=Sch` zf9}_$+++tM{$r?Ao~Q`OJrMqrhiJbS+n%cvx_I4tGqg{Y@#Y&C{a+Tv-fp(q-!-e8 zj!^n-Z9=gx1S``qVf2X0%q3%~QO;rjGp!Jif|b6hq6Aij2Z@Ux%#(MNAAN+HFf z!8SvHH#cqk!moNj@pJqDJFW|FabSFf`mv%%cA!t4mqIR(T;P1{ehHRu*#9`!z#CmN zh3}3(br}i@(EtFXvAo))zp;F71r4gD9w`fnx!INo$`w(-P1>>EU)uh)&|^XzXrfwdv`^Ze~(8?U*~^%Gw# zw}7;-c3_C-u=!j4eZD0Y8wD&ktI`xN_TXQttsSn17X4ihREuW%MN4(@O1r^%fVy18 zD07Jlc-A2SDbyR&IxMX$H)tJcB%7{)ZqgnL8S8*IE{%~qWMkj>=>zFTPr270e~3_i zq{1y&3|#3b%Ag~I?Z7}YFp;bagwjk|6RZ9u!e)boLsQUR>$xZZ9X29*Aha@2A`mlw zOP)~UF>x2DKAAJWZ4he<9MEiTrc?ma2G9ux9QcWwd9uFdePV}>*&eW3)((05>nKZtg{vM|`w9Igud?S+Kk zfGjy&;=&)}xbRVqm&knKuv-+Vj2m=Gc;E!5y7UOEN!62^_gyVHjEq2^@t_przSC#N8Sn zB}W2qHMBVQasWVz#%m|6N=>!uQRuw#lC%$92wsSAb1-!X0`pRz2+WkqE;x+X)-WIW zfBA*%A==7cxpzqiAdw^_x9z}x;OXaYe+~a*=`hvp!eh8^n}qz=^NE_nf!m))F#S1W zDK%ZCkyfIfAjP{q&U80O9#%eSTB2@v`)-gLpsFZuhFETD_ux-vj<8b;kX;x4!ENQW zhRHg%-f@RfQOP&2xH?ov-X>ZPtu__0$Rc@<5+;$pnCx za!5v-A2m;e$Ptlbw}%Ibo52PP;afq-4xEg4FXOt#u|k`Bl+pNw-v8GR&=9FSQ2P5< z3AxCPsU>Rrjb7i((pOp-pF<3n<2clR=DA9XXyd2167ddajjE+^r}g^pW``JtmH?#s zC85<`A%yqXvhzqZXsmM&vrSEiegLRg%NZ4@dKv;q1Y8@T~GfRgt$(mtgDy{PoC`VL&|OYmSiKvE5!x)M)q z1W!!?cP2n|0wDgF6w2q#J==hyoqP-Oo2)%%U|E%lQT*aeK68D@SE~*!t7RQE2@^G- zp-+tF0>>I*LM*7;ouPA5I3%BDE`M{)>xQ5#D;cLq+E5A@d{?{57{Wvt3?Nlr8N$Th z8gh!0Ukf3N%oyZi4esoipPmVY}P7JItEG*x3kF+wJjbB3(FS!Nq(7)0_x0895<6CHhT4`KfICb8aO)>Tuu zP%GRa3jFkkQMgb7ggU!)He`2?N?#*EPp8Gxa8Mp%!jmGP`Bxz$C)lU^gH6-{On<{5 zilg5iFwG2t6xb$FI5p0bq9;*=OyttLEw~q#S|l-ft-sR6VyE9u=cW40g~0Q)G%?Pb zA8FdO`V!sMV(~yHuHpqvUfoQ+nj{-=FjP!)acDY~jp8bnn0;epKUSvdRd?LMP6s`h z-=&F1unTXJw~Pu*(!=S;>*$IzlGPv5sg3BnI_mmDy#l_MfbjjB`o>wM@MbvlEB6{e z{@^e`P7X;B(#FaCs~l^EQW}Y4I~;ncNBGJzlC&DkU39x|p$aiIv#ZY7yJAst8%Ztf zZtMbdrSOlo4o4Eu${#u@nOf65gCQgr~xifwhX9$}O$N13h>OCv|+=I$PmqBkh)AMA=c zm0&;!k*;XYSd<(WAAz<-HKCvZ;W$J??0I!ojzxWChOmIfZ5U>pZQM|kZj^s^8FY-8 zDXdj4{w1)%vdS7nsNLZe&!VN}NUXm?Q3SfMIi^kaEgyNv7K8&Rfqe+-2Pk`RAH8bc z1uzEa-&7A@0~msT=ORIQDPV?AFsA5+vj&5qMbRLbW-_TUj^=YQ0!A9rgt%$|#nmbp zPDndtBKr`xM9-Ho8uOscCrzp+*26B!PVk5+r{wQH-R3SQCUu{c#M+<~aaw$LnW981 z{UV7wSge(DndlBL-9ocS?!=yKtyv;}5<;1ouaald)e)ziYQecfJtEIZZy7yR*6dU` zVJ2Q3kFUxlOywf83|>vh;HW&+q*bsranRzMP(`%`<{zdzGI3nFM8U=)m84DVEe{}a zF4=*z@LKd+LxbALV~E^H_pr~sB-^G?^qAS${noOsj8>k~?8v*Ck+R(m2<_t8q0;Ay zyDajcKEiUhb2`8H?} zh7WI!C%X5H@;S@|xy%IkqF_h=N(3G_s)=ZneejIG4@;Esl}`(wF#_$E`jK6##+vqB*Q=+5NGO{kC(+tY3hU^(z2Hu$-4%fmpF@84+ zLSgVy$b@NXri(82os>b#Js$ke;`T>k9fKl8()61$NGiutu^*XZHZZ&r7d1GVD5A%a zCM@XJPNh6wWZ}T}HS!Jic8~H9W`v-iywF9n*2riuQGrIRReHkvE__(`!oVFY~Z8D%1Ib9DrY3rIrkSTPUni||7)`?aVLJ^qm z>3}jUiFp?{c(|QBZFVejqeJ}np8SZ_acx=`okGvyEa*v!LB9ET_<5@;`fc24IMw79|vwFhm#~Ctyw14>xOxJk9OQ8o*up zKN>=BYpYG*T{g@L#}jy2Hkz*T;h-n*Y>4M2H{ML76ek0Sh$`%CEbA-XwLRuzJ_pK} z%*95t3$U)+Ft&erkjE)fX~kkmgM8Y5k%W);PH_spsGgnEb>3Ps#I8unSqJX2}ON95{Sn{-f_fHWUej z_nBS9;x~;VIf>UQpI(6z7?x5>C2=ju3_-!4D1X3k1@tj=$&k-rlwk6PmyWf;I<}0le|-1+caZS+l=e7i)z30JXEmsX_>sw_cX-bs}2g+vyT0de?2G zG}=Tc#3W}~uX+p-qK^eQ+PM6jUk`3_IKg^~wPS>=MM8c=e|0d;R( zxoyNIpIU!$E)_Xidzhd;bV*Ks9+hfwK3Gciz5~cYB8P3mD*Da55>WT!nE4LOTX*@L zGKdwa4^Z4I)E3__K%`M~f|_w4S7Q4W&K-QH^SUW(<+()7 z_vtCXME~n7>AZP?n?p9F+_^Yruk1 z_-LjEwNVUl34mX8PVVbnAQrw}eMPBl0#9|UctWalTO1|QEW0#z?_2a8~#N*zyvOEC+p+Qd9nKGx}^Ml7$6KjI%loYph_*t1q-gs1YQ}DSxzuBCEfe}+=%*PgWMjG4 z?e~}XO8j5-Waim~$KPELJ9EU$2+hHH+aTt;PVyFW`#%X-8pK395Ki`?vmT9g5POD9 zF4h@92hm{wH+SQ8;?YhG{3?Zwwi{N%t>_nV!hm(};&x|fthn9tx`YNNI zO2CKt_di0TzSk)V&gx5*7L;8reQ1!cB%-v<_C)Q957tX^AV9mR*R(Q{vkH0 zA%%0%=s(#z9`xp1{T~iptUECK>4O(mzsnZK<{5bO!2i4vl$!{!oQ#x=GDxNI**hIV z7IbH-30n#0iVXF6WZBuW0Nx~b1-76mh0NGH+TQX>k4s6;*tNgCxY8g7Y$y|V+6b0Do z8Da?t=dv~rWsN6SHDKaxnhHc`rwuHdfT%{Vsz@}jlPVu`C?r;ZGj9JI>O(N=qA_Bw z&bLu3K#jImP=2he5}m;Ubbdza466N{cn;0FuQ#A4j{LKVv582bcV@1Da?hL$Z!HSo zblDLKw*kEK0hp>nGD1u;1m%NFy=2U5Ctl) zQnSRCZ=EHog{8#~x>S4(%Dq%vEeW8qGDVA-wj0gjvFd}x#Kb5spVmg{NNNco%vw_( zA#LCbgoSxFzCudK5PG`2Xg8 zl>o}+_AB0XgdR6Rfmj;ItN_HK8))Mw$vgv5B#s#PYo)`p&lh>mDU5WCWKUTT2Nfn7 zCX`{FMA0^z5vH^d>qmE5g+frf9P)(kA|U6zrg-H?y62f_rBgPg8Pt}N1O8(ArWU9I zreDc)>{u6T2mc@gPlA48HEh|s*B8Z4+Ek;V(VDe@dht&wdlHni*l`in4|?g}@Set< zJEG0L`>4)yflcu$!=*W5NT=HK1o_}j6paADO3A~y@)ULkkLRY6c7R!Ry28@2X+Q+v z=8TYsOd|kxv8#t#%EDB!^P|=fnpp$kJR&|;wVnsa6*dCFLz@NQJRvP!^V}Y%3LV{Z znsvyg*X1Swt6KS!ENi#;!j?+mYsO_)sZUSw42ir2a$U)!<)x(@Q@O`nAopaRI&98! zMQzME_O;393dCv2ZOl1jUCLbIc_AF)X@;G`FKbcjpPCVW}CCW-pXRgAB zRk7WMRWaWKvozc<6&~G_g~umzzl+MYhr_3V&9*0#k3p3Gt>`7J<_S{cpUfAi$8pNN zn0EhnHu@TSaK88G)O+!h*(TQhfd7oz`~O$bo8vmP+h%-t?y>J_3;ZSXa(m6Y?K@|7 z&z^?T_m$qXHh$lE0bpJA0O$bABKU3IM12Ida0B>WbJJ(Jnz^l502ADKK6*JXfa~LQ zmS&TkA-XJuq`kWSf-&%41V2|G&-(ulP?qIIkE67Z&FdcP|CZ_S0aQ0|0_b;dfuh7| z0RT`a-yBoFSig1x^TPOM^!;xDKL`Q8sO1ZPp|ZW_PmSYX3VZ(SN0MRAm9f_UVaihd z4^tM1WKW+b$NQ;M1e~Wln@i#(C%V6uxbD1Ku&H|*!A75Kqeh?!jC7-Q-+b=e+jNMC zI2BZp(Is3x%%Fy;v z(7k};J}EiqvACd1%NUvJf`6AFP$A2(K%h6jFf;|ALY77%+o72; zp$@6Jgz!S+Y3%)P&WNC>=YIsZ5`aDdy@5@*!pdwnNVZDK z4w{@<*S-y(R^VN$S)7bBq4-E%Szkv%Mx_Skf6(8udc_}BrksQ_pfx~~_7PLV#bv);LV5lzru6FJP`@z)Q`n3H?Mbf93 z@a9rHb*mI0Lzle>sWB~P>gY=NGv&HOuJ7cpg7*M^xxE`?@cimlN9=9!{JDtQ=+#%k z9QwZ^TWdl2u=YL13m>O2|2|n;S7$i2wAIFcV>RxU1TH))tl)k#H3DtO{JBuQ7-74F zQnMA%`k|hFcio{AKbF+Sk5|B#YsqrSmk58aD#5NBWX?^I0A%*ca*L!yNCGuL?v$<$ z{qrefzIPKile_j>!MVbv+NQgDXL+|fZTx)Yyz*w!hBf`=clH04} znFqQfj2J={Rh3ngcC~9667W|5cDirWpjA(XiU3DI)vL~4qwR2}o~Of#o=l7#0}DVc zkavPc#5AW>K{t+wS_!ZH#z)hwr*m{nK|ZBzqZPq)}%k!fRy`w?};*4cI>$f%6vHvshe-eowqefIgbp?mmQ zNd*C39`*Wd$5<}51Gnm*=l*-pU~?sr;&k@)iiTZkqI$QsmLy?+HZDaSVWeooawNg- zkAlT*AYJe~1PN0!RBv*N7Z%N`pumr7>k^wD=EYgc91#W-XC8V^wi`GaUaqaU9%jK2 zQI)4-OU7}i1zIj0Q(+wBAyH5%abcG#OO^sD%}bZ|QCYx}7?kIp93Sy|=ImjUwwI0t z8VWBQmLXGBYIPtZl4Vd2$-Z!kodHwUnPE!qqBpECS%hIpNL6FDCn>n1%Vh?*|77*oImWGHg?`$Hi26kKfW~p?t7{0~^I}Kbt}FcSR%`xS&u@z~!U;aHEVB&o)vobq_Xm#N%R?Uqc$9WM$gE% zdzX%%MswzTom~jw^BlbH?!C3yLwOzG(m8ZiZQ5bCIf6`gjDgyg#s-}1zw#Z5Fr_Of zzX_aVs<&G^!NqjS9j;3q(%T&R+WI{|-JG4DUVedR-p#FnRq?)S-hbz|nD@C99J;5A z&J-J$Jkebnb`VDEB&=P=w?1zfxWHh8f)7di2mIv&0)+`}wjWN=756BGANbyLpwfZT zhcpSmu)3AagC4`}#y z)d@Iaks%8=I39J}*X&TX-mbZgNoIH`3w~>yM4nCS{1d}%Cwf{(dxvPn$X;D~uGQ4V zB2MQMEFgQjOY}hZ9h%>PK;>=ll@`GV9w?9`8!V9`YH)Js9gjm?&tP~?(O&Qx4%weS zqbT>U8`6|N%I-P>2n{>%t$Z(s`2LjXoXyWj&>-*wb0cO5KXcfqnO(A*6ZMAsV>;gG zPj0vGrY(**n&|u~?`YajpQh6--b_V4a&iZMC$iT5U5JI_*50*+c=E zWbxwj+~L>Ad*naaQ)xI`5_SFy17DPPB#czs%r(QAWUQvCw# z9S4}W$!oIgRl>ooh|6@VX!G>0q&v&RWd$*>3xJmh5W@w|Q6#s`$r%03v6E`3}&{TjgXnU~Yq?g^4NrF(qNtCi4Bn8W{>>`G~QNtVAMGp{A!bP+jWJHCW zd8vx{L|lSjo5%w#p9R<20TXKqIr99aEePoPCMw|d6k`ztR=^v(!FxfS!=1!Z-DZP* zPchEI57u_fCOdPtv9)_IpUrD;bxJz_)&Ti^>Xn)AN98Ennn5E_(>P7s0|A?du>Z!P z)SCvha+s%hxSoUN6<-`yfeAX= zWN^!~n7&<$mz?=Lla9srqLsv=saaD?%bqs+4fbvkiN=@J%tB||7MCe8~vBFY;H`{PZOqZFSi5OT&>PUDd|8?^(%*!uSgikLneA;0{`avu6Pshu&i z@~$5#Ej1=z08%8Q3HNpfZ1UgBj@ApVd4<>q#7HH;`#7AcCiuQApx%_-_y>q>s+!!* zO?SCVszlBl=$=Lo+~GEN3Fj{@nlgXVMT^^zgyEc`u|z!X!uDLB{e<0#_cz;^SweYX z$J?vfbWEmyUq1R(Cp- zBGC)pV*q(g&y47^jYI_3s71eL`x1xL9gm+IPO(*ZIuPDG&)eaQ(f*z7dkE7sJpUh~ z_}zJfEAuvc76Vo+X3S{#sE{Sm!nOiI@p*Gm()woUMQRWk;Kk4VM8HPPZh)n?oKGNYwcPwyJ!;5BDPd3R;oD5f-bpCNRw zN_Xw@y^4-Pz8I7qjldO!gE%fEGJ5w8gR_U{qm%bpB*G2KlVx=eaU|byws% zY^Wu>cPoguM?;dJkda=EQ{w95V33nO0Vcs*kogg=NJ6rp5lrU`-ZFp@lcs^nBz?s~ z+E|yQvI#8ab=F{#LR8>?nV=Qc=`*1`Om?)eoq`hx%$}2yg2Qtb<0S#7ari)4z!J++ zgxnjWuT!QyvKPoGGSjQEat@f((cbv6@n|Xw8qNu>#hIa45J{-00hZQn_C?u+GzSIO zr8U@436zkD9I1lc6k^3rznO+md*Wg6i;;;IUT5Fdbg{a~A>HJG?ikv{tw3Q)Y24bb z%rw*hPP!qpgAEyK71verz|z)tWoFwD_gz(7ZMTYqqGWSW!qUSJ$4$Knbz5_%LGQ8 zN*5H7w~O7|`#m3Y7@TVs_rXlaNvuCv9M-xM?p?9cLo#&7-97%}{va!mDLNqc?lu)v z^)&-ACtlNbNx>LlnGxaILQtgLk1eUS-W77-8g)86p8 zDN&(N!3Rq!Gl`25;fxFB{^(9$6$zCs!n|SJ;CnI+UVhAp&QO#xiX}L8l26Y-APS_S z65q|y)wk#CT0bk9%Wot5>MNWYV`#&p4LDI2P?F~z+4G~ENw9jmDf>G=*P023WXE+! zsd|75-g7}HoIfUh=DO~!?^x#$>AKI}j2YxU0SD%$R~m>(+I@~j3Kt=yAlX1?>fA;Ipg#Vu{#y@orI%;bI6%L9>9 z%B#}=QpTyGf%)+QK8IUZ14ezGZ}+BuRN1bye_4w_%J)Nkic~pxNqQI)r=`}8nrx`)LPm2EF5^2d2P~8 z%Q7D|aGLl=Tpu*ErI>yP@T_6=Mq>3mXK|;_QH^p<$QGMc7chKBpMFHzm|8}T#=DnXD_;gN0-yCc`XM4EY!9T&asq|`AkYUJBnj}LyF>I z&s*|I8kh6ciylU=C4HhUK?&ZDAWR^JkF#V_i7A2(1nNuwYcmdtfMcx*B|8ifh-C@F zn9eZYWTG<>Wj|4!g*?nK0$E~8>YNB`u)41WD(gn^8|G`kR^f!A&Wumr3OKnYroum% zXI=V--fePk>kZj}LG zUg6tIJIvnwl?!BFXWcR_APQBbF2tRHls*W81_(IZZ>ENx5cs~rTx225xrh`b#*#ZI z(4-nEG>GYj@&Q2TcM3h6{oB3Z+lE71c30}ZCt+gK71aBN)GpsQSIu>1J+&2l=Nhck z!+U|fxw!6kQ?49Cin@e@b*QRRSFyDHAUT-q@f?rx-XvsU6r#XDp$(DH*hWQ96WhLo zCbbW%!hoI9*T($T;!A=ytZx+I=KE#c&Xn*a4AyPuy5Zt4Anesojgk;Z|ix?M}rr z&zKlp8;|gYmW4SVzwSr3J_-Qp%L(+wF*4)?K73=yT@T6ya>VQ=8lYuxt_WB(gqIVK zYA>W5rG*CxoW_QSvs?`MB?D-PQtK`tMbfc$;=xTpLjDcjtu#5-1S)(jQIce~j8-HN zRiFf*dQhXk`_p@F8yChK3y2Nze~0cs3oj`jXGrUO(pTv?zj1@Zx>WF&cf$=JU`Pp= z1&OUD?%|4ZZ~G&KILVUPTgn!mQ(w0Q%|d$m=~swMDu#iOdRK3=nrD_aOsX|6mp+~+Pee=ADqXPAQ}I2fnFScrxc4o2KvnFP&Ht?B z1^*!kvrO-D*83solWvX#)559s$ezEw`xEWu6JUO3RXCIPZxQ{eaC2Eq_p7qj+dnX* z5ZhwgL0)vX&=F~={R+&np*78Q578%k3Yh`BWaFxkPl3N2_(A&`ybZi8ba17^<5lb0 zXQ<$resgPD7WY#yye~vlK-37f z*MQkiMXjzqh;}LWU#RrwA1gZpDp-tg+;b3BFB4#^72s<6)z0MdHN3On0C$Aow00;r zgYQw_uhHHgZ2zkR|M>GplF-I;!hxxc32UC*0pu%PL&^hI{Q5Qb%Yxm@)(j4Jz=Sdv4W+onC#nQ$5q$a;1KOwGw(g^57h`vZsbP4vVAb`(JR{}ln%olzF zf$Gw#>e>>ao=tN-gR26j#PSbGYjz^d4-?she;2F4Ig=ikS?wV8i@=H0`4P5<_- z@%*XLN(X2Nly{&Mp9c(D82X2b*T;aHwt%NF(!U5AV82T#|01`Z=J$rcl0%6SHzq*X z0U>Cw=y;{ThmNxaOe6Eke@3$1C<{e8M;(N)fWN?Zp|E#$ zP?O|;5nN)oFp*x@BdSu0l-f4qC1;htM}9UyZo?(7kSZYsYr=LdH=29t<`2Z*aoBIj z0p%N*8a*ccz}^P=wNmXe^O^k-oLfqkiSq5J9)uO>@LITWctOcH03y|J3ef#g2*vf{I~$4| zMT={Iv+v1w4a4Ozr~VY}H>#4fcibdf#Md=IcOY=*GQr==adwrTW3?m4f7uFBm!JY0kXs(ko z7Ff}n+TfpW0CfhkCm`AT!dl`09nO0J)V%-mX+{!0*V+f*0Us(t<8J_Tuq&d?@{3T3 zl37$rFUOqee<0ibB(am#F;LjZ@ay!Wqal+dxzfTcN77h`P9r8WfjfO1HzuIHLo|?8 zqta9{(tks8u3hr7xQGQs!I94s43X(jL64-!@KWsoC?LTlQzfFpkp(T2QjGz*Tk>+{ z8D=5nOCf3>6EX(aL@Iv4uE;y(HEBsJQ*N>t(MVUp<2RIR3DR*nOs<{Hq#>K)Z~&;SPckcpKKBX z$b%La%B^74aOJNxIf!4zstG1oeY}sbltB}jxAJfYVJVv;sbJ;aW(=VcJFJi*8*(zS z!F#liyp=;!xcBm44`nN#qH6Ey?grXQK1tKo&9fD-nP`H(rRU?*KDN9g8uLQ7QF@;> z*1(*vM!v$nSs1jgdGaEmuM9pnWZZxGeK=zf#U>+hp3W6&c^O5?``CHd%kyWH1s|A! zd3)Bi`mbNYTDuY_a72=Eh^ZGd?%@oIuu;?ajT>WzG+SHKUu=4Pr@RKl50oC) ze@mHxppx;!?2$ytnn;v8SiV7|;%?0EZQq(Xv;9!ppDBRZcW}*VOTBn8<(m{mWi zxQLSmaOXa>o`5XnM{^4`$SG~^k>`%5azLlWI@BLrZ7{`Dhkw5Xo#VGVh64bq=@4gx zW(m}X(t)}M8o9ENW89$!edhyParb|Z0`39(J!teZ9LjIHv*PxQ81%#!d4;SxxVm>^ z#E@C_h*%m}PnI!)QTSnkG(!i{xi#poSww`$``1@!m3EMw2^35Xr4iWuwD zS;>~w%9uUg){8OM`~NhcAa}Z|<|fb}!z-d}Yt_jKH~UbLZrZ%N% zkxZ5R{HLh+EqF*}-iH2DZ2T5mq%s5(zeO_CgwwlBT3n90bbBNeCHWqEds*c6b9SKP zLFtJe)^Qp_4b(aLo&aUM59A-y+CU$lGi|nJTUw`XrIZk}s%vgSCepcdTpP3PdQF)W&w@}wTcnn7W1%ZS!NO=6caWdgT zq1Rz(j?WwsXnsq!Ogv**23`qpb@Rwxq0zvgu5d62d>q&T38r{tYl;b&5HUyx?_j(j z6eJdJq&-1gte$toeIUbKFstgyts6FqGI?{jt5w9lpz=v75yUPWo^1sUZ&sDfT4cY7 zXWwfUY*&y3pp*PHpXi^xzM;y}RI)gm--rEzO@)}n<$nG2yZV>sta=%d`scIJ1!|9I zdKC>-(|N_%+=D@?l^RARN~0vDbrm@(9Z`1QC=wJtjL|g{t3>tH3UYYLYPgIXktza= zsm`KORG5;5#$!$5NV1FBNkwZ{gvmXw?A}@^oHI7Ea!^@+(1o#(sK zLi$pNqlXZarV{MS$OUabL+@&`HBN9(OtjyP+R4<{>8?Y;Jr~7p6%1{*8^@`CxZtg@ zivq|L%06oi3=8YN!Wlu%_F_VSFstz#0@ z9lFvWMe{@CeDL|JJ>HyTNW9hTH_(zvGfeFF)M#G2DX`9wJ3#BmGmEY{NmUs1ST^%x zZ`s{URu=Sb@!0yKrJbl!d8JrmcYiMM?ZsYQ3EK;5tE0~kpwK>d{JFjOjzGdX>UVaq zoq5&8GmW^`aUx$ry2$L-!R)MO8}Xe-eWKXG@x(mr?DmEA%T}yz?Tby2rracn$mUbl z?yp|=kKGtPW#1P!J|C+i>jQ0fMT6IkUOE1ti2>Tu6$uU))(y3y#w-1X$KD-#KE>`E zten{R*<84?W=Po-i|N6P96~b8qTr|Z!-CK}@aqGcDyqq6USE3*cNU5&a&_k@k*8KE z+r+;baQe$;4}oL){E%+Qo*)^9M1sTzrd@Fe}OQM+rWTg{TR^5qz#)M{O(bm0rqdRA>1RA6pxSBx)kSAIzLHr@iHbB@Y)Qd zi0|UB`29HR*jw_yNY4KaE$WlpdKr2ROOX#@&{hO=t)BDM?D(EE1gaJqOI*jC_P+tE zC4X+0X;tg!^z6I9Mm!wDxxXc>j^7*9FSHT@84GNd1azc=7<$VADk22~u~94Wvxx8~ z^maM0XTRr0wP>Lvn5CF$jgaXWXmB1&Ek^?|Npq{fQif-l% zf_(zn2Lm7s#_lsQ!Di@*WcQnpV)MfgXoKu+GA0h<4a$U^RECW{?R!cCWhlXgWdKL9 zrzmEtzfIY7Fbg}tIvE*BmKha%O)xTDV%v>kHP1C?7un}jG%X2#P~KOOZMoF4|04*; zmfFpW#8ft0$w`k8107J^=sy%KZRD89|l?Qsh}o9scK{ z{mP{kd^HW+I9j8X!U5@=g+T;}N9szXN6aK{guJ`zV8}bP79^soB40kHw=RSuuUkqf z2ZyN^;FP-r+UW|h6IJ&>N-u(wRt~6=^W%hrs60>Ehb2cG=P^r;VWjaxG*ev0WMfwG zBj~x2+f;rvy%!u+BYkdUG{TYP;!ZrHfDlah(I_KgaWFl{kX>%BXE=!Sf*7!#dM;?+ zrDzDXD(W-hn1COnkrJh2bV5JGG~n}-x&7ZiDB5;26Ma)(eNW8KPok>Kre1#N*Vp?K zzO5tr>xuXqHx870?kR&Aap%NgU=3OcKFyzrc;)70^PH9rvr>GzrAM*WA!_l28sVDN zAjo@1Tb%x(wZUZKwtOb~qF`7Y;`((`n<%uwZ~L0qPw&2d67p+vJ@WSIOS5V>KC6VM ztPs{r8Go_j1eK*T^h8{3*@}=N;pZHuM$u zw(`XL5(x5M7P_Pas?2~NI_5;4O@0ml7cTOf6)`i0b~M><+1>J(Tr(GxRF6~@UGZw@ zCnS5}8@`Jr1gF=eRq?*&)C-idyP(K=blUvfHo`g0qX)uk0Ei2fOVj7*8l=wEoK@z$ z`m%t3AMm}>7+xM&k38P#R)bmI>8U&Dc`dU2h82U$&&(Pt$e;Q0e6JX7xGrer$#d1^ za#)I<2xFZh6v@TR^dxn!NwZxV`0kL?oRv^%?H~4A+HXu~5bx&AuIRI{9Puv1O#9_Ej&vIu&UM-xIM#FRBvKLQ^iH#{^ z_wEE_x&M~ri9|7!^HB;=I!<}?Bj7_QTofyo;Nz)!=96V3{Oj8{`(fu|Pn0>|A1?Ql zaeks4C=ylyV&3i~{B6|ymDSkhYRTf@81N*wt7wc0ofS#)po7onug0IJz>Dp;;X_IZ zQcDVaz^TVaG@xa(u7LOah(wDtKOntgiod%;4-Ohb&XRzJI>4p>A$jodYPYlXVjDcS z;zc!&6+8$|=u?U&kd)eXTbJ5GT?qBkE%bqIB?#Q>WR4O_vG#pR4>o2)ZS^XhCB@JM zx`t?IBtihiD<(wuLMl|@*_eU0*56V?AWTLx#doiTNyaOOQ;n8Zs=vxxmL8Q!8IGL~Cn~NWxSNjd%B*QJ=KYKlS z)xX$dRQ;ZLddl3su09v&8)8wH81ZjZ{=rz8c}~J!^wq0;x071qkC8`-$yG6S5hZ-~ z845j)#GvTqX6We&xaPoI+`}YgN6$R~>_dr}e#SDVLFiYt-WtziHp`+q)|jClS*$Nt z3!R2aXD(HUeg8--;s!Uft|E;;KMM@7EwRMUvHc^`)ePvE#(UGGP1mZXLG4&D$=vIS zBJ&CB!B0pfK;QzHqcwK^;N0GOkV&ijM(3<#Rm`ZW6iZxE&efu)&qP3)4=@|nUq z_pkFRxDl9tfR8ajFnHYvp-K{>YZ5CXYrL1NMPx__FFGp8kX!sD*uW`#uer#OPB_Lt zMRd4&Qs6x*tgKwRkN6$z9^HrE>8wCb%+JOJ)|JU^toBWtygQ-PVi#xpO5Arx>J|YOvUqe#?O>UWcwXjX!FaIN2ta z%2x5lcKx}z=gahf;JqNQdoETC%JM^E>8T`?*_>#&dP6ZZp8m(fY)A6G4pf*+s~o<7 zR%H01PZi-hyPi?ONdlQy7i*L4Fs1~Ov@s;>WgA%%3A%T8b#Irr@RZgQk*FG}PsuKx zlbW|FZ?ruBVBilAk*HtdHbtw|B6FOL`dS7>ct;)LdMRL+@R?;!64@aU7B4yv>NgnS zBE_&xDpf8_&v|V6KcsZ33)DG#xY&JhT#`C{A2b1yaa~GefLMBHe)!0>XiDRx`;ABx zs)3^Laz1k-71e;m7{$&%C6qTfV{CVKI!eU3SL$ha!joa1eM^p%{5wM*trF^k%N^}} z)Hzhcdd)uD7WTiPmErkxGOmpkrk8(%vNdI~aK^|@q<~B^>aW3n+uHh}?9oBKJXQF;N4o@qtbphF zKxrI~Qb#)6f_68YQM0Z?T`m<(YE_Olp{s-au)QgI>sT?MDGi3$n7**~E)k)F8N-2| z1T!TZZnHfu!`%NDY3C4KTfnW^*tTukwr$(CZ5ubXZQI6;ZQIFBD*t;`HL4obsxfxw zwD)eDHP>9<_bu14d@{zcDJNn0Wy1riy7lQ=ldA>XprMrYM6YoP4Il*@1OuJRlIzy# zTvGc~c4!D<=s335D^A8iH9dcD4B7YA&GffEorQu6pE}OYsAouL;51dkc0n2Oot8~= zsmSdf=qZQ8%fdPq$96NTg)Fc!2~IaHtY&;4V<9@$E`QF~xlF_^qq2W|DpDJglsqWw zsF==$aivC5u4Pn>vk@0ef6*-uc1f#R#{JwO`tzIIAow~Bk7}%xuA4nJ^;`t|Q_p&3 z#YIqFAMm5SL9a$F!iEl-rGUm~QZk#uc>`}Lr5qSUm0=fo(kxsK)ZQ@{-XFK%?y-#x z9(UYCbhjGY;EInhgW+;rab6&w739onDIl04>hGjh5|X$fDZVSE>s{tg%dwXsFTbmR z!md1SfL~&$E5~;+p8MGE1|Ta&oY&R`^*3ORrT+x;Ooog~2Z;ELT$88pSb7>60h#Pe zS!XcItu{y()}fBh%NIRPu8l1UDiiWpjC8nHbaW`TYkLIcI3i=*eF^aXENTBaM zEQ*0NNNiNFktHW!svR@Qou}qC z{iF!DmMmp^7?aS0dH+C5RVZxPLl`Tz( zRG%3*5G|&R5o~bOo8m#A&{F^55=wePS=@L^aVc3 zS2{t@1YI9JH{X1}*vYz63n}T*%WCLyk1{ckjPfDuEVd^{ z;@u%^86I#4iagsS)0T}Bpakac_q1fpiveU%LFb@d(a^zc%E`|iy_>6W8~d@2g?3%Hz2Ul!i!l{|@&{E*>1;_2 zDLSbep-Walv>G%Y%+Gb&9!*M^dIhMO2pDf{3z)PW>n?u9%#^>g@U5WV9dJ&j3ELB- z35Ks|76WSaS@BXS75O!c=qj^eNNyq~LSKu32h;lt)_|9Xih2xyqq}MkCnF}Uw~l*i zaeg%WCn(n>ut+AY4K4b<7QvnKFqa~ovyw#&eWlQrJ+a1t}YUz*Q;W%Q)#;f(%M0%1Q`ajma9 zqgAeyIr3km9t%voq+r^}=EWJc8|S_jU6T2zm8(b~6`>+{xOze)A!Q|wg^Fs@jH=J) zGbSjiASQ2zQiF!*B(I~$ah|w`!g&)!s$?#4gmU{MaE~BQd~X9zJf7;%?f7ECkvsZ^ znrd-Db&DQQA9BjV7hS{%rkD=uR3pd9gFFDwfVCFGRXS^EnV1g?eh~ zWcTr9<#;7n=S6U4Nk3S>MgTIOtDl;5vk54{A0OJYycEK5< zq{llDo;^x>U_(sbH-@ENQNex%n ztdfc~_8(I^UiR76eYFkAuM+82JdQe{+Jo-lC<=H2tx`^UA7@$!h3Pxt0$O91QHBMO z3J|j>xU>y~)NfYe#Mg5ACs{(~fXdYUYN1f#ejn||#$OEd>d@w0v&A{8+~X(}ES#`6 zwFkX%YA=3XF{D1c0N!_@4Qyt&a|U9T>70SToXne32S9IJP^2(zYpZtRP6(d8)q&1` z#Fa5)IR4CR!6L~~BsVJxoCU%}Vq`K|GnHhHklc{L{!0ThCLn_kAck72W;HvEXW zss4Z=u^h?i%be#99qvs%tWf#KcGw|4l8zWd)q>mgB#t4M^1VdjjJ^9 zBNNk!xmRRk7rmtHihbVYRu(LXs{OtGNvI_`N8znq{OI| zN?gYv!GW_bluvr$^@lM{#2g#6pfU6OR**})@4Kadn{c+>H`bRpB)&4Vwfh&8AD znVkB_bDB|xu^T?sf^xfRT^IM>LE)1HumIUFsJuZE@k#%}hPWpj$V_+kR2dzYY70=; zPi$sb7J4ESs^a_I5zru^ZE56Da_~W@r9b`@!PQX|f$#^t-XtRyol$ksCxD(h2jp(8 z>xiV^a^kp5Ff}94iM$-7}L4bA0H9F>`}#r6^p#~cGD6(`h{naw(p;D z_~$NMaX_)bnRw9{Ty8oGvelJ#xuO zmn_d|`2p%>?Bmw=AWHE~5r_efXP7OjAKLADdR2c%ExRwf zE>>(uZMFQPLzGgTc#ML)`gb%>y(X?l#XDOGWLC?E^NQ9R11eN3h!#?e8cG~d%e^$} zswF3(0mKf__m{aHIKaqrux~7AtnQ32Plaqm)$@+&V;?>Fe7bqZD|fd07}IBpS;H`Q z;LR4^5i!a3h2{6Vm=lrc1AgKUT4Pkdos{CGFdUhWOuRTF*FxOn&uK|oA_?s^{Uu1; z%&JWPO^}LBb0(q$tJ$NFOX#FhKM0jZ*gG2~85!8zxesSm`2GlKJ~Sc=tqhcLd}AIe z1Rz-qhl@kmG)3u{!8}z#76&(IQeK#uVq$~t{=Qd7+?iaRIUj|OGbm%wj#89oZk`3R z>QFK{H!jJF&w+ywY5B*|hUHg5+DPsSpB$wCjaP#TeXqCKbL+=0KsEo%0gY%HDyK0< zz44Mj!V8LcejkdxG?1v%4IVhfO28fcgS(1!*Fb_sW~UwF5kUebsU14lkmPiNQ<8SG z^_6r17OD*xtjNh@55^0`Hg3zp!rSsyG6PrY~)ZE^wTG7`T0F8$r2EF6Kj?>pz8Nd|WP4FlD6QB#XU$(%_4FG-a`=G1BsPon0V$s0C zvg|xHIsXe70kR9F87wAZ#rfI${glArDIf2dKWyuOrAy1~h2%-XXiT3R4)M8}Krum(P2@V>HY z)3K|mS33$4p8Jx^gK*BvXQ^gg6M}!S3QrCprNs-i`O3ZnsJWkZ4{<_yKala=e_zs077V^#b5Aq{X3@J=SYS9O zin{)$chDGk_dZ0Ag~+H*B<8;yDr_?W&~AhtL$eV7v~zczM7|i0bvv$|gjs1_o!-Uj z)V3+GA4(^Ei6#M(-&`k~p*4>F2*N>n>R*BXw?PM_HCjIegPsJsyH0n`cI3@WoBD{g zuLWmb>2MldaHnSoPfRPqokI#22c26?oI1GGzo7<39?y<0-B2WK-AEol{@Fq&4l(-fO>9 zzMwj*djBg_3oark@Cckh3X0Y1o(=jEwaoucaSiO;wYrzda{Lbyg4C(*)#Q@buJ1)s zw|>`5*Ne#FkK>x$=6|ONn2h66CIiIMPxH@1rcF~GFWF;6Dpvy(gP;31H$p)TScFmZ zZ?DTg0sq@0Pu`GJ@I9BJL*?-5;3sSJoJsY1;vT9T`sUplPmO!i$MC#2 z)Y75&upA6OazW_MFO#{6Ib+@j>Sb~L8Lmwrz=@BCW5)P4fBSmhrcdeM5I7DBrxp{e z{ih~NXRp)hGD)+P;=j32*^LfSGq+LlOKjdMlVQA!y8+SeQPr53f-H1DRp~p9M1IO^>oYF5}!T zW%|ZfJM)Di%IMsvvcgD@{^~^qD?&7Bi{wvGOD{nFGQoJgS@hI<^HL7AYY9ItJTXKx zH`psL(}1F37#h9&+sJ8ZMOaU<;KI9xqYLsS?gXVCiF)g|iu?C)w z)CET(4$0XR0d%9Cthl(>TVwx?iW=9Uc@ND@JEg<5w_f@8u`v}nJ6oYcnj4sMER1)p zXEy%Oot;w);Ipq({e?=LF%2Y336)b7*rYfq6q3At75t( z&MqR*3WZD$_V%uw6%J?8SZKcj%ixxWAhXSAA0Gq;R6{7Bo&|;@qFAlAl9U25Hvv{I zT@egcSx1{bS;K)5PcCJSw<6wU$>%gN$c5vt6yJ4tu971=T9nJy3AGR}E$#q8?MjA> zN*9RublB6W;i-V)R+5w&=^rKSu{8VKROitelmo*s2{tSTb$%xkk~gx zB))D3;4&M>=(uK6>mNzM87EC^{fM^Yy%1N&1CGB?g--Bu3z*T9v|+uLC1>0`b!K7; z%tG)ryU5q*5vkbxr_%MYhu)$A9(O%|hACI_qX7P$U{ejIKwx1~KP$W3c#DxB)U)Nw z2mQY&5(Ja8^8cG6rAV878Ho@MPGnI`Q$uM!^+XOvP=K68MhoSV6pN}pfy#V|^bi2x zZeUxBy36G&*f0tu+7-Z(oJivEdEkISj*M6p8n`ZkP!nqfmoAE0H-7S@G;A^PeKFXh zBDSUUA5U%8JG>{Qrzey2iEBOh)u;b|k|e{IU`bWG$KsoJO=<_oVQ;KhStG9f+X+Tp zd*}S_c=y8P46;hkfqJsQBmV@Cgext0(z+=%a<6%7*bmd11nlLxpH;3d3zn`LyRrq# zY&NVJ-=iPoj_{E@E_%`*{SZ8F2@nj+hT@n2C@D$j?w0G8s($BBKPhm{e9z_fvj5%V6^FsLM_3Vm0c>Er-4}e!0kWR)f zJb$%cT@!`Ep=mZ%%RmGnh3yZ`$%vrgL?*{@2lZ5<8XWyCrKXl-j%ibAPsy^EbcHHI2^!AZU}&a^$P*}q-2ANMCppE5Ca4jd ziDv#kzyDZAVQH#K+MqCJ3l3^M33C3S4BrpAk3gytvN_0?TKRL~Q?cW!GT2Li-Rt_; z?xZEjNee1x)f_DzTt)PQ=P`Sg_gCvNNs>Z&3(4F`6mFnKB_xt#J_jAMz-3?-x(O)C zpAFeE`rbvrSeyHW{L8W>unf&|smZ<6?5r1#f~Zt;2PsA>%fMvnDu?v`ik3aJRGyH+ zoASrVCr_~qo)E$0E~-h_R|G4W=|nvsLsNXAE&+gXT`h{}ysd9v&3o+(x$NpDlN8@(Vs-)ZeA1VMlwcOa8IC|6WYk+G4ALH)>xh*+&<^%cL`Dc#*8;&i@F5+ zs&lu6Z7(GHnbT~gGcKq%W2J0I=w9NUTbLBesCeP!XrXs%b1p7>RdSN#Exw)$k4)!} z?F-JYY3`p8P9S5$B535jx;FPGp}SS+es2ACZ!};lzHKX_RCS5*cAf?ni0jq$5G&ODv1qBI2A$nE`Xcl zn@wK{i~;oo4gzI1SU&U@R-s1OMD$Y<>nTFQ#bsv5Qo&5P>&bR;o&-5akDe!j!#80W zl4Pq+wpd4Jj-ksH^O!_AVy_H2ghwe{dVWT~akLdQYY-bmd+%@7Ug!3#F^Vm-iXOz+hd1w zu=s!$dK$HMd^WroopgNUUs9@b;8!%r^I?EL-eksZTU;-~aG}x<<+IXRaC}0$Ht>#{ zz=t%Nd9KsopIPrPXb>*@P+L~5tm$ZzEy54;0&``3LLkuM?~x|@TU-5S#dBsQgl`TW zdM2#%NwZx+h#%t7I_;;FO;G(%gVX`zXs6AOniNe+bBuU3GdX?HnwRcYGfQf(S5HHs zzxC2LhUiUXPEoaPivF5i85lpGYu&@N*T*6Af18;*R*cIu%Ey*9(QR*bLF3~|naWJ7 z!4GGv^S)MJGsSIAx|%q*n#4Z-pEpwHqmU3-2W7`MT5sO~dj&w<83^oMrKW1UD86A|wLq zV!bZX4Um~TnPK8Hgp(PKGyEFdCCd_!2!7>9QG#G2obiDHCafz|1ar;L)_R!0U-tCe z#DNpi71LY51Tv34c;zF2f{0WwKy;fCnG66e*AAmmF9BBVe{;`M0VyVtJPQg!K>gaW};=KuZ0SrYtvJ-`T|0ApqF zIBRNo9o(WbRJMbZ^?FK(zTFTMP``ePsQIS|P{0#XzR5fRFLh>5hQ~@Upxpt)NEHw_ z6z#@$#1Z9^gx&`jL#Ece|D{u~GCc4<)9v?17@Ar&ZFbASA3+p|T-K(0qYc&lqXJX_ zm=Ze3Ve|t=0aiYOYMemQkfw~in3g*mpaVZQ&@p5n(l%J=F;RslQWT(l31LA5YH(6_ zA1?*ayMT8oRQ)wYP_*R8w{oJONUxz}X~cgNZmAYgAyWKcIVH$@N|Dwm@>V0aHB;N% zIaoS3e7&MvJ)&HyIOj*+=x`MM6SqjNe)OH4Cf>qWlQYNx_WRxjsl*bD&d;^gd*qPn z;J9DQ`S64}Eg*6_{isjx@?8!RNV-)`k`Hfh5XnA6(hRnzl9{mlt0Los4%4aaDL_Zz zbR{B3tDp|?X$wQ*-{=clm+32`01@H`^A4%`dTg*DaBU~~f#Z=y!X<)dl*nt0t})j= zcaGeNLlvAO@xzGpUOwUBKKW_T`M8z$2HV5YYyd)w?ql>Q5=P#MhvleAK^pkr5&+d_ z=E-{-%{MoRVNS-sog8Ww@2DJy6l69c4lpw*z#68Xn~zuEBZB2(;Scls+=x2S zIM+3LD+*>OfJs0#E$_nTuah$aNq!j`Pd&IotHU0>}umpin`Xxksnn`_C@am^)yf*(kbC*!m3@u@}>Q_ zuJe{4M`OVqjWPO+>RG$IK3=*I$3VFO_yKJTz0ClfwDzZprc88q|@0HNtJ zQS<4~)VF$zABYMQ`aRFW;gFESPFh)AEuLFF z>;~U`Ugv^S z=NQIzL1~Ky?Sj*>LW0vsZ&RMYNT@;)RI%g?U*-rmi;y_JA?XY+=)~D3z|_*?ppoIh z_qS%(sHOvHU8++>4`6#^; zW(>;2x0>_&zR~NFl`Ahr=VuDgTqh@0QN8fW>ie%<*K93*PrTZFXP)4Abz?%5A@;kf z5~no!5<@;9InOUU2-`4~S{^EX2Z9I%%_tM8aved)h<~AxxxAa_QTZ3oRH}r{L#?$F zyZkd${zejUhB1FY5nw~4&al%sC^D!Ym3q9P?Zh;(tZN6lO&za5S&QDlJWSu>fiC%K z0g=|O7(nx`Rc&v;2-PMwc8MUV-ivINTY)K zHf6uPjOG7?0N7g);_iW=XswTOp7DlYst|uRaBPaK!xXB-4L@%s!q2Qjd>Kml@Akk9 zq2LW9h07^OR|QtOL9WrYSy^xlh#T$3$?!Z9FTsS);QOq8t&vQMe~RjG4XnU>QN88N z+8@G(@{&KK@|F0kJBe)~OE*}T$9A!UM7FEK3kfT<36R+Gnpt@HP4wrG4pPfMO8k|^ z3lKIyeG~c%7{YCJoVaILNrW@26Sd>>OJzMa!T54&>)wiq;wA@P`x- zi*2lSJQnqqGLK6JM`-|`(&sD^zZ-5-xkp3UP*R$#l?@0P45{+E|))XFSIVIqVRnkp&cTt4H_JXeXjeSIM^QjxW(Pc z5Wo3j-SUa3zMzOoASzr2mDu0T$ils#zKp6x`j0;X|3_W}&9azKrB6s6cSfbNW#R3u zk~vd#e=|S6!c4xAZ`u-QSO7Fq2F{7AVXfeXW=?3`d8S0^8Q1G6f*lu^tR?VL;0*8R z^MJ}!wO}&`p^D3>ja%{rmD5ITWfT6ZF{8(L3oq&>)R znQZ>72 z@odW6>V<^n#S`{FZv!7A`@CR%Voum^*^2kKH;iQ>wVE=14S2INv8P|7FTjZm$sci& z8qodBxOZG4@K~`2?W6r|0FvZMZ)^d=#Ruq1z|PzVW$(1=J!D(eLu8K}M^3|Nrvs;) zxf2XiV-ufbTR=T0fm?C#;qaYxkFoJOZ^2vOYu2F@c;_7Qd53Y;gtUaqKPGo^|DA6Ggq$@D$a7ltw1SVc69+3be|oE67N}>GaJ2^JWY&Anb9_=LN{7lubhe|h~14~!qLL+BgD zX$<%qWvj1TI?NlF$zQCEUZml9gN^>KT{z5?jgABGMb(iySySZ$Lyr%=?x=KhpwSt` z9Ywti&x*$cY*yzglM(sFS43u@-Tl5O!yTQ!cD@65_;AG&v4XGKrlIj?#!-DJKI$ix>=Nd91>hQf3gEe7igk5=T-jP>q5vT zTDN5MSoybMR)g+`F}JKD^xot4K{d6&#-otjS{Ucx0t@agED@9f^Nj3L>skyeZHGp~ zcIGe=OFJESJz@!E5oZ*gPKv7@eXkx>2ZndkC{lt%LuGIrR3eYeS)!nzk2uPxQpCX< z|CK@*LqNVlMD^hpC5GrX1d^X8mm)Y!#>{ODc}UBU z6tezn&9T{U6rDy)f9?<*0VBDAPl0YIv{{6jcUB8#4wT7nu~lq}Y(?!)vpO)b`gx9;2f5iULwC*2}M;_VE z5mr|OLy6>slN-GUyATm|Xiz1x=%Jn3Ht(*T+Ph~rB1>EI6s$ib2|Sno99oV{T4o3| zY0b%SMQ*gPrVL`y9(+0jL{U(eaH1e3&gn{iQt{Ru#=~QcAxzlre1oZ&HzwSA3m-RB zHBwQF5uq`-?RXwyNdx{2$55s9As`w9iI)BzGBk#N<>=t-3!91?N@=%s`abFh06xzn zyrc6-x`i}9x$p8y10j~)QS<>qGA0zgp-Gfep zue*ZnOL5?$x3~cdKFp}-Z5ScD&Wp}CQ=XbJ;Ry@(UOj)jJF7_5tpc#B$Vtrxdf(YSlmU#x%}2OSg8$9LyfaOny0ps@ApkY9rmxh1a^Qvw z73hNL*Mc8>gHK^#h!f|~F~By256uXj$|MP4_CpLU`;&ks#01x5w+CC#Pn-*2`=Uqy zzBRMvw6wfmgkvwycAloA*Vu{MvR;;%mmTbbwNyID-aJp; zdmyZDfv+IO2|U`D$Ux%te`?F%h|wTL)A8f_$DxP88ylkKKVKC*?Jh*b0t4zKf`Xt# z0#s0_6`b*GDAx<^+mVS;-<<%FVS3Fx=m-(!O?BYJ3_v)LsPe=TCY$wDV+__Ib?POt zctqd+J`@;Y2w>Q6Fyl3(}*a~_=yH+={qlv zzqW`5bvI4I414A~NgunrV#Y$d=yL+`l{*&K!Ed#QJ5W+k2pUK`M{CS?gh4snr}^ae%^S@P>U4RhWM+ zH`0*P`3RKGgFv!8Pc}shE607S%4ktc;~opVC%ai;oK{seL<%QQO+t7dk|qUXB!4$e z>KjExmdS0ZlA%ky<{TLJKXY=M)<&L2BZwG&6qo`%IYHnr87nD1po)=wPYLTjO(G~U z@drB`95~u_X;=TN=3wSTHOB0R+yxmc%a5qbe{5t4 zpBac)YXQb5FegO`12cNe%#b!FIOjUi%V6;WMMLL{cWdAo2Y&0SEm8c#=oO*;YGNlbdwB~!G=dhk}~ldrVIF+0bMFi z^`o;_;6w>;@8aTCOS>Z6%FTrAk{UPoz&yyCb*p_fn!zC?L4w1Vcx}$o)VjYdHlXd( z1mi*K6CEQUb7#T@W|C!HDZ$3{YwD4+x5mNR5YI8`^7FJS^H;I+HFuuom|a${oT=u; zUR4vKjQQ?(D6WqSIb9LrYp!WTVoo?%;FGL)OpabA{&oygz;$Wa^x9pG#Rl;hwhAx$ zQMJ?mRJf%sc+~o3Dk}yA#GVd0%3oS1T%ocEyuk?PS_`8(oH_`N(SFR7p=4S=22Q%b z@f&u9*{uRI8A5Y~|5F0`mqmN02M4?5kCyg8Zi_H1DYZB^wD=2{_<`R!jibQeDYp_h zrwh0JCB)s}$PIcMM#h=3K!u@4o7da$H1Kk2Vu8m&9OeU89p(uuzb9NTIQwu>JKaFE z&SJZmTe>o=oZV2KoI6ARKpc1G1a5#j$Cc>brG$|)A@?hBYs;J*;x$hZa~?YcujW*2 z0PCLg!meCmCT4Ca0hE|%Mi_1Q%eZ&#a0Cvr*1Wpxu_r6mZyDGXC#92|yr9hKcIVj$ zylUs)Yv((rMjl!GWt?6>jWP%fq1>e1BR4!1*QJ=!5!RrM5ijz+fI-V&Pf-=-v4|ZQ zW)=q{ON>I0h*FwlUvd7*@Dm7DO7a%%)->!4H(Y8Lv)B(F1YeZ+@iTzY-nYI)X4SUHxTnkAc4>Y6{=M= zD7nU&Le>^;jPFRTP?xk;nO=iWj=K`))1p)8f$~%27M?2a3zLYEfB1|$ngOIhUYZ!6C~Zn6W+mnH%yjMlJu??dv$W?sHf_4YiOh^ekmEFxq(0Yi3I8u=}s= zidK5rg|>{=P6kWJ4{u0Of!k!9NbvNqNNv8F%M(Y8QwI>t5M?M{*+}&~{ayu#1|h3# zHkY93P6^BCiMxo?zun};HCY!I;cz@`Qok4z4rQ;M%voe*?osJUve@jIv58D#W6%*~ zfJKf{hNKu1m56ZDr@}!4;tQoE;W$<*rq!fJF{7hW!hf^`=d=VBjR7Qu6d~XT0V1dz zoDj#gb2x_sK84f&CELXPy3o(e1yA@yn~cw9f6-Li<9NChQAt6+wD*h%+G`49V!#a0!_ zrRHCS+5DrW>YVDVeJr_a>4Q;-$uU0n9^i=)&zc@S^Bo^~8yQcwU!}brAB{e)YO0&id+5%&(TJxmq;FCgJD}E_18*9=fc_qB?_tM* z@9Uy#3RP!xXEf@KT|t>%@dEOP-HX3#<>OJJqQcFU7n}s6+}Q(v-e+S0>@K>CHO+0R?weV-w{q!Ikr znm@KBD*wOO3Tu1iO0YFy%{8J)ok;CEAjD1ySLakx*F@@_;A?iSe{H;LNiPPkiO3-A zDhG7ceXgtL&q}R~_jt@dH#A>y>)=;FKH{zVOE0F%SSw<@&(L-n(z_}+hjAp^cO&Pd zzTTc_HhnnIe9yB_Ya>BtNoUJpUqZKq9e6$zZ@JqK5TN#aGaFT*rV`=JzE{(DW>^rF zzb>P}!wpR$q2||ftNdrHd{?-y*2&GI3Tsi!RBk1N1uT-nquB!Bl@wzKo)?hc_bilz zjd4+V#)jX@7+uL<+)=W>dRtD6PmGb!CB{fo?&A~ra`RtDM=E2)$J#jnv=%My2_NxS z@Ww4%LYz>E%xxjfCyZJI+w|DaSSi+{8y`b1&JGR5=C>W~9F2dW7?DZGe|KDQceD>q zDdi4z+Kbd45#HMx&x5?r_6CC?l(tQwrK74&H%AhGT!?n5*O+`T7jX=u(oV)9wzLn< zsX*NK*q2GVYbH4EW49aC+o49RzO{uH)i?ssvKuzZs5f>unjKo~T(NPx7KK+=`)*|5 zX#;;%albl|yTv$Az*C&Y?nE7YDaJ;^zBZOQ=*R;vI9q=iP&RIVQJV=*? zb-wD*CPswoi4nFYd}x4ZQA--i4S<-3upy@QIh>N9#E{VtlD3ht)(xQbNv!5YPy~=& zjU&7sh`K)($ZC^@qju}o1>361Tkp2=w8rmW<8OPW`{aKoKQ(Cu);#>z{BStTZNIE{ zq~}>r2za|VSvae59WL6;ryNqE3na#D765}Zu;+{CPv3lv4`+h!{bOiN3I?FCX{7j+ z-m|HF@SD*L*XALP{OYX;9pO4JcY^LyhUa?mFK>gS6FbJOVE<9#39K3RbLk$TcZqxH zrX>xDH2<|F5DQOo?7CD8P$n>w>rYkDJ9lYaahzd?O02(IpTUu15N$6E_+K~V*8VUH zfHbk0m(lGJgcyRVIs2^3@ScvicRbsU@30B?3O!3=(=BzL?NH4-S=<2U+;R%3JHdVb zx8OpG`|A!H%+Hq<)}H#9kzT#5Ebd#rdsY;ZILNd5gKjnP9uIi=LSjQb;Z!U@AnNUM za200L|DZodhDmcIhoY*ISEp5|%%}a^6qah)V>%eF9C0_#Gg!my7;B3Kv#bfG`KdczP zW7f5--9kn}!SHd>Ew>?QX3Jz!O78v^p=7245rVrQvwn(vp7wkgH;@#4@89)cKsN(-{qm$r#flh%F?XjQ0fygbx-IB{b4>E%v7h zyy0eHJOYT4w%UOp2#rf)B8+7DVhbO{ooLz<9T*;r2M`LIVkCf4M(#acKJSnwBKT{1 z_``*+W%I&z*^1{7P^3d_YC`aIw5jXfU6k?Vu+c_Kc^0pVT2JJ?#0^JcQ z6B<=ez)V*jWwtYFn#|k(LIj@~=?vYOSB7h@-xl%<7|u9U&ebpAltb0hgxifAFiUNr ze2zBj=1;T6bq_3i4p)LUB{S=k;XR$|KrLfGY9|f~xVmdKIv=3#&Vx)XV9xTYY%JzZRe0(c&!7ks)4b zRW7TQtt5r_*F-1TikkK5>#+rFI^#^6Vt*)H5WJrIJR(3vXkzCC1q|tKp8{;X4(nF_ zX@XuVC#B?Qad)G9AwTg>b&Xo;CGfy7G9L-eq~8By^w|=WR~}~6qC+eYGT-3GR-qjl z=AwQya?Ulc?l0mP01spb5_c&;-|Oh){2Ep7O0A5LbK=fcv{0OeGkG=7OdteFF>(1_ znS42ic|J+?$~6p_lt1Gj`G5qrvMtN1d2%3|IGuA3^Tm1c>=#yFDXjZhYUV63d*@Hb zcFpR((7YM9IQrkPt&i&8WcWT}S-=7`DhFHr$`Q#3HdFpjElOTgT`1gTNqc?1#l;|k z+-rQsRUyH_7=+xvaan9CKN{9zB7TlECGLy?!=siy*xIluVXwasZ zp1BmWcjQ#dg)I~vqin-L`)(PJ3@FZT#FSS=sZmkg2-)>}#5ObN{(QFedBG@*DxzgnaJ&D|aG-3gS%GQI1%JRobNA!WV?tX-xW z+bM;C{%Ig0E_aj$M^h<=l~L7$t&vwB40!>9H)?LSZx-n%pT&DSmm!<~iK7mh2$IE; zQ*>oe_S|+<>J+Bd=tptZQO?xbdCPX8NBHF-Et)Fz$X*GL|tuq+9QsTMIB>q-^( zL5A|pwQ_!DKjw9>@B8R*iJ0SSu*CC^IbFSQ8SMrf4x=V}ju|rGX-PW#M$sfoQsrDh z#iCkNTIAoF*&C8mTO$%p@G$QrsjOiX0}#&^$1*Ay=ECy4i;=?e8P5Sw{0V261AfOG z;dTGe6Zh`%^T2qVJSLf|rmu=1`S$r5{bpfS3tp?9Nx&M_n%4 z2`xjd*dT@e#VSQ27&ytAn~Vln?AD~s;By2itzbn@9toF%0?Vna5X1FiJSuZ~Ia5GV zA`M!|a-~t4gp*vF-C4jc*v61Z=GgfwuSI)Q$1Xq2+7hFJ@Kj1IkZTo2^eAJ8Y$}nL<-zPdi3hJvGAO zl4{aV_S^qf7vXsLipVXBL|bPt8j2f3NILLfvI5pv7cxxI!X2`-sYqMm{!O;{F1@Lj zHA*(5APs71yRtG0q7e}Qmx~T)Cl*i{XM74WzVP`Ee$P3|R|x~xkK(8dDOH zt;&F!RgfwGT~d-hOJw2Rv5#vVzkPud*0@i z8H+BiZZ!fp0o73nx_|9v_#?v$1s%W{r8ufQCm#l6e+>~8`gN~l$VuUY1%$^fo_$+U z6S9TyKkxdYIO+TuW+x~@2uh+lyK30^5PPEi=3VTvvhtWdJ&dV3_qZP5CEv?6>7{4* z0T2d-OW^CGsBJRB@epb~LkvJwDBX zPpt?1#!Xt1`y8f=k%MP!Xjp?Fldnh%H6h6Ax&paxo7*gL#bB(+mai$KUM33N{khdB z5Ywb@LkP0GZaVh(b(~(*5VybHJ=bpc z0{$fUnn$sOqPdRdwF>T#0_6o*Du=0l4|WScuX-6%7FXWgUE6~IDZ`sx-hnS!3FTy= zAE5TD4TT2k+2gN@5xzpy-j04rL;oldQYUu;esWR@E^I`e0a^k?!?F97RWX`enmIc2L$^o&g0i%zBumeGtpk+ZZxwu=I*e_`X7+#%Mn;G#p|HR!^GAY=74? z>PXowc@QJ#RqL^gttK>_Tt_rP!NzXk-)jX%-k&Sa%;~<8rd_uQY1seNTU;Mu`GzKA=p0?C!rn-B8M^m%1@8ydA9xr{%-RVC~$f1pZdzE zYVRkdofB9G7 z=7>kOT^Ioa3=}L659C_6%RwHa0Cy7HNN1i@H9Pq5xzU$VJP&LEHSh`pu8SqTGNj|3S2R|+Kb`AMWIs&IcL?Zha_%eXCW+?6`Q7O=x({t?lj zeWJv_=ix_qc)~MIhviB?R}zE~K6^u-Pp_4s66E(FuGeD3bWDI57~x5%3S}1>;O`fu z$-QFP&k2z2w_Y@MTR$8_b>m1w~HRPuwP*i@71a1%uiz=kS$6fl>Jv0Yib~Qgh z^})0PoLF!PX|4mFE;NUFT$=KuM;YKmq~S4NPk%epP`>T`7xT}QXxPtaUl*h-`@LW9 z`r<}pg!4r5ioPtYCi1sDQHhj>%6{c$v1N%~E8tzl+r!^#{ex3gz%rq{!2KQq;+lXg zfEM-J%EyIQiRCSZM>zUFR(bbjiu45XI2FfEd#Kcv{L1!tw6MBZN^Y=6%w&p?_YigLI& zbZpWlgVb&^!SmU!4}F7Sz3A)p3{bQLLOQntMt8vr5?A1qu{)wrc5v-9`O-Ama-_>Hw=v;izQ3FtK*-uMOWr_!;NpEe9 zExThBaCR*Y$dmPB0G}m=ULTOf;Mj#ej2oEt0i=R-ygf79n$O25dPCU_dSp>L=iq48 zRsE|R9YvjI?cAQ>=hFlX1;sBEND$gRYOj+ZB54a^$1Q%Xtdx&q=BwdU>MoTqhf29N zHcW$ad#BWWxh}N@F6hXsBacRMjd zWNau>vgoi1Fo zC}pK~COx6pdmw8dZYZG;KiUy(nr7a$2x0^0B>=F14KqJ`yP+)^aY#-8Y+%0_YTz0O z6<`xQHUfNUeg{>EWf3*D(uM5azE?F`t99?#LP(On)fLB=1q&c$!+&` z7>2>0{!3;K@Jg?B^Y<@rfb_yNaD#@4!;MK5n;@xti@e900WbQ&RG@`xh>IGvWklX+ zgN(G*4u08PJGKrrS9GtGyROv%{93|{5&1||W&*26(LREu(DLywRBk{UdQcHAcAPk) zlAhe5#Ev;@&C>p&3UwrS&(cAU^aMD_9}*}%*bk7d?A^5l)YQV8Q1ttb&4)7V-s4)HtCFVxx% z=;@W$Mac6Etsb}_eipXSvur1oTnLJ(sxJJw zCg?>ij}313eNqu^RM%mKCLJKj09Hq|C}P9jLU=z}6b?v(@0IwoD;A5Yd3(Ybux=Tk z2LXvo+S&3BF6OYNadx{5jXA=L#HuVQ&ZsCM1#t#?8Ko2+_$i#l7_&?i!{a&Iw2|=|ANq|yfL(b*bUI6fcgG;~%KYM2 zK)M}JjtpeA7th^{JKm#i`2{w$bE#1; zz3CkY!$r^`4Z{pYcE)&N`b4=35IuQqhBh+46RCP4UiJcgV-l?q#EjA`=takR za3oI9_zTqW_<>eFWvqf7{_IR*o#A-IaXZYW_9M1+5g9 zo7-!K^aOLyTC=~TnN&EY<$K!U7QRSab|GW0dv1_|RcU+uEDLgb{|tDRrUm#;dyo$^ z$kwq8*Z#%a7w;Q^kjomOuP%=C3sm9>R=8N@+GIFJU%8@Yey)w#6C?ip-kkA|TN)?p>Uc&$h$qcQ|9#j;GdnXi{GTEja(8o4qI)ZLj{Rf2f zg_3cMB3?nS1a;VX(Q9MhGF28kKSY)s`7lKu?~u-6g%wq5M`dXL*L8ij3F!;Tp6Q%q z&zu5c&ZHhsPDMdN08#-yY|bA$*yd4+m;jan^gf*~rw)~N_=~Zhj<2I>B-|q+Bdk{E zV{Z(###b!-<$~N^`GY3t8Ak4>luy&?_4V((~2u0|K~i9 zAx#$dn-c-6{?j8;3TCYdEZfror^O$;DT`K{j`K0&X^#z-aH(kx_Rz-zCW|h+*beQC z-Np5^v%Hs%Zo7@q`{2Vr?~t)e7cC`s)v2-tzFdfzwQKwrYNdS_W5Lrt8-z-M#y}^R zm9(wAn+{cLc3-Czk<~P${BO`NQc`e-4e7;L?6lWL6n@HZrwMHH*-+4CRWf_7Z5iW=Ngl4Xm!2T8i@bm^UTq*qi{(}Z`q=c z_?RlP<7zJ*^3g~xyWk31yrXnl{3EYWDqQ1d~7 z^NZwxN|*eKS90QB@jxERorAlm6V4VgkyIM{oGwkgtlHXx4oP5;p1GSYKLkJr>gCFi zZT)RY1ms4#gS^~Hni3Drf73ktJEq350fHRIBe@rTwo4o9>r%6d<(o}Jd((qr*Z&a;c7 z+ZzaToi^Lb%c+SRcpX#UdaY$J=!D^Hybe86%zE+QIt?KgYf}+(?NVo-VqdZcx>_|O z;y}V>2dX+yW5&-QYwx@B9ZCE!ujat2LloNIT8n!K@4mUs|0-Y&eF$yj2L?P&-B@hm z9Ct^i$_7}&UPzpCmRQ%iOWcE00B4$*|7uF-hwc=xraXiy8!l&jOHLn7yuahaS46OJ zCv%z=?fxsu4nh7|cc4O85a|s)KQr|JF7D~ii^&Zut>9<9mP>6CrweUE{E<%eSB-}c zCV4AsNDBD?tW!{cVic+(VnG`D54$}diObc(yszYOZq&&WU@OkmogwTyj@-xqvvYSN zg1wR3jUn`?7rTfRXp=`%0aVTg{{i>xdMS%$u@`3wW{Oe~E+kRQsHg1pgo4nz7ym>| z9hA)l?Y;uQ;i0wRnz_Uy;aDBivt0;&B-)#hQ-qpqh7si%cyT%cQzgjrfwM4Zi$d{Q zShRjaQP?|#;a#^4fUvF>i2!r>6vGIk@qpuAD~6HW*7AqeEPGhZij>;Zn3la;(eiv! zz4_3yT?syX(`;oyHh5W?)yR_SF2Se$Nz4`p@-x*y)sHglvU{~2iWd~~`zN7Qp@HeI zgKU>M*vI{Vdn9}F@kX*kyl4!uce4}HvNJpkGiW2);g6H@k4Ym&tY!Oz2LRaS@E$BX-j4q=UnEEub-5;6mfgHD&rQ%5`Z<%auB{ z7YlNmX~SNO-QM2hDCW$BfrHjF5Edh10?Ha7gLzwwnG$C^Ovx4v2uFM|OOUT}Nu*Kb zWAs$h7r?&x;o6m}gj4~N7;1mV3j&Rk&r@T1{5=>S`IQnWZBNGdFPEba&vNB>S5j=? zjsI8cZ(pW-USjbeIK%B)?#BUeDo&{qx7!_bf1Z3;!!0J&G8~5BoSYNWJb%QPI4e3m z$d_d1QIAJ8!<~?vuzuYdS+e9H3HrWOU0~3O{piH1hTlT$gp_|*EAO3ph~s-;J?`tQ zp9hGCO9s~CB69{M?Z38%V<^tHV80+WNdh_FVB-zdi;%Z=fHPUp?Eh z%4%CMKf;WlUYSng5oE0%si&(sCw7mfk0S(P9|l8DaX$=>GP$EekF^`pU*1Qzr?!g2 zz`>K*IB0o^N?0d*rX64I>iWI%jN1t4FG zTKfPB?vKWKc1*JX?5WlF3c5keb)>1#)=Qa>e?kPVsw%0G`>pIh62JJCB%+LSD!y(*pJ;m) z)zdO@1mIb}BHEln7BvgwKw!zEoRL}~(&tfK9}J-6L0$+r;Ij`3OD7G9?1u{_Vk1MC z*Yj=yvQz2^97ZME1dj3bs|nl$(z+?a3>3N*`OFv1LHl=yKjdbfqM7(a7zRBTUuJl6zZm_UcF?fl^1*HtV|p=$)_`OCJ_ zf-A*-*#G!WVXF2_qHpKiD23AuB@_H$vZqPhz`smCTRO9vo3k^dE#kji+u3#0Bew}V zEa`|@fS?)>O95Lw%HIShI)b@tnOm{m%{YONr^(09_r@;=O97h;gnRuwT{=A;mEx3Y z8yoq0_OS;$QyTWD*?)8ZE#3acpC!is7vyxci-Ig!|IKAOi5GVs^j^)30>_?jEW9`= z>ygyZ!-Jn4>jyJ@k#3@zP^x@3?bFH$bYlyWR8Tq#E$+*Fj)6ITa9NhDok)czktyj( zI1_4-sFuSZdmcbrEavmWuKL=At#VQ~I5qrrmA*N-5}-P!Kbz3`C6SZIeC4qBgB9?8 zb%%qDM#p1>=o&Du>vcHlkK2&?6*i@tGd5WS_=Ls1(S*NeUL~JZJi|+e%(g2y!jJ=< z1u;hi`jqBpT`=Pgt?J=gUl?|>6Zr_}a$?>m-ftLqCt3aHaoY68!(zPJepXG42vksO_>c`6&O?g%k?%;J$OgWGqkw}(5vFik|A7)rc-a_sFEZ?) z(9649Q|JqEhaAszTF(6Eorjo&k(zzk9^Vrl9b*&-`Rx1;Onam^}T(;({gJ5l3$`*+9Mhh7kLFANWj z?y3V$!+B|&HdYN;vO!)D{?;S^^ceLgei|KPbEF+dU`2`qNvBlOT|D5*t8UTyuXa^+ zdmc#Nj!r!ur2bAh{+U0hc&9>46;$Zin?fbuEmlGC9o#M{z95&)wg^GSUwhU zY0jcu>tugdLJ5vvM+C`<5~vEt!shrS{(52<90`X}2K^cELAE;w8b$f*w!r(7!GL0T z#3h7UtAwnP6~>c6$S2&~8zOjO&T%(ut4}fifJk&Sx(NO2_dYI^0xI{XO+(2?wQRK7 znOdv;CmbD}*Ky3-QqD=f==5sU_*F`T?&`uX*#hc@-d}#-#xzFW`t$e1QhB}c`BFyl zJ8w*WByso%2agI`+QGF8tbCj;b6mkqq*3)kr)N1fP~W{x9Y5D#{Cx_&haO&sJUqzd zrvGv*+hm^U$EM>U$niT;R54mjY$jD0=~o}2G6?LTF#eFw(9msLPOf)`XMEHv*;iQA zVP|`PG*R09zjtZ~;7yJBcR``ar@Vi@r$%0oOns(@o5N03pcpO@2qlp=DVY2!mk{7*L2yd5sLpscl=F-L&OpG)I7{ z(rAtQ$eXW7pmF%3&N}lpxVV=Y5{~Hjai#f-SO1kcRf#Cp-mdRiCop}7s~G>T_tQ-6 zoDO}g7H9LQ3Fh(?`o14%i{3$cz~;o!PMMT?Pi?`6Pft&}w*!5WM?_Tu;Q}O`kVb?C zvp$73K-%sgbEqPLMqI6$ek5Gaj)j8tJgN> z+}2a*)qM?6U@pG}&s9pcn0I7Yj)KliT(4x_5_P;VmF)G~9Z7poLDPwcs_i_H(?1Zf z-4L*R>UqeOFCsx$tgCxXHdyV5n3Kb>PVq*w4&r_#uO;(8{uRN zrxZ5>hDfn+Pjwo&Fg8pAsoO2_%asvS zLshOA6|4?5s5azC3?onjMuqP^uPTj08Ic=U8B|V&lQ#%6iJFCj0k9%hxZduk)!QtR zfNw@toIy0lRoNqhDfo%{^U`8|P>+usiZJ%(mZINT+)Sk%+C;=`ppbbW#Gf1m*XvhT zB`2{k-{1596K81h2WDt1#5G`HCJ2&0Z7Q>hEgMPZW5cdu@oug@uBvYTY5q-x@6djR zQ^%l7kf8p(eaU(Se^2WQI1dBG14S_a)!&ZdfVrwOJKjPIhP8DD491DXc_y>bU{~o~q=5dd$?F?Aw8kp0=}V#bB}Q40RazHnQ`0A01je zUPZ6yoPE(xFZ*BUOm+C8+LE;)Vr*SeOoRM^7Qy}W;Y9(tT+y~1#z5f<(5Jan33YS(*nCiV8(K{1|yq!Sl_If5ZLa zyO)b!=8_{UX8(yxShB}qpelpJoEa)%WG|IIcokOm*at|KdxiiIW9V&?&WPL32!9WV z!tigIioPpORfIO2`(VMP3uF;8JGd&7|2LhG@$r~Ro@=wGhxM9%Pr&~KpHA-8q4)j^ zJ^{e9j%z~K<{fo~`m&d=AQ0;{N+DlIbk@We%6HrUAf2m0DM~47>5queGCZ|%&J?^J z(^3#IWlK?Lg<6hqiWtjusLRk6*rv%;-rlxHPe;{*>oHXi(4(i4s(7l`MIh6-7>;OigNa!ja8byI>b7wbqb9q$kbN&62S{aWgBeYIGpE}8%pHbTlN(R>-g2CIj zY#QczbP>wGvIVSMWk;-!M6x)BQ~b~6tJ{U)s-duGdn>^i682QPS|6*2G@nlunmaqq z$Ak+n++`n)jOAB-+y`vgaiOuzuLyC`SUls(EnMrRft$LgxaJq`*0)qFUrn)L+BA&x z1VH{=tcm{`$QO0Z(Rr!^OH0sQ@6iJi6z(Za&@kh+s~FZ)w#}gzfnKbpC~p{M4c0qtmsNS z=i~g4#fI7ry-@aH;HE8I97OO3LoG{&Wzc4Z%P%;&MLC+*Ov=Kkkbk`;{s845{3oXi z+aaOU|9)S7`UBp*xx)83mD^!jmbgV>>C}-mCS2la0V?9(N8Hr+3b^)<(oa?;?L39K za3vy+o3y6{j}et@pUabPxQ;6;hp^z=FwE@_IATdqdZtBA-ud@GTUi(;mSfy*`=&#<1^MdtfQ^q&c zN0pC1tV>dbYHxWUeLfJ4CzVbvx4svC{%Mn?*=}>5=uKmmEjX5sIoM}l1;^itNN+$# z9zb~g4%_jp8QT#r68$1W`V6!RVSjw`MY537P}}l6`tq{)ir*iRD_SM0x%(Y9z6uk^ zu29uFr}Wm*rpt5S48)x+#c>W7HMJpnBGW4BaIu|Rp=7T&fNY*JCz6|7JbicKS#FAp z_Yk$1$l_J&;{G}qu8dT!_lf(XQ1HuQmnfN6i`Kb`Uv5G29H%UJou1`#j^ybiz*EbH zCOcPX0DK&jJ-gou-rqP`;eBJD$r;^PmUI47+!mm+M!3U^bb7=;2z1Us$CGDsoxkx_ zlw=J?L#CH2R|$pyt5~o`U-*_n6{-c9R^UtM6$6G&q2iS0_qqzpI4P#&v1v-?aU8bP zBp1r&tp`LycObSi@=fnE@@cZiy|F-5NSBav;IP9dD8^AY()_vtX~&6!7}M#rel z+RYgym#qg)-g6lCuAgmmN{R4FV>W&G#hd$>C<&$LoJ-D|WUfP{Rye@&SCbxgYzwt8 zn1bwxTy$FUe21}nGT_VWchap+$Z*}X!MkRT+b`uxs+9aSaq&|{ZeMN9djv@uUantO zuP}rj1;I;M!k zaJCXBGFw8UsD@aL@VAN_>2&PdNTJd1hQL{1dFD0~QlJwhUmhe8lQ3_yu+6CnqLy%) zjxxibS%%B^G)Pf@B$VJD-6VW@^zidbjA(|K6b@c1?okR=Cs+ZFG1osX5CVV57n13vHiFA%AD~(>|siPpK_PorR?(<~+ zSzQ!(y7jcYi9fhod`-}>fS^%sh~L4`3(<>qUZaS%J@=Db?F9Hek0S60P&5Z5afj>e z{=0$Pza>%_h~mc`B0}gBubrgzt$qM8l}ZjlZF%f&2GfX@68f@KK@B>>kLJC(i z9S5eqQioW-j2BhM@5KB0?30D``y(B5aufVWH?@+ycr@Vc zF$E2K+_ySB$xJ2JiE@!&o>=yz{|t z*^TAwUjwS~hBe?kraiZt_FiIv>B$_!hXat;YY)WcDr(l}VR9P(`2+in*E*O#|C#vl zaDlqzZt?)Qa1`JZoUy4N^So;71+P`mRW)NxN+8V%1+CjTdSTZH-+=2iG=WQDq4SMw z9G!UzZ)VOqYuldpJ5MUO(ioAD^@L(N)y*!< z!gT7rQxDo+0n=4({DLrT5nfrb)SmDc`sXeB8-Z&Ia=uahPt*3EKvFq-uGKYZI;pj^ zbgr2LKNZ@)27)o~0!b{-UhI{b@c#YV;O9#9)<4hX{=dv}Wdw;qn-tZmOc6go_R^?^ znNT68_C`6w1L|jkm$QV?6N?k<0S1jNczdhV2Osm6~Tq$yXQ+{HS&EC>?x&kEg)8OV&GBrtA+%3?9B)Y8@7BIY5oe zFU7C)TPxio@U>@`NAmcMn6tX?ExBKqb2p7m{ec-n8<_UQ#nc((H#n~K>}2e01E&`Y zdSyC8ts|d*<~#r-)A~kQE62W7-RU?)B3fX7T1*RMK0~1mF*g$xGSMBQ?9uy~u%&C{ zgMQRW-SU1Z){HwJYyPXe%fymoK_TH6UKSgT7+xLt@0JV1cNh?LXDPVsXCtZoBLIdi zM9vF!@hrS-?|s3?(KMweo8KNj&N^K`;*2()WQ0IF#r;45>|2EqR}C;l1}fBtUHR}4 z49FYx+Hi#pCXRcqjX31wh*A`qpSEk7nt0$FjTbajy;8{r@61gwM9EQT@fG-#L`1jN z1wUkJ%iJN8&d}pq5`<&9A{@l#I39?Fuxt~>s80nG+AhGD+{}6IAN8LjO0>^+5}q7@0_#U~-eDVSW96$a8a8t+K2`p-l{SJ z5em=3h7E{Kc4Fr?s-p;@M*Mt*E`TZd#E5i}F7?_Y1NGAVE~O>OkbSt{GXv2A z1WvyZ(@SgZGS16b_}=J{&sQxWI=k{*O;H6P2lz|MA@zA15V8Gs1n)&jM)TpTcawQA z^4BdDM?t#}lW+-VY0WgJVG%2{W?>Om!R{=fl4I;kP^rFHKa6TEa0}AtV9>^pJQ(2Q z`c#?^HOHf?)@gqknGzYAGds<3Imp_*Vm$L6_8+DaCTCt~Gp9yocmi_QW9||df zoAx>k`e!55bPN%{8B(U0h0JKif(n7Vf)-Wfa2_1^Wl)Bv^+6OzL?tkAs9sjh@O_uN6{&QI#-y7oNsT)94+C1^2H{)kgg+J%OpW_ zeafqQ-1oKTu&C+HS9Vw0;9A$ zW-+B_n!utPE%48?CFxbx%7)vMk@VE@IcSXP;RC((hVMyAU7~5Hh{Y=oTky@$+9n-Y z@C!z`Y`Br+XeGew@f0IhFm+&@cYvPAFf1-pe5zLbxGAop_&iDQ+N5@d>W#B9uCIuN z-Vs%LAyN38;FVlXH5-Url**p@RBpZB%-=5dd8d-q&pAcXY) zOQP%}+12(PV*OVhePr!|kBm!gtryUz5ebXT0Qw=K&Jyy%r|d=DIf-^#*dUFE9?&0|byN+7C~~y)4W>G}x#Kv$fcDU+n~f8DBUVR}Pyk%dLzn zzfBplFDM|0am`@Y9r;K2hYOU6%GFqZGPk5D38)WiMUQyWpm=Pb_{P6~Sfm{zDZ^Jc z>%9e#Qt2v+Xj1{XgVZ-g0F7fGiv>A`$-wE8%A?pJy%0H4*gF`4{yY3Lv!e{72v}@b z7iai(aS1bbw_IQAYS6}xsGaovFzkby&Go#Z*k?e{!7FxH>%Rz?Iv1NA8)SfX+TZX& zp?5_|vO{Mtsi5C^aKD>QcmpBk?%c*pHom)#3FP6f!HJe({e#nDhox_MXjlxb^J3)G zOa_l$x{}WluUR~6O2Ky;N9M}ncoFW=sNFAqf123XK25p4PgRzzS#%MNvOP()uOb1t zZm~BXRezpnIYm1N&iYbIb@Z348Z~ir%!wd9-or*MnJ_g7Q>o58rMVW2jVdN|}j*Evs3ev;;qr4(WV;^kh0 zG_(T->&#gZ;mJl*Jc%#KAOssyUAJ8B!7q z(AyF;_X;BT4p{3&%4DiMr*X3zAkULB2&(U9nCy!0d=$Hy3l`|RA0h~wgW{ErJB&kG zZM|LoXPqmq{U({pWDrzCl-%yS4YW1wpDAf?y`}^_S>z1(v#xMG6 zvC%Z&GAdUnUW`4H-qza|jN%<|&fr4!G?VtYzLN2m=HJDidbi%R70mI&N25DeV}U-N zStKra9C~Ie^8py))Xc$PNAaFw#=6*)O2Dt}(eHe75BW}3GuYU(J60J&7SGJ{pNdkt zXD%gy;JDiXofS0fz4*-5G97T!CJY_`$XLOc7NYm3A2n+rnMJ0WyPVM$8uLMR2n=^T z^Xk6fj6kQpNkYh~qv51TvGYm>>mPVCeWeU420f_+jv!oc^<&@x@LPymfXU?eDTpg- zpC|?|&mg`IjqOygjSq0?ugzvrJ38vViO*PCZ4eX-S%ev%ln&(l%9`schRsl|NC^M!t(~76ja2CI`GpO(yG{v4~?; z#PaSN1{XqV1g9uQ^?4l2>`B@WJ44Ph8j&we-CM&D4*QwNTuHyq#=~qugtnJgpqq38 z%D@?9PaDIJdHd4E?e*i$D=E@3oe4^^p&~IIJRprW)S#*qQL=#QSm<>=!wqU!pG8~8 zZKkXvkGT10D;QzhB9+4Frl-|JBYIdmK#v(a{lW#7Y2g!Q^ONjx8bIIz7EJT#KE@P`Z(zZ4- z+{xDF(rqZGe4Ju#5}rLye>>=OHH71UI>F6g;M4+9*J>!X-quIIb1NnH#o()CTt=Sh zx?68wj$t_a&e~vx-RE;31OPiGjuDV`TzKQbgw#X3?`&HwGq~xwMgV~_WC#n)b~#*P z3g9eD2vBJWb0_Mv&4zIJy4@6qy>VowdW*Kc$}WCc`u%0XYxCu!Gjw$1|HT0>n~|x# zc7q;jDEd|XW#4YA2Jx}=Wm_RPG}m76UJs^IAgun};pYgp)nn^ zm5P@R4uB1B{yS)O=FVd+YV{R(*7K~c6F0QXL16di=0;QqJo@ZODYw zJI}XAfjHN^wCMgEbpa3=8FgANs9!|USPH?D0R9~;PK8F6ff2ZhIb;FYnr`Cq{Ka$d zkAW;B{v9EdJ&47P41CrTM0fWB6Gih22a)GiCf+(S@O_hAIdxcd<_QwX`L;;pOr(5zNM(w+qC+GQ zC8+*&J&!fFQv*Sp3ooO3rBsWaM$Y;PruJMaz2%Fa#B+t3IXjHU)B;+Eq}u<`{@o% zZ<*#7+yO$xn?n@;_7C(D+NkM|zIYaOQ6XhItB(e3!X;ld13PT$S(&29a{Yv%A}?`I zj)S}<;G5`<&M5h* zm7&)#gKXBdgOKK2lQ03xmf2rHy4Pg~-5u11$}`%ilrRbF%Hfon_BR zZhLLyXP=+vi;ph%=msqfxt9Z)(WDuPw5(BmANxYZr?o!$8Md~KgoW<($fz|x{t3Aj z1CJ?dMJK=DZ}8#?NA@~AK+$F(b{ZBF<5jMmmGVMBr)9xRkRL#I3pr8a4#3n4+hxmm zVBr>)(3Pv+KM_sghSd^pSMk5ogx?VocCZ`QUSs;;`0JDz74a?Us)fxP&UcJvuKXN#Rm$CeJL1i*>88@KfOILnz8o zsos!vneWG^=gsh4nk(^H&9+q*7a%c^g6{dAn`W;8k?zt3F$rn%w$)*1>Abk%U+9wD1y96qcAXusgCUh09lJz9KxRMx6zm9O~6o#`#TZv%l{VA3rl z291Y}8gMI>vx}z)b?D4z;x?*(FA<^L)1m&2D`G*%HMfs0UB+HiB_gM4x*vH4n$qiF zwU*VwA5|jPNI)P)G`qTANd_3$o+p?M@BsTGxnOoTLj#NiU1u`W^;{|&*a+r+@FUD* z0!+D92UI3&JOk{KryYu-Za1igVP$_dgM&}dJ?O+`X$k*}4$kgBoOruE^rhbQC5htb z@I)(_&S$3=$zf@$5n3d{Bd^L?^6NeX?3gyiT0x?ljOP$<$~zfE0cy@Ji0 z4%gO1$n<9$+IW9N#Te9nLC&zOF_{?F9s3dYcYc+D~TT)@cfSCssJl9Fv zR)PoA9MT#@7@ZK~a$fPoEjUjORtU3Pk+|4{IGk?dDfR&runV{ zqSOlp-29OteoZ|=f~@{`kC-KRCg%9o==&)M(6HpQI`5tTNvgJSRWRDybI}QKcYGz7R*a-rIE}T?#mGg=5wQ=M?=nIj4W@~V z*L5V3k?}IcOMF)|$S-sJO=#ql0-+0)5+YKeYv#)#D4WKSHdQ)dc(fi*#VA|G?P1JH zpo~kjLwgJh3LL8nESuBhDyDgFjC5zTrufCA;*?%9a!tEA8qZ^ZGE>byeytB@1zZ7eVXV;)_S~rpZn0w zwXoH-Fx>S{sddFpy_lMsaG3$C?oSd=X@rZAQ0;H_fdSct4!_*PJ=o$>!4=!%2mh`L z!%t#e?qKudr6<4*>K&WqMXv5Rw~s5BIve&bXga*q$DgLcvqg?8)Sf zHTuB%t7OK#Km!szmLUv~>ANpM+&H2#1F9&0r)qk0C8eE-z_=QoZb^BFlj_m8iKVp@ z;bi=a1^>OM$GSk=xZy4GGKOLVA7lrUj9^P}Lwr&yeFKEF=r^p(tSm&7->>1@OOK+x z6F?ZiA2|CSzc~1nw??=u&G;i7bZ>uu;HnQ;02iCs;XpeVnt_jLMw6bpugQ<1pe9Dst$)X#JOrWhD-pvB*OlzC7-IuMu5rJCfLgu(Wd0jIkV1Ha}j*o*z6^ zFN2ePT1}_z4nwMJs-b&SB;KU9h0DA77_LT|?+&xW>!`)NO1Jn3>g@11+?*d83-rBPW{wR*Mg>u+h zpI}R73h={2t$WKXGmG>_vJvJ5At6Xw5|jGsXHRXgjln8x-wV z@%XkmgEvoENHvc|lmL(b$TDV6#JZ$6-i+Vg>lJzzP2H8@jbNF2@|oab3#5H?44+eW zxv#!HztcW5H~Anp!yJHoPBeP>OWWkG&|T;4w9% z)(J7EuWvRrh{o3H#>m>80PZ^EWVW0fa{=t!W)(9(lV}Fd!|mVIzyg7A{w^HZ#zUMjUSO{}rZ#G?%!zSYgYPJ& zjgl|TX1+`_9cAJ`nt&_g2+Kr`B3}hZsf>Ni!~=WhiDd`1Sk^Y)Ufko0iM1WdHnkSa zVmZe85V+}XDR-&^*_|BWT?f>us170>lXr=^hBZgy$Db)+26h)~s{UYmlfM0MwMY(% zl$X@V*A&X-I^9Hb+g5?T00w^g>jo_JBRQU(H1hcXe%_vymGszpK|!P$Z{kfDEDoMH-7BIr{0+BioR>=6``%9Di)z-&}J)8+L`ivJ9>*1 zKxup6<`l#5qCPaIDqGq`Ig0z&*)(;ZISEH;rh+F;hK{2qxWZ4$RVlsM2u!vEwOqFs zks(Pt(t52)k~WRf#kw={Ax*s#%KIeli3h~ZD4Q~_M~}cB@Pn}Qzru1D`Z7n{&kUc4 z|1==5DVq9N*jh|$Q5;)Q7&^2Q9V%C)h;2r!kruXRt8%EmDZ38Y3^(J-e3cwl8+SZ4 z{4Aw|DnOo5MH4EDkxaDK+*ZonzkKi*mulHeXmupLl#RO=8_l9y#dD0mZA;@1H`1E) zfOW~fF%O%_@@+x8cBpDr^eX9O<)Fo0XLc*=eyq2tZD?)#;nfW5Z7Tg}rI6HzA<8Aj zLh#Pgz+PZM1A}PvM$$h8_K~oiBiLaP{}{X!zM4D-Ma^f(o7~tT+JxcV&E5hg_3A-- zDoJF|cLqA7;@hIe_<>8fA<`0xu87xkO|{Y|G;0ldv>NoFQMR73xFi2{zQCbTo@?rw zWo8pEqMa+#jB-}@(bvS|ST&83D2p`B3sUZvc-o(L_vQh*7=B~HPr$Nhen+#3W4fEZ zMR%vTPBL<)QnLQ*d|s_ZxiM~COk7?TIy7Q+*p7~d%$tFCHbZ8A*lj4`bX;gM2pqmj zF5F7~Y+RK<6_Ll~H8N+t6AvkrLP3aoP2exK)KFZ#uSEkbMpP`a{X5$Cj#I%01Grhr zD-W$?*y3!x?%SgBG`Z|WM;RPac-x&iC!+`|F|4|$O~KS?y_hC2>3(_|y2+M;b!IZ(Az*xx z08U7FH2`4%$S$Ioz-bYTbk%#mlP}=_0udZC$WzOC z%C#K4-}a;@BhxZ+1or z(d_xh)%)^HZ(Vl@3oYH{M}EOK89WTkAaPP1aU*V-Muq5@c zE0kct=RQTIV))A#0?e)qykavHz|s(p06h`&C>(>n(56VxfgKaUA^$Ltsyf5)OOzNU zZgwem$!D8O<_`kQV#*o9vRX(5S7P!MurAjdw(69jwu>-@f;&q^q&&jJ0J^)*QE)af zIEx;bYh5%60@ae3;wd+M6ZE935}G^mGOg2pF$HK>J0XJwuv$KgEmqX0|M9B$2aTiu z;?$WBpv$-X&`Hn)uEoD5(o6DR@a10?GMso-SacCwpm!2nyy+r7-RmJf`P7AbiT!`T z?0@?HX9&Idr+|Yoz~b;I)+&+GT~3Dr$c};5LXqqRmgW(Gq!=s-Jz%wKKE=!YiGW=4 z>OZ4h+yo0BxYh&p27lO6z@}ejP~X&5IDfK@Y@@r@{ievKJ2gH~S=B=xNOjf#TbXpz zfa1=d-zepEXjYe5)k>>u<)Cq@XS?szz(EJ#ZHxBcEcvjnKpWzvum;RCEYnD~;1LM$ zXt7YKdIRCMXo9VAbTQQ&*EE7J8z;*;H5KJZvrm5oS>t39Gy^4Ufe@J)&D^v;0i$ET=NRxFkof;bOR-vmYS00-j@9z?mgRZjPq*6%l=O_s@?yn zS*spx{J(MX-@c=V|C-alR#~ZHsxDP9RFoyok*-$IRg@89s4k5^wz31}n3XBtEG{O* z9vcOiFFN=N+dTj@FjZDZ|Lo9Imuki@m!?mjtkjPH_$O0UlubNo{wftLi!PXORr&>N z)&-TNTQ0^SL<=xGaYi;htR}$(lr(KZQ0PnniHd)8rP+4!fU^7ww10RMU zTZr0mvH6;R04V>vPM?xksviM>_OUpP`LT!w>t|&S(a-jf`7YPEmu_ArwDZ5+W}A02 zK7))iQ9%Y-=-~Zqv@m{vrTy2ehU&F6lkqt0U$QWSPK|L`xw06W0$&v{ih#s4hGk>qu4Gd_n#QATq}h?j1a+E?p0N!IY&RL ziGL<>3g9bctVb=S4E6JpgXCx9Vo-Q)*Q9jjCLz;-l&8+mrKavo$qtnJ4CtBkZq>ri z$xa+#2fB=gyO?zK7UCk}K`QQBnK zMgKH&FODE7)|V;3^q$kEXua^X$e3@b(%`MVAeXE5Qd_Fh-vo&4wHMG!(w4%eAPO0F zW-~z{QXIee_Fz#`0^eqIDPx3+3dN^Qvv&P zO96Y8-h3AMOoMqTtakH()rxGkdfsb`wK{ukR;gUIIlz_HanNdwn~;q;gXN_YMvMB* zxj9{LMCi$1$gm5`!5-w=-w`Wz&}(+17kPl6BNu*1b>2ADQ;zH67aU0rYICD%q|h2q zwz};9Hz9fS_c(z)t5r|z72t32{|fMTccUJ~i8HvhWV-Cljw{kbYOJ^#|EG`~T%Da; zF8faC>c#-xPsPP@K5X9u4<&>Z3nc#K$L5RG<4F%yj6Seus{=dq1K!Z#j2P;0I(+a@ zLpn zK@PZYLKDHnHi}M$ipqR1n!=TNxTS@Pn7X6agMg+9TmkG@T5$hG-UxiY2g7 zCIm6gQjXKXj>Ob)Tuj1=v)yT;NaBtZ@Z?SKc!%j;6BhwH7WJ?7Y z97SF%;PiXAitFpO@mUTbfBfz5NP~S9gkWf|ke$^ZX!2ky5kZSxPdNoyN{YVsk_4)> z5LKzDi&khT+-kY7%UWn?+>(H+C)%>=wZh7VE5E}NmcS$TLma<|grgI1jH6gSZxW=K zGx)@>WLWu_1i%jJQSy(X(-I*-`auDB#b1%(34rNLK1<|li_i=^D=Bg2#ps%?@1^tu)K>(pgILd z)>U%d?*pwz)=`g{#=&VuHL2_b0ggt6GnJhJqgXLyPm*BK=&Kd;Qgs!LudvNYXTcdq zi^%?H5*QL{A}2dXoYG@VGI9;xGLeJRD7Hk~SP@qYX=_7OHKeUlDYRRsl`oNc##&PG`=)a3$j!XWqe5$0l%xPqjM4IfcaF&#k& zeYI3XG1T=ONi}AnU-pPi&TEZGEj8_2&FGW!aR7bQ-^xNCY&k&diVQ+iH?@qD6SfLq zKU4)6E`kPMm|7wgVShx^g?F0zNt+osiUDy3v?@WKK#;2(o9{)~Z?+1QE0AeZaF+Zv zX9eP3nA)^5#1KY@rjVza6q2SD^&|}E;|0)8 z<>P_S*?xu;M7<@8{0ObB08(|F;RRFEg#0)4z~S44A#Ml2R1ollscS%&3LC*)_mEVL z@PB}*ZRO()(OfA2^qwih3t%pnjK)Qce6!;Es4Bn!GVP#Cfq@V?Kv5JLp)jQwEc{mb zmJ)IR=DZF##Tf8R${NxzM)S~D7ljo=TU!8w($|t#>6lH;rB(bS2d!!l-~vnCS4cZY zr{_OjDFBjpoT*XE6GsoCxdPl)v)58`2mNtIz#ZC4M+hW)FEtxg`Snk%`3x&y`B-Ez znYxvk3ZSV;4liJFaf;MOUz-q7oZ#-14F`yTye@7o$^uqo)i8MmfG-1Xu++k&smH1Y zX@Ve{nxybCX%gU*c7Ed?K6vM4+=B|%j!{B; zo!5lY-;hhExXp-FeA)Z8+!IVqMdUf1_BoYAvCCDisa6NQS#06Ku6g{-?wf#QUA2y% zex1PfArm^7S!|t`)^8dR9&1`RUD{u7JTy%DXRI?inD59=YuCqwj4q)7hyDx$JmpSn z_$TSEw{3-6u9$DXb1^hu_7Q{tOZadme80Y5{Y;vpf$q`hy!4w`xiO>6*M$UB5~(WJ zKe18hoo>C+J6V=taK0cb&}Yb8o}rHK;yRXMEdN@}W^h{QO?PIf=32w(0Zy+jN|Q0H z9w)ez>_%DdvEbudqzS+1R*UN2liz-X2r z*qcKmP?0VpDqGh10b8KW5Xm!9nR(QVZNY_a)0`96s3l*%PFG%UmbNsVmaRr)XKud}n{0rg$z?d4K{df2g^73h-9nJ3D^Rz0j) zxh2+uyM1&~HDgZpNSdteTFUEp@tw>1*EwuEs>osYQ-k+FE_2$Mbvhnj$I+8vTL)bJ za%sKqjpAzFz$QYGqa>-?`LLeP2}$H^#~4h{N}t zWg@mY+3-vTpKt%BJ&r%t=Im#jY5lU~G1&HAdW^HLnUUsP-SrDbmvwo|Y64`%cDi0c zg4a+?D!CUJ(6iy!(P^mEzQ{M)e@*FnMOn~7;Z$fXYJMaF&P4gf07<^`U!S|u)`5Gl z{$0TUmev|z=^J3^wX&antekn(kIQ`=i+fF4*41VpQ#bF>M=cWvP6e*1nVawg)RT(2 z2Jzm_ySI#DjhycYvRb}Y0=z(m(*C?^%L)U1>M<*my61o`Az zc;bzgg;e7M5I^$yGVY7Qn>?zVx%@A03vYk<@+96H+vCs{B!U5|mME4RfTI({T80KbD}npRBDp~9K#S@6+IYM$r*!9mQq0%$ z%YfoB#ho1C*Mc{kW$6qv^ERXvE6Xeg-gtmLRe4g)2;HUr<0&Jk zYhxym#i_fmWYw&g%#W$P{_0d(VjR5K)$-?g>vQWr45uWQr=RaU|M1un$g2eHflB3S zKbUVUE7;1^3=P~JF&gR;R1j-O$@dKbk+YZmF>TTR{nr1P{(0^Z(K+kilp)Aax0Z7L z`Viw%ZqfO>^$yInl9w+_!C&BRkX5Devz+J8oZtk6?41i5!{`NO6IOUUkO9!_ibe^k z-AD&>+k0)Jo7^mk{F-ycvmhS{)ey?|JE%x~kGhUAk$hyoJ8z;AV18c)xhGehWM;(CfbT6^BXzI1A%K&07 zYQ8$ie~I0Y@dJDjJ~70r18x_nu{#aRpNdi|BB1jwnlwn>aLo0Drp1Kl5W@Hk%=tkV z80`Xn+3FP{aKF;mri$SLWQA@Ye~aqCrlprkz?CaM-`5fl)iVp4A;sznGu^O{L4=T5h$q$a$G{UkG53B6xhmd+KKOj;ef%i2C{G&&A9ezPNNt^>)<%3E23_1m=27J zie(4%@$c~5E}vf41Qs?y?U*Vf2WWHEzv(QNwW1&_@+jKxa6P^bJ0jE2i+XkR zp3bCpchjcB_Wd@v68CXX7gTY+zz`NCOcsP>~&EI&gri6vC}uDcLv ziRU}LC*(=lDxz1`2DaM_f0PkvQ&~ILrB4KA!!&4QVcZ@YC0`8YY3)Z#$`D~ojuBSK z?}&+b4|uFcrBM@ja9z!p2!0u_vqOjvSea5y&_pf0GK~25@D1gBR7T0n+tZh{>JAyS>S`5!4#vlFjpv2W0RI( z_dy&`Jbdn#)$ zB8xKCvarmFl|kN67^I8g*}1Ly#I@psFkC;gl=kC$%k7BF>p_um>CNnZ+SR~%q_uM> zMb4UnWN;ZH2V|nQ121mon6*kxx*{`cOwKIXOP@BeTKQm4_fcsCEVZG9IK3}VoF&J* z>DnHwM~uF-T?$w(zBBfkmUou#D0DILU3F6MRc8lFi{wP{Iob; zXyj$RrAH9}b2J2T7L%}c8L%i+$LeAuhW-0fj-*$_E}`Z#YX{dIbH2EMu`F0ozBP5D zWJ%4}GxYCXCZgcmoop2c5wgVOo90*0_g!JahP5490OnbOFH=wdTSl7;m9vSssV#Y{ zahb2;EP{mfNR56!TJU9qF%JPT+DjqG zPhg+sp0$2o_WU4{@-33OH$yP7*`S*t{WC)ZrFzFiM8Cwl5A9qh&F59u$-=dUon!3HTx78Py&MI7o`0@V53OE*Av zpuqZDO}im|bMNvKYi;j9WlX+&-W%DTuE(Q@_7qO}?J*{ij{RZ8~EIjK^FpBS+-` z^|gFe2Ohh z^KyGw9P(ghOYl>>p)c-o(E9N;QUN<`S}=CBH1IP}NHltWrEvp2nYQBnrQ`DXWP&yQ z`6nu22Ra5R1g<69|HLHG>_A`rE{(d!A1l;PRJCr`w@9a%Q=>mEu48w#K?s|pO8Ne> zPo71SJmJ!;@>6N+ctHbGEn(FF8M|eUb5ji93ko0vM8ePw=t}&ox3ff;>Jmx%Br+V_ zg1FF$LN%4)5sH`-`D@YPuaUMyd2zk&#D^a#@7l6%kD9~kqq(0&_lGgjEu}#|sWv7V z?5`*m1(7vR+mtSN_7DsTZKXQ9+6xR+w`H#nMLP=T&xAr8swtf2KILT5L7i;F217J` zm*y)syX|dn%EvOujrjrlvsy%up%+*Q@+0QAb3UPs^|D`%9ZJCTZi-l`3xw0Dt=^V7 zw}qWA&&3E783+~+t1h4LuyY%kg*I6xe~5obM75T>6YZ5>#}nNk7YnG{x>`D`$GA)R zcDTwuAW}JUmPLCtZtx8_3Npzl#@<3Oh_A9A^f>^?$(=#Bsh+*ywTXwQx*l5(V|T!1 z^fYhAU+7U;*(~1&U#*8~na>Vb*Jwu+f6^&GHO!Am@6GpmrftSnr88|R~FC*cshARL*%A5nW!XA$8B{n(d!>mZwx;NM2EGr(oYLHJZtB@2o@ZJtSJ$hd#5&ibNN z!Wk2+p@%xF6>;5-B!0*2^Kh0OYox zTOcE%{!BSMhO32NNqUt1j86@NI=`P^?cD_D!RFEtvDYIX56tc8`Y#|dg5qBs)|lFY z$skTvg>kPOcul1uf}kmel6yhNTigdc?%ie~Zjl5z;9}bDJ_g#*LEP<0SaHO^6DY@H zlFpHV1HDy6bZ~?`+B!k5>+;bqF^Ds8gl#e9dW4om2*G1%a9i+UEoVI9Ug5)FRLl8!-kF zNH4T?xFmFmMM+y4V}oCseziAhpW{9-=U@H2l5ul3)kz)d?sMPAH^>n+eaW^tnPGR< z&b29fyU=A7i~ur$^qP0HMA+l8PJh3e!EZ)%pFWRvAKR;qB|o9SZBjA*)Lh_fpLXst zlYe3mi{jj!&bBwV@5}t;Hjtd@C^@jDd*=XBgVQLn4a6c+UD^mO?^iY@Xbd*A+6I{m ze9l2gM?(pbk-n6hWBzGhOTM}6hI=k&iw}#HwSyXUFUtsHR2(2za^0P`|BBmKn6(z0 zk0J8`CRpGZkhq3YZwUz@5x9D7H~)i;KDb$5s|vw^kgL>|p``zZWfX9|gI|ra{ z!$2+O_1p6pqV4!{qco1}_@vrrfAZ;}wb?QrVqh^Bxxi0axz=&=sAQC?kd!cP938V! zw$2SVyK^z&ip}UDOq(x!QXx#I!O7-TP6c{u|6Mp9%QfNcExEo7Vky~sc6G!ax;r2n zPpGy!eNjG=T=+B=>en*j8Vc0XjB_x=NF&vi(49Q;Ur|1Cv)j7XfIjD|21@+dYYV)H zibV7&bXtXnAF`xvv@r-UaQkO~kCzc@1_^l*UlYt^!5a?vb}e7-uBMp6}kmZ`w= z*|&;ssj>FpR03VTGPD>1+T6glKR`z(_k#&m1{GnN)9Rj1sPoeTopP}@onHRE=|J>k z-lU0lpG`+I@1FxofP-UbNOL34p};rNDb%&D-&Y#6onC;1+-bO6mPYOw;JRA5e14B$rBLg#{nb?knA|A(UAgVoxlvH$3VhAUNeIQB{RiZ{m6-%r3&sC}PKUb>%aYggb zmGUvbRT@n><2LC~9We7W&6hyGjVj39$`OH?oCVD%q<;bPH{C5(tp5A)h|7qIqXo$ysydX>~FL^3S zyhceU1%0itkVOW3KRpsg&!U-o(nzGCJq}#SdpEOq=_7XJqxeB< zaH2+E;j3V!0s_tVi^lL80@Y)db!|5W8Nf)wO-PCfC^t1b`Bw3~ncj?Bw&JYfHZ%at zhp$o=-Fn%JVR?p7bV{zV@UNuXVTPh~R-hk1m*o#++cAdPTtW0dP&B&WE3X4-$JVo4 zaP29!v!x)}zoIW>yH=}N&w*Cand<2R{HAuOB>2X5gc%f9(=K~q?Rr+jIdSa?Id(=6 zZ4WoNQ9#gm%9dl%e4Eh>3Q9c+Mcy8$i4L+SUd>r`Zkib zqVRNBJk^Y$26w&VmW#(xJcF%`F2g`37a3}4wC5!M0Ee+ei_6v^kUKqO&*qYe*oFNn z40@c-#b#dLfqUW<`J7SwW`=)4&vo4>Vi|)sFijh1QOEk6V<0bv2F>}HrVnq;1*i$tfb5DC zxF0ToI{Mv^Cv5-pT+gZyaVoY~<>RLe5<1P$vOH@I&uMHIQ_M~^1)1^-bc}%YgLZN* zpRlPcr%J#s!_Xu%3WiXtxb|hl$$yv~;?PaDfe_Ve_$a~~DYBlyIld`o4Jp=eX@U)~ zw1D_bgs-54v4fpthsrT%FmuonyinLJAl>e{e_SZE%LEmN+hx)8WpR90`3pWZ4?L_WC2PcO?z6WKDEsJjaAOoz-vJJ~Tc0yvw)z;7X9n_`avEN6JQXQw2lpLgf0BUP-+%P5AC3SEWg0g=Gy zk6?-i&UMXgHynzdk^yA=BV}cc%Bm%v!=2HpPLf5qCU5M(9j~&NT%#rjDHYLkErGos zINYv33VxMif`FTS#M)89EBa*3{NOKtl??#yhh_!-IHbuPqzw5eZ43hbr^hW_&Td-N_(HzWn1jsk~4^ChHM@cTMp zaXsBYIm2=Jv}OLQqhV|NcEjlweD$TI7t#J*llxE!;5j0{4z^2XX3#C&UF(GN&qcbDt==Vc$F zOF7EI>H*%mj*cK_KPNt_w)ZX_W()cZtAU&|FD-Byp zB}*PX3(A8Tgte*e{$NX7p9$U+4O^RAyf1l?SCnS)L#%rx*dxak4tv^ z8>}Z{=I)FP#@{!-tY!vD)Ubt5?5^`X6z%e#W&gGd-Z)4C4cAnD%|*9Fv5O-c4ShRU zoXJVHSRxhVw3gKz@x)d&{b8e#W!&5|-wiA+X@m(nbW_EX0yYFU%d zuC4tN{e-$A^D?iQRm|Fp;}t>wio@eHU7SOhV#u{5B`yWzMsciI>87wv8jEHn{R=2d zjO*_rRXbyH%vy~8T&)!8=hj*PTa>ptEB!mWGn790A+?KY<>Fl~D1OGB8sTt6>mte6vMcE<9 zr$V5Rk-HHT$8jzXI#kz99A-mj!3qJg03~tGdnizj(diT%#1v(4A&9K8G^s`0<%2W zm@cWl%b!|$&TefQL!xz+NCz)P1T$?_aC_(3skObZQFBt=oOnu;qv(Jv++%EAkR+b@ zI1YFVsUE|E5Z7kszz_bVjhDbfgp7l@^Dav>sVbN$(aR0P8JDeJG-vGGh5&|CBuwzw z>s6)T^g7RGv1@R6uCjJ#jvSahF;bwuu!YWF-7o}BTO2MA4kDYPe%b%s+HcsFL+6Uz zLq`ZzLPSTzR3kl!?sXt9?Ot+N@*8I^K+Myduh z0Bx{fT%m1ZY6NYaM7IX13*zZ>moDI449hVst}t8V_fQg`M$jLYqH|zP(vW+I9S3O^ zSS8IzB8~;W5_&ea)o}E&YUzB?pwo=*=V6R-t_Ba#dwAx;eJd8-EH(Xj-*YRE6MRFX zarqv_{4_gz?K@)Fp479P9GvXbj`dEk`e6VmmdisU*&Qkr0tKR6uSeu4h8wJ zbvmL#w$7$FSrWN}g6E9l5urZB%bAw%$Ht2b7Sia++w~Il)G(q)#%$BNiB|MppqG53F>eEq;VdUx13(5Hq9@v&VnG23`INgJl_|au;yso7Pvt`#$9PW7SENe*RiT5_)xBc~*(Q@57?Zde&pA9K zJS(DQ6yOM!Ta)EzP@;Sd)bhYAMPUJ0Rql2CqrXscbvVAV zlxSCUl5SaI_{xJjKjdQ7s8)R?SXReAhC)SoFh6^=)=r++$M{`Gepqx-<8hLcE}}+3 zcv)O&VU+EqS?QijjjgCcrj7V0BdMHwRI!qpwOlqSZOK3CIVDP9K9h?Ew7yQqd!Uar z%A~2Ml0qRs4J%Qj&`p#PrftuPkEvciMu1E(%21a_It9AjhaD#tpB2A%AE4NUr%1Of zBvfW!2tthV--K=!o48P66jG+t>xGgdCyTD8?dc)g(Izs()S|+vebPW=$fB3; zJDe6*V1$nw1O=tVo{F~0fD8k_z|IYV9igcV{y;KaZU7xpD^}GN3WO}x6AA%0G}fdQ z3zP#QEBj^s5)|QWg*4&qt1FqphQJGCm3*+~!v7<3P)6{I`O$1O9;em4zYN0)Z^h=1 za-p#({;oD){~AZ)Nd<#~x`AWp#W4VFBTjEF(C7mmD%{V{{*SK8?t0=UR48&%3TjGi zZ%Yp)6sslABd0{M;D&+N>^6H&JQTt`4U)4hh ze`ik4nJTlLdPCx=G75>*;do<=RX)&)Zn;D&lOu#Q?(+}m9I%$``Nj`sDQW!h^GW^{ z`6WvmtFP3iQv3Ctx(?&z>*OIZ;-CjU1wGRD#^^jzFEhc2$2Y?}r1bX6DTuVm7Ly+f zGB;6Kk=@!j9dwv)u{Xu`-}JzBWFdsyeI+BPGlw35ft4t>$<&ia%6)yXuX9!?NOVvY z6MP@&pjJ;nGB(Q!E8&AZBh|-X=f-9a(T(BDWHQL<71N z*bVb=5`P>P8bz3X?BZX;rxJ>5Q*Tpn9dIk<{Pqim}{gR>4B6NhN}V9b5arUz+@PoUtqK@~{g z&)mCJ01_fEh7JGf^|6*poqt-uG`7EQ_B<6~GjgNRC|iTOYp?{)NVPuarJ9a_1ylGw zXJ&>lbN&*+b4W6Mfj*djulqo;T-PT2;=`F+DuS#yr2Aqrl=WC8@cKZLHAF$!@58~- zqnp(9>}gMXxxGj6aGtm)*f9{rGv!bCrMmFzqs%ck1B*wQYESf*{GMj-N8H~@Mw}Z! zGL~+A)$Hfh+PT}wwhfbKU-Bn-6wU2U9{r|qIHuyl>6H<&ldW)`22!&_^|3h?MM0Hy z7{Rd=lh_YYP`|nt;kS5y*|jnCgIp2E8;l)N*nWG84vBg=bJnO4$k-hfQ&V zw4a(VbubmGXh&?&2I~yLyn+LbahWwbX=?s=$6@9OY6s0$wRie2@wEgwkl8@S_1laP zTYK3;(o%UGLjp+4V0U?@*{t%F>`TK!S7A}SlHaY%&da4Wg6M_4ugpgtRRySWQ*7jU!yLHB} z=xf29QMJUGS6tUoH{3xOWZq#fmd-cEsM60leqx-~5oF$VD;E|sUhETjiJ|fIwCR&T zTR)avI%3ycy0s5Ws(!D`ySPm2P(jgl>(%~p)*#RA^6IX>%2ZC`aG{bkH+01L!|Ore zXD!f`I};_D#;2#NE;Ku~C52Z#(MIKIq$OM@#*gMNQh1LSZKkiB=A}z_+@NW^4A{u9 z>GW=^?lHr?d2(^fgFhunoKKN9I5=M4N`v>e0oMVS)Zwc=z7}NM1fB(7b%Bh#sa=`e zO5pFA`fY0fbSOIgHmsMuJFuARU7+EqQ*&x}$88@S+e2>+LO)9o^OR)`^p$8`f@)X7 zFv?uu@Y7AH*e(x77FF|pN7Q0xfz0aYBsat7hfEn6onnHT$&4?O6$5AfXciBqRo&oi zLch4-cr(%J^e!#rA__7voo^=}_1!j3B0Y*oJqMO z<9vAB(fdz+covSm9nDzmCE%QpB#I%`)Ii5;+O#>UD%peu z$B}613}913Z{|K=vO(3DQmNTSx;P0DkU+3zUmWx*$AMX-7vO zSzcKN`pv&7$xIC6%*_e(j*R!5Uux1I_sZVfH_3VF35(M7i-RF~vxALePvLd-^vN`b zOxAQT&Lx?ENr1Waohg#ETp2C~lf9cn`)c^_u&u5W7H^Q2gD5rPHm8UB^j$D+BueI5yn&0KR zu7ovzPG~H;G>)$rPmo~Pb^pud?361^Ip1DcX5t^f;)J3#{hjL1a zR-iy(cUS}~T@&0($HF$$yKttXL`!whYsE9v+-xHhj-drLRomF7a~G)wV=|Ru^{_hb zR_zB@{VIo_x!NBEsl6Y5^n2#)^3E2HWty@`RMQ`tkinFuz+$ddj=xPT!EJ7}y=`ok zE3zAQML+3RA{Wt+BOnc$j7d~7+362|EWigq3_qe#pD3FIvrFUQfQ`k`EjMlEsJ|U{ z4bfmMDeeADz`?InJph6hb&H9SUO(ZSBRnTxgdz3wGd+_0SvsgyJS=1R)gd=&bS#;%C2RYnZHjPrYlj6tG_7cPTre~#44kOZ z1jaVNt%vK&@+)q|zbv@#lZKr}xw0e?+4AZPOQm$ip8Fgp61#~gg8(&I!#bq{!6M-` z)M8g#-v=?-Vzi}GFuALqSSIWorm?HEEB?}YLsj0LALH6(EE_D^PxJHwK#O!xWN(*3cuz~@B#5Gq2b*M zV-9uxl*{qM`(bCvF_hy4m$BH--3Xba1I=e{HZl|tL`Xc&f&(eN8k^HdyKj7{=P*r@ zXMR*L?X)R?ysTu_%sjzM;zi`23c~REJ*0%D+``MgWsE&>OxA8L$r$y!9-xy&nB%%R zDOfx}e=GLbH+4%LPH~Tp<_3N9g?4!}R$*!+6@9Sa8NP%nc9S?ET0Uz#k!}fo(r!w) z)f?_nz>9uKgN=8`o+P~q3}P!QWqh3AVv5@@I74pn`T|Ho9w>&NC+FcQwg{xKM#U#a#Z1^qam zt~UX)u+)hTP$e2x=Hug8CaPMB3a%jP#|!?>YBflu9qR#I-L~-d{i~x`(5x+#i6}Pz zvpEEVdj6n?l8Wpa{})+T2T%f`fngP0qT&5Bs!^!Dbdb%^ooUQXS9l(*H6u5UGdbo@ zay0W}!_`wxWYwWk1cz#U!$Uj;Y_IM-jmb?>mvwI2_ThYnrE)+w!3vJ^osF8MsFC#;^@~$>Nw;u8T0!Mq$ zjP7fgJC+TQ$V-B0*^nfF45H{l4CUAMHQMzj{%Jq)Dt%n`vtZ6(?VD-`if#vj%>;_B zD47CBZ59Z^OpFAJ6r|_6+sJHn8`nl*cDh}f9}gt#X=s&#H{BMj&Bx+Y(z?-F~1>>%c(?W%Ybft_09lV|Px#3^6|&ma-f@%^|a ziRd4j0-<;)HYn1D@8S)2Me6Mi$AB3{^__+t5|v_O{t@5rfY!-FEk3~1jQEHsT3adj zb7Y2Y(_7GMls?5}j_{zxh{S{Sk=3D2E(#$$Vbx%kL=%=9y8mNH7jaJ45Hy`RwB!JLSAuItGG>~pBRmh9_Xf`09EFD7lOQ?f=kMdwMq7G^V zDE;UxfRNcDJpMCB!xAJfEIKu3>WFT{?B0s^LJqSz{;IGJ)&q)e!6pa@LO*%w0_9~O zEMl!>$1+F5wE{LzT)biw^+i*QYm`(r$fF^=tEI1MF0d#D`Xei;FTeMdR6E2Itm_Js zp4seU>d`{g8EH@UPon3C8^Yd(}T6;faIS{C>HU*FfhHtq+KNzVogm5ALd7G7H?#xdSy z0#HaChiC_4MU!=`rw&w#o$Ev6pdHmV0$29_4@ELNDbmo;CYY@jUUF27%A?7NiHXRG zzRT&Y`UQjy;r{;LeIJ~3_m8ezyI+4v@e=p09u85f+nG0WOGxDxP}{^S_@y17h?rWWw>$HG*VXgE}kAdD96Xg@O8w3e=p&#FjuU3MO8yZ<^hJRJoyh8Iz0N(axq$?(N@HUYu zY;mK@+D(*E2V!j}{t|G{*yCZmi@j}!k(xO}Jm0PeQLbbFv^@v=> zo=vEl=@EfBbf5`_WFRj2(#aGi`{JzVs@Z3N(eee z;U(URir9R(Juotl^fkz$VNv+8^Y!}o`R&0xZ%g0TFYLL!?YQft72MT&xc9sJT7Oue z0gbr7$J^vbBhTuO4?dUivL9bBj(gi7bNtIi0v8K}v1joV%~ZdHD+RC*Tq&dzcU!lq zb2d+2{VupvT0TRYlk?7kL`ljz9jcm}b&z24^ZR`w)g}d~Dy3mO%po=Jawxn%6>&^q z0I<{i8dT_R6TX*c@-GtpjX4wAi2dZszg0f+hsTx;LsMRtig#{L zi~WjhgqG7nDwyz?j9L!1G(GIT{*D^ZCvWjR2be=pBl~<2R)Oi#2RdKp=pnw-?Y?S^ znXrad^ZU7%Kzty#Wf*}MG6vYTHo=Cwa}TiZ1)Uz+cI)xikV25?V6#Y#KqZqPFjJbt zjfnJFQBm{{S>f`H5@lc)IuKbL6VtNHg$rt&Kwk*J|`MXL=>ab;1`sR8Xy5B|b`-uBR<#?%UI#uDas;Hm*&vJQlB}2ba-AIrbN-N?Q;<1*SE`g!_+JRT4kt4me^Y+q( zHWB-(3LLo^EOn=G(xy>g#+5CzKzHhsQ`D&gOX$lJsn`1~C3x1Gj;4Kg=xzs7zytCP zd3Tx32!gm#A1vWda5vR4O4OT)kiXh0on%ExIk#j%=ifsDiH&=Rq`kUWw>aseZCO6} zVk!&^sa|EC*s~1|SZO?HF+nZd{(OiD7A$qb1Ys&D-?@KT&v!}@el!fv#Fy*Q;p~JD zk$xvA!^V#$pirFLgy^QW)V3vG<6ZP+n>Ea=NrBi%nf_=kIe|e?xY!@snp0!?4jZ0% zOSoo(Di(Y5l&cc^jrdmeDRIGrCS%6{>nS_)9DCTT2x_S>`lmW#@yNih|4gEH4Q9-* zjomyUfP#@D!504e&gume^YG<1^nftlFu`;oLE={X8uaeQG~@?1aRYKu?h@3(e0zW;3dbfXw05bMa!Z&~7O9+%e)-YhbWQ>?ooZ1A z-!Mh_jc?p5hIm@)Mj%V~pqA;__@8d#!nEC}UOHvFpgHz)58Dr;^)=yt&e9_P=+p*A z{U2?;Wl$wC*DZ{@ySux)I}CP!!CeM-cXxMp9oz`$Qd^3KKz`^K&bhSlUa)n5On^xKjTg$@D;tBre4M6EtSWBa!RB1CXP$~a zOypvW!#B(+d<;SEi z;|Q)7+RcOXuSq&!j2okstO$=J5BplZHd!q6D#}V-OW{|!#(?TDx^0m8luu(RA;j-` zvqYe$E>?$XHp=i|$rGL+iRR4GQ`NWYabm>8I~r)zr=o1|1OnuQ4Sr~pG#6SJ zSdvCArz8gqrzI(;rLtWo*wtYXwuT!mDLL`Fa!L!Liv6;nlq9;mC@DP|D6V7(_~$Z6 ziL$_L_aIJ9$})0sIBQg`f}H)cgf=qqkPLLH3#O{PD^zU5guHg>Dl#9i-E|?8-dxxM?&^V)c&l zS$4E;+^ap4JQ|+;1B1c1YKe+c@^}ZV13;)x>Gil+sXzPg(f2+nldRTz4oL_Tsf&N9 z57SP$@p*sSe63~7m~CoJl}8!KPfiQXufBO|F%SvBC^c}l(2Np76G&SxesynSzs?4Mig+{RPv#JRC#@ zW{Afjj}ZA+D|C=kvRN9;7F{K3QUc1@V4pSWKyOZ@7H#ndO<31vZxhFn?S;_y>e8bM z0A~6H#6N5xsCkwm6g0Co)Bln1IDX9KGF+YC%jQA{y|( z3nPDf2g5uvZ@h3;?&rtZ3no`V#0NdzcKW{6k|?Pp^vNf1fj;mh{xc-zbxYBLHnc`* zm;##OWAT2xe870Klm)bsZJsHm(m&1d}1v=k&U zDv|Je5ceELX*ZM@n4NtxdT%4u5K}p0g;3iUc^-$^9RwBe32Acp6JCb5qK~a2pSDRN z%a+?Qy(MQ=+F|vvQJI{6eUu%x2P&bewm5}+on9JT_89v#Q*wIkxhf)VDjGu)X0;YL zjq^Jmiq2k_snxn^P7~}f$)PQ)bAMM56<^VG%dS7x*yL-LA{iOh490jIdyaY%l7=m( z{H9;MhzeAZEfZZvx5kMY0!bsvR+c`rCzPHu56N2ko$Y9AmaW{wV5s|Z6GD69%IKAJ zJ0vaeqH5N#u@P4Xn+Tcuy#hDCB$UVVg%M_#I4rs&Q!}15e<>;f718}qj*!m&L8P=% zmgAyJAW^yG)mOI{u(OP51~$~uC|I&zR{Z^IMx>zRwH8~Zh;TLrC;aZUk;dp<{1^A; zoKK211|jgyB@^GBhK|FmbWF~m*`UhCQ}bLu?(rMn+NB*|Xi-QECjYdl6r)PBGzJHA*&3$zr&g8${q*T2$c*koLQOL}s`%yCNceQ_)zI2i94W)&2@ z@vBB^Gw$2=2~)TCkrUp56L2t{IEOsE_ZR$a=P_a1ywQJ0(aQ~m%bxE{JVtqIZ!hb1 z5FNaszEM-*FIc!Bn2vnD5R0bQ+mXxFSqE1xh{usT0hgYY1UG@3H|#t89P(o z^Q2cc3A+1V5aSW|df?Aae~$cKY=`l#&YV43%nd!04hp-Ny{F$99%)3Yg5PsWlKBrh zF(#UNADh%#-1Wy5_UIN^7@I;}$wezuZMk4`wf+&*fyu(p<1ADEWElj%+(qLrr<9>x%oPE{uKcsVXoTCpOCeD1t;C@9eB8U*bydk3Y^c!u~> z9|z;#sWS#M0X!~iT$neS9nK`k?$|MYePw{WUx?|z;siv^LOm2#%_Jeca~tejioUg} z5UM0&$6A@rCjXCUH@==W)UYm{T0_@IRSiD9={XsoqzjQkpzy~}`;VM#N~~jyF3TIp z;n^a3OV|u7I+1QGDe^2xT*(KS%vY{X{62~VMKTJ_urZZ)(`3td3|hD|vzR6vj|Upg zo~Mf2Nc*X%uBpk4^>B|=)#)@^L$DVDjr6;<-hkcN&>rLrD0m9-y}Vy{YVWu%1or$> z#q^&b)%W2Ko=8d;3k%uI>DizUpox2wtrd*=uNnH{ctgS_6`psyNsqC|6PVqC)#4v! zrEALK_#EqKmS&Oygvqwio~VEDdDa9QAh(?uA*j=U!8y5H$vK%>Q&aLf;sYu4oy5r1 zG9BhqJ^lw?3|W6gUGeCv1f;>1QO|yWRsWgn2i5+nfz^;CRMpnL2`Y)cFZi0^#eO3| zWGKS!fAKrT;N_rImK0HZq3wGAgeEQ)b82MK@3s!QFSpIQ9Rl>8kZ3(J0nj-m409Sk zA*zDi%;Q2XIAXLYaV;q-SXSj<@HC+YZ%dxo3qmfkrC@}^m++&(M&nfB#^RVQLDfCR9I?Ebl*niUUNUxf@&R}9cpNL} zH;Eb?Wg>o*G`E~Lj%o7>6<&+0$y7a_nT;jgN{Ynt{D`(*1p74vo^1@CZAJt;S}my> z8jVQFbvOyf2}Sv6Gnro+b)OiERd7tvayMzhi;m|$`vbOy+4-)3^zE(~wHPJ#j5oX4 zCt~@KIKN{6DtZ*SN!vzT!na-2Se+No)6(WT7m(nKKVE7tX;D{|9C_=EpQBMG6D4IZbO zv{~YuX--q^VdXqWFF5-QI<##N7!|BivBD{1hqQ~C{HS;g6s|WWR9AB%^1F(Z4m4>$ zB>$x=SNSl?e1jbq7!XnCH&d(LI1 zVhOoA`_87o-oGF-pGE(@t9y^139deR|$?6Kk66&!Yl{9;^wh+MAyP=FRjcQQA6+W-~#;=wJ7skCeg){G)Yy zvpW&v!nn>DM%c(!ls#G_EK!hF)N%9wh2P7`F&}X*;L*0oZ`QCgC7rz_hDcpJYOi&0}QhCr$EX3Y^g^ zFT-3f=(Omeb602(&e+Hr;}(pV-U2{}f+T;52V3!nb>lVY)LOl~@>OOIKBD+KhbOGM zyZmUqP{gNJ#C1^~@P8Xb8SS6jW`$uNou{&}N5GS~0Ny#?0spIriCUl?vJYR0y1wt#)d1^=JKimnQ>0b2%| zNX3IM^U2d;7ZKe? zZbKHHfkz$I&t4n3y7BSa-LdwPSw!w>KYx|K!N7Vy4qmD(cPT=5P>d7AUh3cwU;~L8 z(0=5BTs=P!m{oTzU4^hl9ln-o2fv`9d%gc47fPTsce?$(!m>hJ!JwSnaJ7Vu+tE_~2VBQ1(!OB{2ah-c$>7MgHy6x$J6Y7w!kVqDB0K zMe&j6r&X(XXTGLrb{R|!#p=}Nt#?*wiyJj)hF{&E#=UpEwo`}reFeE}e(@L25jP*! zZR_~Ij7}_Ykoe7r;EpWMcH>&cgFBcX&<)KzEj5e|_^F46oL9iLr#@qn%6X=jS+vbN zy_4K$$j>NHn-$oK;ecIe$?gE`=AF_~qS6`28Ww0xVPb6%lJPRMvB3ejCiFw+<@7}> zY`B#Sh2SMtvFocmp-$W*)5}5H$PX9u^hPuU-~y<0SyJ<{M)dOsQwHj!f#3X!S~w4k z#&*M>87Bi64UJr+5+Id2!SMkr zCXPXSALV(tuT{H>$&Rwm{^>ERVY04idwL~y{fEgET)ccoGoK_i{yZ6ma|!kuP-g*( zxN}grq)d`;>)BBN2TZLihts_zG{Ws<8K1C!eVDt#pmJ>xouJ|9Sx*A_#brjWX_$jy7Z zZ1RlCzz{bYhIzTE9ue&uoDf|oFU7w?0SuzF`1&0%YU%T8PXkaFlnFGk{f@|x&*ay+ zba_{FY1C8*))ey@=-^6I;Q~;s2O0Ds398&;nFFPEyYY2r!LG;vHZ{q_Ca=Zx6H1Ay z%t6`J{bU}R>|vZP9e?bLY6xs4uK0aBhU$Dm(1p(v(JSf*QDZ#!ZKTrmTiBxWXi|9j z);8$qG;WZo!a=(^{ESWcyZ%lz2S%qwYAk&f1!Tm+MX&~*sFo#Ork6hS4S)z`fgQflJA8L5EZm4K> z=Q0xK{*H~`cTWUDrgeYO`&o0Zu}C*AUt$HoABNO<+#CCfB6&o-zTIQld3^lE?O{`k z%`|!cb+@WlmGf@%WT|TX!iD!<_uTH&(LDMT8_Ry3s=CgN$<11u>o*&|Co5it@wD8s zw~Di;B|6B89U#+Dq=5cJu&ddC<`8e!VG!+Po41>R!t47W>SS;c!T9ei+@O?Vjejx0 zwK7b9KQA(Gu~YEWU`R&oPTjO@Wu$H%z! zePme5aE32VVvoui8+EaME(M|B=LMJ$|NMEq46k@Z1Gu-g?T$Zf;&=uNCqYCX?j9Zw zh=}HD`H}1@zsi@OhUYOql8S)OVDSaF$ZO8LQb4q;zv^8 z5LLD~cXr4%Hj?KOi}0Tms3UF$y6zW!S*tKak{@*Bs5`~q4%RS z28>8a)0hOyC{BEtAi6(hE_OQjIb?woXv_1EdhzSoCC+w-04P0dx)5dnx?Oq&TvvDe z)#3~}da!f2xqO=(1bnpmldeKIs@SDh$QW*m&bV|6RvnnNddng}Hjej65=J{#hh^VPov8QvF>g7FTmiC?m%+k$Af8xz}?+({O7R?j)AA7@z|dj^MIpXPhQKa zqim>OCaIPf_Z+>w-x3)rwNnDQm5aXfSUKiJ+gfaxKb1xkdRpPSp^KM3`Y?G)AM7h# z_kc#HqRIJ<-;=2{avej4h+czIb8{Yg!w$a(%U{qh?5dEUeR9-o+Zy z_Z&A8Q_73VzAG+cWn&BPpqgSoMHOMMWLb?}2!TbL+1?!xBOZ>+-Pmlexq-0RunO+zQTX2*2q;c1(JTr5n?Taci zb83?Dycxb_2%$VzsTANeg?Awy7mp&y@~*78skPKYb?MN&Z__?ju?xu;8Hs&2{ew9; z0fusBVn@`_^m+1CLB$I%I$VvQkNtM{t5$nud?QRRyqrx9 zHuskhp_b}kyc{=szN1q1j21GR<3r|6!|}9BxAsiuedZJ;ip4zTiX(X)OcF>^oCV*S zI0+y}_gRL2_;XT0+hcHZ2N0inXpk;;_-^`q7~3ztImJrY!5XIq!}KMlk#;fIY+0s{ zMIb*hF94M& z=`GHCB`P#a;x{9Jk&J&3{hwI2Urj43gNfKbl*bWHy(Mcx6o= z55g2;hzCd6kujgA;t!*U43JJ0U!Dt>eNgOPPVJrqRg|^`?%BD8Ip?V6XqwUo8*Hfm zHLsUI3#6MX43Y&e5V0$rSl;{|#G@qSD~qznG2B;CQ~3_cX#(dtrEzABaq8PC^T053JtxePX_kXqx*R zzmQjOoTMb%^W!%ja6pm6hA6Nd@vp<##=zZSjdc`a8+jS{tBCDFQ*`x+g)p-wkxe2} zb=-zv0Jwv1i8OkE$_=!k1q3?h#Uo#PaI4X0v^Tcw)|@H-UbHYdk`xNKfT$Plt>ha% zguZJ&^PXgkz_&9y&fKfr5O^&aO%5gCn%X$T@8ingqL}W%W}$99KPj-jScXJP-f6Qf zN@tQeTyku4=(^~)dh0S7^5a?P@3ekh30H7pHW&iFpZ4D#VvI5vb(6=T!+n*gH1rgp zk+`|35k?WF&xRQQY1h~Q16It4AssNk;(1llh$)5$#^X^FY81Os2fLxG#LHa-2$z z?E2C3n~OtXc5==6a+eB-74{YkR;w;rH!i)p&*w|q)kPZ-w~OUzUc(-rZllKYWAHjf zlsIS^p%l%+ax#91Amckis8+l{(xuNA+Th$&c;1g&ZLs2eLtB|8 zXC}a|HA#oTyw4=8GHS3)e0sZaJy443yAvel=I zvc9I5%hJllam!7)}q@lBxPL7!j^22qSq&d?~~jqwl-g$YEA#()UiMRM5j z#=l9pAxOPgbPHbe+ioU<7s{-Jv6;=wxL8wQFPO&j>;B<2OonKY>`yX6PaSGR=V%5= zAwRzd9q7a8y6mA2#eP4nO4D3sBj2?!XLh9Q#3fhkR z+OA16U5E89H9xNOpGZEW#nIA5hN<^f)7(TsRn)ZvyVH<;^(V%89^1p7_khqpGcmJ# z<4h9zCa@6ZNTR5j3buP1^wQ|Il= z{XwPsivUdry!k!3koL8@8>ZLNhnrQ)bd5okc2;QAc!9rI`-ghD6zi+kA%?GoA-=(c zv`{sw1;6lvB`JaDBlFORD(pMBtXf;5o^4xLRX=5|pm?Y~PbMCpQV3{D(Q~TRZ+w936+h z+HU~!0TOta^G)|_fBURj!8Ey63n?+oZ|gj?S#*TTWRIR4Q$sO65+-@<>xsCCro%IdY^+ zk(9N;HDRyi-`Jo2^l`Q+fi7C?KS;u>Pzuw&f7+nXcq1e9aoaDQeCu|{=|JLoyCgy& zL~zZTU)={uLij&SCZ9)9@jsQH>dU!uRX=Mf6A)kzDARU(=O$K*ft<>5yH&$~h14?8=4Pu{aQ_OjaXCXlZu)mEDr0e&mWjpqxG1 zg1U3LM7PgL_a)Ld6Ob(yUDnp;RwEW#!=g9@`kc6SDQ0#S=|;2&2)%B%K}1U^|G^|h zUC&5q?7``gt93=y$5b7xSglQ$LF9VhnXE*sfh&mIT9Rapna5H;97Af@Qkcau+Z}#rLXf7l{}7&OFD3P2Jm^ zPVTPw`QOqCS3HHkGo{hAI9{O z{!P1nOS=||md!=euL2*DwJH*|*~w>#v0)C#+?;8dw6FXZ@zR_asiC)Z*!FGn@S#wv zW{#JS-%-wrD-R-yeehLV4Tnv`fpc?ZbBd;iMcB4e7-Gg>rtOwdWC3DzAww#2tJ6>W zRa$bA;BUDe@@cuAw5qwVNL>giRb{zEXKW06$N%`XH51{(HL00GKLXYpUAne^)AdXl zLNkfj{WVfP))g&e*f&mF3YedJk@%2y`kY%y$jh27EWCC{>KC>PIi?lRrwAAkQ;=yp zG#^OOG5)FwoGIu1kW{Mpg$CHQco8E?Hh_)l_MkI5*7~<)mi*}1E}T`Pv;=KE^`QzY z7c=bVq}Pd>+fA7InOy2$k8stAr4f}?{z4S)$u7aXo;C!>U#=h5MS|y@FFLA^sfOS4 z>@_bsgTdgI>x^6cwCe+TR|a3M2m^h2P)Q1ZoR!ZW1`U^+09as&7U68YcS*1@eh|GH zQA8>tXD1*WCIwSaC{W(n+>XE5xXF&K8Rg4k{&w@HYeOlN{lRfwg46tP`O9@@XD1RH zC!9y%wB;fQjc$DzB?2k`PK451x zHqwY9!IF_P!`dG1W|YC{p9xG!aTFew7W;sxo6QC%)w|8Mnoz>?Eh1kYqCq=rnk_uG z5bnsApZ0+q-Ya+L6{`A_%6O>`(*I16k0YC+7@g{WCaPFo;}>4?{QR{)t3C1%6U|RT zyj-jjFSG;W;L$@KNCZdw;ceoK%k$J+KMy^c|G?59yBB<$;q@28>zk_8f5wSxCSwZu zH0!yQY8o=1>)-8xb^u|4&2i5!Kl73pid`2ewUuX3dh1gOxa_D9^|j?0Ig60NN5i^$ z-RaQ6=8?SYn8j zEzI3!W6s16b*_523*&;6X#T@Qwkj;9TCp9f3P=?r1li`7EH+KRj=fHkJVrLT5nGY8khAd^z2op#>fgaA#K! zcAW|i7RuM7!bRc{q)l+&=#fWctFc_zVcqo4B*LsHuKu$3!&hI$4HNhJCYti@Ug@2Y zNSh=1rYz?DkV8mbg@&}FB#ejU@ne3I;YM&aVZ_1!W0=W1$pn3*5bU+9j&ki&HqHg#(0F@d zOAZbFV}&OcSxCZp4z2PtLGXjOUz_0v%_f@un-nF>Cvb&NmT#n6!mT75y3BA?qY zKaMqYv=RV-&NOD%U@)@<>|zGH+e4(-GLpvHXvq#zoW54NMluxKeCd2+1uXQYus7n- zm)_qnUz_N2InF%0dSgw=zel*iIDhBpV~k7JyryLWw3YCe-TL-Q7$|7cz{X6QyG*yb*T;ywniXCjY=IPh!$zOUz4f<-O=z`N~SHv3eB;&XVfgPJR55?&st>P9F= z;*~4}k}V3A-!UAFt#TS`PjWe!DdqA4JYP-j=#Q=67_rO#^X8-If7^@V3#r@zt!2l# zu#cX{n@peGoY3J>enz?N%pG#~#jq5NQFO(H$X*N;W-f|&Fx8YjT|(Q9%QgueJ*QNi z16X3~c?)v#l|?p5@(3D9eBw*9Zkio|4L;=o8c-vUl1zWJsLS2^=&5q@-Fg7h6Fa`% zkefLHE)kj{^hf?LZdgvKeE|ZNRe%4@-pCbmWqB7ylm&$l*O~rF-LlA5#}-Ub$9;ya z;!FAJCdEHZ)o>Amq&* z3G-It8GFDzhZCd--W5FWc4T>aW03H{me#KSeO}0ePlH3#qk?cW{~MV_M+DJFcv?Mr zWFRrJXV7qe+6$JD4=Gb5>a7StWM8BgGKl_okJe|bcx}%}&L8I<jrvN+} zreX9CUDm$s(a`hkAJw}j*89i<0|P9Ug&x5`ho{yomOP)#4@I!vE2NFOPb^?E&hn6J<_f+p;V5EOuiJ7jxBI2VV zT;3|D2(5nX@QbQ0SSXVkKtY(rYxLn;oUVccP@@BHnD!txhX#ed%%;qB(Bz5A_qDpqfns_ElmDssgcJv1Xwf*xab1dM7 zzVJwvJRzHLcgxq4L%tj3`*9zheY6mdC$j%x^O2$rRBM z#!=@%-Pr7a{|>*DRvK~zr2|jgl6GbJ%Q&TixQHA5M(djxJrop9)3^qd1dyFlhhR0K zuoyk+R0*tYlI!VNnqQjks8ev0@%vi7c#Uh+I?0e-TmV6Ca1H4)deoZaUtadvbs4C( zDdksn@OnOCKcmAEpmr-(IMc;H@}`jWDs&Zdb@Vf$zV`M?3eu?|4mA~yRrXn} z%T?WrKXoeYBLcpm+zzLKoW>(FD^iWfePDWVxePVh0W(;xWkVJ{T|EvEY`MIn= zM|keJ=2``TDimbOUw8qrLPA*#5us2VibR~h&{BwkBOs1muZ8WiMcDD$56b%>gA~K1 z13v=(To50-ouD}z)>?V1%<=i!!n#ICgBqt|6?5gk?I+%X5GRg zWP0ci-df`$%wyKPHpdK`zvG5`P^qF0{U75L8Rx^F{C$^Jh<0PZ$TFi>FdTPzykxfZ zjZsguZDVXZBo3sdd_4H%PDDwn|MEt*cuEY)d9orhdd7Mi*Q+`w+OnsZtB>nifUhIg#uWO?Q?^R}FZ8miIZvUlmSjGIv>f9^iEyCORWRw9L>9x*f z?d%n~oA43v$KU8ixk)hjz4|dLay7D0}=&21&L-)yrOZ0loVl@Jg`^# z+JaI*P1>~X#i;_@zo&~;0l{IByiExG5`YPBk!=$Q|u5VWVVl-ntWkz)sM47|JNEzcCfmG;X zJHc`6Bj@^4lv{{YjDP|oS>uJOR2*5+8c83bdE>wm=D>2|p!&8_cep)(JP1;{G1Qe{ zWv<8^tP~d6Q?q(YamcglL2Tc_(RJjcfa6i`xnV56VeGp359`=}@96hKk^>2#%H(QC zdw%mQb`~7XU|M~Ymc{QH)YMs768l%_WpX)Y)tXgr`M0c)n)d-^bucE2)sW;lnWW4Z z%AasSU{cEanZB#Kov5UY$H~Jl@PfZ?88A0hPqvHb+Mc`wM<5S(T|+M2&IiQk+#C|M zvV8NP{9A{O(p02@#RPWW`xJ2BjY88zLk_Oc1G<1j5sv$i11Qh0dX@qGI}hwDG&r`_^&fpqJdxP- z+4sME%w)ly5u^Mx74ruGJBs)hSVacXNs_uAoT|o>29g$V%+WTy@o=pxM zintwweo=s`XQohSYm)V(SZ>y-4P7NG5w0?>L;U*s|6X?1W)==+ z7A$UFZvS6kp$xq#;H$Lp*Mso?pccNWbFnZnxBtI5tp72{lI<-#niq{*@KrwQtJMD* z1P3Gg`tt3o3E%kHI5^ojSk&ZI|6}lff$U$vcenHI=udbsYJSB33k3TwAO<8DnA-n8 z(5y{Mq@d+KQxO6JOi<*%JN}=>ep&o7IRb$ICN3ea%Au{Ou5Dy)Vr}Qm;^1y+srn5X T=0ByNzi#TUc1l1aeZBo3mt5N- literal 0 HcmV?d00001 diff --git a/build/old_releases/ABAP2XLSX_V_4_0.zip b/build/old_releases/ABAP2XLSX_V_4_0.zip new file mode 100644 index 0000000000000000000000000000000000000000..97d6071dad2d7d0e0fd55224d6fd627977f93b64 GIT binary patch literal 914685 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

S*dUO*NNY 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

Yt2nP;b5-iynFCjm&NJ#*sUCI6{=tz7o= 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⁢EQ3%I1nhM~tkqPdPOMPXT9M9vEhU*|r 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

kxMC=I4H{uZ`1*mGUib40;*{J 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

V)IMEiMav{8 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

XG37qisRlQ$C-xAU#6Vz!mR}q_x=q@B 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Λ~M!6FctQty1H4PALFwR|R^dYq>-H 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 z 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

gk@g_{V1wh| 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�TFd%0n_aBBzu% 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

7IHWZ9ec(A{E}v-$ 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

rrHtDbuQ0U`tT3 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�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 He7FAtQ9SKS literal 0 HcmV?d00001 diff --git a/build/old_releases/ABAP2XLSX_V_5_0.zip b/build/old_releases/ABAP2XLSX_V_5_0.zip new file mode 100644 index 0000000000000000000000000000000000000000..be154e50339af4bea4a786e7b35a5dd7001ff279 GIT binary patch literal 996142 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 z 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

DQpW6EA{mOTfyWps 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 z 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

ac0Pov2Dh+RA_9=pv_ZM1?;eiSv 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


mJ$A2Ro!b&dD=V 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 z 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≦uS8dN&_`LZlCV~9v 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�D@;O9Sv{0+0i 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�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

9sk3_spLA_Z3~s&BaeZ0ABy_rs(M3C@e)#1KAl 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

9V+u*3aHrkfJu(U2)m|*;wnWd57 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 f;IQ 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�}{&!u!(o>DjQw=MTGGZavRo3D%$qP7hV_ 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%0DPK_1bQjQH~(4q>&Ps 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 z zPFa3W9%Xz{y|faEI}~~K40|vj`}4|tz*=ha{nu#8xpj{62W3#%8D48U!d=pJz2z~- z0{uY3xnbGD<_*~#zTI!B=ft(v)_;_EAkSd6XJ`M9lmKmwh0yvXdGbrvv9B~C#y{-k zu|>YUE)&=L&G+UgtdJ;!KmViRiBaZMvk+HJHHe;e0ar=w64A;%+cF1DYzFc2oJMT5 z{@K%8!5Q}S?!aiT^IhrB58R3C^APTT^a#>BSp6md5IRaP4c7uH9&iq_FR`-ZfQu8v zkuhB(XGfUbGmJ$`|I-I|mL5)pm#)tiZY{=>#6S*mFA4I6Bjo_=U*k^i%FYH7iLBn; z8dtq=91R*m_#~(W+>veD{mRN_B(1Uh7pf*KEGjv0XG7suFSKkpIAIKG+^Vs+x)^RxYqr z3`&DNQOdB(yo$8XSMTZ$mpMT}0CECrM*3r+t>*m=VTTXw{Jon25qe>iAbV*`6e>ot zCT9!(xGnv<^v{PnaoEVBcO$ca_R)duVbyudcpd;j#kNnCFn;oMY8C_TbB5@!=p|_3 zoz6CP37pE~hEm2@4&)Ku%Mo$IKCZThV-b7;M4qRV?8|XBPh!roF2J#gEu9A-p?rTY zMh`^w*oRcjTVen>@c{JeU_+yEo<>c9njlwaky{TChjnPiex_6U+TnZLZ+j@3LI_%$ zX_nj0Lsh09eU(@sDe4g97-K^QNsO15?P4cDwZ>Cw5VWu>6}()(KqFFPl9h6aeum6y z^O!&ms$x`H=wzkfjI^IimYY$4lAfa|`X8DgLw^Xjkj8a0tE%h+$2N1criXb$tJ9z6 zZS8#|5nevMrR%q`;sJA)i>c@)U#z>4bPgmR-9DVktOO>J?H zsjT6j8q_QpYQ~kRqGvr(WXXc2+%Dvbv6>{0bzw zOc=8TiHLTT@Z#92F=lP57P)H2G0+7N-@vSu<%ZDe(Bcl>qhjr@ zv2NalW&{<&aOlA>l%Pug16qlh#pdg_?hk%YF$i9K&?8<@FW)A-rJvH?ug||Wv(2hH znw@d0!J<&L209t7dkx|1Bd<}R`oSh%WI@8|mlEt+?YL99`)^Y7;9Dt~PIvMnwkn$} zKZMMbfN(xX7_|TNR)3FAzKSl!u-QyQZj|$G5N)3lG&K;jqhCr&1t?4MUds4=v@n*o zI|!^4@ie>Y+M;XPnWCc+?Tx4e)XWicgQ_CjAUvL+3t1X^f~!Zo{AL3^0Ng6K5Rb|9-hD$e{%oOcJ8VJzQbJvM|gYB z+i4q7X0@7elxn`Zfc$`!HIIP?Q*B|l;t8V}GAC{s&~H~ygQ{q;ft?`Cw3_9`;pbwD z5xvTSQdiI4aXnh?rZ7B!N<-7ihnU?%ygQ_b0Juxw$#J!oSX1ED@u&I0$(K^cPb9j6 zx1TQy50yJiN7T}E9ORhSv6TH(K>ldcjYtPKAIHA@c5dO*I%fyc0u3`&#k3`UFL7Z;a_5S6qq9J)0N0N-g%TObhldcMfpvCY}NTV_c+j1usAtzR|{bAy99W#x2o+~%Qk5y zzK*pr8l0Z%G{M}3KmVj@Ym1ivQIdpxiMq6FZ{yI?WzV1yzJObn=imE_xZjQW4 z>6L>g!ocaax91&%WBGRCztuVxO%^!(_B_ISlBpk9Qc;C3HZsGK6Iye{LbcLAOJt+u z*B%8&liUhE_}xd2%&%K3PhF78!^e$%6qh`)y%{=Ms?XIPkNwtY2vhGc*hbZu#U8fz zn^(qoD1*_mhUn#y3p>kU*zQyH&MCyR6tu_IJdxT2Mau?J_3tm^&=C>);iJ^fPsyJq zLypXmw2s>f#;!zFPu)7%H>eWaaW8tq+Z|-o`v$yTgF-#BSF#r>1F*_EqInw)ZCpur zR$M3wLP7&p^96R8Hdoj)RFy|Qg_!Amq-BmlQc1Y_f+PS$VAfXPTkn`24THNmt&*i(kW(o6p~sQ1zN4gkLOXc&4 z>PU4lQ_?`9vw$JT0e01t3)RuX8Ng49(;%fj4TQ04=t{K8dZ))v9%3jjKf9u@i2!X> z;@Zr-FX&9Gk9Xhoj+B{Lk$;3)X3`9!2gVW!SbBXG8qfV@n*JstzBcUGDlJL02yQQr!?3i9AI*Q3O8bMYbE=P!)S3;^S zZmMWLeYlUkXNq&K&cNB}_CV;_G60$FH))himsQ#zw^g*wjWlTvld+E!%s=R@l*dLy zF15eRxfTpfKhYMeqtIaVP5p3sq9c6A)*(*`L2rYxgSR^D!M)66~yPgZ}7 z%n87KCb6>@dMyWhH`Ep%WL}jDzgbZrd(AFW_hIgHHoGeX!SGUk@Q_)R4nILrRdlBP?wEZMNW`r>>c16+vEM+kHc6wZ zsOKtbwP)10b&AxIH+w}@*W(V7>l_w4WC9420yQVJuTmOD5?Yoj-mluFGPV?Yy!!nh z9Bs;^P?tm-{?%s?aa==|PLogy1>v+psLh?NECm%1H^nXwrP)MzeSYu0Gf6~D*dItS682Jh^~U73t1{g zPSF)`*gb>pn|8WA5*N7!odq9*H%KKAD+2jUaSc7UJ9P9T4e8`IS?Fl9QeO2vmxZ5Y zt(`-ZrvVve1xdd<$Lm%m{wiekMCL}UTmO9sSoEGaF8F7$ z{mNMWkzCC>7iJaw4lX|ad|WyiRaZGI){`9idwo#majtZE<%Cp9_3m8N@%tOprUhOK zgE2%2>3hTjc7VJdS@`3n4R9hW5OOMy?h0*}5qkorrPmCjhTP@(2VN>vwODX?5$|}h zaS*^}2fd3fZ)0J)qAX>aaG{sm;$WO2{O({quOaV|jd6$(C=UEA!^6Lyz0#Q)P>44f zp&uS#@4JaQ`-NVfOCo)KJ56Z`gV&)JEg67FH(fainq5Y`-W@>XR+nYwtgfS1M|)Vf z7K}rR-%bHA^m(&f8=_(t7}~RYtP4{Yq@?Sw(Y(qX{9?i?RzLw_X79+t8A)y93|ECT z^i?2xh^D8mgT8BFV9gi69MljKY<`ii4!C@GJpxBGBF|u_w`h6aGo$ioXgtA^)0ctc zgr}t7bZmdw0=06%nx_?&fxKOE0t-{<_r)wKj2cKnv>z0u%&08sW?30iqg2VjdSP6X z%D&v+cIrun(Jv9)zJPV{-Sii|#}phh?KPF{xf9xGNv6eRGc)Zbm8J4bwBARjIAhrB z;l(XMxeG!(*$4HOUU%}JUCwzpEsZd!WxS zNzCfP+sv*#bI@{a9dP6G!e&!PmpPVcsB=$o{OS!nIN3OBSzSh7#g=00!_BeJBfQ?k)(XhCOY+lUCZUy&D$G+>QB%goRl;b1_M@?V4GXL=TnTGHq{~wLh)_-Zx|8Gfz|KNco1vs{Es;DR62&ezxjsHC49(B@4F@v&-t5X z7V@x$*iX83i$%MMWTpi!)f?xX>zJG{@hxptPTER;XuJ-Wg(<~-{g17pICb&S#AIpE}~GaRspv9g1wx?Z_D{zea6urmb{JT00|Swvb6zBy?`mLd0h zM8Ok!L?he;4ffl%``fkvIY7q0`P4D>a zacOcNTRlE9-_opwLLV8;jE|Pn{o+}FE?}*SXueD=o8N;yCTT58+KeioVtx$_K1Ylt zr7We4`m=tKWc7{KDN5r1$JSp)#nmi{0xg7n}aC4Dlnl7-rGPgzOdmefqw5`{hW zR4j#ecAR@vxAR+um*PP-db&EQHZ%1pY1heV>iDzqX-w_COUC+Vj`0AX=w_;e^3qni znoe&z_s&kqHf>~Hp(8ewGo}F)@`rO*b6R1-cWDu&Vf(bDc{JftSn|GDF5VQZk?GB4*g4mv7ryV#Vfy(lzYp#YNPO5^>BWm{AQ*<|qrcU@xc zFcf5t!QAF1wk5UMw&H@)sglX{x|Rb*1Z9GcCY_EbiwMDs4`GaR81IAG_X(l!OL)oU z>lU9Z$AL%$Y{iv$2^8f6rYDK&-wySi@t3{?z2&6$?eYr6VTx``0GRk*w(8+tCSG*B^AXp~Nht*P{m zp$c&;N7=s(wq5t68sFTEwSDwfO?nj+*i$~EV_4PF!42giBcm8jh(DpGm~nFnq`^!Q4d#)%~ID(b3x zUqzIX354%3M8+oQ0D#J} zix1x=8T>0d2vdsHMF8yuXSTVH_7X7TXd?LGD+rLr{#2o zP&m*X9tuD=v``fZ6YC0<$03t;OkZ}C8w#hDP7?~QNo?I&5-0YE>SV0ih2I3EZCuNU#5&uCp4!jQ(Px^?D;s?rMBWb! zl?XdL&RmPvk82ITd}Q6N2fC7bxVX`5m6MWMKB*d;(wR9b+wIj@DSat;4rL^O?>_Tk_MZ-O`;D09Gw)@xF0dfGkr=U_gZ(%<4Ki%Q{(B@9M2x zq=~v)K{W0)?v;>4wOCuaeBm!k)$vu{v)*)f!7K05?JwkmXaskk;l~Z?cnqDm z4dOiyzOWPE%zE+>@~$UO_KE$b!={fo>cZX`E1%1c6$B@caS}1sNgLy56XJhakqt9S z6La}}MLaw=MarB^COB3)%5LMGyijyuZ_m1TLDAZ z7fby}M)VH$belhfY|idoQ~d|Eizh^`K=1n*f#ou_#mg{0?3%v~yOF=?Lf6PQtjYzK z`>u&bAMNMgEfRqm<4U}PO}K9g64hsqg!Ef>0n?r=wKS=MPhKG_^$xctH{uU&x=Ow{ zSHcXrUYLVK2xQC}NlrpY<|>uGHpOf4l7Uu6XbC;yPHdZB6?M|f4qkObV|cbl)6Uv` z(2krNN1~%RDRUl*r;-$2vBbO)RWM5S~<^Rj>8Q-?%8SRHa*N$oJ+64PK!fN zD~qEws9o|A(EpVDEWt8ipwJ?zlC&HTKv&zIsJ1UawUYDh;{LFKk_|>HTrT!Ca z>r{ouiCi?oXu3O&*_u(rHIM3S&9Jk|YU=(g%t7;IrV8=t#XWGw4?p~4ypbOhGiZ7T5Cs7KyoGs>Dfu)JJqTY^z}h~w0vf{R6i4&Zxu)LFqHCSZPnyQN36HClQC7DKkUFA4U9V^;Vl; zyIpY^;co#y_JjHBeqlp+Gh@bI{(dD8x}YL-A2-6v<#`b!=;$_McLie_WkRKD&X-kM zSvWL-Mh9w&^^IADvnHkwWunWn?W)tvh8)*TL$dA8g=zcs#ZBiOS7}B>2c{3q6~tuT z0xuML$nUAo(DZ&%LJa(1a$z~Md?5))b1@qLIQ)FfE<6IOj&2Yl{}XBFN3RG*qi`_e z^H-s6`;2c}>#X+9Vhn?I==0d*k9vTK56>t42h0ylLsHlE2*P}zJWHXEHSgtSXV>o{ zjR)O1pNnfihVd+vS<@}C?=$Vx&R^}b(8vi7Cy$TK$3&Q{F(sU}?p$oPL;i%_^$9nr zwv|6h1}C8$)4HwyD#%S(W6O?x|3vo9^Bzk%0pAooAu zuQZ-UNt+EuA1T0+j)nI|@M>QEx!#Y|^_|Uz^X@MWn~zh-(>=&JoQB{&>;p~086SVP z(vLF*DCCCct-KwLoVyKCW!!}?#mf;FKUDc)@Isek0AyKb(5`XpIUWZ)6}%9#^l)5e zzESQBR|}0i---;rQBnEXJ@U;koHo&jY6g(127@3-%C^~Rq*a}Re&tXQd!eCC_{<6O_UNfg68!h?Nm06Wm|#yUyK&^|lKK{6F1Cr%+Bt;*Yw zZc13D?XWia1R;QG#1)naTvaI3zID>@OWOm^aV7NTQH%8K-#n0^UU#XO|CeZTyh}7) zJ_dI|BN@pl8S!;_YE*YuXoBpB%!0>SQuIpc?%Hk|GHIHCnKRw zmb0YF=ugrRf0^m<9cbe{ZR5V=Kc?SYmp?gr9X#)zWiD1=m@JzvLR`6fFfeentNw1 zq?VuMB8Uw#{w+E3Ti9mmwW0n?KONhf=_!2!jv2l zB(kv?)ao7no3+G*3Iv*!ZJ5q0*dzw0rB!p=V+VR~(Kf7={#xH@oT0V(t9N6r$oRn7 zJ$&6Tub&5*4l{A7l$Yw3u5ZIe?53BSa+cmb@2qY#p`B%-AxTOo{P2u=V@@KRcEZ?! z*rOgrVY6!ZfUdkjH*qUD3OYW<@KaG-nWH})W0QVu(Hg)m*(DJ8b71-0fL1=QD#-Oe|IGmaW)DHkpA+R@ z%}PqQ)~g+u{%!V{Xwi4FLdY`q%Q5u#4dGiWb(T!tlfvryABrI!v(eB0x;uJ)r%smr zU-bAw!ct)No?M)Tu!w3{+0S8+t`Vl?M>fPg^l@qrxuFvtax3A%z|lv=An9!dwB?|meOKJTiZFODx>uVOe=2kwsEvQ*&T|Q{+A7nk-&+du(CEu!VK4+RR)?uA0Ts96=K#Su*L8T2vEs z`dh0A4BDI^3gCCJbt|`&)bNp`FFrv_Nr@7q`H^4r18Y6yFYFW@Q(tg7+Ch(Dgr}Kx zkhrji{*!=LH_IzUD};79k_|?0jo-gR;SR1He5K@h1nvOoM_(~Nj#n$l7@w3eKLRC% z4yz}ly}47JlmFUcBV^ZxC2{L&ayt(>h{nKRD+?*1KkQhSE|iU?k-J$c@5(-;tc)!a zDxXBf04Xma{fk4W1JFF$>lrFrCEJ!3xT_*B9SbE}!3)}J$e{KQnbw3OME5w4#T~R; z+7n;QfMqGvHEh}6htjy5BZ4p{kI%66@5s(9sOR)!&nhg9*v3QdDb#&`t!(!d&xC$D zHUy7!y>1vi8(yK!n9t=qczfbhZ0@x=eLgxNJR5WJA`PR888KVA0x5c@d=5KIsd0dX z+;M0K3v8&NHkV>ia%&Oo@X6*KyE!{9OLI=vvmF{H35T0B>8*+{$>{MdsGfa;VC~FCw9SW+MH=wex=(G$Z2Dg0^-JtiCTXLHmc592}jwscoJNB9`vxS{x}G z_bo&>Xi2uy@z9OrW z^7JY5#lPhjI_}TA(%f2^;3*$D*|)72rky%Ao5c;!~$-FJ;z0*)R z*`v0LlV2MHde`=PgX>ZE1Xx#Q4`I8bE8aC8X1T>#wb^!e7^6i}HefDF`!CSRwK={S zWh?T^J#Nd|8qSE{rgeq$V&+gTvA#p^*KxzO$7G*&1yFNEq+mA90RIiHS6;ERU4KbP z#^S;3PgFN!{Sy5SazrTRCHcF(Leog)p}$MZM}N~Ffl*+4S)aXP zwXM)>y91h1roF+-tsy+>E(}^me59U9l1#pLDx)jf#uDa@`8xf=Y+NDg*?fbi4~vyK z%*LH*vRf|dGHGIjI2)(a5eX!@h=}2vjWAm24&Y2Z;wXbrH_xM2g1MR>1%gxBxY4_78;;yL{3wUnMy(AuTA%-Rk{L_t7Y@cQl3oG-f zI$D@1`1u+JJa*pAOO15PJP=jKJTl+S`Frd}w+C%-UE24&8`Yq*&>eH`mC~1xe%jo0&5@*JRYr`;_*R5sF(!|)+KcH;%xY{%?Z(LkX);v+MoQ#+{3b-BY9RSc zqSk(eU;xfAXi$q#;R{Gd5+pPeQuM0rj=>w|s}E`49ml$yE2dBKkKI>D^LeZeB4wZx zlu^jN)Ob#xB$yr72qn9kM~uWY9AsFH5Q~)4ERz=_&D{kP4u04EGy=k=PlY;N%7a>> zA>436?4d->X0?1+&M`A{fhL8_m|PO4mD5Besjftu-kfSCnYdh#S?vR{sjpffs>JNH zu76VI!7>l;LAL+<&2d#LaWXi2Z#ciiCs0kdvX7uIJP#~xXITjijxpZMmrFILn;da^ zh1;*#=d7?C4eJ%?TFHgA<}c?L`v z*ftW5M~lZJ)$K}JAiU4g>XStR#3d3mF^B3cviet_u!`s~Ozm^zF`3*ffj75U?H-$E z+VhjZ3~ueB*wHt^;%r0x%|xA0R8o|S*XZl7jN{2sLs{bUNl+$#qazv6`4Vm>P|}$| z17!GI(<2=D_9S-g{7j(t$Y|W5z6?5ArgB-M^g$ZN1N>P`t5aP#QJi?JpHaLe>Pl7A zx-9Js>Yy!wGBLsmHZ5Pe2SwuaxPw}!xw*@^%3i2Z|FxPz|LyXyk8wLOQGG)snZ zRucE|n|{yB(a5$>+hy#u$?INUfzaY2SXgdHo)F>X2iB5?7ll%qEuw>g!=lY+gvFh* zvIX4?;H;yKT&vN9{sG$ZG559&f;))87T29PP4A^;EPkb~FKt3wbw!}<$OrOY%u8mU z*^K`mI36gF`o$6+zO3Hu>^=NO+ix}N5%ybBK+WFe`>XMG)|pQm{J%H6BdOHrKL|M3 zLme(c_75{vXTqGZZdkN|U3=K2vnVUK8nfNp+lPnUqb-ZGMBd&#hj6Mf8STjP5Vj8(&x*~706P6ZGEn)9CDQ{zg z14J;B+kjjz^hKgPYI7+rSy{ZHw%h4DKqGnOr4};azOKdeU=+<`ytF27`6^N$n@o3= zxAgUWWn8U^%#kKCub#66sY->xAeO|piUVcq>56xPfAo2q+ytN(xQTn>+g~^0qH^+9 zT>YjM_4Gei{P+%bZEU-c586PzN)4y;QoG-YT_yKr5d>w8eVS3zGdu)^BD(@OM2Esy zo#Z@Ey6L2Ucugo{x%@WsM&PeF{ItwJH@IRV{5c4#n~^jM()8-C&;&ntglW|&D0ofD zUmeO2IUeVd-&ah2exCa6wmgHV*=k*2=Y!zlem6@dMJ&~FGq**A8~rNlh1QrsN(P%~ zT8<9L=?FKTHd>AN-!m!LI&~$`f78KFv?VYBkzo{vv+e}w?9z|-XwDmc8w@~-q*#`A zUlklv^)SDEkU@-rqPPd)H(q}k&Y9*6OGYH7ggd)6V^`EZ@?QQD<$eE)&|N|JrA@xA zH~fw{@$7-cp>nWS?Wl)n#dXRQlo=k-*TZ@M_EXSTvn2h+-bGMnW}*8I#G+)7xWtl) zOnBu3U!F2q6-6NMopf}{+?Q9wA7j_fN5yuQYX*Ay*{bhcWR;rA_n-m{M{g-9S>q2H z3~Q|kCkT6<%G2n+&$gA zRiBHYN{6g;eB7K%Jz=t*;d6@Y7a*qE{J_&*<{ctgN;=AA&Xg^y*Xq9k9|^{N*)jch zB+0hDfBnnB<^Vo-L4fTn)+1;L+O!K|d~2-~au#K5SzFqj&d3|JPqbMw*h_srX>Lza z49U-6u-Zjd1_2@}%E1S+EbFr6$gMR9|I7@J^QUX`uRZ|>K%ibgWO%ab^auOXf+Fot z5FVHE+XN*LuP#hc(!({63oBWXDg?0OY`;gq5GAgz8c??T|sMyBAv^yGUyKOH70fDp{Lo7J~iUaf+XYz)-;tXS>H)g zyARLjCrdBYYr}Qc`v$#9Hj84gCTpHf0uIZfrS#Qu!ihIEkcBcmccvn6xVP?ni55F- zi>PNXfJmSxgQr3b z*XixitIBgRn>a+5&FHd`=MP{sFtcG#`Ahf4%%%o;d&nr1A<|ITCqG`p6L9sQky}Qt zJ;7BQ;))+026h<_JhMmjBgy6ro>`tDO&R@7X|c^0xwRRwI>LbpAv$WDF*r|wDX%9m zA}!Tw{_d_&dt#)6;F)=7pl%G#_R&zh$2n#+Zi0}ZMB0ee*uBJN_eF z5s`kA6yS0VFvoQz;de-v2U%w^q!4X-m6k!CvUKOOcR>m!kJ~w!(ZfWXGqb0CSn{AM zZlzi=Ji`U6^~v%PiZGXf8mh4%7OyEpAGqkF36HXGx0E`lYXw=rl_?<8B2MoS)u);Z~1p+=rzF zB34Qno(a@!PF5-@2iWk#L3m~aqk_shH~3-#Dd+sEy3==dT-au#?KAXepmj867AA@S z9ke=Up?_1^!8&aRQzQJ3Yt3^OpurfrJu2|r8ehi7P$6Lo&;%Q?i+ZfDy!sv#HERtf z22zRFiFdfHW}C!c6Ke{T&RXJ1*d2QKp)sw!Q_TLnmero4$otW-=i^9B7y7GD2&$UA zzU~&7VI}sCv?JR0aGd;U9?7iApZUS;Zecw_?|e0YpqiHzz#Rkvu=1_oRWPWIu=yhZ zN)&q=eU{G)I5r%68$N7X?Tp+#j<<5u`2*)bL+C0U;yI&k!DhX)+Y^Z@ z5VBrmXK`8(cCsqljMH*I6%L4Q$mohxBWw>fVZ&)|TXKckJbZ-GUsNi=GG&+h9VE$y^qbg;>Bq128I5JPzM0QSGi+R+PzVN+&4#%9F zfAdt54+Iiuznio)d3L6YW{W7Z=cbDV{d&fAP_7`Of|we`k2**CY<=?qPvi3#Fv$(P4W1WiF!N|#Ij3?50s zgmRN91}Uo-n-}USyts454}zTNyXkx7f$gk^nVtFl&Y@Qp>&>H*%N<)6>^_d%3@tK1hR)7 zf_djIG?w}N1iAo;8({X3c_X=fF5lc~kkf5Tuzu$KVW^}qF5$R>_vs~2^H#8}Z<8dGMai1C z1!!G$?zY%|kIYe5_$7nUj41OtHPiiD%wdlIX$F*&Gqy%~w91No@tOCQPfx3E$HLJ&O50b|)=P+moPIy`A2H~=qt>-9(Uzv>^|I*kv3hUTijhqXUWQvDmh21{c;>h|ALn2GXv&U&PO zd5+f!(z+K9G?==K*ocGsgu3vMlz>r+#05aX@7e{kmA2NUEm_p|pJ3e%lPzD4_ZR z2OG+_9opInjL;H|+Qk{1;Ds)nXv=_$BLve4_}75dtoQRePTLxMA`{*#;)?FbHnxKe z2^|>osoTrH;2{q+p1}xjv}A>*P>4eX)M&5Y@N6m^m=jczP`}qpz<*p!4~`j`ldc<6 zF=lt6%JSj>m5)~bL)2C%?Q933&QvpnJ#ET(9E8n`4j~>{vifPn`z2f(j{6b4RYCcb zae()75sLgtWy696%gs3M>EU3iL;wCK8hkH@@MaO}w3axUbF79`^p zau9KC?RtSYJcm8@ZHQ(tH3G@KHWfNIy~7y@>yuO*-mx$zqZ8JEcB`dbK}4`gKYP^s zmrm@BC^ldCJ3k^krGtJ&&$#KTLezTQA{^^3oE?Yq;#P+W`F65Cg02CtReoR`5ck~8 zhDv!eyFlNjS47!3Xi-Z#Vfys^>x_k8UO(N})td>?l7YGS$ALm{#nI#mCkthCOoX84 zxW0+(cGSUBu*Jsaak;x5?~Hq1vGNkpG*cWvZ@QRc=dCma4Cbh_inK`VpOe-r`)|<> zhYx_zQY#=YHQmgLlY`p@qGwF_K=b!eI)JxgO8{~yP2TRH*9exFaXtq5cnei%t)2`I zoPCP6i`eF&n;%dpdfKi!)Cw3$jzQ36UZuOKZQLWW$ne!`w!?Q%j|1D3;M0P@EqoQa zsAYrt%^IM7^$MS*BgPU-{HBUwbHw3IFgObO<5t7JcCf~42Crgp2o&2gaQlFrK?X)| zRzpzkzD_8aydG2+j9&H{NY-zT>wDw&B=gszm1(tUpal3(A$M7`Bcj`zEA!jRO)%)oRZKb-cR7dX! zaPJ7HnK0Qz&YG}8?xDt|&HBQ_5znrWf1O!j71>xBr~jKvr)}P;2uakC=b5g&`D1&t z(^<}q#x|m$vuStRtM9bxX)DF=Ku(IU1d0!2raJ}~(&f?X4slgj9G?x%600IeHAjr@ zJiGHDF0>hQ8WVxcdq+e94rk)CbAuHrly3DGT9A>OXT_m5Q5DwuadEqjcHx{@65nwK zWDwDDyR~V4y^9b1Qm|Qln6a(+yhTfUO=< zOS^3*e!hA|XR*C&^MOe84FQU-stVzwnn2P8*kM(4EY2xeuhnIo`s8?q#m==S)f7O| z8+_tKe2~OfO_=~jr0=fwDpj|e$K`EV-qs^J07Yw&%M^9B!%gd>;7?dqUaVx&wiz<~ zGYxWWw#indEl~JRaJ}|!lI9P!U41-I9O32gT|1xllfK2s>yV{XtUdEDNfKf4HjFVK zooF;S;h-UE!)n)QTmC5M!jb0o+Ijm{4Xe!6&8U#PNL{}|B_}x6l^=!1?vG@1M4n1@ zcR|MkqqN7dh+f53+h_NOa>XF?xyA0&gy{PEf`Pf71---(f>TYC(zZ86B;q;*Jofy= zVe*spUnE z#*EYU;@a>aKS0FNXZi!{S(X?;x?@ZgSNHN-c5Qe9B>C(*rMHKy7gJ>FVXovv5jEWN z1A>QBug3GJx>>~S6!f5bup?PY?LQ0!PKhaUaq)l2xoWR?EMV6cWaN3NUw=-LN$|b{ zje0nC3kdvRlRzUI9_dXTmQeglPi!I?7O(81>!TuHba0ci&uuH<7W#+{iGB#%$tkp1 zfTKm^S?h#nN3;*`KtPFD_-02%F7#S+Nx$;GO#i-OlJ<4M+;@;pEl zN9S3i>49TgN&49Cdhi%BdluggC>Qef@_D#>++|(WzPsn|cC(YS0-Ej&fz0*~IahGX zGj`##$=!pjf;^cW{WXRPi%2-uVEi2HmWv#fbm zi$YVTvrP9^?pKSla?A_p)BGW3!7!iLk3DI4*{ef!oGRUx*uOK(uG=H~50bgn=hA|_ zsht%B#SPf(mM`m37CMTsnd)@(aa^^Yv$vy+U5^hSsA;&&p5lw{{#lzgAa~O~jc^Sp ztg%2x`B505m|~$#2yjxL-mWv298{_)U8e|0EW#_S52)ykcBv}9TCj2OWKh*5P@CrR z_)F7HYcKs>HA9U($}j?akS*Rt&dcs)eBIb)a>IUwYM|!e6rni%Q?eMP##sK=H>C_& zcbc2mAfh<i}dSuY>n<_}fe%^uBZpHB@g_)X& zs;}=WKlAQ8k!jPMj1B_Typ&gxdW0GmRxt8&QPcdP^i8;uCt*{ubJe+wp@yn>Y2aQb zL+unr34^rNLMco-k!Z<+6S}WrE#gLI!EP}en-KOl>0=WT6&msR8T@-GhDL-4Kn0nK zwUEzkoI13y*iC8Kpk^3rTA_%2N&~m;MUrNIUDwvWJ&(!vdo%*N?FB__%!8}verr-_0trA$g~e~PZN$y21A95W_2-B zSW3Qx;vjBs{9I&3r#o)16^iypJeD}sap&(1&3}`*;kXw6Cab}5HU1?KSjA;zDj08& zRz!6;eZn9zU&JZb!2!+p$Z_C7g0^X(2b>nmD6idok?qYUJ1ovbl#JR+!SeUMX4kWB zCSwP7LxWQ#)}wH{f7+S%g;f-SMO>eoRi^gN|AmDg>dRWkuiLk>l4jd0o+k6?M6;V; zbc=IY&VA7zZgF3AJtpY>y{`Sk)e4|3_P-8gy4Cac*uj4*oA-;uh5XfZ#dI-gD?p9myQew5<1DCB4{{E@CgPie|JL7wQrtkaep-$}s1>f%2 zQ5E6D(RP$4@P+LpQbOfjI25E;^U3$0K5p*|wtWKzUaRB_jYr%47f6@*3ZtISU9)x8 zqHAB~oJ43yUY<8wRJ|=q$p`=G`b|_kfuq{rxXx2^u6x>gTKxs zjDCHaINxj4zw;x`s3*I5CN1Qik>_H&J;Y%4^?eRW6rOniz0Kq3zC^#d*fzt%pg>K} zuvBQeW2r*;ZE!Q>Y4U}E-R&kyqx}BXVkqU_|Mtf5n&cvqXL*JZ`Je7zJ??$o=~TM5 zS3Atk4pJV#UN5?9zL8I?$N%(vYA}-k-e~!!EIPsWtwGpLH2q$aOfzNypJBKbs#CYv zJ}ampwUpiBg(DTBh2nl>^5IMSdu5+N^;I$-Z|}SF=iLG>0pC$~d<3?-uf)e;^!Scx zWZ1TD2g_z6v}ViLr^Dln2|&a+F$r;x&>{HXHrmqBC#F~)U^v9`WH(`?2pqmx{ zTluNsrF>{lGii%X>j@v~?_AvF`90Yda_Gu1H-2R2(96#K<%Ga$I165t?L(FPqn2!8 zseBe6_shSY$JXoC6l(vwm4JEBy!-o=>7=T#NC`_7``8fmJfX}_Z9l?(ionRl6sJ^| zaq)@$q^qc z230e4?ikWB);SSi7_a@Z|3siL(=3~r>9-#5&aa>8hrx{sR!f0*a3W{YaS?VPEZFz^ z10Qc+UIcILJ~{1rd&!Nz@_WIjN!M80xBEbc?gYJq7|?=y#+^;M%)-8D%k0MSqSljU zu<6v?7tvn3HhiazWjn$3l2`?EX8OdugQgs|&$@BfAc=Q|Wz&^mgYj@C1U}X14jZ(s z)aiKVN@Y|{)qi41En6vjZ1KY_-=eu8gm6=w_2px;9EN*NiT{uM{uZno;a)F(WzQgY zZxUs`c0S{ci0v77xza3Cob1wPA?i~x?liY2v<$Umm(LaF@Du zf$0~_6vHQ}ziTl*J2%$b9yeDE-tm_D^K2^&6R_U8e@K!@3U>L}^ld#i7OF%lihR2-a#6Sj&$z$BA&s9w|h< zbC91BdqIt{2)pfc{IpD42K)2D!_NxH0$a|^l z>#U4rjCb<)3eCP`&9P4(GuJo-y7Aq5e&gT$g08M1JUq$dFH(x zxIZ``2iWM5qb*$Imzg-E&O8yeA5dmR zAZA2I%r|M8Ke=CQjkkQW`5$6q^Pzz0qWu*)-U!nCfF!f4^Z8q2ga)&6<8S)X%ilW$ zLsM-7q4F!0*~HE2sF<6EcGsB+9rhCM@qdUEvYhr#VY4g#B0|QZV`z&rsvfp~C)#Gf zM4MFpZ9>q?NSaJZ3aN$W8CCHk&gcbTd3_|JaQ0{lMS@CL;sqDmy$*Np%EYehRSO=v zE+SuN^5}G_boi6PcPZ1ly28xG!g(GGAv-)wpiJAb)am@m=5qjrujvp~Rw;K#u$sB! zq@1-)DK|pM8@Tuemc4=8=GYRtQ?$8#7LIm5;<$_BEK@CdQ%!5#d953+%oglUu5wqv zG$eE%4Hp!O)wT)be_XtiSu6NO=HL!Fnk3-jhzz%|0d3RGn=<+=yn80kjxKkp2=O#y z3mJ*^4bgevEfAXcyUSy_T_b@udZ<0R2&?e`{ITUeJ9mHIgL0Z;ReC=(e`L`HoUiA+ z$!X-hn^sj|iMU<_VeKpi;&IRslb+#bwnKd0*?^Ff!fXb=KA?h!@)EZ#hKBV@@3)bi zck_9g`hQWpn%}5@EgfbP*WY`8gFWl}=~;aB`@qHOeyq^?BUWQb7u~Uq$pP!iEKl^Q zNcL6d==gR*iZRDEbPy;Q2XDb9W#bJXyc2O~rJCojJ}QKlb3ZITRlCHK=!|cs34a+_ z9pbOq+&DpU10~jfTnQGKSTw18nfVDkv^8lF|I5JA`><%!qUp=HDR)1!$|>;Pc4l>_ zg<|`gF9$1a7Ujd2q-yVN!s|V2n^iEIna}HQmhbJ+%ipeFt?)bvx%jV>IhgQUWP#9Fj<#f2XpGkS%5A~s z2PmwdcHs!ddO{+)!20j-Kh8`raX5cJ<^I3UOliT{dnVms(PLra>e3%-G7LAhq%C7W z(c7Hnz+gfGcz6OlrZt3nSfOBCb$OC@^4d7gI_FVpu(3?y39lN{V_3{2@ZH^)&_M08 z&Yz5!b{Hfx1{?K1-x=SXucIpq$fm4yd?2uy*XR=0NN$5y^5+nM6QDB72Q4N>FDf7* zxLu?#5wzLoEqt;L(VXC@wq7L2iwI9B7F#iTZ$COqi|>b;>r2;wDr?sHVbM<4(msR9 zHBt6zf-H`hwlszqvZrE9T*o0Tcv9>l!o~Q!OKG`BbESYU1Uts8lG(o95K)vLdSDf> zv9L3TPrUfU_(slt753{o%~01d{+%b;3*NLS_C8V!?LeCO_BLAUmFwbFS@tZd2oVxh(76H?nMB5T1NV4&LQnp}tu=v!RRnDRA`+SIFoE=!PMTnYGUE zHE`ab9}gxU<|n*7)nTd5SY1dyW&7#`@_j!ZQ5yxrs}EO?r$5ZhqESbY*4R$)8A11% zTkTlwario&i$fazS;O{PAvJirS@16MM|;BEaj^Tm1M#HC;To{4p1s{&;F?;1yR07F zXVQc5GOea&g}n};-MrQMId~Pd-4|;T${UPeyUw1jE^nZ9G4#{sR=)BV6&;ezJhx;`v8a_w#lL!HaLF`;WXqAxt zrUz&XBDltZGc2clhz;zud>1@2EIRYef7*&=mU+&J4`97#;NLmZ#na} z)Un{x$`@pCmy|#F{l~-bBRnyoKN=4} z;x>v9(<9T7nu5^E;L|6+Z_h>zP{#anoyt#NcGo&lzjX>mn0InP#63kvtX7@fBX%p0 zVBD?~hsx%fXn%}5r7-bm%kyHRk4GwnASLv}G*_p5`%4{m3K#xy7Wu=;u-f?ua*=!| zUq>XtlC&L)$mp&XN@=T+)s54-pxod72Zm2vo+G}UYcmoq036}S`J0Zg@ z*Dz1tb<)~&-p{%)vNc{=YJd471prFxt{QH)0>H3Y?ktxKnGuiHb6dB8oTt28pif-` zL9bH;4NLgf$^>ZOe)6;&y@Dr>ZW&R2WWB#*GXOV0$iKz4Ra~sx63J+`@Zah01ruA^L9lXlgv zD>?|a+CNbV=&jw;WcIJZ$)0H>Vk|c#0$jeY^w8TbV&?fystu$CL^}eY<2~xP#z&O; z(hg}WBu7Veq60mxwNNS$FRKeL-v90$J6~5j)fn~xndyA(ub!3-5q;^Nb$m# z@6)I7r*}Nc=NZ#~ERRHjaZ4;v3Ww4P&ikcBlNxW5-X5fGyU zwYH4)k`$#jAcfg*Rq9^3rPW`N@Y?E4vF~HvrWs77W6&JOIMK=7K{h2XRmqq8{v4l-&EI(Pj%zn zR(BtS$B?|bHi37@(P!A*Wb5h_a02Cj$9@wJ&FPe@Yl@xS?p47blLC;lrwXDt?{0{za8 z@(Nx;(>>;t#jIVU5f#mI?qHXkTgOBd1aIqapjT5!q0*sF}KqgMIkd>**`KlyhO)HQSD#f{UW}$v1j2fBqytL&gETLy-8w z`KS4@0`a|QC?K*k2+3~lLjamvvctDe(!v0*HQeqeSdp4*0BdD`L3@w2zTRxLM;}CU zN)9{%cd-2X8qXR1MrwLiQl-I2D^1%!v$OF+m0l>siWh@!75C#w(1iG2HTLK_HI5MW zwn!@`$ps39b!H03B^e**n&EWI?aI`u_dkyE!i#s00;@Ec);d}Px;-=>GbhS2NH#X$ zqHzgHE?7kbbTF)~PUIrOh93Z+>N;>EKY)STHkvRENSxM;{ib$*j3!9K)j56Yf#jDZ z7~gadl(7v#$GPB_Ai74nu_;fLOfSHH^=%Ijgryc zx;t}uK1t3?!5~Ww^U|yDyor&c4yBe?ksvu2*#j+J`C1p@87|q?=mcIhUxoY;5a;y5 zv&Jl&w=k`lhA{K!S+iF=vUrqKqEy)e@iIxG&Qv*BZ>`ensscxBnSajn+*YxBq`Q^D zJLr`eej+HT%Yg~H*5fneaHOOWwQc9pZq5X43f|U0M`+8_8U&Xc@qh&J${|$?qwMtwJ^y6u3y_yOcD+)rV676d0M zH*|j-eqvct7r>!Eb+VL}`A|chIAdkPDStW-Yi{*Kl-7|jL=)K<%&E2}Q}PXTLJ^63 z*KGe*VtPjuZdZ!0(N^qd%8UKranw2_Xf+J>c7g`5^D&5kzV@&Ng`~R5Mb_3%1plB~ z%qqfrv#Pk%W-JmpvMZooDcbcrcBd>wBOrD5w|{3rdy0F6qH!$~L0Hx;Ljs98CM1a& z&Z^>B&?wEz+x^*ykk*5`hyX;YjKM<*fL~GyRPUgDA_GFpFDwNre;XFgq18mP#=51f``A++srT@!{Eo}?-2QXwxq%*ddrJ53Yb>t>bI9}x z5X?|yIn?X3hRMnORgA@ah$|O7p>RpYWM0ae3;saPV)CD|59BugLfx|({xexOB#N&U zoTDJ_jM`csCbIZ(MJyr|N*_@lJ(b;74Q~yl$n_Ye3ia_8I<+sE^dg$eB zM9#rVl{kSUNAPD%ho`?v<~T^YFTEbR zX)O*x!)yEk-DY?Gl7PdfpIK*U?Oc|Pz1$CzUQNW$Uey~ZCr>QSq|f7MZD+hEzz3rQ zU@yDPGJC4l`HjR2{?<(C|6<~~KxW=h;(cp;pg^#jm#N>}SNV0SrGZE3 z^Tft`K@8{B{lPaw*&(Z>foi`gI&||oO-`ZAx~iCQV9;ZQq-T*GODj9cr%Qm`dg8J< zZn~|}lWJEb%o~Q-`Wi#A9r^y5GR1q0xfB^{|L5L0%~*s6v))RpN+zO;%s^_FB4f^UZ%0`Py*YP8`>bTb9w$r29vu@R zm5_i&5EvMQh6-6A^{Qf$S$GyY)~wn#Sqc4<8y6Zx=|Q2D9d8dnz+qxpx$D|BN+_SO z`g}JKEf!C*BKqx=t;E@%)|ZAF21DZ08X6B%2Q=p=Ztgv608OU7>?5WjgFkF&-c7E| zYFs9{9IavSzH1Z7&4(n;^8}l+yq;c+<{;G6r$|h45xcpi)EeZpSsSCv zgUUu;b6oCf8zT^Al&>?*5T7c~uq+V$Z7P;;+a=eKhGRHsi9gYB_ zwVTPag(ewFrR_)k(1D9%MRG`EyR?F^B~RVwYaPujJrmNTb&X)bxYx8hZm6DW6xxLj ze-xLwdId`qm$D`_k4H`8PqSJc0~A@unpdq|w{?K7v5M7M@{-x&r{3VFl?B?ID>_NWy2g+S(Tm79zgYb)6b@5$?rA z?TIX-MqfBZ^(CN2s=3GkoXHiY6j=xq__D{}z-`ogVPBQoofDd&&v{_eql^e@Uh zxGvkgT;bcXc7Xw_5G&}5uDzG#8W0MMTm9&BL@W=j_waH2Ck+c4=_(Fyz$(e=j88XJ z_a^JcU_ugXTSvk5z}MAEGW8+;@OlFzR6A~?M{m)e%%NT@7iURs*C*50eR?Rwx0kY~ z_gi5JAucTF7sp)7{QRp;=DN$JM9DP=FQ6u2_Z4%z%dnGD`CF%KELVJBM*WVe}-KO(j?Teo`tJx)VnGIUNP9phz2i zDTGS!vie44V`dF9@v>_hX$RznUq2*L^WU#vFtg!)xC#FY=YE)elUsMr`%@tX2QgA} z@@WwSVzP|HLZ85KLFmV0KBN!v-ho201)0>M5lpBO)LeBZxATcXFU!l(qKNA}-N^5} zoJq*ZJ|ST2bgUuKTXjHf;o*!o;<~9`a+1+0x^Q3$ILa$g+;(;D&m9Q2lYI`q{{)_9 z1SNSo3I$scA}A(49L(ine*9jy6G{D9%|O9vQ(4VeJW-fkD-a9xnDD*)rdon_0*I75 z1Eiw^UC7MVUS|G z2d34bJ5%+{#in1n@F>IbUHTQxMzZGxiDSLTKb?XdnR@RvR-0wGqNLhgHj~Y!s?nQg zrSXMo63H>9ENR-CE!xypRIa1Cd3anH9hjlPkUL&H82!(KV3ml{@uUgS?K!cxp@Jq} z>>I8uO*D&J1qI!RS-Zg`^P{r@k4vXTByr#zZ4!=sbqs!Tj_$!;@H)?q#ViXGbO_)R zC53h+i6I&ZA{Vz&kGeip$9TaxaA)#1qbUf*yn8TF+J~5>IY*%ZUP)k}I>%l^4nrib zX`o|%)QbnI5z_sK^rXz?06mra`gwGiCdc6WGc+Gc9^y7zj0gIz2u7b(9@dnhrjq8^#v&luOouM}P9YP1o~4PTV?+h`i!=l8vHsrFi2 zKx>D2dfC47+NKE_wQJVpP3A1UA9x)3b(hNq*EU;u=!pt$@ce4~Y~SMJ>`ZllUIY@X zFeew#2VZ=L4(s{28moqZ8fx#`=+)6u$JAai4|YH4GH=||1^rCGtcrkHa6*Ta>^SFu zQHli|(?O$2iEhx zjepa&1B4k=)g}xpF)_65K!nG@HW)#*i4$nK0qnaq$&~uPtXutboC=qmp83=mo7Ovp zTlsp%$!ovcd806}jMqAm>093U(Vd;M29YSe46YHLBI<=;cH^C9tTc2|tOYo3Leu2p z*RMT8-nBgLl?rllrHMBE3ZR$sa<>uD0e-rQ{d|5qc{RN9u(Q!azbYU*3B;HI;?vRI zn_V0V#b^`YA!rXMsl z(NV(m4HcnojO!rh#TR;~Oqkj_%-O0=UJs>Z=9ytk7N#?gU+PEoKlxjf_w5;P9qk_2 zPDj`)SbpUBX5(F|X~b@p9g8kUbnYr8!f7QFCGP!( zD&qI&1YtuCKRuO?(U)KG?l?yEHhggQCN_@p-pM1s7~IOT>gW-CVI4uUZoN7=D^Zw~N=d3NSdtMM3dQ#5*N>I1{M3rF&sLq5|pX_cSI zcLH>qIY>8q0Nm9-Z|UgFWO<{!*Yhr{Q~*q~MCy^CsA2xaG?>oJdqe98Yfuk({s#%j z(>Lt(IT&v^hL`r{i;FNf=bKq&?OskD@~Hf2S9*Q6i?aT1r2faTFq3o?^IhD^^a=@y zqwHMm$bb5>WBR&NL3Ggc2@0lRJx*d2EQ?hwgn$XX4yiJ$a zTcsMbPyiUgVn+iIr(-!qtHR5@`!?x55|BRf;zsgfks@3^h$%`u9rs|trO#fr2mMix zms8fa0%ui^@-EDp!|UTmt5zseoy`yZpdkPlrPA{y+wdV%c(PB^q1?&cy!|{EO})dJ2eA{&surezUkUbIXBy_r!}8i%GnZoq$C2g8b6evyVVN$kY9mHM z?jcj1LfzE>F6l}AG#95xz);95BnuG_!>60|ZgR}*2d8^GPd5SV{AE<`#fHAgKtaOK z1NW@y(8*|Bp>N&LCko1FL$M#96vWc0^02S{%9ry8mR*{Uf8TvRBl7p@uRl>9oHc2F zf3%~~%r$3CO6?#_k!VZw#$_z4v_(#~eMFd6Ighw`R{tZVWwXuKLjFh2(?<<&kY3|AResYW`^yib_gqk%*f?7iHaoOmsprBVM?0P1ojB1R)h)yz!q52SccbpI+So89smj4VqVRX+b+XJGrV$OppD;N{)_>6SOuvU&$L&^v@oD?MSFD^vKN(axq)= zrsg*`k^%8tZ2rFMhMl7reFy2lod9RCb?yURF{%_#N%@@Xsl>xuM~Zf_C1zJoHah}8=M=m(@!On zTYANDe7|FLc0McqXkMjEqaJqaMb=MkVrZ?7Z5pZ(GbHauJOHeD%8j6{l?Zdh_pYQC zzil16lh0Fto96%~7Ps~D?WXf=uMTG-AN6$$+#yAuA+>d2v|Qk}ZJttj1=2}1J6e!E zj-Fa3;#%)84avWJ^43f71A;$7Szr7FI6oP?Dv+iXdeKKxE?kTI8J!a_pP zlEya`H;h;l)f%Iri0HqltnxqTWNxE5%YQ`UX=wMw!~fT)d=rfr*$i+AepLO#xq!NN zyMf1GX9S(iA?nW#;_Pu!v2;UJTZT#|G@#0D{WC1KnG*wQO)a%YZ@fM|M047AXDOH{ zWIqFtlnu@hab^tGW52>?d)dz!L>kS9yb~x@KI-i3tU}3ELb$^^3qxhHZFJ&E)c=Tl zw!x*Dyp)bi-j!#@Z)i}|)@ww-ZNg~SgJJj1GuJY_iatW5&5-i~CR#b1KeHr)nEv`i zDk3tp0kSiZD>D~};oU=f)RUSIzW1G*8;YHqs{$tvg;d&fl4c4n0TV!?^QqVQkf_``8rjPB+FKy6`%RSJ$RGldsIRKt^JA))A6bnynX6aonnOR{OJG zt>|iyF;Fq&E04A~2DBkb#9!*xRQw0$>XsdcsS`08cZ3rmM{?+M|C zgwvArMqMS0vkp_LE%QeHy&7Kq&yi_+@Q=3I(6k+G%_R}ZOSxFHH+YfT#;xZ3E?mQ? z0IP#^X~26MQ^GE8!TE@5#Wk!MihU#uS^hTd*tvz8;Eb$u@^|-Y$lJM(NcXuJpaz>$vF+(P<8Noyg*d|>)OX-Ziaup!blR*HPs5U>*!oej9 zig$!&BrS{X)xB+bY=)FIkp z)sSzG@w0AAuNM6Ra{N5;+3Mu+*KjLjXCqg6&iHcMBS22IEgiBWFhOG#|8$gTpq!Ca z2Ih@+LL#OSZl;@4*)_AY8ll?l+1XpV7f~rcB=pCm@6WJ}f?jWptQxsjd26wE-2#JL zB2>H)bCE952QyAFE|D)&(>QDyI1YKplIDONdX5?ff+C(|S`E;fs!~_33SJ1`q1@95 zjwjXwv?J-hskaVe)=JMY({*{;OYc%6<{2p^%R zZF-UD-Y|Z9GgazF#=?GOsR-;iExf!E{wJ}4)K8EI%KtZiuj76ZMz%5ruOZ!Y|2X`7 z{`<}MBy^2q5UEL*3l3#E4)31=+W+Thw)0b9CuD@6+XqD4KUlS3OM_t~_w$I_iQo%@ z&KPCQyKOp(a56LxgKRZnXd;oI7l1gvUL<@2acxaMT4%#`cMqwz1a@tG5L)647I#lG zT13DO-t(i=ydCpJpe@`T5f+?sR`d+q?O%{W1yLFE?6jIdwBU&(4Ay1%)!X?BJ)&s1 zyc^b_=Bz3)j-|bxaVzoQb|TJ($oq@WZ}phfZCRnte9(*1Ex-9WwJ6>OBRHM8fQImi7_Hmam6odUHrIG+N`@s6A}TlB{jooF&z z`9+vcidTxf9oooYHsp3gWT0Khv%(o}`Pm+Pbj2EiKnIs^d+!aZXBOsP!8oS!D5e|! zK1$*|!#jK`qAGeB#hcqGFK*KklE?0Ez-X8XAkv5|-+syzyRl>pOn{b}94|d_ebdg# zMMI>{?$Vwy(?hryXuVkZh#M0)(Zft-1Jj)_iaoKV{i}iNJ`op~bhCXK$a$|uX(QKW z(mTwN<`riQV{dt3O$PJ=o;?Tc9r<(zDf6t~CNTdnJ0c8y9O15f=Bsn;y;17s|9#~> z3`=5@An2L>)JEG_@?%Za+8~PLi6&!sUfI1on83BFA_ULs=rp&66G?iWa@kgg=>UXNv#DRyssOa~p zn4~$2cGZ?jpKT!5Tc%5P)sAoA$U**Vv>zlbNlP-dVL)uJ^w3udbP5Ej^Fgr3%Ts=i>c$?LiNr zj?AzcH_{y>vi2-tar4bx$vjf#8JqW?f4fV{?c~9+A7q4^>9wevGGK_m)KdsC??1@N zJu{3M;#(ff4uU@&kZ+{W`cw;?R=w0`I|^?IB|Kg;!lU7hV__}eH+;$Q4GsFXtC5)? zz(&kcRn-v1!%+EBp{87+^LnVPtnbCrV|gIx=5LmKajV~w`a&$QfmKrZI0bb}#_lw33P*tk^K6g$`7pvGQY$SAy!_^rNLuf*UPtp{H3AW!EA-EFv; zBDiBx<{VxV!Gs;|jZkoA`M{bycM=5LTEcMB)`@}yb8Q^C)p`cNDf{$CIeT(ec}?lF z$vf4M*~qRZ1}u)*ZTo-=-Aeq@!s-QC91qUG zgdCHfmc%YFx5S<75LY~=wKH;JE5{zD(`wGl`>Np{9;!J6#xk?Y>-9LRit?2S+)=A) zg=y)UQr}pX3RxktgJwm-R@>*zW##>V3>AK-B$UoeCCVpNw%QaQuY25lT1 ziyC-&%yEF~%Ue6r_KtQF)HWpb;Y&O<&2$W5X>xf|OKurUlPwZQ=3!~i_8>&Y4G3FJ zTMTJhcz)v&(sQnn+QPLD1uY)s+ozV>Dxu?KQro@@?r-H@pR6(s3V*j(@Zy3en z#8ac+`NORW2&wuvZ$njowP54AmwbrN9MX!#*EWeN-q#3A(KC*u;&~KYU{QsEFJgUc ze?7S(9LF(ZM!l&BeF`F+?G+>m7`4oX)LQpyR2q@vyIqz#L|juHqGksAFg>VDXI1gz z6-j*N1Bh5F;@>6L2sBRqH{1)%#^oPAdv{X1W zk3eHu;3jJnHh5j1e<_YG>sylVv(yyGS3p=U-hM45Zf#%#dvc>IhV<8{$=@83sot^@ zuy%xYYsM zF*&w|Xs3SN@bo^&bL+Lbx_E9}KT*@MpQX_cSx0c?{?ZSDpQ^jx`#dZ+-a5X@-%zAA z@czK>l>^Azg#AienHRUebV*-o$!OTm(ESKJbc$FirT9O{JUvLu1q)!kvE#c*Yf8z~ zXlNxLxB{L*l)Bft!H!zJb#OT?h+Rujg=00j>ucvz&l2)^Jv$$*Sba%ezXe8BXTuIt z(JPZZVgc*6WH>GUhkISt&D>s7ywZHGtfps3DFkMbE5cDKOm` z*>#XOYhE?4wK&rm)+MkJK30$5Kw28ex&beqx_ZgEiKFU+xRg&?z+w%>jv7?paOzfk zShOFJ;@YUoo%x-iA`_gsDI@y6XMl>KqY zM5pO`>0+5OpUfbUi!ifeYvYk)Uy%1TAC5v+Za)@e(sv}hVAl;d+SEC{R2ohK^6u3k zBD%CXINO8V&0bq?D=cBH-rkY26{AI`zC{OQX*hqF^Og*iL2?Sbp~KHfl=;zIUm*w@U+yC;H?!KZ9SV?H*@x#6RqIAiqY^V+_L-U zNct8PLPu9-(JP^|iI&sB2`bjdH(XBi^1ryL>5T5GT?% zM_*^;*2Gi}#m!@|+1ZmP=HCSr1KGRt;xqMvqpweWLR~K_2SYRw+g_kNOeW6~g>lGv z>pP)_;dfqJzN6vJ4&Hyx2;2VfpP{vN>uWqj4LioNqFW&rww7|e_ERkOC zAR6E!qzL$TdJS$dVkjePO5G|B7@nV@Ztlo#niAG~CLS~l(6(j(Y~og|HWM8N!J|^P zW)X|Iz{LiW^|9-lfBio=m`;S1{+AVG`iKV&W_=!|z#B1(=W5H;70dGoqDRDS{g-F? z_~v77-p7wWV&5S}k+>md21D1}3Fw|3iRqk0N@&l4#oMyh&`eu_dtwpP_wROdcj0ql z@j=gU>+j51`|U6>Y_?u0Bm9fbR;+FZzkJ?oBZ1kt1Eil94L(!LS6&s=i&!rzV-QCP zG#mC;dePdTl8MXIo8JFq?_CDzx_$@ z!BPr|J}=IXqKuHhqQCI$6nnhU>R3L|NAP62RzH(|Ow{-3-OK4yLvMkkKIwLf^N9#* zj+U01q#Ug`M}5~=6f5w)broDKqawWZzIrvW_Fh5!;6_iHUFLw?!o#SS9(mc+7apx> zT!U5HMCI8-NK~S21@j0YTxt3eAoHR;n#KD-9728u>v$IkU0vt!@{2yh75Za}zWV(( zu*s}+cv1=YyKzrLf2Ec^7?`8u>b-w44foXKDlz!D%#J=0fycQ&gM;@ii^Plf+r6V` zv)dhp3)PGbQ8Sum%`$7ibv=ygNtn6R7K4|&VVCl1Y zrY7U6q-uY(+*!Xf>W3^t6Jhj=D^*8pSLi?*SkJ258XSMk`q5coX0TR{7K9}RFl*K& zM%Q6yDL#3b-wc=EW*YTctfyf2w@)mPYTC`a*cNIOhP01;s2|G5aB zsUAsmJWWph8L_OXFN`Nzs)_2`FLUtuH-`gb(Mvn>Nm=$u(*>U|?Il^`r~9~fSZp8s zmKO+?`Aw+_`zLtSfA#<<7y<7ZsEpr{P(RS1t|1ddbaaE>VI_*k)eI=wfqQzVFdsgB ziZ}!?(P^#rX8lYuo<;E#)Hiy7GknKi@ohHYr05`EFK7yXY4C;_0L^A{Dq$Lf{%Yp5Tn!=74PpEkfX{?P_jN5h7DWTqbt?J1d98YBJFA~=N?-3(@0 zf!;LlUdI?s@j<+g-RsJXDOVe-v22e3XYZpnnSYM`FY7BaUUnJMF0AzR)2j~sAMF9F zr`aXde0C9^uXzK#hqkZ(hK+ivxtOM;^_0s_-VDitlB{*lHe!5P@taX)2%iGA3AzP$ zd^@PTf>_Vcgbe!$GAobp2FcjCqN00c)$B#6xnsW2)!a~fP=%l?&z1G*m+&pg!4kp(x^P3!-i!;jdOXA2~9Fhm$Ys>*D2NjlBo zX4{R68S>PIzOsE@zGPRhcu{3Q+!@|Uj5unG&w<(QcZTUbIGnGU(?D1kmzKS4x>>5Y zl)LIyADs3VxRRK5tr6Eic*gCZTv}PRR0>V)k&`f-{%8}1tM*nm$Jba?<}+ww(!4@S z4-@$?oE}Yio#xKyJZ<~9M|)6D^_1RIM19P3^{4p1Z)@m`8#p;<9sMvYaG+5d*c43M z5CYh-UE>hw(Dix>y~jvaYHHyB&d^}#)-@_909j=|DrYr|mVRkAM4ia?9n|upcby zqnrEqIh6~(x%gf?XY0P)0=K7rodJ>}-)(RaHgpyiqhunIV!EH4-gh9B<#a~Sd_WW22#c)6Uy(o!;)hERcYA@cT)C3L{Itq>=g)PO`q z+K4p182l!Nk{Z^vM$B8V9aGoy1#JpX%Nnw;mM+3c2Msi_P~v>LY}6hqMdJ`W_VFp? z?vhO#y%@bJ)b4hUP)mt6?E<)F-H9!8x4BW*1y>CHnfZg%LP{>V^YN2?!yC6;-&55X zVcgVOj~c5F$Wpk32q-N2j`6wp0>hVS6D9PC;<}eIjM9%uj>b_vDQrvh^V#vkDN_hl zHdC%y{@C~VruK4lE1~PJa|m?7EQzvLumE1sd^+&m7<7GQOF)9Uq>5qTWNN_ZeSvVl z)hluyUG;vRHA9@CBIV1oGPOdViBK=^1y-`CHK5Ux+Gafhd;U@D zu+(}98S61kXzbwVw;p}@xI4C>+NxB0O@C?P{K(&*85cm6ku)$Jxf`YTV(r~rp<-S2 z(9HCTQ?<|2@bDe66E%?wiN3@QnXp@h$xE$#5@Rif)r6?7m`-B-u;V4HGh^kX`v?I! zth3uJ*-Y7iNN-_n8?)Bnjk}1~{#noWetW5ZwZ3E97+ZYpmV4a80g7J-(=PQ*5eKK; zjMLaiTYP11h%JFb10LtdEX7axYuQn$qY&9FKxG^zzw~Q%O1HNWQ~xBDmgf>OmX@zo z+me=l@DsX;Y7Z#VBtv)eXMA2v5FbDxjrTy$~#-uf3*A^9cn)J@Fb{@;ig8fJQE z`Ts*Ei`GQJU1mU?bIi7lzv_CkNEFAk;jLUT!o4d$Je7mLAR>)XH~iG@aXcpwz@U># zVklaEsSG+MIdW3DXk7dWMDg^i%&VIk(BNX4lvVA#?YetS}YH+7Voe z_CyoykBEMgJ~&0bj2{kXnH+_57XoOd9dt!UhA9BHwU*unQ;Ud6X@~M%)*%gbMv$ z*YnDm!@$VR{0CiUc<7NxJ$K!9uM6ZK76C)Syiro9-bGocR#|ASRiLMPvHdTuXC}!im8UjQ*9(0C+~`$rosPjR+csnG)tk~% z;}rE@x{-Z>D$%+^4Qss=uh#g@B+8WIt-Z(%r*6B90v%KjW_R#eoLzugpTvNFL`PW!M+28Kgm5YK^CqgzaJ)Tyz3Bi?fHsH85|4d= z3gK<_FZPqFI(C-!=0FLL1`9KiNADw#hGXAN3)YhM(Mv~gB$>Q@3y`3jLSI$=1!q?- zC~i8~f{}DbR0AnHaiREx&rt(6eSN#5g;PxnEs3zOtcHDwWYD8GQpudl%chvI>}_$X z5|^I-y+Fn_;0F5jzeM8AF>g%_|6%WHLRr|qfXv~ydT!E(u)aBqny)HGbogB2_;31B zO>51rk61hHKYCwG)Rsn~EG@eZbGjc~SpGNr6}ve4Pk$z;zPL+7rH|b%!*(km!MI(d z4;}XiQP3}86b*tx;=@c7cbLU!N5p^YNT^%wv$4u4W$JiD6tt0w+psM*o%~?TxAs@{ zkqL#tkNKk~0;}F(fP_va_zl1U$MSm47QC5)!JQx05%kU!nI%|`)EqmF{)8$G(WpD$ zeu9>}CCQt}Ry@mejwA~0TBkpF0=$iD%Y;7|rb&H*?V@Zh9RBys6v0*sk&Fr9c3j68 z2pX&bqz9;GBYkgS;iq!{5!$ZI)Cu)E7AfCoe_srTjYu=WqUshMm9J791~XCcqOSU&cPNBh#nj5gWH$w$$$4JxXo2I*^to3LHoDfQJ(j_xq>4l64 z*{TC)X1T|DxscuY_Y&7^U=KsPPs_AwX2t!~qTT#&3A=Ik$K#uD)TP#Em(EJ_)S9qi zcj5VTV(!Q|HSlNm$7KX=58HOMG*Riax%lI{10mw&Wwqd8iaa^10T*rOtjH4^#_pY% z3*q^xMI`myiLzTnkuQzd^1Y(AbmJs@lW$BWCOYV2I+U%yIOiP zLiL2>%fvB}Pb2BP$7$^dcXc3@Unq^p%^{K*lE7Ld9a`Qbq(uItO_`q@*|6FJpBq|p zCt+D8(+5>PW_z;aMIsYfR+epBvou}K3Hgj?U+k(5aka$iJ7L~iLnBdJLn_XWh4TIl zpjIVX&ItUUqpwclVqi9#SJi$oMz$)xCKfi`$VaN){Pm6Z4$BSUPO~W^PF4GD7~=)| zpey$Wl*PF|2+y39Nv@tPr z#UR|_o4H0xI2Y7pURd&%=83|=Mh8Ki^ig8zqZ1iw)y`kWwqw9_AFsX$b;abzg9b5$ zj1)edtONgG_2L)`Lxf8blOEZRb7Q}9OT{6a3|kk4ZQ5Z4SH+MN%5K=bYX(@>6E#P= z7w@F~x~>;IGJP%^u_+=bx;Hg?w#I1I^ew5@#?$as-g@_D9dp+ci$t9T-Sh7J{JcDd z%R9z#Fz#+b*6_Vxj7&*~vNgQXP-_IUev~65{u8sLfOrC(Z_2FDYkuN!ezlKUv~JE2 zBDA%3N`YraG;M0L*-~vDn|QLNfDdgU-ZxDRnjH%5Kdasd%;S-dw^QUm50M%WABNrD zgVQBrn=u{YOusc4`y^YJaeJa~dCHRhetetN`e^y+R7rt3De*5{64P~p>99$EFUAmM z0E;lk&ZftY`8`_6-klj)?)tqv@sePs*w)H+n^EC+|qc}o$ z`N61-bkq43a$+)gIO37fjPKSOpKDKl)2lRHAALbCy(-z){e3L3!LG(ktGnTto zr_Bb9zkqm(26Vv-pGNMy?+;&V`P@o*P1q&00n@WJBgx`g23Ij{GMK8wy^r3uIEZ5- z16XkNJ>6}7+>3agU!pUSopIBx>5wclRCILYT~;P-xRPeUXVgh#{=rhrKUnYJI$rj=FlP?9;4eDodQmA^AN6c9bFYhlUZl+@x~x=r~6T# z7pC?Gk_p#`ucKGE**dE}*;!X;o`*#kCC*d$3PoBzs+JuV4wve+i$(2&>a`g=|99Kf zJ{G%}*Z)gY2z>NnoBzF$sl4{60ZDY6|DOWjq_j0&sD^>#m>p}|K_gTA(*0E=_sJ7BA zDQ=9L%uaGG+jg)kvMtAM-MzakS&Ec8hvwNA+`b>A* zN*jOgfmvWZ+hsKVL;B>8$m!aOsw1y0SCmnoG!zI7y{<<@(vTz+TMtvSbIE6=^0tGb zog#N|sYnwcRzuxQ^>FR6t_8zTyobVfuglZ(Almrr!x)$F7XeF;fmt2b^Sdn%s8987-&xgEe)$A)%RqLp>7V~z&z*;Mw z?ldj#beEP+ZsL;=Y3?QFnn9zqbz;~aibWw9o7K8P$>Cw+4pnX4M~180%D1HA3r=w}n=Anke(*mQ!eo75|5535P5#1S{4Y7j z|2O!tj-wyzO}2F6!SH|`vqNsiQporw)%QfN%pVB6Gg-O}hy!TCpzztx3dxcF)MK{y zF>~+Ur<}YyhG}%Xci8XUYo|k9Tb8V{GcuDH`%6=xhtrfh!4%H^%4JQBxamgR0*)Mf zqL%;bc38dDfB8Hq{lm3DT#!Rxn>7#?QzT+R%3hL%mW zzY=9)Myr@J2GjJxW=D*dbQ)Bb67HLHW(=Rd%}N`UStg;iiOafkE3Pl z3S^PNmXb6!p2SW^FE;qi*6~n%vbdbT6-Q*yT;{!E7CSHs3-^jD&&|3&pu`Fd4`2c~~*FNA>QR7{Y?4km3 z>}d7%hMk{1mFbcN#QJNuL+g-iODzEq+tzs#ugbkq&y;pWE8=Y@Hra;@VB69(cQmB9 zEk+XCe75n$1nPz$trL<_XalQzJx+=)uG5@wfq{S?w6+%ebM9X?FCTYb57bCwo2ncI zSW2|>e)@HooC$pDi`5jz7;2iOX4agFnZV&lz7(X|(2@BNJMAFCYdH~zO^qI{ouDT6rdF%2p72awn@yc*I22qP$HzWG zDtpSB$}+ab)|k=^rioFRj3w$ZL$+bamL+;hG=zj9V@V0c6l0yCChKGm*=1j%u{^dx zmRG&k`(Dqvuj}0Rb%LwFaQoDx8uo`erSDQQ1Bm?A>zLVc64HY5*YJU=-7u=VU~>%>P26bk3o5M0ND z)j|s#T(0^>eQbf*5M#`1pd0AQ-? zi{xX1k)Yi0<>UdT4!wO#s?<%D~X_EgN{ESles0sMmsNVLJ(sN&N{dNsIddz@0Sa`XtP;Tw9fZEZ-AOSNq zh%W}RntD0*8DF<Ro?^IO0qea$(d!@QxP39I8u?=7o2#ZV`240XDQg8-D@Jdr@%lnIZ-A=T1OcD%a2xOU_e`u_Rt~#N6ycaZQT$;Ft zn=8`egWB#h^6$+A-8T-75^@sjcoRZrpC?It4bT`&3cM$ldi!QfeBBwr{8rN;st#4@ z%j{Cn%E*?o&#aHR6uoYnGj4^}CuV=6|GT~Wi#JW?fr0OQuWj!0wD5s9eL76DsBCth ztD^rNAh9hLoF{Q@XhGzNW>CH7_$| zrzj!psKKg3s&bJ#x0oaD;S#}a-knLXv15-da&HRQj!)cMhw;Mq>Qf)Fvuko)EmiQQ z>-Be>ij>on4w0*ZvA!<9OMbGW4FVr|^onCS>zH2zRMxI4~LC-o3*pHA~5?TxrVlD6pq@*j4{T z>80G?rDfvVLuDZ#@~UPyDf`p#NjIv2M^SXb^R~CaTo<{>C0+XIpS@c9QCK~wZeB52 zhTPqcif?mc0sO-9xH zKu>ol^jyK}MF0T6rMe)-kq0mW0FKFKaF%-Lws_VW0Y>bD=ixuT!7U^q=N3TRZy(!9 z3O~m|BnB;p&@O{+!E;dI&b&F?S`d9jmN)9+WIeDHA`g4X*cF!_=i!{SDll$omQeoO zpgLjDMUy{^pLnddgp9Mn9I=cvF>0P(iv!s=;-myY5xcE$~EzqMmT` zo2AyC)Uu<*Gr z69aJz^;892tKA5!io+%>QM|N^OCELa)SMsa6$XU$Cq#H`RTBn|HQHb^%8QNfI&%|> zdjUWFHr#KxPxf%U2d$FY3sq?F* z{S03}_6g-_G04u2-ZIFmzA<7y?zk(OoKYwQEvq%eHL>93iSJege-0Zzg6|ErW+l%e zH-TAW(xEl0x0j{E3N3GsLw4%-*#(CF>oRE{kp-5c@9mTu8qT(aFxIvfIIHKHU8_bw zIJvKB0`pUbp#>RS*2zgr()5OL?f}I`FN1(p*CbGd_#{Dyb!P|E;dN9snxwfGkpBHC zV|oC!**L0wm$OPLe5hY2UNl~~-b$4LWbYDmM>+743lvU~?~4de$%$R~v&W26tv)($ z-Nh=yo%2;X8VnDg1A2QRi+cb!5bAqJXZ_Zpy{k-r=%U}Pkre&1JRk3=m`6MFDwZz( z!P{W>WLMiQ1=Ph9gvn@oovWH*qZ2DKRNOpYwy3VwPT=r>YP4?Qo}ksHbDmeJ3vstf z6AnX`x|A5q5?^@>rOb|7UhFDab$SWQ$#e9T>5N95?<M=L;u$g58<_^t%KkB(^3 zAY6Ys!VjBBTx0Q*CoW&Dn=yPPLN?EFx!Ny^2o8AC7XI5RC#fkRM1=l-t-^5du=P3~ z`6^1NAS?o-M!yR?w9r+?qqXjV&qJ2*p98gO!iS^|)d_2cif7fZy%#DiCNGE8TM%&> z5GyAn=8f-r(H7cMe;~k1Qox7!gmvh`%vfs8%WsVjo5fRW;SU5NB+<%On*~)$wEpIj zIIXrl^%o418~(Rq0RCPa&Lk1lOqyKoFB4w_MxS)OMF|n3nlGUsC4vy@-^b-W*>c}X(wc7cDMGEF^p&90 zEWhXrOEyL1MVt6hxbyLdu(39C2kIucZL0ia;IV`o_q(!rMp7qGwL|@aD{N5q4uylz zJnB@O>a*qTTs8$X)3wr%6XHD;%LhwXP7Olo&Q5=7?@lk)Vf;1{f?C$fh8(|+M!SJNMR zSW_#&9WDhWwEpHr4eEMw)A!=QJ^5LZ6u9jl^IJvQT!iBqW_qR7ZBsS9hD_yZ^0`xj2%4*0bCsrIbH}me&(sYdOf0 z*+-Mb6{a%t@7gdl>WyN72E{V|ic|F;!Nh0Mm?zI5**nV97KzlO)4ex)D|)^(+mUR= zMw7Y8Mf0DAmJYi68fdS8G{V}Jh$piVgv#BXtUx{j(zr&8uNlBB%5hM1#Bk00S5AWY zKc~k%e*p~|$VZw-4+RZffLZ)=I%1^)Hc}q{3|-Biy|bW9NJ>MV-{%8dGvnYC1&AJ) z1PGX{R4_XD%dJ7|EhoT2`}m*Jg9`u$K<;-sSeIazu4&ttqit>*UqYJOs#{ng5dT)- zqbnGJ_bt8h4| + + + class ZCL_EXCEL_STYLE_ALIGNMENT definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_ALIGNMENT +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + data HORIZONTAL type ZEXCEL_ALIGNMENT . + data VERTICAL type ZEXCEL_ALIGNMENT . + data TEXTROTATION type ZEXCEL_TEXT_ROTATION value 0. "#EC NOTEXT . + data WRAPTEXT type FLAG . + data SHRINKTOFIT type FLAG . + data INDENT type ZEXCEL_INDENT value 0. "#EC NOTEXT . + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_ALIGNMENT +*"* do not include other source files here!!! +private section. + + constants C_HORIZONTAL_GENERAL type ZEXCEL_ALIGNMENT value 'general'. "#EC NOTEXT + constants C_HORIZONTAL_LEFT type ZEXCEL_ALIGNMENT value 'left'. "#EC NOTEXT + constants C_HORIZONTAL_RIGHT type ZEXCEL_ALIGNMENT value 'right'. "#EC NOTEXT + constants C_HORIZONTAL_CENTER type ZEXCEL_ALIGNMENT value 'center'. "#EC NOTEXT + constants C_HORIZONTAL_CENTER_CONTINUOUS type ZEXCEL_ALIGNMENT value 'centerContinuous'. "#EC NOTEXT + constants C_HORIZONTAL_JUSTIFY type ZEXCEL_ALIGNMENT value 'justify'. "#EC NOTEXT + constants C_VERTICAL_BOTTOM type ZEXCEL_ALIGNMENT value 'bottom'. "#EC NOTEXT + constants C_VERTICAL_TOP type ZEXCEL_ALIGNMENT value 'top'. "#EC NOTEXT + constants C_VERTICAL_CENTER type ZEXCEL_ALIGNMENT value 'center'. "#EC NOTEXT + constants C_VERTICAL_JUSTIFY type ZEXCEL_ALIGNMENT value 'justify'. "#EC NOTEXT + *"* 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 constructor. + horizontal = me->c_horizontal_general. + vertical = me->c_vertical_bottom. + wrapText = abap_false. + shrinkToFit = abap_false. +ENDMETHOD. + + + + class ZCL_EXCEL_STYLE_BORDER definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_BORDER +*"* do not include other source files here!!! +public section. + + data BORDER_STYLE type ZEXCEL_BORDER . + data BORDER_COLOR type ZEXCEL_STYLE_COLOR_ARGB . + class-data C_BORDER_NONE type ZEXCEL_BORDER value 'none'. "#EC NOTEXT . + class-data C_BORDER_DASHDOT type ZEXCEL_BORDER value 'dashDot'. "#EC NOTEXT . + class-data C_BORDER_DASHDOTDOT type ZEXCEL_BORDER value 'dashDotDot'. "#EC NOTEXT . + class-data C_BORDER_DASHED type ZEXCEL_BORDER value 'dashed'. "#EC NOTEXT . + class-data C_BORDER_DOTTED type ZEXCEL_BORDER value 'dotted'. "#EC NOTEXT . + class-data C_BORDER_DOUBLE type ZEXCEL_BORDER value 'double'. "#EC NOTEXT . + class-data C_BORDER_HAIR type ZEXCEL_BORDER value 'hair'. "#EC NOTEXT . + class-data C_BORDER_MEDIUM type ZEXCEL_BORDER value 'medium'. "#EC NOTEXT . + class-data C_BORDER_MEDIUMDASHDOT type ZEXCEL_BORDER value 'mediumDashDot'. "#EC NOTEXT . + class-data C_BORDER_MEDIUMDASHDOTDOT type ZEXCEL_BORDER value 'mediumDashDotDot'. "#EC NOTEXT . + class-data C_BORDER_MEDIUMDASHED type ZEXCEL_BORDER value 'mediumDashed'. "#EC NOTEXT . + class-data C_BORDER_SLANTDASHDOT type ZEXCEL_BORDER value 'slantDashDot'. "#EC NOTEXT . + class-data C_BORDER_THICK type ZEXCEL_BORDER value 'thick'. "#EC NOTEXT . + class-data C_BORDER_THIN type ZEXCEL_BORDER value 'thin'. "#EC NOTEXT . + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_BORDER +*"* do not include other source files here!!! +private section. + *"* 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 + + + + + + + + + + + + + + + + + + METHOD constructor. + border_style = zcl_excel_style_border=>c_border_none. +ENDMETHOD. + + + + class ZCL_EXCEL_STYLE_BORDERS definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_BORDERS +*"* do not include other source files here!!! +public section. + + data LEFT type ref to ZCL_EXCEL_STYLE_BORDER . + data RIGHT type ref to ZCL_EXCEL_STYLE_BORDER . + data TOP type ref to ZCL_EXCEL_STYLE_BORDER . + data DOWN type ref to ZCL_EXCEL_STYLE_BORDER . + data DIAGONAL type ref to ZCL_EXCEL_STYLE_BORDER . + data ALLBORDERS type ref to ZCL_EXCEL_STYLE_BORDER . + + methods CONSTRUCTOR . + methods GET_STRUCTURE + returning + value(ES_FILL) type ZEXCEL_S_STYLE_BORDER . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_BORDERS +*"* do not include other source files here!!! +private section. + + constants C_DIAGONAL_NONE type ZEXCEL_DIAGONAL value 0. "#EC NOTEXT + constants C_DIAGONAL_UP type ZEXCEL_DIAGONAL value 1. "#EC NOTEXT + constants C_DIAGONAL_DOWN type ZEXCEL_DIAGONAL value 2. "#EC NOTEXT + constants C_DIAGONAL_BOTH type ZEXCEL_DIAGONAL value 3. "#EC NOTEXT + *"* 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 + + + + + + + + + + + + method CONSTRUCTOR. +endmethod. + + + + METHOD get_structure. + +* Check if all borders is set otherwise check single border + IF me->allborders IS BOUND. + es_fill-left_color = me->allborders->border_color. + es_fill-left_style = me->allborders->border_style. + es_fill-right_color = me->allborders->border_color. + es_fill-right_style = me->allborders->border_style. + es_fill-top_color = me->allborders->border_color. + es_fill-top_style = me->allborders->border_style. + es_fill-bottom_color = me->allborders->border_color. + es_fill-bottom_style = me->allborders->border_style. + ELSE. + IF me->left IS BOUND. + es_fill-left_color = me->left->border_color. + es_fill-left_style = me->left->border_style. + ENDIF. + IF me->right IS BOUND. + es_fill-right_color = me->right->border_color. + es_fill-right_style = me->right->border_style. + ENDIF. + IF me->top IS BOUND. + es_fill-top_color = me->top->border_color. + es_fill-top_style = me->top->border_style. + ENDIF. + IF me->down IS BOUND. + es_fill-bottom_color = me->down->border_color. + es_fill-bottom_style = me->down->border_style. + ENDIF. + ENDIF. + +* Check if diagonal is set + IF me->diagonal IS BOUND. + es_fill-diagonal_color = me->diagonal->border_color. + es_fill-diagonal_style = me->diagonal->border_style. + ENDIF. + +ENDMETHOD. "get_structure + + + + class ZCL_EXCEL_STYLE_COLOR definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_COLOR +*"* do not include other source files here!!! +public section. + + class-data C_BLACK type ZEXCEL_STYLE_COLOR_ARGB value 'FF000000'. "#EC NOTEXT . + class-data C_BLUE type ZEXCEL_STYLE_COLOR_ARGB value 'FF0000FF'. "#EC NOTEXT . + class-data C_DARKBLUE type ZEXCEL_STYLE_COLOR_ARGB value 'FF000080'. "#EC NOTEXT . + class-data C_DARKGREEN type ZEXCEL_STYLE_COLOR_ARGB value 'FF008000'. "#EC NOTEXT . + class-data C_DARKRED type ZEXCEL_STYLE_COLOR_ARGB value 'FF800000'. "#EC NOTEXT . + class-data C_DARKYELLOW type ZEXCEL_STYLE_COLOR_ARGB value 'FF808000'. "#EC NOTEXT . + class-data C_GRAY type ZEXCEL_STYLE_COLOR_ARGB value 'FFCCCCCC'. "#EC NOTEXT . + class-data C_GREEN type ZEXCEL_STYLE_COLOR_ARGB value 'FF00FF00'. "#EC NOTEXT . + class-data C_RED type ZEXCEL_STYLE_COLOR_ARGB value 'FFFF0000'. "#EC NOTEXT . + class-data C_WHITE type ZEXCEL_STYLE_COLOR_ARGB value 'FFFFFFFF'. "#EC NOTEXT . + class-data C_YELLOW type ZEXCEL_STYLE_COLOR_ARGB value 'FFFFFF00'. "#EC NOTEXT . + + methods CONSTRUCTOR . + class-methods CREATE_NEW_ARGB + importing + !IP_RED type ZEXCEL_STYLE_COLOR_COMPONENT + !IP_GREEN type ZEXCEL_STYLE_COLOR_COMPONENT + !IP_BLU type ZEXCEL_STYLE_COLOR_COMPONENT + returning + value(EP_COLOR_ARGB) type ZEXCEL_STYLE_COLOR_ARGB . + *"* protected components of class ZCL_EXCEL_STYLE_COLOR +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_COLOR +*"* do not include other source files here!!! +private section. + + class-data C_ALPHA type CHAR2 value 'FF'. "#EC NOTEXT . + *"* 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 + + + + + + + + + + + + + + method CONSTRUCTOR. + + +endmethod. + + + + + + + METHOD create_new_argb. + + + CONCATENATE zcl_excel_style_color=>c_alpha ip_red ip_green ip_blu INTO ep_color_argb. + +ENDMETHOD. + + + + class ZCL_EXCEL_STYLE_CONDITIONAL definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_CONDITIONAL +*"* do not include other source files here!!! +public section. + + class-data C_ICONSET_3ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '3Arrows'. "#EC NOTEXT . + class-data C_ICONSET_3ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '3ArrowsGray'. "#EC NOTEXT . + class-data C_ICONSET_3FLAGS type ZEXCEL_CONDITION_RULE_ICONSET value '3Flags'. "#EC NOTEXT . + class-data C_ICONSET_3SIGNS type ZEXCEL_CONDITION_RULE_ICONSET value '3Signs'. "#EC NOTEXT . + class-data C_ICONSET_3SYMBOLS type ZEXCEL_CONDITION_RULE_ICONSET value '3Symbols'. "#EC NOTEXT . + class-data C_ICONSET_3SYMBOLS2 type ZEXCEL_CONDITION_RULE_ICONSET value '3Symbols2'. "#EC NOTEXT . + class-data C_ICONSET_3TRAFFICLIGHTS type ZEXCEL_CONDITION_RULE_ICONSET value ''. "#EC NOTEXT . + class-data C_ICONSET_3TRAFFICLIGHTS2 type ZEXCEL_CONDITION_RULE_ICONSET value '3TrafficLights2'. "#EC NOTEXT . + class-data C_ICONSET_4ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '4Arrows'. "#EC NOTEXT . + class-data C_ICONSET_4ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '4ArrowsGray'. "#EC NOTEXT . + class-data C_ICONSET_4RATING type ZEXCEL_CONDITION_RULE_ICONSET value '4Rating'. "#EC NOTEXT . + class-data C_ICONSET_4REDTOBLACK type ZEXCEL_CONDITION_RULE_ICONSET value '4RedToBlack'. "#EC NOTEXT . + class-data C_ICONSET_4TRAFFICLIGHTS type ZEXCEL_CONDITION_RULE_ICONSET value '4TrafficLights'. "#EC NOTEXT . + class-data C_ICONSET_5ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '5Arrows'. "#EC NOTEXT . + class-data C_ICONSET_5ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '5ArrowsGray'. "#EC NOTEXT . + class-data C_ICONSET_5QUARTERS type ZEXCEL_CONDITION_RULE_ICONSET value '5Quarters'. "#EC NOTEXT . + class-data C_ICONSET_5RATING type ZEXCEL_CONDITION_RULE_ICONSET value '5Rating'. "#EC NOTEXT . + class-data C_OPERATOR_BEGINSWITH type ZEXCEL_CONDITION_OPERATOR value 'beginsWith'. "#EC NOTEXT . + class-data C_OPERATOR_BETWEEN type ZEXCEL_CONDITION_OPERATOR value 'between'. "#EC NOTEXT . + class-data C_OPERATOR_CONTAINSTEXT type ZEXCEL_CONDITION_OPERATOR value 'containsText'. "#EC NOTEXT . + class-data C_OPERATOR_ENDSWITH type ZEXCEL_CONDITION_OPERATOR value 'endsWith'. "#EC NOTEXT . + class-data C_OPERATOR_EQUAL type ZEXCEL_CONDITION_OPERATOR value 'equal'. "#EC NOTEXT . + class-data C_OPERATOR_GREATERTHAN type ZEXCEL_CONDITION_OPERATOR value 'greaterThan'. "#EC NOTEXT . + class-data C_OPERATOR_GREATERTHANOREQUAL type ZEXCEL_CONDITION_OPERATOR value 'greaterThanOrEqual'. "#EC NOTEXT . + class-data C_OPERATOR_LESSTHAN type ZEXCEL_CONDITION_OPERATOR value 'lessThan'. "#EC NOTEXT . + class-data C_OPERATOR_LESSTHANOREQUAL type ZEXCEL_CONDITION_OPERATOR value 'lessThanOrEqual'. "#EC NOTEXT . + class-data C_OPERATOR_NONE type ZEXCEL_CONDITION_OPERATOR value ''. "#EC NOTEXT . + class-data C_OPERATOR_NOTCONTAINS type ZEXCEL_CONDITION_OPERATOR value 'notContains'. "#EC NOTEXT . + class-data C_OPERATOR_NOTEQUAL type ZEXCEL_CONDITION_OPERATOR value 'notEqual'. "#EC NOTEXT . + class-data C_RULE_CELLIS type ZEXCEL_CONDITION_RULE value 'cellIs'. "#EC NOTEXT . + class-data C_RULE_CONTAINSTEXT type ZEXCEL_CONDITION_RULE value 'containsText'. "#EC NOTEXT . + class-data C_RULE_EXPRESSION type ZEXCEL_CONDITION_RULE value 'expression'. "#EC NOTEXT . + class-data C_RULE_ICONSET type ZEXCEL_CONDITION_RULE value 'iconSet'. "#EC NOTEXT . + class-data C_RULE_NONE type ZEXCEL_CONDITION_RULE value 'none'. "#EC NOTEXT . + data FORMULA type ZEXCEL_STYLE_FORMULA . + data ICONSET type ZEXCEL_CONDITION_RULE_ICONSET . + data OPERATOR type ZEXCEL_CONDITION_OPERATOR . + data PRIORITY type ZEXCEL_STYLE_PRIORITY value 1. "#EC NOTEXT . + data RULE type ZEXCEL_CONDITION_RULE . + + methods CONSTRUCTOR . + methods GET_DIMENSION_RANGE + returning + value(EP_DIMENSION_RANGE) type STRING . + methods SET_RANGE + importing + !IP_START_ROW type ZEXCEL_CELL_ROW + !IP_START_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + !IP_STOP_ROW type ZEXCEL_CELL_ROW + !IP_STOP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_CONDITIONAL +*"* do not include other source files here!!! +private section. + + data START_CELL type ZEXCEL_S_CELL_DATA . + data STOP_CELL type ZEXCEL_S_CELL_DATA . + *"* 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + METHOD constructor. + rule = me->c_rule_none. + operator = me->c_operator_none. +* inizialize dimension range + stop_cell-cell_row = 1. + stop_cell-cell_column = 1. + start_cell-cell_row = 1. + start_cell-cell_column = 1. +ENDMETHOD. + + + + METHOD get_dimension_range. + IF stop_cell EQ start_cell. "only one cell + ep_dimension_range = start_cell-cell_coords. + ELSE. + CONCATENATE start_cell-cell_coords ':' stop_cell-cell_coords INTO ep_dimension_range. + ENDIF. +ENDMETHOD. + + + + + + + METHOD set_range. + DATA: lv_column TYPE zexcel_cell_column, + lv_row_alpha TYPE string. + + lv_column = zcl_excel_common=>convert_column2int( ip_stop_column ). + stop_cell-cell_row = 1. + stop_cell-cell_column = lv_column. + lv_row_alpha = ip_stop_row. + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE ip_stop_column lv_row_alpha INTO stop_cell-cell_coords. + + lv_column = zcl_excel_common=>convert_column2int( ip_start_column ). + start_cell-cell_row = 1. + start_cell-cell_column = lv_column. + lv_row_alpha = ip_start_row. + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE ip_start_column lv_row_alpha INTO start_cell-cell_coords. +ENDMETHOD. + + + + class ZCL_EXCEL_STYLE_FILL definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_FILL +*"* do not include other source files here!!! +public section. + + class-data C_FILL_NONE type ZEXCEL_FILL_TYPE value 'none'. "#EC NOTEXT . + class-data C_FILL_SOLID type ZEXCEL_FILL_TYPE value 'solid'. "#EC NOTEXT . + class-data C_FILL_GRADIENT_LINEAR type ZEXCEL_FILL_TYPE value 'linear'. "#EC NOTEXT . + class-data C_FILL_GRADIENT_PATH type ZEXCEL_FILL_TYPE value 'path'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKDOWN type ZEXCEL_FILL_TYPE value 'darkDown'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKGRAY type ZEXCEL_FILL_TYPE value 'darkGray'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKGRID type ZEXCEL_FILL_TYPE value 'darkGrid'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKHORIZONTAL type ZEXCEL_FILL_TYPE value 'darkHorizontal'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKTRELLIS type ZEXCEL_FILL_TYPE value 'darkTrellis'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKUP type ZEXCEL_FILL_TYPE value 'darkUp'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKVERTICAL type ZEXCEL_FILL_TYPE value 'darkVertical'. "#EC NOTEXT . + class-data C_FILL_PATTERN_GRAY0625 type ZEXCEL_FILL_TYPE value 'gray0625'. "#EC NOTEXT . + class-data C_FILL_PATTERN_GRAY125 type ZEXCEL_FILL_TYPE value 'gray125'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTDOWN type ZEXCEL_FILL_TYPE value 'lightDown'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTGRAY type ZEXCEL_FILL_TYPE value 'lightGray'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTGRID type ZEXCEL_FILL_TYPE value 'lightGrid'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTHORIZONTAL type ZEXCEL_FILL_TYPE value 'lightHorizontal'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTTRELLIS type ZEXCEL_FILL_TYPE value 'lightTrellis'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTUP type ZEXCEL_FILL_TYPE value 'lightUp'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTVERTICAL type ZEXCEL_FILL_TYPE value 'lightVertical'. "#EC NOTEXT . + class-data C_FILL_PATTERN_MEDIUMGRAY type ZEXCEL_FILL_TYPE value 'mediumGray'. "#EC NOTEXT . + data FILLTYPE type ZEXCEL_FILL_TYPE . + data ROTATION type ZEXCEL_ROTATION . + data FGCOLOR type ZEXCEL_STYLE_COLOR_ARGB . + data BGCOLOR type ZEXCEL_STYLE_COLOR_ARGB value '64'. "#EC NOTEXT . + + methods CONSTRUCTOR . + methods GET_STRUCTURE + returning + value(ES_FILL) type ZEXCEL_S_STYLE_FILL . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_FILL +*"* do not include other source files here!!! +private section. + *"* 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + METHOD constructor. + filltype = zcl_excel_style_fill=>c_fill_none. + rotation = 0. +ENDMETHOD. + + + + METHOD get_structure. + es_fill-rotation = me->rotation. + es_fill-filltype = me->filltype. + es_fill-fgColor = me->fgColor. + es_fill-bgColor = me->bgColor. +ENDMETHOD. + + + + class ZCL_EXCEL_STYLE_FONT definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + data BOLD type FLAG . + data COLOR type ZEXCEL_STYLE_COLOR_ARGB . + class-data C_SCHEME_MAJOR type ZEXCEL_STYLE_FONT_SCHEME value 'major'. "#EC NOTEXT . + class-data C_SCHEME_MINOR type ZEXCEL_STYLE_FONT_SCHEME value 'minor'. "#EC NOTEXT . + class-data C_UNDERLINE_DOUBLE type CHAR20 value 'double'. "#EC NOTEXT . + class-data C_UNDERLINE_DOUBLEACCOUNTING type CHAR20 value 'doubleAccounting'. "#EC NOTEXT . + class-data C_UNDERLINE_NONE type CHAR20 value 'none'. "#EC NOTEXT . + class-data C_UNDERLINE_SINGLE type CHAR20 value 'single'. "#EC NOTEXT . + class-data C_UNDERLINE_SINGLEACCOUNTING type CHAR20 value 'singleAccounting'. "#EC NOTEXT . + data FAMILY type INT1 value 2. "#EC NOTEXT . + data ITALIC type FLAG . + data NAME type CHAR255 value 'Calibri'. "#EC NOTEXT . + data SCHEME type ZEXCEL_STYLE_FONT_SCHEME . + data SIZE type INT1 value 11. "#EC NOTEXT . + data STRIKETHROUGH type FLAG . + data UNDERLINE type FLAG . + data UNDERLINE_MODE type CHAR20 . + + methods CONSTRUCTOR . + methods GET_STRUCTURE + returning + value(ES_FONT) type ZEXCEL_S_STYLE_FONT . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +private section. + *"* 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 constructor. + + + me->color = zcl_excel_style_color=>c_black. + 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. + + + + class ZCL_EXCEL_STYLE_NUMBER_FORMAT definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_NUMBER_FORMAT +*"* do not include other source files here!!! +public section. + + class-data C_FORMAT_NUMBER type ZEXCEL_NUMBER_FORMAT value '0'. "#EC NOTEXT . + class-data C_FORMAT_NUMBER_00 type ZEXCEL_NUMBER_FORMAT value '0.00'. "#EC NOTEXT . + class-data C_FORMAT_NUMBER_COMMA_SEP1 type ZEXCEL_NUMBER_FORMAT value '#,##0.00'. "#EC NOTEXT . + class-data C_FORMAT_NUMBER_COMMA_SEP2 type ZEXCEL_NUMBER_FORMAT value '#,##0.00_-'. "#EC NOTEXT . + class-data C_FORMAT_PERCENTAGE type ZEXCEL_NUMBER_FORMAT value '0%'. "#EC NOTEXT . + class-data C_FORMAT_PERCENTAGE_00 type ZEXCEL_NUMBER_FORMAT value '0.00%'. "#EC NOTEXT . + class-data C_FORMAT_DATE_YYYYMMDD2 type ZEXCEL_NUMBER_FORMAT value 'yyyy-mm-dd'. "#EC NOTEXT . + class-data C_FORMAT_DATE_YYYYMMDD type ZEXCEL_NUMBER_FORMAT value 'yy-mm-dd'. "#EC NOTEXT . + class-data C_FORMAT_DATE_DDMMYYYY type ZEXCEL_NUMBER_FORMAT value 'dd/mm/yy'. "#EC NOTEXT . + class-data C_FORMAT_DATE_DMYSLASH type ZEXCEL_NUMBER_FORMAT value 'd/m/y'. "#EC NOTEXT . + class-data C_FORMAT_DATE_DMYMINUS type ZEXCEL_NUMBER_FORMAT value 'd-m-y'. "#EC NOTEXT . + class-data C_FORMAT_DATE_DMMINUS type ZEXCEL_NUMBER_FORMAT value 'd-m'. "#EC NOTEXT . + class-data C_FORMAT_DATE_MYMINUS type ZEXCEL_NUMBER_FORMAT value 'm-y'. "#EC NOTEXT . + class-data C_FORMAT_DATE_XLSX14 type ZEXCEL_NUMBER_FORMAT value 'mm-dd-yy'. "#EC NOTEXT . + class-data C_FORMAT_DATE_XLSX15 type ZEXCEL_NUMBER_FORMAT value 'd-mmm-yy'. "#EC NOTEXT . + class-data C_FORMAT_DATE_XLSX16 type ZEXCEL_NUMBER_FORMAT value 'd-mmm'. "#EC NOTEXT . + class-data C_FORMAT_DATE_XLSX17 type ZEXCEL_NUMBER_FORMAT value 'mmm-yy'. "#EC NOTEXT . + class-data C_FORMAT_DATE_XLSX22 type ZEXCEL_NUMBER_FORMAT value 'm/d/yy h:mm'. "#EC NOTEXT . + class-data C_FORMAT_DATE_DATETIME type ZEXCEL_NUMBER_FORMAT value 'd/m/y h:mm'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME1 type ZEXCEL_NUMBER_FORMAT value 'h:mm AM/PM'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME2 type ZEXCEL_NUMBER_FORMAT value 'h:mm:ss AM/PM'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME3 type ZEXCEL_NUMBER_FORMAT value 'h:mm'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME4 type ZEXCEL_NUMBER_FORMAT value 'h:mm:ss'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME5 type ZEXCEL_NUMBER_FORMAT value 'mm:ss'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME6 type ZEXCEL_NUMBER_FORMAT value 'h:mm:ss'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME7 type ZEXCEL_NUMBER_FORMAT value 'i:s.S'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME8 type ZEXCEL_NUMBER_FORMAT value 'h:mm:ss@'. "#EC NOTEXT . + class-data C_FORMAT_DATE_YYYYMMDDSLASH type ZEXCEL_NUMBER_FORMAT value 'yy/mm/dd@'. "#EC NOTEXT . + class-data C_FORMAT_CURRENCY_USD_SIMPLE type ZEXCEL_NUMBER_FORMAT value '"$"#,##0.00_-'. "#EC NOTEXT . + class-data C_FORMAT_CURRENCY_USD type ZEXCEL_NUMBER_FORMAT value '$#,##0_-'. "#EC NOTEXT . + class-data C_FORMAT_CURRENCY_EUR_SIMPLE type ZEXCEL_NUMBER_FORMAT value '[$EUR ]#,##0.00_-'. "#EC NOTEXT . + data FORMAT_CODE type ZEXCEL_NUMBER_FORMAT . + + methods CONSTRUCTOR . + methods GET_STRUCTURE + returning + value(EP_NUMBER_FORMAT) type ZEXCEL_NUMBER_FORMAT . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_NUMBER_FORMAT +*"* do not include other source files here!!! +private section. + + class-data C_FORMAT_GENERAL type ZEXCEL_NUMBER_FORMAT value ''. "#EC NOTEXT . + class-data C_FORMAT_TEXT type ZEXCEL_NUMBER_FORMAT value '@'. "#EC NOTEXT . + *"* 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + METHOD constructor. + format_code = me->c_format_general. +ENDMETHOD. + + + + METHOD get_structure. + ep_number_format = me->format_code. +ENDMETHOD. + + + + class ZCL_EXCEL_STYLE_PROTECTION definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_PROTECTION +*"* do not include other source files here!!! +public section. + + constants C_PROTECTION_INHERIT type ZEXCEL_PROTECTION value 'inherit'. "#EC NOTEXT + constants C_PROTECTION_PROTECTED type ZEXCEL_PROTECTION value 'protected'. "#EC NOTEXT + constants C_PROTECTION_UNPROTECTED type ZEXCEL_PROTECTION value 'unprotected'. "#EC NOTEXT + data LOCKED type ZEXCEL_PROTECTION . + data HIDDEN type ZEXCEL_PROTECTION . + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_PROTECTION +*"* do not include other source files here!!! +private section. + *"* 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 + + + + + + + METHOD constructor. + locked = me->c_protection_inherit. + hidden = me->c_protection_inherit. +ENDMETHOD. + + + + class ZCL_EXCEL_WORKSHEET definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_WORKSHEET +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + class-data C_BREAK_COLUMN type ZEXCEL_BREAK value 2. "#EC NOTEXT . + class-data C_BREAK_NONE type ZEXCEL_BREAK value 0. "#EC NOTEXT . + class-data C_BREAK_ROW type ZEXCEL_BREAK value 1. "#EC NOTEXT . + class-data C_SHEET_STATE_HIDDEN type ZEXCEL_SHEET_STATE value 'hidden'. "#EC NOTEXT . + class-data C_SHEET_STATE_VERYHIDDEN type ZEXCEL_SHEET_STATE value 'veryHidden'. "#EC NOTEXT . + class-data C_SHEET_STATE_VISIBLE type ZEXCEL_SHEET_STATE value 'visible'. "#EC NOTEXT . + data DEFAULTROWHEIGHT type INT1 value 15. "#EC NOTEXT . + data SHEET_CONTENT type ZEXCEL_T_CELL_DATA . + data SHEET_SETUP type ref to ZCL_EXCEL_SHEET_SETUP . + data SHEET_STATE type ZEXCEL_SHEET_STATE . + data TITLE type ZEXCEL_SHEET_TITLE value 'Worksheet'. "#EC NOTEXT . + + methods CONSTRUCTOR + importing + !IP_TITLE type ZEXCEL_SHEET_TITLE optional . + methods GET_ACTIVE_CELL + returning + value(EP_ACTIVE_CELL) type STRING . + methods GET_CELL + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + !IP_ROW type ZEXCEL_CELL_ROW + exporting + !EP_VALUE type ZEXCEL_CELL_VALUE + !EP_RC type SYSUBRC . + methods GET_DIMENSION_RANGE + returning + value(EP_DIMENSION_RANGE) type STRING . + methods GET_GUID + returning + value(EP_GUID) type GUID_16 . + methods SET_CELL + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + !IP_ROW type ZEXCEL_CELL_ROW + !IP_VALUE type ZEXCEL_CELL_VALUE + !IP_FORMULA type ZEXCEL_CELL_FORMULA optional + !IP_STYLE type ZEXCEL_CELL_STYLE optional . + methods SET_TABLE + importing + !IP_TABLE type STANDARD TABLE + !IP_HDR_STYLE type ZEXCEL_CELL_STYLE optional + !IP_BODY_STYLE type ZEXCEL_CELL_STYLE optional + !IP_TABLE_TITLE type STRING optional + !IP_TOP_LEFT_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA default 'B' + !IP_TOP_LEFT_ROW type ZEXCEL_CELL_ROW default 3 . + methods ADD_NEW_CONDITIONAL_STYLE + returning + value(EO_CONDITIONAL_STYLE) type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + methods GET_COND_STYLES_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + *"* protected components of class ZABAP_EXCEL_WORKSHEET +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_WORKSHEET +*"* do not include other source files here!!! +private section. + + data ACTIVE_CELL type ZEXCEL_S_CELL_DATA . + data CONDITIONAL_STYLES type ref to ZCL_EXCEL_STYLES_CONDITIONAL . + data GUID type GUID_16 . + data LOWER_CELL type ZEXCEL_S_CELL_DATA . + data UPPER_CELL type ZEXCEL_S_CELL_DATA . + + methods UPDATE_DIMENSION_RANGE . + *"* 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 add_new_conditional_style. + + + CREATE OBJECT eo_conditional_style. + conditional_styles->add( eo_conditional_style ). +ENDMETHOD. + + + + METHOD constructor. + + + CALL FUNCTION 'GUID_CREATE' + IMPORTING + ev_guid_16 = me->guid. + + IF ip_title IS NOT INITIAL. + title = ip_title. + ELSE. + title = me->guid. + ENDIF. + + sheet_state = me->c_sheet_state_visible. + + CREATE OBJECT sheet_setup. + CREATE OBJECT conditional_styles. + +* initialize active cell coordinates + active_cell-cell_row = 1. + active_cell-cell_column = 1. + +* inizialize dimension range + lower_cell-cell_row = 1. + lower_cell-cell_column = 1. + upper_cell-cell_row = 1. + upper_cell-cell_column = 1. +ENDMETHOD. + + + + METHOD get_active_cell. + + + DATA: lv_active_column TYPE zexcel_cell_column_alpha, + lv_active_row TYPE string. + + lv_active_column = zcl_excel_common=>convert_column2alpha( active_cell-cell_column ). + lv_active_row = active_cell-cell_row. + SHIFT lv_active_row RIGHT DELETING TRAILING space. + SHIFT lv_active_row LEFT DELETING LEADING space. + CONCATENATE lv_active_column lv_active_row INTO ep_active_cell. + +ENDMETHOD. + + + + + + + METHOD get_cell. + + + DATA: lv_column TYPE zexcel_cell_column, + ls_sheet_content TYPE zexcel_s_cell_data. + + FIELD-SYMBOLS: <fs_sheet_content> TYPE zexcel_s_cell_data. + + lv_column = zcl_excel_common=>convert_column2int( ip_column ). + + READ TABLE sheet_content INTO ls_sheet_content WITH TABLE KEY cell_row = ip_row + cell_column = lv_column. + + ep_rc = sy-subrc. + ep_value = ls_sheet_content-cell_value. +ENDMETHOD. + + + + method GET_COND_STYLES_ITERATOR. + + + eo_iterator = me->conditional_styles->get_iterator( ). +endmethod. + + + + METHOD get_dimension_range. + + + me->update_dimension_range( ). + IF upper_cell EQ lower_cell. "only one cell + ep_dimension_range = upper_cell-cell_coords. + ELSE. + CONCATENATE upper_cell-cell_coords ':' lower_cell-cell_coords INTO ep_dimension_range. + ENDIF. + +ENDMETHOD. + + + + method GET_GUID. + + + ep_guid = me->guid. + +endmethod. + + + + + + + + METHOD set_cell. + + + DATA: lv_column TYPE zexcel_cell_column, + ls_sheet_content TYPE zexcel_s_cell_data, + lv_row_alpha TYPE string. + + FIELD-SYMBOLS: <fs_sheet_content> TYPE zexcel_s_cell_data. + + lv_column = ZCL_EXCEL_COMMON=>convert_column2int( ip_column ). + + READ TABLE sheet_content ASSIGNING <fs_sheet_content> WITH KEY cell_row = ip_row + cell_column = lv_column. + + IF sy-subrc EQ 0. + <fs_sheet_content>-cell_value = ip_value. + <fs_sheet_content>-cell_formula = ip_formula. + <fs_sheet_content>-cell_style = ip_style. + ELSE. + ls_sheet_content-cell_row = ip_row. + ls_sheet_content-cell_column = lv_column. + ls_sheet_content-cell_value = ip_value. + ls_sheet_content-cell_formula = ip_formula. + ls_sheet_content-cell_style = ip_style. + lv_row_alpha = ip_row. + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE ip_column lv_row_alpha INTO ls_sheet_content-cell_coords. + APPEND ls_sheet_content TO sheet_content. + SORT sheet_content BY cell_row cell_column. +* me->update_dimension_range( ). + + ENDIF. + +ENDMETHOD. + + + + + + + + + METHOD set_table. + + + DATA: lo_tabdescr TYPE REF TO cl_abap_structdescr, + lr_data TYPE REF TO data, + ls_newline TYPE REF TO data, + ls_header TYPE x030l, + lt_dfies TYPE ddfields, + lv_row_header TYPE zexcel_cell_row VALUE '2', + lv_col_header TYPE zexcel_cell_column_alpha VALUE 'B', + lv_row_int TYPE zexcel_cell_row, + lv_column_int TYPE zexcel_cell_column, + lv_column_alpha TYPE zexcel_cell_column_alpha, + lv_cell_value TYPE zexcel_cell_value. + + + FIELD-SYMBOLS: <fs_table_line> TYPE ANY, + <fs_fldval> TYPE ANY, + <fs_dfies> TYPE dfies, + <fs_cell_value> TYPE zexcel_cell_value. + + lv_column_int = zcl_excel_common=>convert_column2int( ip_top_left_column ). + lv_row_int = ip_top_left_row. + + CREATE DATA lr_data LIKE LINE OF ip_table. + + lo_tabdescr ?= cl_abap_structdescr=>describe_by_data_ref( lr_data ). + + ls_header = lo_tabdescr->get_ddic_header( ). + + lt_dfies = lo_tabdescr->get_ddic_field_list( ). + +* It is better to loop column by column + LOOP AT lt_dfies ASSIGNING <fs_dfies>. + lv_column_alpha = zcl_excel_common=>convert_column2alpha( lv_column_int ). + " First of all write column header + lv_cell_value = <fs_dfies>-scrtext_m. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_value = lv_cell_value + ip_style = ip_hdr_style ). + ADD 1 TO lv_row_int. + LOOP AT ip_table ASSIGNING <fs_table_line>. + ASSIGN COMPONENT <fs_dfies>-fieldname OF STRUCTURE <fs_table_line> TO <fs_fldval>. + MOVE <fs_fldval> TO lv_cell_value. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_value = lv_cell_value + ip_style = ip_body_style ). + ADD 1 TO lv_row_int. + ENDLOOP. + lv_row_int = ip_top_left_row. + ADD 1 TO lv_column_int. + ENDLOOP. + +ENDMETHOD. + + + METHOD update_dimension_range. + + + DATA: ls_sheet_content TYPE zexcel_s_cell_data, + lt_sheet_content TYPE zexcel_t_cell_data_unsorted, + lv_row_alpha TYPE string, + lv_column_alpha TYPE zexcel_cell_column_alpha. + +* update dimension range + lt_sheet_content = sheet_content. + "upper left corner + SORT lt_sheet_content BY cell_row. + READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content. + upper_cell-cell_row = ls_sheet_content-cell_row. + SORT lt_sheet_content BY cell_column. + READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content. + upper_cell-cell_column = ls_sheet_content-cell_column. + + lv_row_alpha = upper_cell-cell_row. + lv_column_alpha = zcl_excel_common=>convert_column2alpha( upper_cell-cell_column ). + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE lv_column_alpha lv_row_alpha INTO upper_cell-cell_coords. + + "bottom right corner + SORT lt_sheet_content BY cell_row DESCENDING. + READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content. + lower_cell-cell_row = ls_sheet_content-cell_row. + SORT lt_sheet_content BY cell_column DESCENDING. + READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content. + lower_cell-cell_column = ls_sheet_content-cell_column. + + lv_row_alpha = lower_cell-cell_row. + lv_column_alpha = zcl_excel_common=>convert_column2alpha( lower_cell-cell_column ). + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE lv_column_alpha lv_row_alpha INTO lower_cell-cell_coords. + +ENDMETHOD. + + + + class ZCL_EXCEL_WORKSHEETS definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +public section. + + data ACTIVE_WORKSHEET type ZEXCEL_ACTIVE_WORKSHEET value 1. "#EC NOTEXT . + data NAME type ZEXCEL_WORKSHEETS_NAME value 'Worksheets'. "#EC NOTEXT . + + methods ADD + importing + !IP_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type ZEXCEL_ACTIVE_WORKSHEET + returning + value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET . + methods GET_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods IS_EMPTY + returning + value(IS_EMPTY) type FLAG . + methods REMOVE + importing + !IP_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET . + methods SIZE + returning + value(EP_SIZE) type I . + *"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +private section. + + data WORKSHEETS type ref to CL_OBJECT_COLLECTION . + *"* 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 + + + + + + METHOD ADD. + + + worksheets->add( ip_worksheet ). +ENDMETHOD. + + + METHOD clear. + + + worksheets->clear( ). +ENDMETHOD. + + + METHOD constructor. + + + CREATE OBJECT worksheets. + +ENDMETHOD. + + + + + METHOD get. + + + DATA lv_index TYPE i. + lv_index = ip_index. + eo_worksheet ?= worksheets->if_object_collection~get( lv_index ). +ENDMETHOD. + + + + METHOD get_iterator. + + + eo_iterator ?= worksheets->if_object_collection~get_iterator( ). +ENDMETHOD. + + + + METHOD is_empty. + + + is_empty = worksheets->if_object_collection~is_empty( ). +ENDMETHOD. + + + + METHOD remove. + + + worksheets->remove( ip_worksheet ). +ENDMETHOD. + + + + METHOD size. + + + ep_size = worksheets->if_object_collection~size( ). +ENDMETHOD. + + + + class ZCL_EXCEL_WRITER_2007 definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_WRITER_2007 +*"* do not include other source files here!!! +public section. + + methods CONSTRUCTOR + importing + !IO_EXCEL type ref to ZCL_EXCEL . + methods CREATE + returning + value(EP_EXCEL) type XSTRING . + *"* protected components of class ZCL_EXCEL_WRITER_2007 +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_WRITER_2007 +*"* do not include other source files here!!! +private section. + + constants C_CONTENT_TYPES type STRING value '[Content_Types].xml'. "#EC NOTEXT + constants C_DOCPROPS_APP type STRING value 'docProps/app.xml'. "#EC NOTEXT + constants C_DOCPROPS_CORE type STRING value 'docProps/core.xml'. "#EC NOTEXT + constants C_RELATIONSHIPS type STRING value '_rels/.rels'. "#EC NOTEXT + constants C_XL_CALCCHAIN type STRING value 'xl/calcChain.xml'. "#EC NOTEXT + constants C_XL_RELATIONSHIPS type STRING value 'xl/_rels/workbook.xml.rels'. "#EC NOTEXT + constants C_XL_SHAREDSTRINGS type STRING value 'xl/sharedStrings.xml'. "#EC NOTEXT + constants C_XL_SHEET type STRING value 'xl/worksheets/sheet#.xml'. "#EC NOTEXT + constants C_XL_SHEET_RELS type STRING value 'xl/worksheets/_rels/sheet#.xml.rels'. "#EC NOTEXT + constants C_XL_STYLES type STRING value 'xl/styles.xml'. "#EC NOTEXT + constants C_XL_THEME type STRING value 'xl/theme/theme1.xml'. "#EC NOTEXT + constants C_XL_WORKBOOK type STRING value 'xl/workbook.xml'. "#EC NOTEXT + data EXCEL type ref to ZCL_EXCEL . + data SHARED_STRINGS type ZEXCEL_T_SHARED_STRING . + data STYLES_MAPPING type ZEXCEL_T_STYLES_MAPPING . + + methods CREATE_CONTENT_TYPES + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_DOCPROPS_APP + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_DOCPROPS_CORE + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_RELATIONSHIPS + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_CALCCHAIN + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_RELATIONSHIPS + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_SHAREDSTRINGS + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_SHEET + importing + !IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET + !IV_ACTIVE type FLAG default '' + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_SHEET_RELS + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_STYLES + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_THEME + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_WORKBOOK + returning + value(EP_CONTENT) type XSTRING . + methods FLAG2BOOL + importing + !IP_FLAG type FLAG + returning + value(EP_BOOLEAN) type CHAR5 . + methods GET_SHARED_STRING_INDEX + importing + !IP_CELL_VALUE type ZEXCEL_CELL_VALUE + returning + value(EP_INDEX) type INT4 . + *"* 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 + + + + + + + + + + + + + + + + + + METHOD constructor. + + + me->excel = io_excel. +ENDMETHOD. + + + + METHOD create. + + +* Office 2007 file format is a cab of several xml files with extension .xlsx + + DATA: lo_zip TYPE REF TO cl_abap_zip, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_active_worksheet TYPE REF TO zcl_excel_worksheet, + lo_iterator TYPE REF TO cl_object_collection_iterator. + + DATA: lv_content TYPE xstring, + lv_active TYPE flag, + lv_xl_sheet TYPE string, + lv_xl_sheet_rels TYPE string, + lv_syindex TYPE string. + + +********************************************************************** +* STEP 1: Create archive object file (ZIP) + CREATE OBJECT lo_zip. + +********************************************************************** +* STEP 2: Add [Content_Types].xml to zip + lv_content = me->create_content_types( ). + lo_zip->add( name = me->c_content_types + content = lv_content ). + +********************************************************************** +* STEP 3: Add _rels/.rels to zip + lv_content = me->create_relationships( ). + lo_zip->add( name = me->c_relationships + content = lv_content ). + +********************************************************************** +* STEP 4: Add docProps/app.xml to zip + lv_content = me->create_docprops_app( ). + lo_zip->add( name = me->c_docprops_app + content = lv_content ). + +********************************************************************** +* STEP 5: Add docProps/core.xml to zip + lv_content = me->create_docprops_core( ). + lo_zip->add( name = me->c_docprops_core + content = lv_content ). + +********************************************************************** +* STEP 6: Add xl/_rels/workbook.xml.rels to zip + lv_content = me->create_xl_relationships( ). + lo_zip->add( name = me->c_xl_relationships + content = lv_content ). + +********************************************************************** +* STEP 6: Add xl/_rels/workbook.xml.rels to zip + lv_content = me->create_xl_theme( ). + lo_zip->add( name = me->c_xl_theme + content = lv_content ). + +********************************************************************** +* STEP 7: Add xl/workbook.xml to zip + lv_content = me->create_xl_workbook( ). + lo_zip->add( name = me->c_xl_workbook + content = lv_content ). + +********************************************************************** +* STEP 8: Add xl/workbook.xml to zip +* lv_content = me->create_xl_styles_static( ). + lv_content = me->create_xl_styles( ). + lo_zip->add( name = me->c_xl_styles + content = lv_content ). + +********************************************************************** +* STEP 9: Add sharedStrings.xml to zip + lv_content = me->create_xl_sharedstrings( ). + lo_zip->add( name = me->c_xl_sharedstrings + content = lv_content ). + +********************************************************************** +* STEP 10: Add sharedStrings.xml to zip + lv_content = me->create_xl_calcchain( ). + lo_zip->add( name = me->c_xl_calcchain + content = lv_content ). + +********************************************************************** +* STEP 11: Add sheet#.xml to zip + lo_iterator = me->excel->get_worksheets_iterator( ). + lo_active_worksheet = me->excel->get_active_worksheet( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + IF lo_active_worksheet->get_guid( ) EQ lo_worksheet->get_guid( ). + lv_active = abap_true. + ELSE. + lv_active = abap_true. + ENDIF. + + lv_content = me->create_xl_sheet( io_worksheet = lo_worksheet + iv_active = lv_active ). + lv_xl_sheet = me->c_xl_sheet. + MOVE sy-index TO lv_syindex. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + REPLACE ALL OCCURRENCES OF '#' IN lv_xl_sheet WITH lv_syindex. + lo_zip->add( name = lv_xl_sheet + content = lv_content ). + + lv_xl_sheet_rels = me->c_xl_sheet_rels. + lv_content = me->create_xl_sheet_rels( ). + REPLACE ALL OCCURRENCES OF '#' IN lv_xl_sheet_rels WITH lv_syindex. + lo_zip->add( name = lv_xl_sheet_rels + content = lv_content ). + ENDWHILE. + +********************************************************************** +* STEP 11: Create the final zip + ep_excel = lo_zip->save( ). + +ENDMETHOD. + + + + METHOD create_content_types. + + +** Constant node name + DATA: lc_xml_node_types TYPE string VALUE 'Types', + lc_xml_node_override TYPE string VALUE 'Override', + lc_xml_node_default TYPE string VALUE 'Default', + " Node attributes + lc_xml_attr_partname TYPE string VALUE 'PartName', + lc_xml_attr_extension TYPE string VALUE 'Extension', + lc_xml_attr_contenttype TYPE string VALUE 'ContentType', + " Node namespace + lc_xml_node_types_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/content-types', + " Node extension + lc_xml_node_rels_ext TYPE string VALUE 'rels', + lc_xml_node_xml_ext TYPE string VALUE 'xml', + " Node partnumber + lc_xml_node_theme_pn TYPE string VALUE '/xl/theme/theme1.xml', + lc_xml_node_styles_pn TYPE string VALUE '/xl/styles.xml', + lc_xml_node_workb_pn TYPE string VALUE '/xl/workbook.xml', + lc_xml_node_props_pn TYPE string VALUE '/docProps/app.xml', + lc_xml_node_worksheet_pn TYPE string VALUE '/xl/worksheets/sheet#.xml', + lc_xml_node_strings_pn TYPE string VALUE '/xl/sharedStrings.xml', + lc_xml_node_core_pn TYPE string VALUE '/docProps/core.xml', + " Node contentType + lc_xml_node_theme_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.theme+xml', + lc_xml_node_styles_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml', + lc_xml_node_workb_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml', + lc_xml_node_rels_ct TYPE string VALUE 'application/vnd.openxmlformats-package.relationships+xml', + lc_xml_node_xml_ct TYPE string VALUE 'application/xml', + lc_xml_node_props_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.extended-properties+xml', + lc_xml_node_worksheet_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml', + lc_xml_node_strings_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml', + lc_xml_node_core_ct TYPE string VALUE 'application/vnd.openxmlformats-package.core-properties+xml'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + + DATA: lv_worksheets_num TYPE i, + lv_worksheets_numc TYPE numc3, + lv_xml_node_worksheet_pn TYPE string, + lv_xml_size TYPE i. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'UTF-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node types + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_types + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_types_ns ). + +********************************************************************** +* STEP 4: Create subnodes + " Theme node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_theme_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_theme_ct ). + lo_element_root->append_child( lo_element ). + + " Styles node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_styles_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_styles_ct ). + lo_element_root->append_child( lo_element ). + + " rels node + lo_element = lo_document->create_simple_element( name = lc_xml_node_default + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_extension + value = lc_xml_node_rels_ext ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_rels_ct ). + lo_element_root->append_child( lo_element ). + + " extension node + lo_element = lo_document->create_simple_element( name = lc_xml_node_default + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_extension + value = lc_xml_node_xml_ext ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_xml_ct ). + lo_element_root->append_child( lo_element ). + + " Workbook node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_workb_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_workb_ct ). + lo_element_root->append_child( lo_element ). + + " Properties node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_props_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_props_ct ). + lo_element_root->append_child( lo_element ). + + " Worksheet node + lv_worksheets_num = excel->get_worksheets_size( ). + DO lv_worksheets_num TIMES. + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + + MOVE sy-index TO lv_worksheets_numc. + SHIFT lv_worksheets_numc LEFT DELETING LEADING '0'. + lv_xml_node_worksheet_pn = lc_xml_node_worksheet_pn. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_worksheet_pn WITH lv_worksheets_numc. + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lv_xml_node_worksheet_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lv_xml_node_worksheet_pn ). + lo_element_root->append_child( lo_element ). + ENDDO. + + " Strings node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_strings_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_strings_ct ). + lo_element_root->append_child( lo_element ). + + " Strings node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_core_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_core_ct ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD create_docprops_app. + + +** Constant node name + DATA: lc_xml_node_properties TYPE string VALUE 'Properties', + lc_xml_node_application TYPE string VALUE 'Application', + lc_xml_node_docsecurity TYPE string VALUE 'DocSecurity', + lc_xml_node_scalecrop TYPE string VALUE 'ScaleCrop', + lc_xml_node_headingpairs TYPE string VALUE 'HeadingPairs', + lc_xml_node_vector TYPE string VALUE 'vector', + lc_xml_node_variant TYPE string VALUE 'variant', + lc_xml_node_lpstr TYPE string VALUE 'lpstr', + lc_xml_node_i4 TYPE string VALUE 'i4', + lc_xml_node_titlesofparts TYPE string VALUE 'TitlesOfParts', + lc_xml_node_company TYPE string VALUE 'Company', + lc_xml_node_linksuptodate TYPE string VALUE 'LinksUpToDate', + lc_xml_node_shareddoc TYPE string VALUE 'SharedDoc', + lc_xml_node_hyperlinkschanged TYPE string VALUE 'HyperlinksChanged', + lc_xml_node_appversion TYPE string VALUE 'AppVersion', + " Namespace prefix + lc_vt_ns TYPE string VALUE 'vt', + lc_xml_node_props_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties', + lc_xml_node_props_vt_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes', + " Node attributes + lc_xml_attr_size TYPE string VALUE 'size', + lc_xml_attr_basetype TYPE string VALUE 'baseType'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_sub_element_vector TYPE REF TO if_ixml_element, + lo_sub_element_variant TYPE REF TO if_ixml_element, + lo_sub_element_lpstr TYPE REF TO if_ixml_element, + lo_sub_element_i4 TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + + DATA: lv_value TYPE string. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node properties + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_properties + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_props_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:vt' + value = lc_xml_node_props_vt_ns ). + +********************************************************************** +* STEP 4: Create subnodes + " Application + lo_element = lo_document->create_simple_element( name = lc_xml_node_application + parent = lo_document ). + lv_value = excel->properties->application. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " DocSecurity + lo_element = lo_document->create_simple_element( name = lc_xml_node_docsecurity + parent = lo_document ). + lv_value = excel->properties->docsecurity. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " ScaleCrop + lo_element = lo_document->create_simple_element( name = lc_xml_node_scalecrop + parent = lo_document ). + lv_value = me->flag2bool( excel->properties->scalecrop ). + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " HeadingPairs + lo_element = lo_document->create_simple_element( name = lc_xml_node_headingpairs + parent = lo_document ). + + + " * vector node + lo_sub_element_vector = lo_document->create_simple_element_ns( name = lc_xml_node_vector + prefix = lc_vt_ns + parent = lo_document ). + lo_sub_element_vector->set_attribute_ns( name = lc_xml_attr_size + value = '2' ). + lo_sub_element_vector->set_attribute_ns( name = lc_xml_attr_basetype + value = lc_xml_node_variant ). + + " ** variant node + lo_sub_element_variant = lo_document->create_simple_element_ns( name = lc_xml_node_variant + prefix = lc_vt_ns + parent = lo_document ). + + " *** lpstr node + lo_sub_element_lpstr = lo_document->create_simple_element_ns( name = lc_xml_node_lpstr + prefix = lc_vt_ns + parent = lo_document ). + lv_value = excel->get_worksheets_name( ). + lo_sub_element_lpstr->set_value( lv_value ). + lo_sub_element_variant->append_child( lo_sub_element_lpstr ). " lpstr node + + lo_sub_element_vector->append_child( lo_sub_element_variant ). " variant node + + " ** variant node + lo_sub_element_variant = lo_document->create_simple_element_ns( name = lc_xml_node_variant + prefix = lc_vt_ns + parent = lo_document ). + + " *** i4 node + lo_sub_element_i4 = lo_document->create_simple_element_ns( name = lc_xml_node_i4 + prefix = lc_vt_ns + parent = lo_document ). + lv_value = excel->get_worksheets_size( ). + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element_i4->set_value( lv_value ). + lo_sub_element_variant->append_child( lo_sub_element_i4 ). " lpstr node + + lo_sub_element_vector->append_child( lo_sub_element_variant ). " variant node + + lo_element->append_child( lo_sub_element_vector ). " vector node + + lo_element_root->append_child( lo_element ). " HeadingPairs + + + " TitlesOfParts + lo_element = lo_document->create_simple_element( name = lc_xml_node_titlesofparts + parent = lo_document ). + + + " * vector node + lo_sub_element_vector = lo_document->create_simple_element_ns( name = lc_xml_node_vector + prefix = lc_vt_ns + parent = lo_document ). + lv_value = excel->get_worksheets_size( ). + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element_vector->set_attribute_ns( name = lc_xml_attr_size + value = lv_value ). + lo_sub_element_vector->set_attribute_ns( name = lc_xml_attr_basetype + value = lc_xml_node_lpstr ). + + lo_iterator = excel->get_worksheets_iterator( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + " ** lpstr node + lo_sub_element_lpstr = lo_document->create_simple_element_ns( name = lc_xml_node_lpstr + prefix = lc_vt_ns + parent = lo_document ). + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + lv_value = lo_worksheet->title. + lo_sub_element_lpstr->set_value( lv_value ). + lo_sub_element_vector->append_child( lo_sub_element_lpstr ). " lpstr node + ENDWHILE. + + lo_element->append_child( lo_sub_element_vector ). " vector node + + lo_element_root->append_child( lo_element ). " TitlesOfParts + + + + " Company + lo_element = lo_document->create_simple_element( name = lc_xml_node_company + parent = lo_document ). + lv_value = excel->properties->company. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " LinksUpToDate + lo_element = lo_document->create_simple_element( name = lc_xml_node_linksuptodate + parent = lo_document ). + lv_value = me->flag2bool( excel->properties->linksuptodate ). + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " SharedDoc + lo_element = lo_document->create_simple_element( name = lc_xml_node_shareddoc + parent = lo_document ). + lv_value = me->flag2bool( excel->properties->shareddoc ). + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " HyperlinksChanged + lo_element = lo_document->create_simple_element( name = lc_xml_node_hyperlinkschanged + parent = lo_document ). + lv_value = me->flag2bool( excel->properties->hyperlinkschanged ). + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " AppVersion + lo_element = lo_document->create_simple_element( name = lc_xml_node_appversion + parent = lo_document ). + lv_value = excel->properties->appversion. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD create_docprops_core. + + +** Constant node name + DATA: lc_xml_node_coreproperties TYPE string VALUE 'coreProperties', + lc_xml_node_creator TYPE string VALUE 'creator', + lc_xml_node_lastmodifiedby TYPE string VALUE 'lastModifiedBy', + lc_xml_node_created TYPE string VALUE 'created', + lc_xml_node_modified TYPE string VALUE 'modified', + " Node attributes + lc_xml_attr_type TYPE string VALUE 'type', + lc_xml_attr_target TYPE string VALUE 'dcterms:W3CDTF', + " Node namespace + lc_cp_ns TYPE string VALUE 'cp', + lc_dc_ns TYPE string VALUE 'dc', + lc_dcterms_ns TYPE string VALUE 'dcterms', + lc_dcmitype_ns TYPE string VALUE 'dcmitype', + lc_xsi_ns TYPE string VALUE 'xsi', + lc_xml_node_cp_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties', + lc_xml_node_dc_ns TYPE string VALUE 'http://purl.org/dc/elements/1.1/', + lc_xml_node_dcterms_ns TYPE string VALUE 'http://purl.org/dc/terms/', + lc_xml_node_dcmitype_ns TYPE string VALUE 'http://purl.org/dc/dcmitype/', + lc_xml_node_xsi_ns TYPE string VALUE 'http://www.w3.org/2001/XMLSchema-instance'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + + DATA: lv_value TYPE string. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node coreProperties + lo_element_root = lo_document->create_simple_element_ns( name = lc_xml_node_coreproperties + prefix = lc_cp_ns + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns:cp' + value = lc_xml_node_cp_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:dc' + value = lc_xml_node_dc_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:dcterms' + value = lc_xml_node_dcterms_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:dcmitype' + value = lc_xml_node_dcmitype_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:xsi' + value = lc_xml_node_xsi_ns ). + +********************************************************************** +* STEP 4: Create subnodes + " Creator node + lo_element = lo_document->create_simple_element_ns( name = lc_xml_node_creator + prefix = lc_dc_ns + parent = lo_document ). + lv_value = excel->properties->creator. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " lastModifiedBy node + lo_element = lo_document->create_simple_element_ns( name = lc_xml_node_lastmodifiedby + prefix = lc_cp_ns + parent = lo_document ). + lv_value = excel->properties->lastmodifiedby. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " Created node + lo_element = lo_document->create_simple_element_ns( name = lc_xml_node_created + prefix = lc_dcterms_ns + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + prefix = lc_xsi_ns + value = lc_xml_attr_target ). + lv_value = excel->properties->created. + lv_value = '2010-07-04T14:58:53Z'. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " Modified node + lo_element = lo_document->create_simple_element_ns( name = lc_xml_node_modified + prefix = lc_dcterms_ns + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + prefix = lc_xsi_ns + value = lc_xml_attr_target ). + lv_value = excel->properties->modified. + lv_value = '2010-07-04T14:58:53Z'. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD CREATE_RELATIONSHIPS. + + +** Constant node name + DATA: lc_xml_node_relationships TYPE string VALUE 'Relationships', + lc_xml_node_relationship TYPE string VALUE 'Relationship', + " Node attributes + lc_xml_attr_id TYPE string VALUE 'Id', + lc_xml_attr_type TYPE string VALUE 'Type', + lc_xml_attr_target TYPE string VALUE 'Target', + " Node namespace + lc_xml_node_rels_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships', + " Node id + lc_xml_node_rId1_id TYPE string VALUE 'rId1', + lc_xml_node_rId2_id TYPE string VALUE 'rId2', + lc_xml_node_rId3_id TYPE string VALUE 'rId3', + " Node type + lc_xml_node_rId1_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument', + lc_xml_node_rId2_tp TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties', + lc_xml_node_rId3_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties', + " Node target + lc_xml_node_rId1_tg TYPE string VALUE 'xl/workbook.xml', + lc_xml_node_rId2_tg TYPE string VALUE 'docProps/core.xml', + lc_xml_node_rId3_tg TYPE string VALUE 'docProps/app.xml'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_relationships + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_rels_ns ). + +********************************************************************** +* STEP 4: Create subnodes + " Theme node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lc_xml_node_rId3_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rId3_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rId3_tg ). + lo_element_root->append_child( lo_element ). + + " Styles node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lc_xml_node_rId2_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rId2_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rId2_tg ). + lo_element_root->append_child( lo_element ). + + " rels node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lc_xml_node_rId1_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rId1_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rId1_tg ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD create_xl_calcchain. + + +** Constant node name + DATA: lc_xml_node_calcchain TYPE string VALUE 'calcChain', + lc_xml_node_c TYPE string VALUE 'c', + " Node attributes + lc_xml_attr_r TYPE string VALUE 'r', + lc_xml_attr_i TYPE string VALUE 'i', + " Node namespace + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + + DATA: lv_value TYPE string, + lv_value_i TYPE string, + lv_sheets_count TYPE i. + + FIELD-SYMBOLS: <ls_sheet_content> TYPE zexcel_s_cell_data. + +********************************************************************** +* STEP 1: Create xl/calcChain.xml + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'UTF-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node calcChain + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_calcchain + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + +********************************************************************** +* STEP 4: Create subnodes + lo_iterator = excel->get_worksheets_iterator( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + ADD 1 TO lv_sheets_count. + MOVE lv_sheets_count TO lv_value_i. + SHIFT lv_value_i RIGHT DELETING TRAILING space. + SHIFT lv_value_i LEFT DELETING LEADING space. + LOOP AT lo_worksheet->sheet_content ASSIGNING <ls_sheet_content> WHERE cell_formula IS NOT INITIAL. + " formula chain node + lo_element = lo_document->create_simple_element( name = lc_xml_node_c + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_r + value = lv_value ). + lo_element->set_attribute_ns( name = lc_xml_attr_i + value = lv_value_i ). + lo_element_root->append_child( lo_element ). + ENDLOOP. + ENDWHILE. + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD create_xl_relationships. + + +** Constant node name + DATA: lc_xml_node_relationships TYPE string VALUE 'Relationships', + lc_xml_node_relationship TYPE string VALUE 'Relationship', + " Node attributes + lc_xml_attr_id TYPE string VALUE 'Id', + lc_xml_attr_type TYPE string VALUE 'Type', + lc_xml_attr_target TYPE string VALUE 'Target', + " Node namespace + lc_xml_node_rels_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships', + " Node id + lc_xml_node_ridx_id TYPE string VALUE 'rId#', + " Node type + lc_xml_node_rid_sheet_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet', + lc_xml_node_rid_theme_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme', + lc_xml_node_rid_styles_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles', + lc_xml_node_rid_shared_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings', + lc_xml_node_rid_calcchain_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/calcChain', + " Node target + lc_xml_node_ridx_tg TYPE string VALUE 'worksheets/sheet#.xml', + lc_xml_node_rid_shared_tg TYPE string VALUE 'sharedStrings.xml', + lc_xml_node_rid_styles_tg TYPE string VALUE 'styles.xml', + lc_xml_node_rid_theme_tg TYPE string VALUE 'theme/theme1.xml', + lc_xml_node_rid_calcchain_tg TYPE string VALUE 'calcChain.xml'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + + DATA: lv_xml_node_ridx_tg TYPE string, + lv_xml_node_ridx_id TYPE string, + lv_size TYPE i, + lv_syindex(2) TYPE c. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_relationships + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_rels_ns ). + +********************************************************************** +* STEP 4: Create subnodes + + lv_size = excel->get_worksheets_size( ). + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lv_size = lv_size + 2. + lv_syindex = lv_size. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_styles_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_styles_tg ). + lo_element_root->append_child( lo_element ). + + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lv_size = lv_size - 1. + lv_syindex = lv_size. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_theme_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_theme_tg ). + lo_element_root->append_child( lo_element ). + + lv_size = excel->get_worksheets_size( ). + + DO lv_size TIMES. + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + lv_xml_node_ridx_tg = lc_xml_node_ridx_tg. + lv_syindex = sy-index. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_tg WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_sheet_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lv_xml_node_ridx_tg ). + lo_element_root->append_child( lo_element ). + ENDDO. + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + ADD 3 TO lv_size. + lv_syindex = lv_size. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_shared_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_shared_tg ). + lo_element_root->append_child( lo_element ). + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + ADD 1 TO lv_size. + lv_syindex = lv_size. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_calcchain_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_calcchain_tg ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD create_xl_sharedstrings. + + +** Constant node name + DATA: lc_xml_node_sst TYPE string VALUE 'sst', + lc_xml_node_si TYPE string VALUE 'si', + lc_xml_node_t TYPE string VALUE 't', + " Node attributes + lc_xml_attr_count TYPE string VALUE 'count', + lc_xml_attr_uniquecount TYPE string VALUE 'uniqueCount', + " Node namespace + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_sub_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + + DATA: lt_cell_data TYPE zexcel_t_cell_data_unsorted, + ls_shared_string TYPE zexcel_s_shared_string, + lv_value TYPE string, + lv_count_str TYPE string, + lv_uniquecount_str TYPE string, + lv_sytabix TYPE sytabix, + lv_count TYPE i, + lv_uniquecount TYPE i. + + FIELD-SYMBOLS: <fs_sheet_content> TYPE zexcel_s_cell_data, + <fs_sheet_string> TYPE zexcel_s_shared_string. + +********************************************************************** +* STEP 1: Collect strings from each worksheet + lo_iterator = excel->get_worksheets_iterator( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + APPEND LINES OF lo_worksheet->sheet_content TO lt_cell_data. + ENDWHILE. + + DELETE lt_cell_data WHERE cell_formula IS NOT INITIAL. " delete formula content + + DESCRIBE TABLE lt_cell_data LINES lv_count. + MOVE lv_count TO lv_count_str. + + SHIFT lv_count_str RIGHT DELETING TRAILING space. + SHIFT lv_count_str LEFT DELETING LEADING space. + + SORT lt_cell_data BY cell_value. + DELETE ADJACENT DUPLICATES FROM lt_cell_data COMPARING cell_value. + + DESCRIBE TABLE lt_cell_data LINES lv_uniquecount. + MOVE lv_uniquecount TO lv_uniquecount_str. + + SHIFT lv_uniquecount_str RIGHT DELETING TRAILING space. + SHIFT lv_uniquecount_str LEFT DELETING LEADING space. + + LOOP AT lt_cell_data ASSIGNING <fs_sheet_content>. + lv_sytabix = sy-tabix - 1. + MOVE lv_sytabix TO ls_shared_string-string_no. + MOVE <fs_sheet_content>-cell_value TO ls_shared_string-string_value. + APPEND ls_shared_string TO shared_strings. + ENDLOOP. + + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_sst + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + lo_element_root->set_attribute_ns( name = lc_xml_attr_count + value = lv_count_str ). + lo_element_root->set_attribute_ns( name = lc_xml_attr_uniquecount + value = lv_uniquecount_str ). + +********************************************************************** +* STEP 4: Create subnode + LOOP AT shared_strings ASSIGNING <fs_sheet_string>. + lo_element = lo_document->create_simple_element( name = lc_xml_node_si + parent = lo_document ). + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_t + parent = lo_document ). + lo_sub_element->set_value( <fs_sheet_string>-string_value ). + lo_element->append_child( lo_sub_element ). + lo_element_root->append_child( lo_element ). + ENDLOOP. + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + + + METHOD create_xl_sheet. + + +** Constant node name + DATA: lc_xml_node_worksheet TYPE string VALUE 'worksheet', + lc_xml_node_dimension TYPE string VALUE 'dimension', + lc_xml_node_sheetviews TYPE string VALUE 'sheetViews', + lc_xml_node_sheetview TYPE string VALUE 'sheetView', + lc_xml_node_selection TYPE string VALUE 'selection', + lc_xml_node_sheetformatpr TYPE string VALUE 'sheetFormatPr', + lc_xml_node_sheetdata TYPE string VALUE 'sheetData', + lc_xml_node_row TYPE string VALUE 'row', + lc_xml_node_c TYPE string VALUE 'c', + lc_xml_node_v TYPE string VALUE 'v', + lc_xml_node_f TYPE string VALUE 'f', + lc_xml_node_pagemargins TYPE string VALUE 'pageMargins', + lc_xml_node_condformatting TYPE string VALUE 'conditionalFormatting', + lc_xml_node_cfrule TYPE string VALUE 'cfRule', + lc_xml_node_iconset TYPE string VALUE 'iconSet', + lc_xml_node_cfvo TYPE string VALUE 'cfvo', + lc_xml_node_formula TYPE string VALUE 'formula', + " Node attributes + lc_xml_attr_ref TYPE string VALUE 'ref', + lc_xml_attr_tabselected TYPE string VALUE 'tabSelected', + lc_xml_attr_workbookviewid TYPE string VALUE 'workbookViewId', + lc_xml_attr_activecell TYPE string VALUE 'activeCell', + lc_xml_attr_sqref TYPE string VALUE 'sqref', + lc_xml_attr_defaultrowheight TYPE string VALUE 'defaultRowHeight', + lc_xml_attr_r TYPE string VALUE 'r', + lc_xml_attr_s TYPE string VALUE 's', + lc_xml_attr_spans TYPE string VALUE 'spans', + lc_xml_attr_t TYPE string VALUE 't', + lc_xml_attr_left TYPE string VALUE 'left', + lc_xml_attr_right TYPE string VALUE 'right', + lc_xml_attr_top TYPE string VALUE 'top', + lc_xml_attr_bottom TYPE string VALUE 'bottom', + lc_xml_attr_header TYPE string VALUE 'header', + lc_xml_attr_footer TYPE string VALUE 'footer', + lc_xml_attr_type TYPE string VALUE 'type', + lc_xml_attr_iconset TYPE string VALUE 'iconSet', + lc_xml_attr_val TYPE string VALUE 'val', + lc_xml_attr_dxfid TYPE string VALUE 'dxfId', + lc_xml_attr_priority TYPE string VALUE 'priority', + lc_xml_attr_operator TYPE string VALUE 'operator', + " Node namespace + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main', + lc_xml_node_r_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_element_2 TYPE REF TO if_ixml_element, + lo_element_3 TYPE REF TO if_ixml_element, + lo_element_4 TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_style_conditional TYPE REF TO zcl_excel_style_conditional. + + DATA: lv_value TYPE string, + lt_percent_val TYPE TABLE OF string, + ls_percent_val TYPE string, + ls_last_row TYPE zexcel_s_cell_data, + ls_style_mapping TYPE zexcel_s_styles_mapping. + + FIELD-SYMBOLS: <ls_sheet_content> TYPE zexcel_s_cell_data. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +*********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_worksheet + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:r' + value = lc_xml_node_r_ns ). + +********************************************************************** +* STEP 4: Create subnodes + + " dimension node + lo_element = lo_document->create_simple_element( name = lc_xml_node_dimension + parent = lo_document ). + lv_value = io_worksheet->get_dimension_range( ). + lo_element->set_attribute_ns( name = lc_xml_attr_ref + value = lv_value ). + lo_element_root->append_child( lo_element ). + + " sheetViews node + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetviews + parent = lo_document ). + " sheetView node + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_sheetview + parent = lo_document ). + IF iv_active EQ abap_true. + lo_element_2->set_attribute_ns( name = lc_xml_attr_tabselected + value = '1' ). + ENDIF. + lo_element_2->set_attribute_ns( name = lc_xml_attr_workbookviewid + value = '0' ). + + " selection node + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_selection + parent = lo_document ). + lv_value = io_worksheet->get_active_cell( ). + lo_element_3->set_attribute_ns( name = lc_xml_attr_activecell + value = lv_value ). + + lo_element_3->set_attribute_ns( name = lc_xml_attr_sqref + value = lv_value ). + + lo_element_2->append_child( lo_element_3 ). " sheetView node + + lo_element->append_child( lo_element_2 ). " sheetView node + + lo_element_root->append_child( lo_element ). " sheetViews node + + + " sheetFormatPr node + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetformatpr + parent = lo_document ). + lv_value = io_worksheet->defaultrowheight. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_defaultrowheight + value = lv_value ). + lo_element_root->append_child( lo_element ). " sheetFormatPr node + + " sheetData node + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetdata + parent = lo_document ). + LOOP AT io_worksheet->sheet_content ASSIGNING <ls_sheet_content>. + CLEAR ls_style_mapping. + IF ls_last_row-cell_row NE <ls_sheet_content>-cell_row. + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_row + parent = lo_document ). + lv_value = <ls_sheet_content>-cell_row. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_2->set_attribute_ns( name = lc_xml_attr_r + value = lv_value ). + + lo_element_2->set_attribute_ns( name = lc_xml_attr_spans + value = '1:1' ). " <******************************* + ENDIF. + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_c + parent = lo_document ). + + lo_element_3->set_attribute_ns( name = lc_xml_attr_r + value = <ls_sheet_content>-cell_coords ). + + IF <ls_sheet_content>-cell_style IS NOT INITIAL. + READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = <ls_sheet_content>-cell_style. + lv_value = ls_style_mapping-style. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_3->set_attribute_ns( name = lc_xml_attr_s + value = lv_value ). + ENDIF. + IF ls_style_mapping-cell_format IS INITIAL. " to avoid errors if no style has been created + IF <ls_sheet_content>-cell_formula IS INITIAL. + ls_style_mapping-cell_format = 'S'. + ELSE. + ls_style_mapping-cell_format = 'F'. + ENDIF. + ENDIF. + " is a shared string and is not a formula + IF ls_style_mapping-cell_format EQ 'S'. + lo_element_3->set_attribute_ns( name = lc_xml_attr_t + value = 's' ). + ENDIF. + IF <ls_sheet_content>-cell_formula IS NOT INITIAL. + " fomula node + lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_f + parent = lo_document ). + lv_value = <ls_sheet_content>-cell_formula. + lo_element_4->set_value( lv_value ). + lo_element_3->append_child( lo_element_4 ). " fomula node + ENDIF. + " value node + lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_v + parent = lo_document ). + + IF ls_style_mapping-cell_format EQ 'S'. + lv_value = me->get_shared_string_index( <ls_sheet_content>-cell_value ). + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_4->set_value( lv_value ). + ELSE. + lv_value = <ls_sheet_content>-cell_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_4->set_value( lv_value ). + ENDIF. + + lo_element_3->append_child( lo_element_4 ). " value node + + lo_element_2->append_child( lo_element_3 ). " column node + IF ls_last_row-cell_row NE <ls_sheet_content>-cell_row. + lo_element->append_child( lo_element_2 ). " row node + ls_last_row = <ls_sheet_content>. + ENDIF. + + ENDLOOP. + lo_element_root->append_child( lo_element ). " sheetData node + + " Conditional formatting node + lo_iterator = io_worksheet->get_cond_styles_iterator( ). + WHILE lo_iterator->has_next( ) EQ abap_true. + lo_style_conditional ?= lo_iterator->get_next( ). + IF lo_style_conditional->rule IS INITIAL. + CONTINUE. + ENDIF. + lo_element = lo_document->create_simple_element( name = lc_xml_node_condformatting + parent = lo_document ). + lv_value = lo_style_conditional->get_dimension_range( ) . + lo_element->set_attribute_ns( name = lc_xml_attr_sqref + value = lv_value ). + + " cfRule node + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_cfrule + parent = lo_document ). + lv_value = lo_style_conditional->rule. + lo_element_2->set_attribute_ns( name = lc_xml_attr_type + value = lv_value ). + lv_value = lo_style_conditional->priority. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_2->set_attribute_ns( name = lc_xml_attr_priority + value = lv_value ). + + CASE lo_style_conditional->rule. + WHEN zcl_excel_style_conditional=>c_rule_iconset. + CLEAR lt_percent_val. + " iconset node + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_iconset + parent = lo_document ). + IF lo_style_conditional->iconset NE zcl_excel_style_conditional=>c_iconset_3trafficlights. + lv_value = lo_style_conditional->iconset. + lo_element_3->set_attribute_ns( name = lc_xml_attr_iconset + value = lv_value ). + ENDIF. + + CASE lo_style_conditional->iconset. + WHEN zcl_excel_style_conditional=>c_iconset_3trafficlights2 OR + zcl_excel_style_conditional=>c_iconset_3arrows OR + zcl_excel_style_conditional=>c_iconset_3arrowsgray OR + zcl_excel_style_conditional=>c_iconset_3flags OR + zcl_excel_style_conditional=>c_iconset_3signs OR + zcl_excel_style_conditional=>c_iconset_3symbols OR + zcl_excel_style_conditional=>c_iconset_3symbols2 OR + zcl_excel_style_conditional=>c_iconset_3trafficlights OR + zcl_excel_style_conditional=>c_iconset_3trafficlights2. + APPEND '0' TO lt_percent_val. + APPEND '33' TO lt_percent_val. + APPEND '67' TO lt_percent_val. + WHEN zcl_excel_style_conditional=>c_iconset_4arrows OR + zcl_excel_style_conditional=>c_iconset_4arrowsgray OR + zcl_excel_style_conditional=>c_iconset_4rating OR + zcl_excel_style_conditional=>c_iconset_4redtoblack OR + zcl_excel_style_conditional=>c_iconset_4trafficlights. + APPEND '0' TO lt_percent_val. + APPEND '25' TO lt_percent_val. + APPEND '50' TO lt_percent_val. + APPEND '75' TO lt_percent_val. + WHEN zcl_excel_style_conditional=>c_iconset_5arrows OR + zcl_excel_style_conditional=>c_iconset_5arrowsgray OR + zcl_excel_style_conditional=>c_iconset_5quarters OR + zcl_excel_style_conditional=>c_iconset_5rating. + APPEND '0' TO lt_percent_val. + APPEND '20' TO lt_percent_val. + APPEND '40' TO lt_percent_val. + APPEND '60' TO lt_percent_val. + APPEND '80' TO lt_percent_val. + WHEN OTHERS. + CLEAR lt_percent_val. + ENDCASE. + + LOOP AT lt_percent_val INTO ls_percent_val. + " cfvo node + lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_cfvo + parent = lo_document ). + lo_element_4->set_attribute_ns( name = lc_xml_attr_type + value = 'percent' ). + lo_element_4->set_attribute_ns( name = lc_xml_attr_val + value = ls_percent_val ). + lo_element_3->append_child( lo_element_4 ). " cfvo node + ENDLOOP. + + + lo_element_2->append_child( lo_element_3 ). " iconset node + WHEN zcl_excel_style_conditional=>c_rule_cellis. + lo_element_2->set_attribute_ns( name = lc_xml_attr_dxfid + value = '0' ). " @TODO <***************************** + lv_value = lo_style_conditional->operator. + lo_element_2->set_attribute_ns( name = lc_xml_attr_operator + value = lv_value ). + " formula node + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_formula + parent = lo_document ). + lv_value = lo_style_conditional->formula. + lo_element_3->set_value( lv_value ). + lo_element_2->append_child( lo_element_3 ). " formula node + + ENDCASE. + + lo_element->append_child( lo_element_2 ). " cfRule node + + lo_element_root->append_child( lo_element ). " Conditional formatting node + ENDWHILE. + " pageMargins node + lo_element = lo_document->create_simple_element( name = lc_xml_node_pagemargins + parent = lo_document ). + + lo_element->set_attribute_ns( name = lc_xml_attr_left + value = '0.7' ). " @TODO <***************************** + lo_element->set_attribute_ns( name = lc_xml_attr_right + value = '0.7' ). " @TODO <***************************** + lo_element->set_attribute_ns( name = lc_xml_attr_top + value = '0.75' ). " @TODO <***************************** + lo_element->set_attribute_ns( name = lc_xml_attr_bottom + value = '0.75' ). " @TODO <***************************** + lo_element->set_attribute_ns( name = lc_xml_attr_header + value = '0.3' ). " @TODO <***************************** + lo_element->set_attribute_ns( name = lc_xml_attr_footer + value = '0.3' ). " @TODO <***************************** + lo_element_root->append_child( lo_element ). " sheetFormatPr node + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD create_xl_sheet_rels. + + +** Constant node name + DATA: lc_xml_node_relationships TYPE string VALUE 'Relationships', + lc_xml_node_relationship TYPE string VALUE 'Relationship', + " Node attributes + lc_xml_attr_id TYPE string VALUE 'Id', + lc_xml_attr_type TYPE string VALUE 'Type', + lc_xml_attr_target TYPE string VALUE 'Target', + " Node namespace + lc_xml_node_rels_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships', + " Node id + lc_xml_node_ridx_id TYPE string VALUE 'rId#', + lc_xml_node_rid_print_id TYPE string VALUE 'rId1', + " Node type + lc_xml_node_rid_print_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings', + " Node target + lc_xml_node_rid_print_tg TYPE string VALUE '../printerSettings/printerSettings1.bin'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_relationships + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_rels_ns ). + +********************************************************************** +* STEP 4: Create subnodes + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lc_xml_node_rid_print_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_print_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_print_tg ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD create_xl_styles. + + +** Constant node name + DATA: lc_xml_node_stylesheet TYPE string VALUE 'styleSheet', + " font + lc_xml_node_fonts TYPE string VALUE 'fonts', + lc_xml_node_font TYPE string VALUE 'font', + lc_xml_node_b TYPE string VALUE 'b', "bold + lc_xml_node_i TYPE string VALUE 'i', "italic + lc_xml_node_u TYPE string VALUE 'u', "underline + lc_xml_node_strike TYPE string VALUE 'strike', "strikethrough + lc_xml_node_sz TYPE string VALUE 'sz', + lc_xml_node_color TYPE string VALUE 'color', + lc_xml_node_name TYPE string VALUE 'name', + lc_xml_node_family TYPE string VALUE 'family', + lc_xml_node_scheme TYPE string VALUE 'scheme', + " fill + lc_xml_node_fills TYPE string VALUE 'fills', + lc_xml_node_fill TYPE string VALUE 'fill', + lc_xml_node_patternfill TYPE string VALUE 'patternFill', + lc_xml_node_fgcolor TYPE string VALUE 'fgColor', + lc_xml_node_bgcolor TYPE string VALUE 'bgColor', + lc_xml_node_gradientfill TYPE string VALUE 'gradientFill', + lc_xml_node_stop TYPE string VALUE 'stop', + " borders + lc_xml_node_borders TYPE string VALUE 'borders', + lc_xml_node_border TYPE string VALUE 'border', + lc_xml_node_left TYPE string VALUE 'left', + lc_xml_node_right TYPE string VALUE 'right', + lc_xml_node_top TYPE string VALUE 'top', + lc_xml_node_bottom TYPE string VALUE 'bottom', + lc_xml_node_diagonal TYPE string VALUE 'diagonal', + " Styles + lc_xml_node_cellstylexfs TYPE string VALUE 'cellStyleXfs', + lc_xml_node_xf TYPE string VALUE 'xf', + lc_xml_node_cellxfs TYPE string VALUE 'cellXfs', + lc_xml_node_cellstyles TYPE string VALUE 'cellStyles', + lc_xml_node_cellstyle TYPE string VALUE 'cellStyle', + lc_xml_node_dxfs TYPE string VALUE 'dxfs', + lc_xml_node_tablestyles TYPE string VALUE 'tableStyles', + " Colors + lc_xml_node_colors TYPE string VALUE 'colors', + lc_xml_node_mrucolors TYPE string VALUE 'mruColors', + " Node attributes + lc_xml_attr_count TYPE string VALUE 'count', + lc_xml_attr_val TYPE string VALUE 'val', + lc_xml_attr_theme TYPE string VALUE 'theme', + lc_xml_attr_rgb TYPE string VALUE 'rgb', + lc_xml_attr_indexed TYPE string VALUE 'indexed', + lc_xml_attr_style TYPE string VALUE 'style', + lc_xml_attr_position TYPE string VALUE 'position', + lc_xml_attr_degree TYPE string VALUE 'degree', + lc_xml_attr_patterntype TYPE string VALUE 'patternType', + lc_xml_attr_numfmtid TYPE string VALUE 'numFmtId', + lc_xml_attr_fontid TYPE string VALUE 'fontId', + lc_xml_attr_fillid TYPE string VALUE 'fillId', + lc_xml_attr_borderid TYPE string VALUE 'borderId', + lc_xml_attr_xfid TYPE string VALUE 'xfId', + lc_xml_attr_applynumberformat TYPE string VALUE 'applyNumberFormat', + lc_xml_attr_applyfont TYPE string VALUE 'applyFont', + lc_xml_attr_applyfill TYPE string VALUE 'applyFill', + lc_xml_attr_applyborder TYPE string VALUE 'applyBorder', + lc_xml_attr_name TYPE string VALUE 'name', + lc_xml_attr_builtinid TYPE string VALUE 'builtinId', + lc_xml_attr_defaulttablestyle TYPE string VALUE 'defaultTableStyle', + lc_xml_attr_defaultpivotstyle TYPE string VALUE 'defaultPivotStyle', + " Node namespace + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element_fonts TYPE REF TO if_ixml_element, + lo_element_font TYPE REF TO if_ixml_element, + lo_element_fills TYPE REF TO if_ixml_element, + lo_element_fill TYPE REF TO if_ixml_element, + lo_element_borders TYPE REF TO if_ixml_element, + lo_element_border TYPE REF TO if_ixml_element, + lo_element_cellxfs TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_sub_element TYPE REF TO if_ixml_element, + lo_sub_element_2 TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_style TYPE REF TO zcl_excel_style. + + + DATA: lt_fonts TYPE zexcel_t_style_font, + ls_font TYPE zexcel_s_style_font, + lt_fills TYPE zexcel_t_style_fill, + ls_fill TYPE zexcel_s_style_fill, + lt_borders TYPE zexcel_t_style_border, + ls_border TYPE zexcel_s_style_border, + ls_format TYPE zexcel_number_format, + lt_cellxfs TYPE zexcel_t_cellxfs, + ls_cellxfs TYPE zexcel_s_cellxfs, + ls_styles_mapping TYPE zexcel_s_styles_mapping, + lt_colors TYPE TABLE OF zexcel_style_color_argb, + ls_color TYPE zexcel_style_color_argb. + + DATA: lv_value TYPE string, + lv_fonts_count TYPE i, + lv_fills_count TYPE i, + lv_borders_count TYPE i, + lv_cellxfs_count TYPE i. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +*********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_stylesheet + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + +********************************************************************** +* STEP 4: Create subnodes + + lo_element_fonts = lo_document->create_simple_element( name = lc_xml_node_fonts + parent = lo_document ). + + lo_element_fills = lo_document->create_simple_element( name = lc_xml_node_fills + parent = lo_document ). + + lo_element_borders = lo_document->create_simple_element( name = lc_xml_node_borders + parent = lo_document ). + + lo_element_cellxfs = lo_document->create_simple_element( name = lc_xml_node_cellxfs + parent = lo_document ). + +* Compress styles + lo_iterator = excel->get_styles_iterator( ). + WHILE lo_iterator->has_next( ) EQ abap_true. + lo_style ?= lo_iterator->get_next( ). + ls_font = lo_style->font->get_structure( ). + ls_fill = lo_style->fill->get_structure( ). + ls_border = lo_style->borders->get_structure( ). + ls_format = lo_style->number_format->get_structure( ). + + +* Compress fonts + READ TABLE lt_fonts FROM ls_font TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_cellxfs-fontid = sy-tabix. + ELSE. + APPEND ls_font TO lt_fonts. + DESCRIBE TABLE lt_fonts LINES ls_cellxfs-fontid. + ENDIF. + SUBTRACT 1 FROM ls_cellxfs-fontid. + +* Compress fills + READ TABLE lt_fills FROM ls_fill TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_cellxfs-fillid = sy-tabix. + ELSE. + APPEND ls_fill TO lt_fills. + DESCRIBE TABLE lt_fills LINES ls_cellxfs-fillid. + ENDIF. + SUBTRACT 1 FROM ls_cellxfs-fillid. + +* Compress borders + READ TABLE lt_borders FROM ls_border TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_cellxfs-borderid = sy-tabix. + ELSE. + APPEND ls_border TO lt_borders. + DESCRIBE TABLE lt_borders LINES ls_cellxfs-borderid. + ENDIF. + SUBTRACT 1 FROM ls_cellxfs-borderid. + + IF ls_format IS INITIAL. + ls_cellxfs-numfmtid = 0. " number format + ELSE. + ls_cellxfs-numfmtid = ls_format. " number format + ENDIF. + ls_cellxfs-xfid = 0. + + IF ls_format IS NOT INITIAL. + ls_cellxfs-applynumberformat = 1. + ls_styles_mapping-cell_format = 'I'. + ELSE. + ls_cellxfs-applynumberformat = 0. + ls_styles_mapping-cell_format = 'S'. + ENDIF. + IF ls_cellxfs-fontid NE 0. + ls_cellxfs-applyfont = 1. + ELSE. + ls_cellxfs-applyfont = 0. + ENDIF. + IF ls_cellxfs-fillid NE 0. + ls_cellxfs-applyfill = 1. + ELSE. + ls_cellxfs-applyfill = 0. + ENDIF. + IF ls_cellxfs-borderid NE 0. + ls_cellxfs-applyborder = 1. + ELSE. + ls_cellxfs-applyborder = 0. + ENDIF. + +* Remap styles + READ TABLE lt_cellxfs FROM ls_cellxfs TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_styles_mapping-style = sy-tabix. + ELSE. + APPEND ls_cellxfs TO lt_cellxfs. + DESCRIBE TABLE lt_cellxfs LINES ls_styles_mapping-style. + ENDIF. + SUBTRACT 1 FROM ls_styles_mapping-style. + ls_styles_mapping-guid = lo_style->get_guid( ). + APPEND ls_styles_mapping TO me->styles_mapping. + ENDWHILE. + + " create font elements + LOOP AT lt_fonts INTO ls_font. + lo_element_font = lo_document->create_simple_element( name = lc_xml_node_font + parent = lo_document ). + IF ls_font-bold EQ abap_true. + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_b + parent = lo_document ). + lo_element_font->append_child( lo_sub_element ). + ENDIF. + IF ls_font-italic EQ abap_true. + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_i + parent = lo_document ). + lo_element_font->append_child( lo_sub_element ). + ENDIF. + IF ls_font-underline EQ abap_true. + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_u + parent = lo_document ). + lv_value = ls_font-underline_mode. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + ENDIF. + IF ls_font-strikethrough EQ abap_true. + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_strike + parent = lo_document ). + lo_element_font->append_child( lo_sub_element ). + ENDIF. + "size + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_sz + parent = lo_document ). + lv_value = ls_font-size. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + "color + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_font-color. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + "name + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_name + parent = lo_document ). + lv_value = ls_font-name. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + "family + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_family + parent = lo_document ). + lv_value = ls_font-family. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + "scheme + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_scheme + parent = lo_document ). + lv_value = ls_font-scheme. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + lo_element_fonts->append_child( lo_element_font ). + " Collect color + APPEND ls_font-color TO lt_colors. + ENDLOOP. + + " create fill elements + LOOP AT lt_fills INTO ls_fill. + lo_element_fill = lo_document->create_simple_element( name = lc_xml_node_fill + parent = lo_document ). + "pattern + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_patternfill + parent = lo_document ). + lv_value = ls_fill-filltype. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_patterntype + value = lv_value ). + " fgcolor + IF ls_fill-fgcolor IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_fgcolor + parent = lo_document ). + lv_value = ls_fill-fgcolor. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + + lo_sub_element->append_child( lo_sub_element_2 )." fgcolor + ENDIF. + " bgcolor + IF ls_fill-bgcolor IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_bgcolor + parent = lo_document ). + lv_value = ls_fill-bgcolor. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_indexed + value = lv_value ). + + lo_sub_element->append_child( lo_sub_element_2 )." bgcolor + ENDIF. + + lo_element_fill->append_child( lo_sub_element )."pattern + lo_element_fills->append_child( lo_element_fill ). + " Collect color + IF ls_fill-fgcolor IS NOT INITIAL. + APPEND ls_fill-fgcolor TO lt_colors. + ENDIF. + ENDLOOP. + + " create border elements + LOOP AT lt_borders INTO ls_border. + lo_element_border = lo_document->create_simple_element( name = lc_xml_node_border + parent = lo_document ). + "left + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_left + parent = lo_document ). + IF ls_border-left_style IS NOT INITIAL. + lv_value = ls_border-left_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + IF ls_border-left_color IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_border-left_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color +* Collect color + APPEND ls_border-left_color TO lt_colors. + ENDIF. + lo_element_border->append_child( lo_sub_element ). + + "right + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_right + parent = lo_document ). + IF ls_border-right_style IS NOT INITIAL. + lv_value = ls_border-right_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + IF ls_border-right_color IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_border-right_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color +* Collect color + APPEND ls_border-right_color TO lt_colors. + ENDIF. + lo_element_border->append_child( lo_sub_element ). + + "top + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_top + parent = lo_document ). + IF ls_border-top_style IS NOT INITIAL. + lv_value = ls_border-top_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + IF ls_border-top_color IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_border-top_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color +* Collect color + APPEND ls_border-top_color TO lt_colors. + ENDIF. + lo_element_border->append_child( lo_sub_element ). + + "bottom + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_bottom + parent = lo_document ). + IF ls_border-bottom_style IS NOT INITIAL. + lv_value = ls_border-bottom_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + IF ls_border-bottom_color IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_border-bottom_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color +* Collect color + APPEND ls_border-bottom_color TO lt_colors. + ENDIF. + lo_element_border->append_child( lo_sub_element ). + + "diagonal + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_diagonal + parent = lo_document ). + IF ls_border-diagonal_style IS NOT INITIAL. + lv_value = ls_border-diagonal_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + IF ls_border-diagonal_color IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_border-diagonal_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color +* Collect color + APPEND ls_border-diagonal_color TO lt_colors. + ENDIF. + lo_element_border->append_child( lo_sub_element ). + lo_element_borders->append_child( lo_element_border ). + ENDLOOP. + + " update attribute "count" + DESCRIBE TABLE lt_fonts LINES lv_fonts_count. + MOVE lv_fonts_count TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_fonts->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + DESCRIBE TABLE lt_fills LINES lv_fills_count. + MOVE lv_fills_count TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_fills->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + DESCRIBE TABLE lt_borders LINES lv_borders_count. + MOVE lv_borders_count TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_borders->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + DESCRIBE TABLE lt_cellxfs LINES lv_cellxfs_count. + MOVE lv_cellxfs_count TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_cellxfs->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + + " Append to root node + lo_element_root->append_child( lo_element_fonts ). + lo_element_root->append_child( lo_element_fills ). + lo_element_root->append_child( lo_element_borders ). + + " cellstylexfs node + lo_element = lo_document->create_simple_element( name = lc_xml_node_cellstylexfs + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_count + value = '1' ). + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_xf + parent = lo_document ). + + lo_sub_element->set_attribute_ns( name = lc_xml_attr_numfmtid + value = '0' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_fontid + value = '0' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_fillid + value = '0' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_borderid + value = '0' ). + + lo_element->append_child( lo_sub_element ). + lo_element_root->append_child( lo_element ). + + LOOP AT lt_cellxfs INTO ls_cellxfs. + lo_element = lo_document->create_simple_element( name = lc_xml_node_xf + parent = lo_document ). + MOVE ls_cellxfs-numfmtid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_numfmtid + value = lv_value ). + MOVE ls_cellxfs-fontid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_fontid + value = lv_value ). + MOVE ls_cellxfs-fillid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_fillid + value = lv_value ). + MOVE ls_cellxfs-borderid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_borderid + value = lv_value ). + MOVE ls_cellxfs-xfid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_xfid + value = lv_value ). + IF ls_cellxfs-applynumberformat EQ 1. + MOVE ls_cellxfs-applynumberformat TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_applynumberformat + value = lv_value ). + ENDIF. + IF ls_cellxfs-applyfont EQ 1. + MOVE ls_cellxfs-applyfont TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_applyfont + value = lv_value ). + ENDIF. + IF ls_cellxfs-applyfill EQ 1. + MOVE ls_cellxfs-applyfill TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_applyfill + value = lv_value ). + ENDIF. + IF ls_cellxfs-applyborder EQ 1. + MOVE ls_cellxfs-applyborder TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_applyborder + value = lv_value ). + ENDIF. + lo_element_cellxfs->append_child( lo_element ). + ENDLOOP. + + lo_element_root->append_child( lo_element_cellxfs ). + + " cellStyles node + lo_element = lo_document->create_simple_element( name = lc_xml_node_cellstyles + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_count + value = '1' ). + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_cellstyle + parent = lo_document ). + + lo_sub_element->set_attribute_ns( name = lc_xml_attr_name + value = 'Normal' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_xfid + value = '0' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_builtinid + value = '0' ). + + lo_element->append_child( lo_sub_element ). + lo_element_root->append_child( lo_element ). + + " dxfs node + lo_element = lo_document->create_simple_element( name = lc_xml_node_dxfs + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_count + value = '0' ). + lo_element_root->append_child( lo_element ). + + " tableStyles node + lo_element = lo_document->create_simple_element( name = lc_xml_node_tablestyles + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_count + value = '0' ). + lo_element->set_attribute_ns( name = lc_xml_attr_defaulttablestyle + value = 'TableStyleMedium9' ). + lo_element->set_attribute_ns( name = lc_xml_attr_defaultpivotstyle + value = 'PivotStyleLight16' ). + lo_element_root->append_child( lo_element ). + + " colors node + lo_element = lo_document->create_simple_element( name = lc_xml_node_colors + parent = lo_document ). + " mruColors node + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_mrucolors + parent = lo_document ). + + SORT lt_colors. + DELETE ADJACENT DUPLICATES FROM lt_colors. + + LOOP AT lt_colors INTO ls_color. + " color node + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color node + ENDLOOP. + + lo_element->append_child( lo_sub_element )." mruColors node + lo_element_root->append_child( lo_element )." colors node + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD create_xl_theme. + + +* @TODO * + + DATA: lv_xl_theme TYPE string, + lv_xl_theme_01 TYPE string, + lv_xl_theme_02 TYPE string, + lv_xl_theme_03 TYPE string, + lv_xl_theme_04 TYPE string, + lv_xl_theme_05 TYPE string, + lv_xl_theme_06 TYPE string, + lv_xl_theme_07 TYPE string, + lv_xl_theme_08 TYPE string, + lv_xl_theme_09 TYPE string, + lv_xl_theme_10 TYPE string, + lv_xl_theme_11 TYPE string, + lv_xl_theme_12 TYPE string, + lv_xl_theme_13 TYPE string, + lv_xl_theme_14 TYPE string, + lv_xl_theme_15 TYPE string, + lv_xl_theme_16 TYPE string, + lv_xl_theme_17 TYPE string, + lv_xl_theme_18 TYPE string, + lv_xl_theme_19 TYPE string, + lv_xl_theme_20 TYPE string, + lv_xl_theme_21 TYPE string, + lv_xl_theme_22 TYPE string, + lv_xl_theme_23 TYPE string, + lv_xl_theme_24 TYPE string, + lv_xl_theme_25 TYPE string, + lv_xl_theme_26 TYPE string, + lv_xl_theme_27 TYPE string, + lv_xl_theme_28 TYPE string, + lv_xl_theme_29 TYPE string, + lv_xl_theme_30 TYPE string, + lv_xl_theme_31 TYPE string, + lv_xl_theme_32 TYPE string. + + lv_xl_theme_01 = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'. + lv_xl_theme_02 = '<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme"><a:themeElements><a:clrScheme name="Office"><a:dk1><a:sysClr val="windowText" lastClr="000000"/></a:dk1><a:lt1><a:sysClr val="window" '. + lv_xl_theme_03 = 'lastClr="FFFFFF"/></a:lt1><a:dk2><a:srgbClr val="1F497D"/></a:dk2><a:lt2><a:srgbClr val="EEECE1"/></a:lt2><a:accent1><a:srgbClr val="4F81BD"/></a:accent1><a:accent2><a:srgbClr val="C0504D"/></a:accent2><a:accent3><a:srgbClr '. + lv_xl_theme_04 = 'val="9BBB59"/></a:accent3><a:accent4><a:srgbClr val="8064A2"/></a:accent4><a:accent5><a:srgbClr val="4BACC6"/></a:accent5><a:accent6><a:srgbClr val="F79646"/></a:accent6><a:hlink><a:srgbClr val="0000FF"/></a:hlink><a:folHlink>'. + lv_xl_theme_05 = '<a:srgbClr val="800080"/></a:folHlink></a:clrScheme><a:fontScheme name="Office"><a:majorFont><a:latin typeface="Cambria"/><a:ea typeface=""/><a:cs typeface=""/>'. + lv_xl_theme_06 = '<a:font script="Arab" typeface="Times New Roman"/><a:font script="Hebr" typeface="Times New Roman"/><a:font script="Thai" '. + lv_xl_theme_07 = 'typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="MoolBoran"/><a:font script="Knda" typeface="Tunga"/><a:font '. + lv_xl_theme_08 = 'script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font script="Tibt" '. + lv_xl_theme_09 = 'typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" '. + lv_xl_theme_10 = 'typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" '. + lv_xl_theme_11 = 'typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Times New Roman"/><a:font script="Uigh" typeface="Microsoft Uighur"/></a:majorFont><a:minorFont><a:latin typeface="Calibri"/><a:ea typeface=""/><a:cs typeface=""/>'. + lv_xl_theme_12 = '<a:font script="Arab" typeface="Arial"/><a:font script="Hebr" '. + lv_xl_theme_13 = 'typeface="Arial"/><a:font script="Thai" typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="DaunPenh"/><a:font '. + lv_xl_theme_14 = 'script="Knda" typeface="Tunga"/><a:font script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font '. + lv_xl_theme_15 = 'script="Tibt" typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" '. + lv_xl_theme_16 = 'typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" '. + lv_xl_theme_17 = 'typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Arial"/><a:font script="Uigh" typeface="Microsoft Uighur"/></a:minorFont></a:fontScheme><a:fmtScheme name="Office"><a:fillStyleLst><a:solidFill><a:schemeClr val="phClr"/>'. + lv_xl_theme_18 = '</a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="50000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="35000"><a:schemeClr val="phClr"><a:tint val="37000"/><a:satMod '. + lv_xl_theme_19 = 'val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="15000"/><a:satMod val="350000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="1"/></a:gradFill><a:gradFill rotWithShape="1">'. + lv_xl_theme_20 = '<a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:shade val="51000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs pos="80000"><a:schemeClr val="phClr"><a:shade val="93000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs '. + lv_xl_theme_21 = 'pos="100000"><a:schemeClr val="phClr"><a:shade val="94000"/><a:satMod val="135000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="0"/></a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w="9525" cap="flat" cmpd="sng" '. + lv_xl_theme_22 = 'algn="ctr"><a:solidFill><a:schemeClr val="phClr"><a:shade val="95000"/><a:satMod val="105000"/></a:schemeClr></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="25400" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr '. + lv_xl_theme_23 = 'val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="38100" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln></a:lnStyleLst><a:effectStyleLst>'. + lv_xl_theme_24 = '<a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" dist="20000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="38000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst>'. + lv_xl_theme_25 = '<a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" '. + lv_xl_theme_26 = 'dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst><a:scene3d><a:camera prst="orthographicFront"><a:rot lat="0" lon="0" rev="0"/></a:camera><a:lightRig '. + lv_xl_theme_27 = 'rig="threePt" dir="t"><a:rot lat="0" lon="0" rev="1200000"/></a:lightRig></a:scene3d><a:sp3d><a:bevelT w="63500" h="25400"/></a:sp3d></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val="phClr"/>'. + lv_xl_theme_28 = '</a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="40000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="40000"><a:schemeClr val="phClr"><a:tint val="45000"/><a:shade '. + lv_xl_theme_29 = 'val="99000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="20000"/><a:satMod val="255000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" '. + lv_xl_theme_30 = 't="-80000" r="50000" b="180000"/></a:path></a:gradFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="80000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr '. + lv_xl_theme_31 = 'val="phClr"><a:shade val="30000"/><a:satMod val="200000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" t="50000" r="50000" b="50000"/></a:path></a:gradFill></a:bgFillStyleLst></a:fmtScheme>'. + lv_xl_theme_32 = '</a:themeElements><a:objectDefaults/><a:extraClrSchemeLst/></a:theme>'. + + + CONCATENATE lv_xl_theme_01 lv_xl_theme_02 lv_xl_theme_03 lv_xl_theme_04 lv_xl_theme_05 lv_xl_theme_06 lv_xl_theme_07 lv_xl_theme_08 lv_xl_theme_09 lv_xl_theme_10 lv_xl_theme_11 lv_xl_theme_12 lv_xl_theme_13 lv_xl_theme_14 lv_xl_theme_15 + lv_xl_theme_16 lv_xl_theme_17 lv_xl_theme_18 lv_xl_theme_19 lv_xl_theme_20 lv_xl_theme_21 lv_xl_theme_22 lv_xl_theme_23 lv_xl_theme_24 lv_xl_theme_25 lv_xl_theme_26 lv_xl_theme_27 lv_xl_theme_28 lv_xl_theme_29 lv_xl_theme_30 + lv_xl_theme_31 lv_xl_theme_32 + INTO lv_xl_theme SEPARATED BY space. + + CALL FUNCTION 'SCMS_STRING_TO_XSTRING' + EXPORTING + text = lv_xl_theme + IMPORTING + buffer = ep_content. + + +ENDMETHOD. + + + + METHOD create_xl_workbook. + + +** Constant node name + DATA: lc_xml_node_workbook TYPE string VALUE 'workbook', + lc_xml_node_fileversion TYPE string VALUE 'fileVersion', + lc_xml_node_workbookpr TYPE string VALUE 'workbookPr', + lc_xml_node_bookviews TYPE string VALUE 'bookViews', + lc_xml_node_workbookview TYPE string VALUE 'workbookView', + lc_xml_node_sheets TYPE string VALUE 'sheets', + lc_xml_node_sheet TYPE string VALUE 'sheet', + lc_xml_node_calcpr TYPE string VALUE 'calcPr', + " Node attributes + lc_xml_attr_appname TYPE string VALUE 'appName', + lc_xml_attr_lastedited TYPE string VALUE 'lastEdited', + lc_xml_attr_lowestedited TYPE string VALUE 'lowestEdited', + lc_xml_attr_rupbuild TYPE string VALUE 'rupBuild', + lc_xml_attr_themeversion TYPE string VALUE 'defaultThemeVersion', + lc_xml_attr_xwindow TYPE string VALUE 'xWindow', + lc_xml_attr_ywindow TYPE string VALUE 'yWindow', + lc_xml_attr_windowwidth TYPE string VALUE 'windowWidth', + lc_xml_attr_windowheight TYPE string VALUE 'windowHeight', + lc_xml_attr_name TYPE string VALUE 'name', + lc_xml_attr_sheetid TYPE string VALUE 'sheetId', + lc_xml_attr_id TYPE string VALUE 'id', + lc_xml_attr_calcid TYPE string VALUE 'calcId', + " Node namespace + lc_r_ns TYPE string VALUE 'r', + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main', + lc_xml_node_r_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships', + " Node id + lc_xml_node_ridx_id TYPE string VALUE 'rId#'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_sub_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + + DATA: lv_xml_node_ridx_id TYPE string, + lv_value TYPE string, + lv_syindex TYPE string. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_workbook + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:r' + value = lc_xml_node_r_ns ). + +********************************************************************** +* STEP 4: Create subnode + " fileVersion node + lo_element = lo_document->create_simple_element( name = lc_xml_node_fileversion + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_appname + value = 'xl' ). + lo_element->set_attribute_ns( name = lc_xml_attr_lastedited + value = '4' ). + lo_element->set_attribute_ns( name = lc_xml_attr_lowestedited + value = '4' ). + lo_element->set_attribute_ns( name = lc_xml_attr_rupbuild + value = '4506' ). + lo_element_root->append_child( lo_element ). + + " fileVersion node + lo_element = lo_document->create_simple_element( name = lc_xml_node_workbookpr + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_themeversion + value = '124226' ). + lo_element_root->append_child( lo_element ). + + " bookviews node + lo_element = lo_document->create_simple_element( name = lc_xml_node_bookviews + parent = lo_document ). + " bookview node + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_workbookview + parent = lo_document ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_xwindow + value = '120' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_ywindow + value = '120' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_windowwidth + value = '19035' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_windowheight + value = '8445' ). + lo_element->append_child( lo_sub_element )." bookview node + lo_element_root->append_child( lo_element )." bookviews node + + " sheets node + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheets + parent = lo_document ). + lo_iterator = excel->get_worksheets_iterator( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + " sheet node + lo_sub_element = lo_document->create_simple_element_ns( name = lc_xml_node_sheet + parent = lo_document ). + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + lv_value = lo_worksheet->title. + lv_syindex = sy-index. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_name + value = lv_value ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_sheetid + value = lv_syindex ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_id + prefix = lc_r_ns + value = lv_xml_node_ridx_id ). + lo_element->append_child( lo_sub_element ). " sheet node + ENDWHILE. + lo_element_root->append_child( lo_element )." sheets node + + " calcPr node + lo_element = lo_document->create_simple_element( name = lc_xml_node_calcpr + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_calcid + value = '125725' ). + lo_element_root->append_child( lo_element ). + + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + + METHOD flag2bool. + + + IF ip_flag EQ abap_true. + ep_boolean = 'true'. + ELSE. + ep_boolean = 'false'. + ENDIF. +ENDMETHOD. + + + + + METHOD get_shared_string_index. + + + DATA ls_shared_string TYPE zexcel_s_shared_string. + + READ TABLE shared_strings INTO ls_shared_string WITH KEY string_value = ip_cell_value. + ep_index = ls_shared_string-string_no. + +ENDMETHOD. + + + + class ZCL_EXCEL definition + public + final + create public . + +*"* public components of class ZCL_EXCEL +*"* do not include other source files here!!! +public section. + + constants C_XLS type ZEXCEL_FORMAT value 'XLS'. "#EC NOTEXT + constants C_XLSX type ZEXCEL_FORMAT value 'XLSX'. "#EC NOTEXT + data PROPERTIES type ref to ZCL_EXCEL_PROPERTIES . + data SECURITY type ref to ZCL_EXCEL_SECURITY . + + methods ADD_NEW_DRAWING + importing + !IP_TITLE type ZEXCEL_SHEET_TITLE optional + returning + value(EO_DRAWING) type ref to ZCL_EXCEL_DRAWING . + methods ADD_NEW_STYLE + returning + value(EO_STYLE) type ref to ZCL_EXCEL_STYLE . + methods ADD_NEW_WORKSHEET + importing + !IP_TITLE type ZEXCEL_SHEET_TITLE optional + returning + value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET . + methods CONSTRUCTOR . + methods GET_ACTIVE_WORKSHEET + returning + value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET . + methods GET_DRAWINGS_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods GET_STYLES_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods GET_WORKSHEETS_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods GET_WORKSHEETS_NAME + returning + value(EP_NAME) type ZEXCEL_WORKSHEETS_NAME . + methods GET_WORKSHEETS_SIZE + returning + value(EP_SIZE) type I . + methods SAVE_AS + importing + !IP_FORMAT type ZEXCEL_FORMAT + returning + value(EP_FILE) type XSTRING . + *"* protected components of class ZABAP_EXCEL +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL +*"* do not include other source files here!!! +private section. + + data DRAWINGS type ref to ZCL_EXCEL_DRAWINGS . + data RANGES type ref to ZCL_EXCEL_RANGES . + data STYLES type ref to ZCL_EXCEL_STYLES . + data WORKSHEETS type ref to ZCL_EXCEL_WORKSHEETS . + *"* 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 + + + + + + + + + + + + METHOD add_new_drawing. + + DATA: lv_guid TYPE guid_16. +* Create default blank worksheet + CREATE OBJECT eo_drawing + EXPORTING + ip_title = ip_title. + drawings->add( eo_drawing ). +ENDMETHOD. + + + + method ADD_NEW_STYLE. + + +* Create default style + CREATE OBJECT eo_style. + styles->add( eo_style ). + +endmethod. + + + + + METHOD add_new_worksheet. + + + DATA: lv_guid TYPE guid_16. +* Create default blank worksheet + CREATE OBJECT eo_worksheet + EXPORTING + ip_title = ip_title. + worksheets->add( eo_worksheet ). + worksheets->active_worksheet = worksheets->size( ). +ENDMETHOD. + + + METHOD constructor. + + + DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style TYPE REF TO zcl_excel_style. + +* Inizialize instance objects + CREATE OBJECT properties. + CREATE OBJECT security. + CREATE OBJECT worksheets. + CREATE OBJECT ranges. + CREATE OBJECT styles. + CREATE OBJECT drawings. + + me->add_new_worksheet( ). + me->add_new_style( ). " Standard style + lo_style = me->add_new_style( ). " Standard style with fill gray125 + lo_style->fill->filltype = zcl_excel_style_fill=>c_fill_pattern_gray125. + + +ENDMETHOD. + + + + method GET_ACTIVE_WORKSHEET. + + + eo_worksheet = me->worksheets->get( me->worksheets->active_worksheet ). + +endmethod. + + + + METHOD GET_DRAWINGS_ITERATOR. + + + eo_iterator = me->drawings->get_iterator( ). +ENDMETHOD. + + + + METHOD GET_STYLES_ITERATOR. + + + eo_iterator = me->styles->get_iterator( ). +ENDMETHOD. + + + + METHOD get_worksheets_iterator. + + + eo_iterator = me->worksheets->get_iterator( ). +ENDMETHOD. + + + + METHOD GET_WORKSHEETS_NAME. + + + ep_name = me->worksheets->name. + +ENDMETHOD. + + + + METHOD get_worksheets_size. + + + ep_size = me->worksheets->size( ). + +ENDMETHOD. + + + + + METHOD save_as. + + + DATA lo_excel_writer_2007 TYPE REF TO zcl_excel_writer_2007. + +* Determine the output engine to use + CASE ip_format. + WHEN me->c_xlsx. " XLSX for Office 2007 + CREATE OBJECT lo_excel_writer_2007 EXPORTING io_excel = me. + ep_file = lo_excel_writer_2007->create( ). + WHEN OTHERS. + ENDCASE. + +ENDMETHOD. + + + + class ZCL_EXCEL_COMMON definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_COMMON +*"* do not include other source files here!!! +public section. + + class-methods CONVERT_COLUMN2ALPHA + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN + returning + value(EP_COLUMN) type ZEXCEL_CELL_COLUMN_ALPHA . + class-methods CONVERT_COLUMN2INT + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + returning + value(EP_COLUMN) type ZEXCEL_CELL_COLUMN . + *"* protected components of class ZCL_EXCEL_COMMON +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_COMMON +*"* do not include other source files here!!! +private section. + + class-data C_EXCEL_COL_MODULE type INT2 value 64. "#EC NOTEXT . + *"* 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 + + + + + METHOD convert_column2alpha. + + + DATA: lo_conv TYPE REF TO cl_abap_conv_in_ce, + lv_uccpi TYPE i, + lv_text TYPE sychar02, + lv_module TYPE int4, + lv_column TYPE zexcel_cell_column. + + lv_column = ip_column. + WHILE lv_column GT 0. + lv_module = ( lv_column - 1 ) MOD 26. + lv_uccpi = 65 + lv_module. + + lv_column = ( lv_column - lv_module ) / 26. + + lv_text = cl_abap_conv_in_ce=>uccpi( lv_uccpi ). + CONCATENATE lv_text ep_column INTO ep_column. + ENDWHILE. + +ENDMETHOD. + + + + + METHOD convert_column2int. + + + DATA: lv_uccpi TYPE i, + lv_char TYPE c, + lv_column(2) TYPE c. + +* Calculate most significant letter + lv_char = ip_column+1(1). + IF lv_char IS NOT INITIAL. "To avoid the first 26 column that have only a char in first position + ep_column = cl_abap_conv_out_ce=>uccpi( lv_char ). + + ep_column = ep_column MOD ( zcl_excel_common=>c_excel_col_module ). + + lv_char = ip_column(1). + lv_uccpi = cl_abap_conv_out_ce=>uccpi( lv_char ). + + lv_uccpi = ( lv_uccpi MOD ( zcl_excel_common=>c_excel_col_module ) ) * 26. + + ep_column = ep_column + lv_uccpi. + ELSE. + lv_char = ip_column(1). + ep_column = cl_abap_conv_out_ce=>uccpi( lv_char ). + ep_column = ep_column - zcl_excel_common=>c_excel_col_module. + ENDIF. + +ENDMETHOD. + + + + class ZCL_EXCEL_DRAWING definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_DRAWING +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + data TITLE type ZEXCEL_SHEET_TITLE value 'Worksheet'. "#EC NOTEXT . + data X_REFERENCES type CHAR1 . + data Y_REFERENCES type CHAR1 . + data GRAPH_TYPE type ZEXCEL_GRAPH_TYPE . + + methods CONSTRUCTOR + importing + !IP_TITLE type ZEXCEL_SHEET_TITLE optional . + methods GET_GUID + returning + value(EP_GUID) type GUID_16 . + *"* protected components of class ZABAP_EXCEL_WORKSHEET +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_DRAWING +*"* do not include other source files here!!! +private section. + + data GUID type GUID_16 . + data LOWER_CELL type ZEXCEL_S_CELL_DATA . + data UPPER_CELL type ZEXCEL_S_CELL_DATA . + constants C_EXCEL_COL_MODULE type INT2 value 64. "#EC NOTEXT + + methods CONVERT_COLUMN2ALPHA + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN + returning + value(EP_COLUMN) type ZEXCEL_CELL_COLUMN_ALPHA . + methods CONVERT_COLUMN2INT + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + returning + value(EP_COLUMN) type ZEXCEL_CELL_COLUMN . + *"* 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 CONSTRUCTOR. + CALL FUNCTION 'GUID_CREATE' + IMPORTING + ev_guid_16 = me->guid. + + IF ip_title IS NOT INITIAL. + title = ip_title. + ELSE. + title = me->guid. + ENDIF. + +* inizialize dimension range + lower_cell-cell_row = 1. + lower_cell-cell_column = 1. + upper_cell-cell_row = 1. + upper_cell-cell_column = 1. +ENDMETHOD. + + + + + METHOD CONVERT_COLUMN2ALPHA. + DATA: lo_conv TYPE REF TO cl_abap_conv_in_ce, + lv_uccpi TYPE i, + lv_text TYPE sychar02, + lv_module TYPE int4, + lv_column TYPE zexcel_cell_column. + + lv_column = ip_column. + WHILE lv_column GT 0. + lv_module = ( lv_column - 1 ) MOD 26. + lv_uccpi = 65 + lv_module. + + lv_column = ( lv_column - lv_module ) / 26. + + lv_text = cl_abap_conv_in_ce=>uccpi( lv_uccpi ). + CONCATENATE lv_text ep_column INTO ep_column. + ENDWHILE. + +ENDMETHOD. + + + + + METHOD CONVERT_COLUMN2INT. + + DATA: lv_uccpi TYPE i, + lv_char TYPE c, + lv_column(2) TYPE c. + +* Calculate most significant letter + lv_char = ip_column+1(1). + IF lv_char IS NOT INITIAL. "To avoid the first 26 column that have only a char in first position + ep_column = cl_abap_conv_out_ce=>uccpi( lv_char ). + + ep_column = ep_column MOD ( me->c_excel_col_module ). + + lv_char = ip_column(1). + lv_uccpi = cl_abap_conv_out_ce=>uccpi( lv_char ). + + lv_uccpi = ( lv_uccpi MOD ( me->c_excel_col_module ) ) * 26. + + ep_column = ep_column + lv_uccpi. + ELSE. + lv_char = ip_column(1). + ep_column = cl_abap_conv_out_ce=>uccpi( lv_char ). + ep_column = ep_column - me->c_excel_col_module. + ENDIF. + +ENDMETHOD. + + + + method GET_GUID. + + ep_guid = me->guid. + +endmethod. + + + + class ZCL_EXCEL_DRAWINGS definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_DRAWINGS +*"* do not include other source files here!!! +public section. + + methods ADD + importing + !IP_DRAWING type ref to ZCL_EXCEL_DRAWING . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type ZEXCEL_ACTIVE_WORKSHEET + returning + value(EO_DRAWING) type ref to ZCL_EXCEL_DRAWING . + methods GET_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods IS_EMPTY + returning + value(IS_EMPTY) type FLAG . + methods REMOVE + importing + !IP_DRAWING type ref to ZCL_EXCEL_DRAWING . + methods SIZE + returning + value(EP_SIZE) type I . + *"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_DRAWINGS +*"* do not include other source files here!!! +private section. + + data DRAWINGS type ref to CL_OBJECT_COLLECTION . + *"* 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 + + + + METHOD add. + + + drawings->add( ip_drawing ). +ENDMETHOD. + + + METHOD clear. + + + drawings->clear( ). +ENDMETHOD. + + + METHOD constructor. + + + CREATE OBJECT drawings. + +ENDMETHOD. + + + + + METHOD get. + + + DATA lv_index TYPE i. + lv_index = ip_index. + eo_drawing ?= drawings->if_object_collection~get( lv_index ). +ENDMETHOD. + + + + METHOD get_iterator. + + + eo_iterator ?= drawings->if_object_collection~get_iterator( ). +ENDMETHOD. + + + + METHOD is_empty. + + + is_empty = drawings->if_object_collection~is_empty( ). +ENDMETHOD. + + + + METHOD remove. + + + drawings->remove( ip_drawing ). +ENDMETHOD. + + + + METHOD size. + + + ep_size = drawings->if_object_collection~size( ). +ENDMETHOD. + + + + class ZCL_EXCEL_PROPERTIES definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_PROPERTIES +*"* do not include other source files here!!! +public section. + + data CREATOR type ZEXCEL_CREATOR value 'Unknown Creator'. "#EC NOTEXT . + data LASTMODIFIEDBY type ZEXCEL_CREATOR value 'Unknown Creator'. "#EC NOTEXT . + data CREATED type TIMESTAMPL . + data MODIFIED type TIMESTAMPL . + data TITLE type ZEXCEL_TITLE value 'Untitled Spreadsheet'. "#EC NOTEXT . + data SUBJECT type ZEXCEL_SUBJECT . + data DESCRIPTION type ZEXCEL_DESCRIPTION . + data KEYWORDS type ZEXCEL_KEYWORDS . + data CATEGORY type ZEXCEL_CATEGORY . + data COMPANY type ZEXCEL_COMPANY value 'Microsoft Corporation'. "#EC NOTEXT . + data APPLICATION type ZEXCEL_APPLICATION value 'Microsoft Excel'. "#EC NOTEXT . + data DOCSECURITY type ZEXCEL_DOCSECURITY value '0'. "#EC NOTEXT . + data SCALECROP type ZEXCEL_SCALECROP value ''. "#EC NOTEXT . + data LINKSUPTODATE type FLAG . + data SHAREDDOC type FLAG . + data HYPERLINKSCHANGED type FLAG . + data APPVERSION type ZEXCEL_APPVERSION value '12.0000'. "#EC NOTEXT . + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_PROPERTIES +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_PROPERTIES +*"* do not include other source files here!!! +private section. + *"* 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 + + + + + + + + + + + + + + + + + + + METHOD CONSTRUCTOR. + + DATA: lv_timestamp TYPE timestampl. + + GET TIME STAMP FIELD lv_timestamp. + created = lv_timestamp. + modified = lv_timestamp. + +ENDMETHOD. + + + + class ZCL_EXCEL_RANGE definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_RANGE +*"* do not include other source files here!!! +public section. + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_WORKSHEET +*"* do not include other source files here!!! +protected section. + *"* private components of class ZABAP_EXCEL_WORKSHEET +*"* do not include other source files here!!! +private section. + *"* 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 + + method CONSTRUCTOR. +endmethod. + + + + class ZCL_EXCEL_RANGES definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_RANGES +*"* do not include other source files here!!! +public section. + + methods ADD + importing + !IP_RANGE type ref to ZCL_EXCEL_RANGE . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type I + returning + value(EO_RANGE) type ref to ZCL_EXCEL_RANGE . + methods GET_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods IS_EMPTY + returning + value(IS_EMPTY) type FLAG . + methods REMOVE + importing + !IP_RANGE type ref to ZCL_EXCEL_RANGE . + methods SIZE + returning + value(EP_SIZE) type I . + *"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. + *"* private components of class ZABAP_EXCEL_RANGES +*"* do not include other source files here!!! +private section. + + data RANGES type ref to CL_OBJECT_COLLECTION . + *"* 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 + + + + METHOD ADD. + ranges->add( ip_range ). +ENDMETHOD. + + + METHOD CLEAR. + ranges->clear( ). +ENDMETHOD. + + + method CONSTRUCTOR. +endmethod. + + + + + METHOD GET. + eo_range ?= ranges->if_object_collection~get( ip_index ). +ENDMETHOD. + + + + METHOD GET_ITERATOR. + eo_iterator ?= ranges->if_object_collection~get_iterator( ). +ENDMETHOD. + + + + METHOD IS_EMPTY. + is_empty = ranges->if_object_collection~is_empty( ). +ENDMETHOD. + + + + METHOD REMOVE. + ranges->remove( ip_range ). +ENDMETHOD. + + + + METHOD SIZE. + ep_size = ranges->if_object_collection~size( ). +ENDMETHOD. + + + + class ZCL_EXCEL_SECURITY definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_SECURITY +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + data LOCKREVISION type FLAG . + data LOCKSTRUCTURE type FLAG . + data LOCKWINDOWS type FLAG . + data REVISIONSPASSWORD type ZEXCEL_REVISIONSPASSWORD . + data WORKBOOKPASSWORD type ZEXCEL_WORKBOOKPASSWORD . + + methods CONSTRUCTOR . + methods IS_SECURITY_ENABLED + returning + value(EP_SECURITY_ENABLED) type FLAG . + *"* protected components of class ZABAP_EXCEL_SECURITY +*"* do not include other source files here!!! +protected section. + *"* private components of class ZABAP_EXCEL_SECURITY +*"* do not include other source files here!!! +private section. + *"* 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 CONSTRUCTOR. +endmethod. + + + + METHOD IS_SECURITY_ENABLED. + IF lockrevision EQ abap_true OR lockstructure EQ abap_true OR lockwindows EQ abap_true. + ep_security_enabled = abap_true. + ENDIF. +ENDMETHOD. + + + + class ZCL_EXCEL_SHEET_SETUP definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_SHEET_SETUP +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + constants C_PAPERSIZE_LETTER type ZEXCEL_SHEET_PAPER_SIZE value 1. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_SMALL type ZEXCEL_SHEET_PAPER_SIZE value 2. "#EC NOTEXT + constants C_PAPERSIZE_TABLOID type ZEXCEL_SHEET_PAPER_SIZE value 3. "#EC NOTEXT + constants C_PAPERSIZE_LEDGER type ZEXCEL_SHEET_PAPER_SIZE value 4. "#EC NOTEXT + constants C_PAPERSIZE_LEGAL type ZEXCEL_SHEET_PAPER_SIZE value 5. "#EC NOTEXT + constants C_PAPERSIZE_STATEMENT type ZEXCEL_SHEET_PAPER_SIZE value 6. "#EC NOTEXT + constants C_PAPERSIZE_EXECUTIVE type ZEXCEL_SHEET_PAPER_SIZE value 7. "#EC NOTEXT + constants C_PAPERSIZE_A3 type ZEXCEL_SHEET_PAPER_SIZE value 8. "#EC NOTEXT + constants C_PAPERSIZE_A4 type ZEXCEL_SHEET_PAPER_SIZE value 9. "#EC NOTEXT + constants C_PAPERSIZE_A4_SMALL type ZEXCEL_SHEET_PAPER_SIZE value 10. "#EC NOTEXT + constants C_PAPERSIZE_A5 type ZEXCEL_SHEET_PAPER_SIZE value 11. "#EC NOTEXT + constants C_PAPERSIZE_B4 type ZEXCEL_SHEET_PAPER_SIZE value 12. "#EC NOTEXT + constants C_PAPERSIZE_B5 type ZEXCEL_SHEET_PAPER_SIZE value 13. "#EC NOTEXT + constants C_PAPERSIZE_FOLIO type ZEXCEL_SHEET_PAPER_SIZE value 14. "#EC NOTEXT + constants C_PAPERSIZE_QUARTO type ZEXCEL_SHEET_PAPER_SIZE value 15. "#EC NOTEXT + constants C_PAPERSIZE_STANDARD_1 type ZEXCEL_SHEET_PAPER_SIZE value 16. "#EC NOTEXT + constants C_PAPERSIZE_STANDARD_2 type ZEXCEL_SHEET_PAPER_SIZE value 17. "#EC NOTEXT + constants C_PAPERSIZE_NOTE type ZEXCEL_SHEET_PAPER_SIZE value 18. "#EC NOTEXT + constants C_PAPERSIZE_NO9_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 19. "#EC NOTEXT + constants C_PAPERSIZE_NO10_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 20. "#EC NOTEXT + constants C_PAPERSIZE_NO11_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 21. "#EC NOTEXT + constants C_PAPERSIZE_NO12_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 22. "#EC NOTEXT + constants C_PAPERSIZE_NO14_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 23. "#EC NOTEXT + constants C_PAPERSIZE_C type ZEXCEL_SHEET_PAPER_SIZE value 24. "#EC NOTEXT + constants C_PAPERSIZE_D type ZEXCEL_SHEET_PAPER_SIZE value 25. "#EC NOTEXT + constants C_PAPERSIZE_E type ZEXCEL_SHEET_PAPER_SIZE value 26. "#EC NOTEXT + constants C_PAPERSIZE_DL_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 27. "#EC NOTEXT + constants C_PAPERSIZE_C5_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 28. "#EC NOTEXT + constants C_PAPERSIZE_C3_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 29. "#EC NOTEXT + constants C_PAPERSIZE_C4_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 30. "#EC NOTEXT + constants C_PAPERSIZE_C6_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 31. "#EC NOTEXT + constants C_PAPERSIZE_C65_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 32. "#EC NOTEXT + constants C_PAPERSIZE_B4_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 33. "#EC NOTEXT + constants C_PAPERSIZE_B5_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 34. "#EC NOTEXT + constants C_PAPERSIZE_B6_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 35. "#EC NOTEXT + constants C_PAPERSIZE_ITALY_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 36. "#EC NOTEXT + constants C_PAPERSIZE_MONARCH_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 37. "#EC NOTEXT + constants C_PAPERSIZE_6_3_4_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 38. "#EC NOTEXT + constants C_PAPERSIZE_US_STD_FANFOLD type ZEXCEL_SHEET_PAPER_SIZE value 39. "#EC NOTEXT + constants C_PAPERSIZE_DE_STD_FANFOLD type ZEXCEL_SHEET_PAPER_SIZE value 40. "#EC NOTEXT + constants C_PAPERSIZE_DE_LEG_FANFOLD type ZEXCEL_SHEET_PAPER_SIZE value 41. "#EC NOTEXT + constants C_PAPERSIZE_ISO_B4 type ZEXCEL_SHEET_PAPER_SIZE value 42. "#EC NOTEXT + constants C_PAPERSIZE_JPN_DBL_POSTCARD type ZEXCEL_SHEET_PAPER_SIZE value 43. "#EC NOTEXT + constants C_PAPERSIZE_STANDARD_PAPER_1 type ZEXCEL_SHEET_PAPER_SIZE value 44. "#EC NOTEXT + constants C_PAPERSIZE_STANDARD_PAPER_2 type ZEXCEL_SHEET_PAPER_SIZE value 45. "#EC NOTEXT + constants C_PAPERSIZE_STANDARD_PAPER_3 type ZEXCEL_SHEET_PAPER_SIZE value 46. "#EC NOTEXT + constants C_PAPERSIZE_INVITE_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 47. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 48. "#EC NOTEXT + constants C_PAPERSIZE_LEGAL_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 49. "#EC NOTEXT + constants C_PAPERSIZE_TABL_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 50. "#EC NOTEXT + constants C_PAPERSIZE_A4_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 51. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 52. "#EC NOTEXT + constants C_PAPERSIZE_A4_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 53. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_EXTV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 54. "#EC NOTEXT + constants C_PAPERSIZE_SUPERA_A4_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 55. "#EC NOTEXT + constants C_PAPERSIZE_SUPERB_A3_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 56. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_PLUS_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 57. "#EC NOTEXT + constants C_PAPERSIZE_A4_PLUS_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 58. "#EC NOTEXT + constants C_PAPERSIZE_A5_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 59. "#EC NOTEXT + constants C_PAPERSIZE_JIS_B5_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 60. "#EC NOTEXT + constants C_PAPERSIZE_A3_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 61. "#EC NOTEXT + constants C_PAPERSIZE_A5_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 62. "#EC NOTEXT + constants C_PAPERSIZE_ISO_B5_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 63. "#EC NOTEXT + constants C_PAPERSIZE_A2_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 64. "#EC NOTEXT + constants C_PAPERSIZE_A3_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 65. "#EC NOTEXT + constants C_PAPERSIZE_A3_EXTRA_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 66. "#EC NOTEXT + constants C_ORIENTATION_DEFAULT type ZEXCEL_SHEET_ORIENATATION value 'default'. "#EC NOTEXT + constants C_ORIENTATION_LANDSCAPE type ZEXCEL_SHEET_ORIENATATION value 'landscape'. "#EC NOTEXT + constants C_ORIENTATION_PORTRAIT type ZEXCEL_SHEET_ORIENATATION value 'portrait'. "#EC NOTEXT + data ORIENTATION type ZEXCEL_SHEET_ORIENATATION . + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_STYLE +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_SHEET_SETUP +*"* do not include other source files here!!! +private section. + *"* 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 constructor. + orientation = me->c_orientation_default. +ENDMETHOD. + + + + class ZCL_EXCEL_STYLE definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE +*"* do not include other source files here!!! +public section. + + data FONT type ref to ZCL_EXCEL_STYLE_FONT . + data FILL type ref to ZCL_EXCEL_STYLE_FILL . + data BORDERS type ref to ZCL_EXCEL_STYLE_BORDERS . + data NUMBER_FORMAT type ref to ZCL_EXCEL_STYLE_NUMBER_FORMAT . + + methods CONSTRUCTOR . + methods GET_GUID + returning + value(EP_GUID) type ZEXCEL_CELL_STYLE . + *"* protected components of class ZABAP_EXCEL_STYLE +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE +*"* do not include other source files here!!! +private section. + + data ALIGNMENT type ref to ZCL_EXCEL_STYLE_ALIGNMENT . + data PROTECTION type ref to ZCL_EXCEL_STYLE_PROTECTION . + data GUID type ZEXCEL_CELL_STYLE . + *"* 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 + + + + + + + + + METHOD constructor. + + + CREATE OBJECT font. + CREATE OBJECT fill. + CREATE OBJECT borders. + CREATE OBJECT alignment. + CREATE OBJECT number_format. + CREATE OBJECT protection. + + CALL FUNCTION 'GUID_CREATE' + IMPORTING + ev_guid_16 = me->guid. + +ENDMETHOD. + + + + METHOD get_guid. + + + ep_guid = me->guid. +ENDMETHOD. + + + + class ZCL_EXCEL_STYLES definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLES +*"* do not include other source files here!!! +public section. + + methods ADD + importing + !IP_STYLE type ref to ZCL_EXCEL_STYLE . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type I + returning + value(EO_STYLE) type ref to ZCL_EXCEL_STYLE . + methods GET_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods IS_EMPTY + returning + value(IS_EMPTY) type FLAG . + methods REMOVE + importing + !IP_STYLE type ref to ZCL_EXCEL_STYLE . + methods SIZE + returning + value(EP_SIZE) type I . + methods REGISTER_NEW_STYLE + importing + !IO_STYLE type ref to ZCL_EXCEL_STYLE + returning + value(EP_STYLE_CODE) type I . + *"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLES +*"* do not include other source files here!!! +private section. + + data STYLES type ref to CL_OBJECT_COLLECTION . + *"* 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 + + + + METHOD add. + + + styles->add( ip_style ). +ENDMETHOD. + + + METHOD clear. + + + styles->clear( ). +ENDMETHOD. + + + METHOD constructor. + + + CREATE OBJECT styles. +ENDMETHOD. + + + + + METHOD get. + + + eo_style ?= styles->if_object_collection~get( ip_index ). +ENDMETHOD. + + + + METHOD get_iterator. + + + eo_iterator ?= styles->if_object_collection~get_iterator( ). +ENDMETHOD. + + + + METHOD is_empty. + + + is_empty = styles->if_object_collection~is_empty( ). +ENDMETHOD. + + + + + METHOD register_new_style. + + + me->add( io_style ). + ep_style_code = me->size( ) - 1. "style count starts from 0 +ENDMETHOD. + + + + METHOD remove. + + + styles->remove( ip_style ). +ENDMETHOD. + + + + METHOD size. + + + ep_size = styles->if_object_collection~size( ). +ENDMETHOD. + + + + class ZCL_EXCEL_STYLES_CONDITIONAL definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLES_CONDITIONAL +*"* do not include other source files here!!! +public section. + + methods ADD + importing + !IP_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type ZEXCEL_ACTIVE_WORKSHEET + returning + value(EO_STYLE_CONDITIONAL) type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + methods GET_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods IS_EMPTY + returning + value(IS_EMPTY) type FLAG . + methods REMOVE + importing + !IP_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + methods SIZE + returning + value(EP_SIZE) type I . + *"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLES_CONDITIONAL +*"* do not include other source files here!!! +private section. + + data STYLES_CONDITIONAL type ref to CL_OBJECT_COLLECTION . + *"* 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 + + + + METHOD add. + styles_conditional->add( ip_style_conditional ). +ENDMETHOD. + + + METHOD clear. + styles_conditional->clear( ). +ENDMETHOD. + + + METHOD constructor. + + CREATE OBJECT styles_conditional. + +ENDMETHOD. + + + + + METHOD get. + DATA lv_index TYPE i. + lv_index = ip_index. + eo_style_conditional ?= styles_conditional->if_object_collection~get( lv_index ). +ENDMETHOD. + + + + METHOD get_iterator. + eo_iterator ?= styles_conditional->if_object_collection~get_iterator( ). +ENDMETHOD. + + + + METHOD is_empty. + is_empty = styles_conditional->if_object_collection~is_empty( ). +ENDMETHOD. + + + + METHOD remove. + styles_conditional->remove( ip_style_conditional ). +ENDMETHOD. + + + + METHOD size. + ep_size = styles_conditional->if_object_collection~size( ). +ENDMETHOD. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + class ZCL_EXCEL_STYLE_ALIGNMENT definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_ALIGNMENT +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + data HORIZONTAL type ZEXCEL_ALIGNMENT . + data VERTICAL type ZEXCEL_ALIGNMENT . + data TEXTROTATION type ZEXCEL_TEXT_ROTATION value 0. "#EC NOTEXT . + data WRAPTEXT type FLAG . + data SHRINKTOFIT type FLAG . + data INDENT type ZEXCEL_INDENT value 0. "#EC NOTEXT . + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_ALIGNMENT +*"* do not include other source files here!!! +private section. + + constants C_HORIZONTAL_GENERAL type ZEXCEL_ALIGNMENT value 'general'. "#EC NOTEXT + constants C_HORIZONTAL_LEFT type ZEXCEL_ALIGNMENT value 'left'. "#EC NOTEXT + constants C_HORIZONTAL_RIGHT type ZEXCEL_ALIGNMENT value 'right'. "#EC NOTEXT + constants C_HORIZONTAL_CENTER type ZEXCEL_ALIGNMENT value 'center'. "#EC NOTEXT + constants C_HORIZONTAL_CENTER_CONTINUOUS type ZEXCEL_ALIGNMENT value 'centerContinuous'. "#EC NOTEXT + constants C_HORIZONTAL_JUSTIFY type ZEXCEL_ALIGNMENT value 'justify'. "#EC NOTEXT + constants C_VERTICAL_BOTTOM type ZEXCEL_ALIGNMENT value 'bottom'. "#EC NOTEXT + constants C_VERTICAL_TOP type ZEXCEL_ALIGNMENT value 'top'. "#EC NOTEXT + constants C_VERTICAL_CENTER type ZEXCEL_ALIGNMENT value 'center'. "#EC NOTEXT + constants C_VERTICAL_JUSTIFY type ZEXCEL_ALIGNMENT value 'justify'. "#EC NOTEXT + *"* 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 constructor. + horizontal = me->c_horizontal_general. + vertical = me->c_vertical_bottom. + wrapText = abap_false. + shrinkToFit = abap_false. +ENDMETHOD. + + + + class ZCL_EXCEL_STYLE_BORDER definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_BORDER +*"* do not include other source files here!!! +public section. + + data BORDER_STYLE type ZEXCEL_BORDER . + data BORDER_COLOR type ZEXCEL_STYLE_COLOR_ARGB . + class-data C_BORDER_NONE type ZEXCEL_BORDER value 'none'. "#EC NOTEXT . + class-data C_BORDER_DASHDOT type ZEXCEL_BORDER value 'dashDot'. "#EC NOTEXT . + class-data C_BORDER_DASHDOTDOT type ZEXCEL_BORDER value 'dashDotDot'. "#EC NOTEXT . + class-data C_BORDER_DASHED type ZEXCEL_BORDER value 'dashed'. "#EC NOTEXT . + class-data C_BORDER_DOTTED type ZEXCEL_BORDER value 'dotted'. "#EC NOTEXT . + class-data C_BORDER_DOUBLE type ZEXCEL_BORDER value 'double'. "#EC NOTEXT . + class-data C_BORDER_HAIR type ZEXCEL_BORDER value 'hair'. "#EC NOTEXT . + class-data C_BORDER_MEDIUM type ZEXCEL_BORDER value 'medium'. "#EC NOTEXT . + class-data C_BORDER_MEDIUMDASHDOT type ZEXCEL_BORDER value 'mediumDashDot'. "#EC NOTEXT . + class-data C_BORDER_MEDIUMDASHDOTDOT type ZEXCEL_BORDER value 'mediumDashDotDot'. "#EC NOTEXT . + class-data C_BORDER_MEDIUMDASHED type ZEXCEL_BORDER value 'mediumDashed'. "#EC NOTEXT . + class-data C_BORDER_SLANTDASHDOT type ZEXCEL_BORDER value 'slantDashDot'. "#EC NOTEXT . + class-data C_BORDER_THICK type ZEXCEL_BORDER value 'thick'. "#EC NOTEXT . + class-data C_BORDER_THIN type ZEXCEL_BORDER value 'thin'. "#EC NOTEXT . + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_BORDER +*"* do not include other source files here!!! +private section. + *"* 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 + + + + + + + + + + + + + + + + + + METHOD constructor. + border_style = zcl_excel_style_border=>c_border_none. +ENDMETHOD. + + + + class ZCL_EXCEL_STYLE_BORDERS definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_BORDERS +*"* do not include other source files here!!! +public section. + + data LEFT type ref to ZCL_EXCEL_STYLE_BORDER . + data RIGHT type ref to ZCL_EXCEL_STYLE_BORDER . + data TOP type ref to ZCL_EXCEL_STYLE_BORDER . + data DOWN type ref to ZCL_EXCEL_STYLE_BORDER . + data DIAGONAL type ref to ZCL_EXCEL_STYLE_BORDER . + data ALLBORDERS type ref to ZCL_EXCEL_STYLE_BORDER . + + methods CONSTRUCTOR . + methods GET_STRUCTURE + returning + value(ES_FILL) type ZEXCEL_S_STYLE_BORDER . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_BORDERS +*"* do not include other source files here!!! +private section. + + constants C_DIAGONAL_NONE type ZEXCEL_DIAGONAL value 0. "#EC NOTEXT + constants C_DIAGONAL_UP type ZEXCEL_DIAGONAL value 1. "#EC NOTEXT + constants C_DIAGONAL_DOWN type ZEXCEL_DIAGONAL value 2. "#EC NOTEXT + constants C_DIAGONAL_BOTH type ZEXCEL_DIAGONAL value 3. "#EC NOTEXT + *"* 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 + + + + + + + + + + + + method CONSTRUCTOR. +endmethod. + + + + METHOD get_structure. + +* Check if all borders is set otherwise check single border + IF me->allborders IS BOUND. + es_fill-left_color = me->allborders->border_color. + es_fill-left_style = me->allborders->border_style. + es_fill-right_color = me->allborders->border_color. + es_fill-right_style = me->allborders->border_style. + es_fill-top_color = me->allborders->border_color. + es_fill-top_style = me->allborders->border_style. + es_fill-bottom_color = me->allborders->border_color. + es_fill-bottom_style = me->allborders->border_style. + ELSE. + IF me->left IS BOUND. + es_fill-left_color = me->left->border_color. + es_fill-left_style = me->left->border_style. + ENDIF. + IF me->right IS BOUND. + es_fill-right_color = me->right->border_color. + es_fill-right_style = me->right->border_style. + ENDIF. + IF me->top IS BOUND. + es_fill-top_color = me->top->border_color. + es_fill-top_style = me->top->border_style. + ENDIF. + IF me->down IS BOUND. + es_fill-bottom_color = me->down->border_color. + es_fill-bottom_style = me->down->border_style. + ENDIF. + ENDIF. + +* Check if diagonal is set + IF me->diagonal IS BOUND. + es_fill-diagonal_color = me->diagonal->border_color. + es_fill-diagonal_style = me->diagonal->border_style. + ENDIF. + +ENDMETHOD. "get_structure + + + + class ZCL_EXCEL_STYLE_COLOR definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_COLOR +*"* do not include other source files here!!! +public section. + + class-data C_BLACK type ZEXCEL_STYLE_COLOR_ARGB value 'FF000000'. "#EC NOTEXT . + class-data C_BLUE type ZEXCEL_STYLE_COLOR_ARGB value 'FF0000FF'. "#EC NOTEXT . + class-data C_DARKBLUE type ZEXCEL_STYLE_COLOR_ARGB value 'FF000080'. "#EC NOTEXT . + class-data C_DARKGREEN type ZEXCEL_STYLE_COLOR_ARGB value 'FF008000'. "#EC NOTEXT . + class-data C_DARKRED type ZEXCEL_STYLE_COLOR_ARGB value 'FF800000'. "#EC NOTEXT . + class-data C_DARKYELLOW type ZEXCEL_STYLE_COLOR_ARGB value 'FF808000'. "#EC NOTEXT . + class-data C_GRAY type ZEXCEL_STYLE_COLOR_ARGB value 'FFCCCCCC'. "#EC NOTEXT . + class-data C_GREEN type ZEXCEL_STYLE_COLOR_ARGB value 'FF00FF00'. "#EC NOTEXT . + class-data C_RED type ZEXCEL_STYLE_COLOR_ARGB value 'FFFF0000'. "#EC NOTEXT . + class-data C_WHITE type ZEXCEL_STYLE_COLOR_ARGB value 'FFFFFFFF'. "#EC NOTEXT . + class-data C_YELLOW type ZEXCEL_STYLE_COLOR_ARGB value 'FFFFFF00'. "#EC NOTEXT . + + methods CONSTRUCTOR . + class-methods CREATE_NEW_ARGB + importing + !IP_RED type ZEXCEL_STYLE_COLOR_COMPONENT + !IP_GREEN type ZEXCEL_STYLE_COLOR_COMPONENT + !IP_BLU type ZEXCEL_STYLE_COLOR_COMPONENT + returning + value(EP_COLOR_ARGB) type ZEXCEL_STYLE_COLOR_ARGB . + *"* protected components of class ZCL_EXCEL_STYLE_COLOR +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_COLOR +*"* do not include other source files here!!! +private section. + + class-data C_ALPHA type CHAR2 value 'FF'. "#EC NOTEXT . + *"* 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 + + + + + + + + + + + + + + method CONSTRUCTOR. + + +endmethod. + + + + + + + METHOD create_new_argb. + + + CONCATENATE zcl_excel_style_color=>c_alpha ip_red ip_green ip_blu INTO ep_color_argb. + +ENDMETHOD. + + + + class ZCL_EXCEL_STYLE_CONDITIONAL definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_CONDITIONAL +*"* do not include other source files here!!! +public section. + + class-data C_ICONSET_3ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '3Arrows'. "#EC NOTEXT . + class-data C_ICONSET_3ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '3ArrowsGray'. "#EC NOTEXT . + class-data C_ICONSET_3FLAGS type ZEXCEL_CONDITION_RULE_ICONSET value '3Flags'. "#EC NOTEXT . + class-data C_ICONSET_3SIGNS type ZEXCEL_CONDITION_RULE_ICONSET value '3Signs'. "#EC NOTEXT . + class-data C_ICONSET_3SYMBOLS type ZEXCEL_CONDITION_RULE_ICONSET value '3Symbols'. "#EC NOTEXT . + class-data C_ICONSET_3SYMBOLS2 type ZEXCEL_CONDITION_RULE_ICONSET value '3Symbols2'. "#EC NOTEXT . + class-data C_ICONSET_3TRAFFICLIGHTS type ZEXCEL_CONDITION_RULE_ICONSET value ''. "#EC NOTEXT . + class-data C_ICONSET_3TRAFFICLIGHTS2 type ZEXCEL_CONDITION_RULE_ICONSET value '3TrafficLights2'. "#EC NOTEXT . + class-data C_ICONSET_4ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '4Arrows'. "#EC NOTEXT . + class-data C_ICONSET_4ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '4ArrowsGray'. "#EC NOTEXT . + class-data C_ICONSET_4RATING type ZEXCEL_CONDITION_RULE_ICONSET value '4Rating'. "#EC NOTEXT . + class-data C_ICONSET_4REDTOBLACK type ZEXCEL_CONDITION_RULE_ICONSET value '4RedToBlack'. "#EC NOTEXT . + class-data C_ICONSET_4TRAFFICLIGHTS type ZEXCEL_CONDITION_RULE_ICONSET value '4TrafficLights'. "#EC NOTEXT . + class-data C_ICONSET_5ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '5Arrows'. "#EC NOTEXT . + class-data C_ICONSET_5ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '5ArrowsGray'. "#EC NOTEXT . + class-data C_ICONSET_5QUARTERS type ZEXCEL_CONDITION_RULE_ICONSET value '5Quarters'. "#EC NOTEXT . + class-data C_ICONSET_5RATING type ZEXCEL_CONDITION_RULE_ICONSET value '5Rating'. "#EC NOTEXT . + class-data C_OPERATOR_BEGINSWITH type ZEXCEL_CONDITION_OPERATOR value 'beginsWith'. "#EC NOTEXT . + class-data C_OPERATOR_BETWEEN type ZEXCEL_CONDITION_OPERATOR value 'between'. "#EC NOTEXT . + class-data C_OPERATOR_CONTAINSTEXT type ZEXCEL_CONDITION_OPERATOR value 'containsText'. "#EC NOTEXT . + class-data C_OPERATOR_ENDSWITH type ZEXCEL_CONDITION_OPERATOR value 'endsWith'. "#EC NOTEXT . + class-data C_OPERATOR_EQUAL type ZEXCEL_CONDITION_OPERATOR value 'equal'. "#EC NOTEXT . + class-data C_OPERATOR_GREATERTHAN type ZEXCEL_CONDITION_OPERATOR value 'greaterThan'. "#EC NOTEXT . + class-data C_OPERATOR_GREATERTHANOREQUAL type ZEXCEL_CONDITION_OPERATOR value 'greaterThanOrEqual'. "#EC NOTEXT . + class-data C_OPERATOR_LESSTHAN type ZEXCEL_CONDITION_OPERATOR value 'lessThan'. "#EC NOTEXT . + class-data C_OPERATOR_LESSTHANOREQUAL type ZEXCEL_CONDITION_OPERATOR value 'lessThanOrEqual'. "#EC NOTEXT . + class-data C_OPERATOR_NONE type ZEXCEL_CONDITION_OPERATOR value ''. "#EC NOTEXT . + class-data C_OPERATOR_NOTCONTAINS type ZEXCEL_CONDITION_OPERATOR value 'notContains'. "#EC NOTEXT . + class-data C_OPERATOR_NOTEQUAL type ZEXCEL_CONDITION_OPERATOR value 'notEqual'. "#EC NOTEXT . + class-data C_RULE_CELLIS type ZEXCEL_CONDITION_RULE value 'cellIs'. "#EC NOTEXT . + class-data C_RULE_CONTAINSTEXT type ZEXCEL_CONDITION_RULE value 'containsText'. "#EC NOTEXT . + class-data C_RULE_EXPRESSION type ZEXCEL_CONDITION_RULE value 'expression'. "#EC NOTEXT . + class-data C_RULE_ICONSET type ZEXCEL_CONDITION_RULE value 'iconSet'. "#EC NOTEXT . + class-data C_RULE_NONE type ZEXCEL_CONDITION_RULE value 'none'. "#EC NOTEXT . + data FORMULA type ZEXCEL_STYLE_FORMULA . + data ICONSET type ZEXCEL_CONDITION_RULE_ICONSET . + data OPERATOR type ZEXCEL_CONDITION_OPERATOR . + data PRIORITY type ZEXCEL_STYLE_PRIORITY value 1. "#EC NOTEXT . + data RULE type ZEXCEL_CONDITION_RULE . + + methods CONSTRUCTOR . + methods GET_DIMENSION_RANGE + returning + value(EP_DIMENSION_RANGE) type STRING . + methods SET_RANGE + importing + !IP_START_ROW type ZEXCEL_CELL_ROW + !IP_START_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + !IP_STOP_ROW type ZEXCEL_CELL_ROW + !IP_STOP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_CONDITIONAL +*"* do not include other source files here!!! +private section. + + data START_CELL type ZEXCEL_S_CELL_DATA . + data STOP_CELL type ZEXCEL_S_CELL_DATA . + *"* 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + METHOD constructor. + rule = me->c_rule_none. + operator = me->c_operator_none. +* inizialize dimension range + stop_cell-cell_row = 1. + stop_cell-cell_column = 1. + start_cell-cell_row = 1. + start_cell-cell_column = 1. +ENDMETHOD. + + + + METHOD get_dimension_range. + IF stop_cell EQ start_cell. "only one cell + ep_dimension_range = start_cell-cell_coords. + ELSE. + CONCATENATE start_cell-cell_coords ':' stop_cell-cell_coords INTO ep_dimension_range. + ENDIF. +ENDMETHOD. + + + + + + + METHOD set_range. + DATA: lv_column TYPE zexcel_cell_column, + lv_row_alpha TYPE string. + + lv_column = zcl_excel_common=>convert_column2int( ip_stop_column ). + stop_cell-cell_row = 1. + stop_cell-cell_column = lv_column. + lv_row_alpha = ip_stop_row. + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE ip_stop_column lv_row_alpha INTO stop_cell-cell_coords. + + lv_column = zcl_excel_common=>convert_column2int( ip_start_column ). + start_cell-cell_row = 1. + start_cell-cell_column = lv_column. + lv_row_alpha = ip_start_row. + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE ip_start_column lv_row_alpha INTO start_cell-cell_coords. +ENDMETHOD. + + + + class ZCL_EXCEL_STYLE_FILL definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_FILL +*"* do not include other source files here!!! +public section. + + class-data C_FILL_NONE type ZEXCEL_FILL_TYPE value 'none'. "#EC NOTEXT . + class-data C_FILL_SOLID type ZEXCEL_FILL_TYPE value 'solid'. "#EC NOTEXT . + class-data C_FILL_GRADIENT_LINEAR type ZEXCEL_FILL_TYPE value 'linear'. "#EC NOTEXT . + class-data C_FILL_GRADIENT_PATH type ZEXCEL_FILL_TYPE value 'path'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKDOWN type ZEXCEL_FILL_TYPE value 'darkDown'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKGRAY type ZEXCEL_FILL_TYPE value 'darkGray'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKGRID type ZEXCEL_FILL_TYPE value 'darkGrid'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKHORIZONTAL type ZEXCEL_FILL_TYPE value 'darkHorizontal'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKTRELLIS type ZEXCEL_FILL_TYPE value 'darkTrellis'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKUP type ZEXCEL_FILL_TYPE value 'darkUp'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKVERTICAL type ZEXCEL_FILL_TYPE value 'darkVertical'. "#EC NOTEXT . + class-data C_FILL_PATTERN_GRAY0625 type ZEXCEL_FILL_TYPE value 'gray0625'. "#EC NOTEXT . + class-data C_FILL_PATTERN_GRAY125 type ZEXCEL_FILL_TYPE value 'gray125'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTDOWN type ZEXCEL_FILL_TYPE value 'lightDown'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTGRAY type ZEXCEL_FILL_TYPE value 'lightGray'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTGRID type ZEXCEL_FILL_TYPE value 'lightGrid'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTHORIZONTAL type ZEXCEL_FILL_TYPE value 'lightHorizontal'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTTRELLIS type ZEXCEL_FILL_TYPE value 'lightTrellis'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTUP type ZEXCEL_FILL_TYPE value 'lightUp'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTVERTICAL type ZEXCEL_FILL_TYPE value 'lightVertical'. "#EC NOTEXT . + class-data C_FILL_PATTERN_MEDIUMGRAY type ZEXCEL_FILL_TYPE value 'mediumGray'. "#EC NOTEXT . + data FILLTYPE type ZEXCEL_FILL_TYPE . + data ROTATION type ZEXCEL_ROTATION . + data FGCOLOR type ZEXCEL_STYLE_COLOR_ARGB . + data BGCOLOR type ZEXCEL_STYLE_COLOR_ARGB value '64'. "#EC NOTEXT . + + methods CONSTRUCTOR . + methods GET_STRUCTURE + returning + value(ES_FILL) type ZEXCEL_S_STYLE_FILL . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_FILL +*"* do not include other source files here!!! +private section. + *"* 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + METHOD constructor. + filltype = zcl_excel_style_fill=>c_fill_none. + rotation = 0. +ENDMETHOD. + + + + METHOD get_structure. + es_fill-rotation = me->rotation. + es_fill-filltype = me->filltype. + es_fill-fgColor = me->fgColor. + es_fill-bgColor = me->bgColor. +ENDMETHOD. + + + + class ZCL_EXCEL_STYLE_FONT definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + data BOLD type FLAG . + data COLOR type ZEXCEL_STYLE_COLOR_ARGB . + class-data C_SCHEME_MAJOR type ZEXCEL_STYLE_FONT_SCHEME value 'major'. "#EC NOTEXT . + class-data C_SCHEME_MINOR type ZEXCEL_STYLE_FONT_SCHEME value 'minor'. "#EC NOTEXT . + class-data C_UNDERLINE_DOUBLE type CHAR20 value 'double'. "#EC NOTEXT . + class-data C_UNDERLINE_DOUBLEACCOUNTING type CHAR20 value 'doubleAccounting'. "#EC NOTEXT . + class-data C_UNDERLINE_NONE type CHAR20 value 'none'. "#EC NOTEXT . + class-data C_UNDERLINE_SINGLE type CHAR20 value 'single'. "#EC NOTEXT . + class-data C_UNDERLINE_SINGLEACCOUNTING type CHAR20 value 'singleAccounting'. "#EC NOTEXT . + data FAMILY type INT1 value 2. "#EC NOTEXT . + data ITALIC type FLAG . + data NAME type CHAR255 value 'Calibri'. "#EC NOTEXT . + data SCHEME type ZEXCEL_STYLE_FONT_SCHEME . + data SIZE type INT1 value 11. "#EC NOTEXT . + data STRIKETHROUGH type FLAG . + data UNDERLINE type FLAG . + data UNDERLINE_MODE type CHAR20 . + + methods CONSTRUCTOR . + methods GET_STRUCTURE + returning + value(ES_FONT) type ZEXCEL_S_STYLE_FONT . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +private section. + *"* 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 constructor. + + + me->color = zcl_excel_style_color=>c_black. + 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. + + + + class ZCL_EXCEL_STYLE_NUMBER_FORMAT definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_NUMBER_FORMAT +*"* do not include other source files here!!! +public section. + + class-data C_FORMAT_NUMBER type ZEXCEL_NUMBER_FORMAT value '0'. "#EC NOTEXT . + class-data C_FORMAT_NUMBER_00 type ZEXCEL_NUMBER_FORMAT value '0.00'. "#EC NOTEXT . + class-data C_FORMAT_NUMBER_COMMA_SEP1 type ZEXCEL_NUMBER_FORMAT value '#,##0.00'. "#EC NOTEXT . + class-data C_FORMAT_NUMBER_COMMA_SEP2 type ZEXCEL_NUMBER_FORMAT value '#,##0.00_-'. "#EC NOTEXT . + class-data C_FORMAT_PERCENTAGE type ZEXCEL_NUMBER_FORMAT value '0%'. "#EC NOTEXT . + class-data C_FORMAT_PERCENTAGE_00 type ZEXCEL_NUMBER_FORMAT value '0.00%'. "#EC NOTEXT . + class-data C_FORMAT_DATE_YYYYMMDD2 type ZEXCEL_NUMBER_FORMAT value 'yyyy-mm-dd'. "#EC NOTEXT . + class-data C_FORMAT_DATE_YYYYMMDD type ZEXCEL_NUMBER_FORMAT value 'yy-mm-dd'. "#EC NOTEXT . + class-data C_FORMAT_DATE_DDMMYYYY type ZEXCEL_NUMBER_FORMAT value 'dd/mm/yy'. "#EC NOTEXT . + class-data C_FORMAT_DATE_DMYSLASH type ZEXCEL_NUMBER_FORMAT value 'd/m/y'. "#EC NOTEXT . + class-data C_FORMAT_DATE_DMYMINUS type ZEXCEL_NUMBER_FORMAT value 'd-m-y'. "#EC NOTEXT . + class-data C_FORMAT_DATE_DMMINUS type ZEXCEL_NUMBER_FORMAT value 'd-m'. "#EC NOTEXT . + class-data C_FORMAT_DATE_MYMINUS type ZEXCEL_NUMBER_FORMAT value 'm-y'. "#EC NOTEXT . + class-data C_FORMAT_DATE_XLSX14 type ZEXCEL_NUMBER_FORMAT value 'mm-dd-yy'. "#EC NOTEXT . + class-data C_FORMAT_DATE_XLSX15 type ZEXCEL_NUMBER_FORMAT value 'd-mmm-yy'. "#EC NOTEXT . + class-data C_FORMAT_DATE_XLSX16 type ZEXCEL_NUMBER_FORMAT value 'd-mmm'. "#EC NOTEXT . + class-data C_FORMAT_DATE_XLSX17 type ZEXCEL_NUMBER_FORMAT value 'mmm-yy'. "#EC NOTEXT . + class-data C_FORMAT_DATE_XLSX22 type ZEXCEL_NUMBER_FORMAT value 'm/d/yy h:mm'. "#EC NOTEXT . + class-data C_FORMAT_DATE_DATETIME type ZEXCEL_NUMBER_FORMAT value 'd/m/y h:mm'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME1 type ZEXCEL_NUMBER_FORMAT value 'h:mm AM/PM'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME2 type ZEXCEL_NUMBER_FORMAT value 'h:mm:ss AM/PM'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME3 type ZEXCEL_NUMBER_FORMAT value 'h:mm'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME4 type ZEXCEL_NUMBER_FORMAT value 'h:mm:ss'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME5 type ZEXCEL_NUMBER_FORMAT value 'mm:ss'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME6 type ZEXCEL_NUMBER_FORMAT value 'h:mm:ss'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME7 type ZEXCEL_NUMBER_FORMAT value 'i:s.S'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME8 type ZEXCEL_NUMBER_FORMAT value 'h:mm:ss@'. "#EC NOTEXT . + class-data C_FORMAT_DATE_YYYYMMDDSLASH type ZEXCEL_NUMBER_FORMAT value 'yy/mm/dd@'. "#EC NOTEXT . + class-data C_FORMAT_CURRENCY_USD_SIMPLE type ZEXCEL_NUMBER_FORMAT value '"$"#,##0.00_-'. "#EC NOTEXT . + class-data C_FORMAT_CURRENCY_USD type ZEXCEL_NUMBER_FORMAT value '$#,##0_-'. "#EC NOTEXT . + class-data C_FORMAT_CURRENCY_EUR_SIMPLE type ZEXCEL_NUMBER_FORMAT value '[$EUR ]#,##0.00_-'. "#EC NOTEXT . + data FORMAT_CODE type ZEXCEL_NUMBER_FORMAT . + + methods CONSTRUCTOR . + methods GET_STRUCTURE + returning + value(EP_NUMBER_FORMAT) type ZEXCEL_NUMBER_FORMAT . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_NUMBER_FORMAT +*"* do not include other source files here!!! +private section. + + class-data C_FORMAT_GENERAL type ZEXCEL_NUMBER_FORMAT value ''. "#EC NOTEXT . + class-data C_FORMAT_TEXT type ZEXCEL_NUMBER_FORMAT value '@'. "#EC NOTEXT . + *"* 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + METHOD constructor. + format_code = me->c_format_general. +ENDMETHOD. + + + + METHOD get_structure. + ep_number_format = me->format_code. +ENDMETHOD. + + + + class ZCL_EXCEL_STYLE_PROTECTION definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_PROTECTION +*"* do not include other source files here!!! +public section. + + constants C_PROTECTION_INHERIT type ZEXCEL_PROTECTION value 'inherit'. "#EC NOTEXT + constants C_PROTECTION_PROTECTED type ZEXCEL_PROTECTION value 'protected'. "#EC NOTEXT + constants C_PROTECTION_UNPROTECTED type ZEXCEL_PROTECTION value 'unprotected'. "#EC NOTEXT + data LOCKED type ZEXCEL_PROTECTION . + data HIDDEN type ZEXCEL_PROTECTION . + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_PROTECTION +*"* do not include other source files here!!! +private section. + *"* 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 + + + + + + + METHOD constructor. + locked = me->c_protection_inherit. + hidden = me->c_protection_inherit. +ENDMETHOD. + + + + class ZCL_EXCEL_WORKSHEET definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_WORKSHEET +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + class-data C_BREAK_COLUMN type ZEXCEL_BREAK value 2. "#EC NOTEXT . + class-data C_BREAK_NONE type ZEXCEL_BREAK value 0. "#EC NOTEXT . + class-data C_BREAK_ROW type ZEXCEL_BREAK value 1. "#EC NOTEXT . + class-data C_SHEET_STATE_HIDDEN type ZEXCEL_SHEET_STATE value 'hidden'. "#EC NOTEXT . + class-data C_SHEET_STATE_VERYHIDDEN type ZEXCEL_SHEET_STATE value 'veryHidden'. "#EC NOTEXT . + class-data C_SHEET_STATE_VISIBLE type ZEXCEL_SHEET_STATE value 'visible'. "#EC NOTEXT . + data DEFAULTROWHEIGHT type INT1 value 15. "#EC NOTEXT . + data SHEET_CONTENT type ZEXCEL_T_CELL_DATA . + data SHEET_SETUP type ref to ZCL_EXCEL_SHEET_SETUP . + data SHEET_STATE type ZEXCEL_SHEET_STATE . + data TITLE type ZEXCEL_SHEET_TITLE value 'Worksheet'. "#EC NOTEXT . + + methods CONSTRUCTOR + importing + !IP_TITLE type ZEXCEL_SHEET_TITLE optional . + methods GET_ACTIVE_CELL + returning + value(EP_ACTIVE_CELL) type STRING . + methods GET_CELL + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + !IP_ROW type ZEXCEL_CELL_ROW + exporting + !EP_VALUE type ZEXCEL_CELL_VALUE + !EP_RC type SYSUBRC . + methods GET_DIMENSION_RANGE + returning + value(EP_DIMENSION_RANGE) type STRING . + methods GET_GUID + returning + value(EP_GUID) type GUID_16 . + methods SET_CELL + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + !IP_ROW type ZEXCEL_CELL_ROW + !IP_VALUE type ZEXCEL_CELL_VALUE + !IP_FORMULA type ZEXCEL_CELL_FORMULA optional + !IP_STYLE type ZEXCEL_CELL_STYLE optional . + methods SET_TABLE + importing + !IP_TABLE type STANDARD TABLE + !IP_HDR_STYLE type ZEXCEL_CELL_STYLE optional + !IP_BODY_STYLE type ZEXCEL_CELL_STYLE optional + !IP_TABLE_TITLE type STRING optional + !IP_TOP_LEFT_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA default 'B' + !IP_TOP_LEFT_ROW type ZEXCEL_CELL_ROW default 3 . + methods ADD_NEW_CONDITIONAL_STYLE + returning + value(EO_CONDITIONAL_STYLE) type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + methods GET_COND_STYLES_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + *"* protected components of class ZABAP_EXCEL_WORKSHEET +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_WORKSHEET +*"* do not include other source files here!!! +private section. + + data ACTIVE_CELL type ZEXCEL_S_CELL_DATA . + data CONDITIONAL_STYLES type ref to ZCL_EXCEL_STYLES_CONDITIONAL . + data GUID type GUID_16 . + data LOWER_CELL type ZEXCEL_S_CELL_DATA . + data UPPER_CELL type ZEXCEL_S_CELL_DATA . + + methods UPDATE_DIMENSION_RANGE . + *"* 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 add_new_conditional_style. + + + CREATE OBJECT eo_conditional_style. + conditional_styles->add( eo_conditional_style ). +ENDMETHOD. + + + + METHOD constructor. + + + CALL FUNCTION 'GUID_CREATE' + IMPORTING + ev_guid_16 = me->guid. + + IF ip_title IS NOT INITIAL. + title = ip_title. + ELSE. + title = me->guid. + ENDIF. + + sheet_state = me->c_sheet_state_visible. + + CREATE OBJECT sheet_setup. + CREATE OBJECT conditional_styles. + +* initialize active cell coordinates + active_cell-cell_row = 1. + active_cell-cell_column = 1. + +* inizialize dimension range + lower_cell-cell_row = 1. + lower_cell-cell_column = 1. + upper_cell-cell_row = 1. + upper_cell-cell_column = 1. +ENDMETHOD. + + + + METHOD get_active_cell. + + + DATA: lv_active_column TYPE zexcel_cell_column_alpha, + lv_active_row TYPE string. + + lv_active_column = zcl_excel_common=>convert_column2alpha( active_cell-cell_column ). + lv_active_row = active_cell-cell_row. + SHIFT lv_active_row RIGHT DELETING TRAILING space. + SHIFT lv_active_row LEFT DELETING LEADING space. + CONCATENATE lv_active_column lv_active_row INTO ep_active_cell. + +ENDMETHOD. + + + + + + + METHOD get_cell. + + + DATA: lv_column TYPE zexcel_cell_column, + ls_sheet_content TYPE zexcel_s_cell_data. + + FIELD-SYMBOLS: <fs_sheet_content> TYPE zexcel_s_cell_data. + + lv_column = zcl_excel_common=>convert_column2int( ip_column ). + + READ TABLE sheet_content INTO ls_sheet_content WITH TABLE KEY cell_row = ip_row + cell_column = lv_column. + + ep_rc = sy-subrc. + ep_value = ls_sheet_content-cell_value. +ENDMETHOD. + + + + method GET_COND_STYLES_ITERATOR. + + + eo_iterator = me->conditional_styles->get_iterator( ). +endmethod. + + + + METHOD get_dimension_range. + + + me->update_dimension_range( ). + IF upper_cell EQ lower_cell. "only one cell + ep_dimension_range = upper_cell-cell_coords. + ELSE. + CONCATENATE upper_cell-cell_coords ':' lower_cell-cell_coords INTO ep_dimension_range. + ENDIF. + +ENDMETHOD. + + + + method GET_GUID. + + + ep_guid = me->guid. + +endmethod. + + + + + + + + METHOD set_cell. + + + DATA: lv_column TYPE zexcel_cell_column, + ls_sheet_content TYPE zexcel_s_cell_data, + lv_row_alpha TYPE string. + + FIELD-SYMBOLS: <fs_sheet_content> TYPE zexcel_s_cell_data. + + lv_column = ZCL_EXCEL_COMMON=>convert_column2int( ip_column ). + + READ TABLE sheet_content ASSIGNING <fs_sheet_content> WITH KEY cell_row = ip_row + cell_column = lv_column. + + IF sy-subrc EQ 0. + <fs_sheet_content>-cell_value = ip_value. + <fs_sheet_content>-cell_formula = ip_formula. + <fs_sheet_content>-cell_style = ip_style. + ELSE. + ls_sheet_content-cell_row = ip_row. + ls_sheet_content-cell_column = lv_column. + ls_sheet_content-cell_value = ip_value. + ls_sheet_content-cell_formula = ip_formula. + ls_sheet_content-cell_style = ip_style. + lv_row_alpha = ip_row. + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE ip_column lv_row_alpha INTO ls_sheet_content-cell_coords. + APPEND ls_sheet_content TO sheet_content. + SORT sheet_content BY cell_row cell_column. +* me->update_dimension_range( ). + + ENDIF. + +ENDMETHOD. + + + + + + + + + METHOD set_table. + + + DATA: lo_tabdescr TYPE REF TO cl_abap_structdescr, + lr_data TYPE REF TO data, + ls_newline TYPE REF TO data, + ls_header TYPE x030l, + lt_dfies TYPE ddfields, + lv_row_header TYPE zexcel_cell_row VALUE '2', + lv_col_header TYPE zexcel_cell_column_alpha VALUE 'B', + lv_row_int TYPE zexcel_cell_row, + lv_column_int TYPE zexcel_cell_column, + lv_column_alpha TYPE zexcel_cell_column_alpha, + lv_cell_value TYPE zexcel_cell_value. + + + FIELD-SYMBOLS: <fs_table_line> TYPE ANY, + <fs_fldval> TYPE ANY, + <fs_dfies> TYPE dfies, + <fs_cell_value> TYPE zexcel_cell_value. + + lv_column_int = zcl_excel_common=>convert_column2int( ip_top_left_column ). + lv_row_int = ip_top_left_row. + + CREATE DATA lr_data LIKE LINE OF ip_table. + + lo_tabdescr ?= cl_abap_structdescr=>describe_by_data_ref( lr_data ). + + ls_header = lo_tabdescr->get_ddic_header( ). + + lt_dfies = lo_tabdescr->get_ddic_field_list( ). + +* It is better to loop column by column + LOOP AT lt_dfies ASSIGNING <fs_dfies>. + lv_column_alpha = zcl_excel_common=>convert_column2alpha( lv_column_int ). + " First of all write column header + lv_cell_value = <fs_dfies>-scrtext_m. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_value = lv_cell_value + ip_style = ip_hdr_style ). + ADD 1 TO lv_row_int. + LOOP AT ip_table ASSIGNING <fs_table_line>. + ASSIGN COMPONENT <fs_dfies>-fieldname OF STRUCTURE <fs_table_line> TO <fs_fldval>. + MOVE <fs_fldval> TO lv_cell_value. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_value = lv_cell_value + ip_style = ip_body_style ). + ADD 1 TO lv_row_int. + ENDLOOP. + lv_row_int = ip_top_left_row. + ADD 1 TO lv_column_int. + ENDLOOP. + +ENDMETHOD. + + + METHOD update_dimension_range. + + + DATA: ls_sheet_content TYPE zexcel_s_cell_data, + lt_sheet_content TYPE zexcel_t_cell_data_unsorted, + lv_row_alpha TYPE string, + lv_column_alpha TYPE zexcel_cell_column_alpha. + +* update dimension range + lt_sheet_content = sheet_content. + "upper left corner + SORT lt_sheet_content BY cell_row. + READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content. + upper_cell-cell_row = ls_sheet_content-cell_row. + SORT lt_sheet_content BY cell_column. + READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content. + upper_cell-cell_column = ls_sheet_content-cell_column. + + lv_row_alpha = upper_cell-cell_row. + lv_column_alpha = zcl_excel_common=>convert_column2alpha( upper_cell-cell_column ). + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE lv_column_alpha lv_row_alpha INTO upper_cell-cell_coords. + + "bottom right corner + SORT lt_sheet_content BY cell_row DESCENDING. + READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content. + lower_cell-cell_row = ls_sheet_content-cell_row. + SORT lt_sheet_content BY cell_column DESCENDING. + READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content. + lower_cell-cell_column = ls_sheet_content-cell_column. + + lv_row_alpha = lower_cell-cell_row. + lv_column_alpha = zcl_excel_common=>convert_column2alpha( lower_cell-cell_column ). + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE lv_column_alpha lv_row_alpha INTO lower_cell-cell_coords. + +ENDMETHOD. + + + + class ZCL_EXCEL_WORKSHEETS definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +public section. + + data ACTIVE_WORKSHEET type ZEXCEL_ACTIVE_WORKSHEET value 1. "#EC NOTEXT . + data NAME type ZEXCEL_WORKSHEETS_NAME value 'Worksheets'. "#EC NOTEXT . + + methods ADD + importing + !IP_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type ZEXCEL_ACTIVE_WORKSHEET + returning + value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET . + methods GET_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods IS_EMPTY + returning + value(IS_EMPTY) type FLAG . + methods REMOVE + importing + !IP_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET . + methods SIZE + returning + value(EP_SIZE) type I . + *"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +private section. + + data WORKSHEETS type ref to CL_OBJECT_COLLECTION . + *"* 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 + + + + + + METHOD ADD. + + + worksheets->add( ip_worksheet ). +ENDMETHOD. + + + METHOD clear. + + + worksheets->clear( ). +ENDMETHOD. + + + METHOD constructor. + + + CREATE OBJECT worksheets. + +ENDMETHOD. + + + + + METHOD get. + + + DATA lv_index TYPE i. + lv_index = ip_index. + eo_worksheet ?= worksheets->if_object_collection~get( lv_index ). +ENDMETHOD. + + + + METHOD get_iterator. + + + eo_iterator ?= worksheets->if_object_collection~get_iterator( ). +ENDMETHOD. + + + + METHOD is_empty. + + + is_empty = worksheets->if_object_collection~is_empty( ). +ENDMETHOD. + + + + METHOD remove. + + + worksheets->remove( ip_worksheet ). +ENDMETHOD. + + + + METHOD size. + + + ep_size = worksheets->if_object_collection~size( ). +ENDMETHOD. + + + + class ZCL_EXCEL_WRITER_2007 definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_WRITER_2007 +*"* do not include other source files here!!! +public section. + + methods CONSTRUCTOR + importing + !IO_EXCEL type ref to ZCL_EXCEL . + methods CREATE + returning + value(EP_EXCEL) type XSTRING . + *"* protected components of class ZCL_EXCEL_WRITER_2007 +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_WRITER_2007 +*"* do not include other source files here!!! +private section. + + constants C_CONTENT_TYPES type STRING value '[Content_Types].xml'. "#EC NOTEXT + constants C_DOCPROPS_APP type STRING value 'docProps/app.xml'. "#EC NOTEXT + constants C_DOCPROPS_CORE type STRING value 'docProps/core.xml'. "#EC NOTEXT + constants C_RELATIONSHIPS type STRING value '_rels/.rels'. "#EC NOTEXT + constants C_XL_CALCCHAIN type STRING value 'xl/calcChain.xml'. "#EC NOTEXT + constants C_XL_RELATIONSHIPS type STRING value 'xl/_rels/workbook.xml.rels'. "#EC NOTEXT + constants C_XL_SHAREDSTRINGS type STRING value 'xl/sharedStrings.xml'. "#EC NOTEXT + constants C_XL_SHEET type STRING value 'xl/worksheets/sheet#.xml'. "#EC NOTEXT + constants C_XL_SHEET_RELS type STRING value 'xl/worksheets/_rels/sheet#.xml.rels'. "#EC NOTEXT + constants C_XL_STYLES type STRING value 'xl/styles.xml'. "#EC NOTEXT + constants C_XL_THEME type STRING value 'xl/theme/theme1.xml'. "#EC NOTEXT + constants C_XL_WORKBOOK type STRING value 'xl/workbook.xml'. "#EC NOTEXT + data EXCEL type ref to ZCL_EXCEL . + data SHARED_STRINGS type ZEXCEL_T_SHARED_STRING . + data STYLES_MAPPING type ZEXCEL_T_STYLES_MAPPING . + + methods CREATE_CONTENT_TYPES + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_DOCPROPS_APP + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_DOCPROPS_CORE + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_RELATIONSHIPS + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_CALCCHAIN + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_RELATIONSHIPS + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_SHAREDSTRINGS + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_SHEET + importing + !IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET + !IV_ACTIVE type FLAG default '' + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_SHEET_RELS + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_STYLES + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_THEME + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_WORKBOOK + returning + value(EP_CONTENT) type XSTRING . + methods FLAG2BOOL + importing + !IP_FLAG type FLAG + returning + value(EP_BOOLEAN) type CHAR5 . + methods GET_SHARED_STRING_INDEX + importing + !IP_CELL_VALUE type ZEXCEL_CELL_VALUE + returning + value(EP_INDEX) type INT4 . + *"* 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 + + + + + + + + + + + + + + + + + + METHOD constructor. + + + me->excel = io_excel. +ENDMETHOD. + + + + METHOD create. + + +* Office 2007 file format is a cab of several xml files with extension .xlsx + + DATA: lo_zip TYPE REF TO cl_abap_zip, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_active_worksheet TYPE REF TO zcl_excel_worksheet, + lo_iterator TYPE REF TO cl_object_collection_iterator. + + DATA: lv_content TYPE xstring, + lv_active TYPE flag, + lv_xl_sheet TYPE string, + lv_xl_sheet_rels TYPE string, + lv_syindex TYPE string. + + +********************************************************************** +* STEP 1: Create archive object file (ZIP) + CREATE OBJECT lo_zip. + +********************************************************************** +* STEP 2: Add [Content_Types].xml to zip + lv_content = me->create_content_types( ). + lo_zip->add( name = me->c_content_types + content = lv_content ). + +********************************************************************** +* STEP 3: Add _rels/.rels to zip + lv_content = me->create_relationships( ). + lo_zip->add( name = me->c_relationships + content = lv_content ). + +********************************************************************** +* STEP 4: Add docProps/app.xml to zip + lv_content = me->create_docprops_app( ). + lo_zip->add( name = me->c_docprops_app + content = lv_content ). + +********************************************************************** +* STEP 5: Add docProps/core.xml to zip + lv_content = me->create_docprops_core( ). + lo_zip->add( name = me->c_docprops_core + content = lv_content ). + +********************************************************************** +* STEP 6: Add xl/_rels/workbook.xml.rels to zip + lv_content = me->create_xl_relationships( ). + lo_zip->add( name = me->c_xl_relationships + content = lv_content ). + +********************************************************************** +* STEP 6: Add xl/_rels/workbook.xml.rels to zip + lv_content = me->create_xl_theme( ). + lo_zip->add( name = me->c_xl_theme + content = lv_content ). + +********************************************************************** +* STEP 7: Add xl/workbook.xml to zip + lv_content = me->create_xl_workbook( ). + lo_zip->add( name = me->c_xl_workbook + content = lv_content ). + +********************************************************************** +* STEP 8: Add xl/workbook.xml to zip +* lv_content = me->create_xl_styles_static( ). + lv_content = me->create_xl_styles( ). + lo_zip->add( name = me->c_xl_styles + content = lv_content ). + +********************************************************************** +* STEP 9: Add sharedStrings.xml to zip + lv_content = me->create_xl_sharedstrings( ). + lo_zip->add( name = me->c_xl_sharedstrings + content = lv_content ). + +********************************************************************** +* STEP 10: Add sharedStrings.xml to zip + lv_content = me->create_xl_calcchain( ). + lo_zip->add( name = me->c_xl_calcchain + content = lv_content ). + +********************************************************************** +* STEP 11: Add sheet#.xml to zip + lo_iterator = me->excel->get_worksheets_iterator( ). + lo_active_worksheet = me->excel->get_active_worksheet( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + IF lo_active_worksheet->get_guid( ) EQ lo_worksheet->get_guid( ). + lv_active = abap_true. + ELSE. + lv_active = abap_true. + ENDIF. + + lv_content = me->create_xl_sheet( io_worksheet = lo_worksheet + iv_active = lv_active ). + lv_xl_sheet = me->c_xl_sheet. + MOVE sy-index TO lv_syindex. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + REPLACE ALL OCCURRENCES OF '#' IN lv_xl_sheet WITH lv_syindex. + lo_zip->add( name = lv_xl_sheet + content = lv_content ). + + lv_xl_sheet_rels = me->c_xl_sheet_rels. + lv_content = me->create_xl_sheet_rels( ). + REPLACE ALL OCCURRENCES OF '#' IN lv_xl_sheet_rels WITH lv_syindex. + lo_zip->add( name = lv_xl_sheet_rels + content = lv_content ). + ENDWHILE. + +********************************************************************** +* STEP 11: Create the final zip + ep_excel = lo_zip->save( ). + +ENDMETHOD. + + + + METHOD create_content_types. + + +** Constant node name + DATA: lc_xml_node_types TYPE string VALUE 'Types', + lc_xml_node_override TYPE string VALUE 'Override', + lc_xml_node_default TYPE string VALUE 'Default', + " Node attributes + lc_xml_attr_partname TYPE string VALUE 'PartName', + lc_xml_attr_extension TYPE string VALUE 'Extension', + lc_xml_attr_contenttype TYPE string VALUE 'ContentType', + " Node namespace + lc_xml_node_types_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/content-types', + " Node extension + lc_xml_node_rels_ext TYPE string VALUE 'rels', + lc_xml_node_xml_ext TYPE string VALUE 'xml', + " Node partnumber + lc_xml_node_theme_pn TYPE string VALUE '/xl/theme/theme1.xml', + lc_xml_node_styles_pn TYPE string VALUE '/xl/styles.xml', + lc_xml_node_workb_pn TYPE string VALUE '/xl/workbook.xml', + lc_xml_node_props_pn TYPE string VALUE '/docProps/app.xml', + lc_xml_node_worksheet_pn TYPE string VALUE '/xl/worksheets/sheet#.xml', + lc_xml_node_strings_pn TYPE string VALUE '/xl/sharedStrings.xml', + lc_xml_node_core_pn TYPE string VALUE '/docProps/core.xml', + " Node contentType + lc_xml_node_theme_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.theme+xml', + lc_xml_node_styles_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml', + lc_xml_node_workb_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml', + lc_xml_node_rels_ct TYPE string VALUE 'application/vnd.openxmlformats-package.relationships+xml', + lc_xml_node_xml_ct TYPE string VALUE 'application/xml', + lc_xml_node_props_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.extended-properties+xml', + lc_xml_node_worksheet_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml', + lc_xml_node_strings_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml', + lc_xml_node_core_ct TYPE string VALUE 'application/vnd.openxmlformats-package.core-properties+xml'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + + DATA: lv_worksheets_num TYPE i, + lv_worksheets_numc TYPE numc3, + lv_xml_node_worksheet_pn TYPE string, + lv_xml_size TYPE i. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'UTF-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node types + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_types + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_types_ns ). + +********************************************************************** +* STEP 4: Create subnodes + " Theme node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_theme_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_theme_ct ). + lo_element_root->append_child( lo_element ). + + " Styles node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_styles_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_styles_ct ). + lo_element_root->append_child( lo_element ). + + " rels node + lo_element = lo_document->create_simple_element( name = lc_xml_node_default + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_extension + value = lc_xml_node_rels_ext ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_rels_ct ). + lo_element_root->append_child( lo_element ). + + " extension node + lo_element = lo_document->create_simple_element( name = lc_xml_node_default + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_extension + value = lc_xml_node_xml_ext ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_xml_ct ). + lo_element_root->append_child( lo_element ). + + " Workbook node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_workb_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_workb_ct ). + lo_element_root->append_child( lo_element ). + + " Properties node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_props_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_props_ct ). + lo_element_root->append_child( lo_element ). + + " Worksheet node + lv_worksheets_num = excel->get_worksheets_size( ). + DO lv_worksheets_num TIMES. + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + + MOVE sy-index TO lv_worksheets_numc. + SHIFT lv_worksheets_numc LEFT DELETING LEADING '0'. + lv_xml_node_worksheet_pn = lc_xml_node_worksheet_pn. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_worksheet_pn WITH lv_worksheets_numc. + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lv_xml_node_worksheet_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lv_xml_node_worksheet_pn ). + lo_element_root->append_child( lo_element ). + ENDDO. + + " Strings node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_strings_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_strings_ct ). + lo_element_root->append_child( lo_element ). + + " Strings node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_core_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_core_ct ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD create_docprops_app. + + +** Constant node name + DATA: lc_xml_node_properties TYPE string VALUE 'Properties', + lc_xml_node_application TYPE string VALUE 'Application', + lc_xml_node_docsecurity TYPE string VALUE 'DocSecurity', + lc_xml_node_scalecrop TYPE string VALUE 'ScaleCrop', + lc_xml_node_headingpairs TYPE string VALUE 'HeadingPairs', + lc_xml_node_vector TYPE string VALUE 'vector', + lc_xml_node_variant TYPE string VALUE 'variant', + lc_xml_node_lpstr TYPE string VALUE 'lpstr', + lc_xml_node_i4 TYPE string VALUE 'i4', + lc_xml_node_titlesofparts TYPE string VALUE 'TitlesOfParts', + lc_xml_node_company TYPE string VALUE 'Company', + lc_xml_node_linksuptodate TYPE string VALUE 'LinksUpToDate', + lc_xml_node_shareddoc TYPE string VALUE 'SharedDoc', + lc_xml_node_hyperlinkschanged TYPE string VALUE 'HyperlinksChanged', + lc_xml_node_appversion TYPE string VALUE 'AppVersion', + " Namespace prefix + lc_vt_ns TYPE string VALUE 'vt', + lc_xml_node_props_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties', + lc_xml_node_props_vt_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes', + " Node attributes + lc_xml_attr_size TYPE string VALUE 'size', + lc_xml_attr_basetype TYPE string VALUE 'baseType'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_sub_element_vector TYPE REF TO if_ixml_element, + lo_sub_element_variant TYPE REF TO if_ixml_element, + lo_sub_element_lpstr TYPE REF TO if_ixml_element, + lo_sub_element_i4 TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + + DATA: lv_value TYPE string. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node properties + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_properties + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_props_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:vt' + value = lc_xml_node_props_vt_ns ). + +********************************************************************** +* STEP 4: Create subnodes + " Application + lo_element = lo_document->create_simple_element( name = lc_xml_node_application + parent = lo_document ). + lv_value = excel->properties->application. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " DocSecurity + lo_element = lo_document->create_simple_element( name = lc_xml_node_docsecurity + parent = lo_document ). + lv_value = excel->properties->docsecurity. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " ScaleCrop + lo_element = lo_document->create_simple_element( name = lc_xml_node_scalecrop + parent = lo_document ). + lv_value = me->flag2bool( excel->properties->scalecrop ). + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " HeadingPairs + lo_element = lo_document->create_simple_element( name = lc_xml_node_headingpairs + parent = lo_document ). + + + " * vector node + lo_sub_element_vector = lo_document->create_simple_element_ns( name = lc_xml_node_vector + prefix = lc_vt_ns + parent = lo_document ). + lo_sub_element_vector->set_attribute_ns( name = lc_xml_attr_size + value = '2' ). + lo_sub_element_vector->set_attribute_ns( name = lc_xml_attr_basetype + value = lc_xml_node_variant ). + + " ** variant node + lo_sub_element_variant = lo_document->create_simple_element_ns( name = lc_xml_node_variant + prefix = lc_vt_ns + parent = lo_document ). + + " *** lpstr node + lo_sub_element_lpstr = lo_document->create_simple_element_ns( name = lc_xml_node_lpstr + prefix = lc_vt_ns + parent = lo_document ). + lv_value = excel->get_worksheets_name( ). + lo_sub_element_lpstr->set_value( lv_value ). + lo_sub_element_variant->append_child( lo_sub_element_lpstr ). " lpstr node + + lo_sub_element_vector->append_child( lo_sub_element_variant ). " variant node + + " ** variant node + lo_sub_element_variant = lo_document->create_simple_element_ns( name = lc_xml_node_variant + prefix = lc_vt_ns + parent = lo_document ). + + " *** i4 node + lo_sub_element_i4 = lo_document->create_simple_element_ns( name = lc_xml_node_i4 + prefix = lc_vt_ns + parent = lo_document ). + lv_value = excel->get_worksheets_size( ). + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element_i4->set_value( lv_value ). + lo_sub_element_variant->append_child( lo_sub_element_i4 ). " lpstr node + + lo_sub_element_vector->append_child( lo_sub_element_variant ). " variant node + + lo_element->append_child( lo_sub_element_vector ). " vector node + + lo_element_root->append_child( lo_element ). " HeadingPairs + + + " TitlesOfParts + lo_element = lo_document->create_simple_element( name = lc_xml_node_titlesofparts + parent = lo_document ). + + + " * vector node + lo_sub_element_vector = lo_document->create_simple_element_ns( name = lc_xml_node_vector + prefix = lc_vt_ns + parent = lo_document ). + lv_value = excel->get_worksheets_size( ). + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element_vector->set_attribute_ns( name = lc_xml_attr_size + value = lv_value ). + lo_sub_element_vector->set_attribute_ns( name = lc_xml_attr_basetype + value = lc_xml_node_lpstr ). + + lo_iterator = excel->get_worksheets_iterator( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + " ** lpstr node + lo_sub_element_lpstr = lo_document->create_simple_element_ns( name = lc_xml_node_lpstr + prefix = lc_vt_ns + parent = lo_document ). + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + lv_value = lo_worksheet->title. + lo_sub_element_lpstr->set_value( lv_value ). + lo_sub_element_vector->append_child( lo_sub_element_lpstr ). " lpstr node + ENDWHILE. + + lo_element->append_child( lo_sub_element_vector ). " vector node + + lo_element_root->append_child( lo_element ). " TitlesOfParts + + + + " Company + lo_element = lo_document->create_simple_element( name = lc_xml_node_company + parent = lo_document ). + lv_value = excel->properties->company. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " LinksUpToDate + lo_element = lo_document->create_simple_element( name = lc_xml_node_linksuptodate + parent = lo_document ). + lv_value = me->flag2bool( excel->properties->linksuptodate ). + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " SharedDoc + lo_element = lo_document->create_simple_element( name = lc_xml_node_shareddoc + parent = lo_document ). + lv_value = me->flag2bool( excel->properties->shareddoc ). + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " HyperlinksChanged + lo_element = lo_document->create_simple_element( name = lc_xml_node_hyperlinkschanged + parent = lo_document ). + lv_value = me->flag2bool( excel->properties->hyperlinkschanged ). + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " AppVersion + lo_element = lo_document->create_simple_element( name = lc_xml_node_appversion + parent = lo_document ). + lv_value = excel->properties->appversion. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD create_docprops_core. + + +** Constant node name + DATA: lc_xml_node_coreproperties TYPE string VALUE 'coreProperties', + lc_xml_node_creator TYPE string VALUE 'creator', + lc_xml_node_lastmodifiedby TYPE string VALUE 'lastModifiedBy', + lc_xml_node_created TYPE string VALUE 'created', + lc_xml_node_modified TYPE string VALUE 'modified', + " Node attributes + lc_xml_attr_type TYPE string VALUE 'type', + lc_xml_attr_target TYPE string VALUE 'dcterms:W3CDTF', + " Node namespace + lc_cp_ns TYPE string VALUE 'cp', + lc_dc_ns TYPE string VALUE 'dc', + lc_dcterms_ns TYPE string VALUE 'dcterms', + lc_dcmitype_ns TYPE string VALUE 'dcmitype', + lc_xsi_ns TYPE string VALUE 'xsi', + lc_xml_node_cp_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties', + lc_xml_node_dc_ns TYPE string VALUE 'http://purl.org/dc/elements/1.1/', + lc_xml_node_dcterms_ns TYPE string VALUE 'http://purl.org/dc/terms/', + lc_xml_node_dcmitype_ns TYPE string VALUE 'http://purl.org/dc/dcmitype/', + lc_xml_node_xsi_ns TYPE string VALUE 'http://www.w3.org/2001/XMLSchema-instance'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + + DATA: lv_value TYPE string. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node coreProperties + lo_element_root = lo_document->create_simple_element_ns( name = lc_xml_node_coreproperties + prefix = lc_cp_ns + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns:cp' + value = lc_xml_node_cp_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:dc' + value = lc_xml_node_dc_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:dcterms' + value = lc_xml_node_dcterms_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:dcmitype' + value = lc_xml_node_dcmitype_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:xsi' + value = lc_xml_node_xsi_ns ). + +********************************************************************** +* STEP 4: Create subnodes + " Creator node + lo_element = lo_document->create_simple_element_ns( name = lc_xml_node_creator + prefix = lc_dc_ns + parent = lo_document ). + lv_value = excel->properties->creator. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " lastModifiedBy node + lo_element = lo_document->create_simple_element_ns( name = lc_xml_node_lastmodifiedby + prefix = lc_cp_ns + parent = lo_document ). + lv_value = excel->properties->lastmodifiedby. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " Created node + lo_element = lo_document->create_simple_element_ns( name = lc_xml_node_created + prefix = lc_dcterms_ns + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + prefix = lc_xsi_ns + value = lc_xml_attr_target ). + lv_value = excel->properties->created. + lv_value = '2010-07-04T14:58:53Z'. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " Modified node + lo_element = lo_document->create_simple_element_ns( name = lc_xml_node_modified + prefix = lc_dcterms_ns + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + prefix = lc_xsi_ns + value = lc_xml_attr_target ). + lv_value = excel->properties->modified. + lv_value = '2010-07-04T14:58:53Z'. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD CREATE_RELATIONSHIPS. + + +** Constant node name + DATA: lc_xml_node_relationships TYPE string VALUE 'Relationships', + lc_xml_node_relationship TYPE string VALUE 'Relationship', + " Node attributes + lc_xml_attr_id TYPE string VALUE 'Id', + lc_xml_attr_type TYPE string VALUE 'Type', + lc_xml_attr_target TYPE string VALUE 'Target', + " Node namespace + lc_xml_node_rels_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships', + " Node id + lc_xml_node_rId1_id TYPE string VALUE 'rId1', + lc_xml_node_rId2_id TYPE string VALUE 'rId2', + lc_xml_node_rId3_id TYPE string VALUE 'rId3', + " Node type + lc_xml_node_rId1_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument', + lc_xml_node_rId2_tp TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties', + lc_xml_node_rId3_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties', + " Node target + lc_xml_node_rId1_tg TYPE string VALUE 'xl/workbook.xml', + lc_xml_node_rId2_tg TYPE string VALUE 'docProps/core.xml', + lc_xml_node_rId3_tg TYPE string VALUE 'docProps/app.xml'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_relationships + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_rels_ns ). + +********************************************************************** +* STEP 4: Create subnodes + " Theme node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lc_xml_node_rId3_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rId3_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rId3_tg ). + lo_element_root->append_child( lo_element ). + + " Styles node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lc_xml_node_rId2_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rId2_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rId2_tg ). + lo_element_root->append_child( lo_element ). + + " rels node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lc_xml_node_rId1_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rId1_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rId1_tg ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD create_xl_calcchain. + + +** Constant node name + DATA: lc_xml_node_calcchain TYPE string VALUE 'calcChain', + lc_xml_node_c TYPE string VALUE 'c', + " Node attributes + lc_xml_attr_r TYPE string VALUE 'r', + lc_xml_attr_i TYPE string VALUE 'i', + " Node namespace + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + + DATA: lv_value TYPE string, + lv_value_i TYPE string, + lv_sheets_count TYPE i. + + FIELD-SYMBOLS: <ls_sheet_content> TYPE zexcel_s_cell_data. + +********************************************************************** +* STEP 1: Create xl/calcChain.xml + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'UTF-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node calcChain + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_calcchain + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + +********************************************************************** +* STEP 4: Create subnodes + lo_iterator = excel->get_worksheets_iterator( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + ADD 1 TO lv_sheets_count. + MOVE lv_sheets_count TO lv_value_i. + SHIFT lv_value_i RIGHT DELETING TRAILING space. + SHIFT lv_value_i LEFT DELETING LEADING space. + LOOP AT lo_worksheet->sheet_content ASSIGNING <ls_sheet_content> WHERE cell_formula IS NOT INITIAL. + " formula chain node + lo_element = lo_document->create_simple_element( name = lc_xml_node_c + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_r + value = lv_value ). + lo_element->set_attribute_ns( name = lc_xml_attr_i + value = lv_value_i ). + lo_element_root->append_child( lo_element ). + ENDLOOP. + ENDWHILE. + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD create_xl_relationships. + + +** Constant node name + DATA: lc_xml_node_relationships TYPE string VALUE 'Relationships', + lc_xml_node_relationship TYPE string VALUE 'Relationship', + " Node attributes + lc_xml_attr_id TYPE string VALUE 'Id', + lc_xml_attr_type TYPE string VALUE 'Type', + lc_xml_attr_target TYPE string VALUE 'Target', + " Node namespace + lc_xml_node_rels_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships', + " Node id + lc_xml_node_ridx_id TYPE string VALUE 'rId#', + " Node type + lc_xml_node_rid_sheet_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet', + lc_xml_node_rid_theme_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme', + lc_xml_node_rid_styles_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles', + lc_xml_node_rid_shared_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings', + lc_xml_node_rid_calcchain_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/calcChain', + " Node target + lc_xml_node_ridx_tg TYPE string VALUE 'worksheets/sheet#.xml', + lc_xml_node_rid_shared_tg TYPE string VALUE 'sharedStrings.xml', + lc_xml_node_rid_styles_tg TYPE string VALUE 'styles.xml', + lc_xml_node_rid_theme_tg TYPE string VALUE 'theme/theme1.xml', + lc_xml_node_rid_calcchain_tg TYPE string VALUE 'calcChain.xml'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + + DATA: lv_xml_node_ridx_tg TYPE string, + lv_xml_node_ridx_id TYPE string, + lv_size TYPE i, + lv_syindex(2) TYPE c. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_relationships + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_rels_ns ). + +********************************************************************** +* STEP 4: Create subnodes + + lv_size = excel->get_worksheets_size( ). + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lv_size = lv_size + 2. + lv_syindex = lv_size. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_styles_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_styles_tg ). + lo_element_root->append_child( lo_element ). + + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lv_size = lv_size - 1. + lv_syindex = lv_size. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_theme_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_theme_tg ). + lo_element_root->append_child( lo_element ). + + lv_size = excel->get_worksheets_size( ). + + DO lv_size TIMES. + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + lv_xml_node_ridx_tg = lc_xml_node_ridx_tg. + lv_syindex = sy-index. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_tg WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_sheet_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lv_xml_node_ridx_tg ). + lo_element_root->append_child( lo_element ). + ENDDO. + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + ADD 3 TO lv_size. + lv_syindex = lv_size. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_shared_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_shared_tg ). + lo_element_root->append_child( lo_element ). + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + ADD 1 TO lv_size. + lv_syindex = lv_size. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_calcchain_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_calcchain_tg ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD create_xl_sharedstrings. + + +** Constant node name + DATA: lc_xml_node_sst TYPE string VALUE 'sst', + lc_xml_node_si TYPE string VALUE 'si', + lc_xml_node_t TYPE string VALUE 't', + " Node attributes + lc_xml_attr_count TYPE string VALUE 'count', + lc_xml_attr_uniquecount TYPE string VALUE 'uniqueCount', + " Node namespace + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_sub_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + + DATA: lt_cell_data TYPE zexcel_t_cell_data_unsorted, + ls_shared_string TYPE zexcel_s_shared_string, + lv_value TYPE string, + lv_count_str TYPE string, + lv_uniquecount_str TYPE string, + lv_sytabix TYPE sytabix, + lv_count TYPE i, + lv_uniquecount TYPE i. + + FIELD-SYMBOLS: <fs_sheet_content> TYPE zexcel_s_cell_data, + <fs_sheet_string> TYPE zexcel_s_shared_string. + +********************************************************************** +* STEP 1: Collect strings from each worksheet + lo_iterator = excel->get_worksheets_iterator( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + APPEND LINES OF lo_worksheet->sheet_content TO lt_cell_data. + ENDWHILE. + + DELETE lt_cell_data WHERE cell_formula IS NOT INITIAL. " delete formula content + + DESCRIBE TABLE lt_cell_data LINES lv_count. + MOVE lv_count TO lv_count_str. + + SHIFT lv_count_str RIGHT DELETING TRAILING space. + SHIFT lv_count_str LEFT DELETING LEADING space. + + SORT lt_cell_data BY cell_value. + DELETE ADJACENT DUPLICATES FROM lt_cell_data COMPARING cell_value. + + DESCRIBE TABLE lt_cell_data LINES lv_uniquecount. + MOVE lv_uniquecount TO lv_uniquecount_str. + + SHIFT lv_uniquecount_str RIGHT DELETING TRAILING space. + SHIFT lv_uniquecount_str LEFT DELETING LEADING space. + + LOOP AT lt_cell_data ASSIGNING <fs_sheet_content>. + lv_sytabix = sy-tabix - 1. + MOVE lv_sytabix TO ls_shared_string-string_no. + MOVE <fs_sheet_content>-cell_value TO ls_shared_string-string_value. + APPEND ls_shared_string TO shared_strings. + ENDLOOP. + + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_sst + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + lo_element_root->set_attribute_ns( name = lc_xml_attr_count + value = lv_count_str ). + lo_element_root->set_attribute_ns( name = lc_xml_attr_uniquecount + value = lv_uniquecount_str ). + +********************************************************************** +* STEP 4: Create subnode + LOOP AT shared_strings ASSIGNING <fs_sheet_string>. + lo_element = lo_document->create_simple_element( name = lc_xml_node_si + parent = lo_document ). + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_t + parent = lo_document ). + lo_sub_element->set_value( <fs_sheet_string>-string_value ). + lo_element->append_child( lo_sub_element ). + lo_element_root->append_child( lo_element ). + ENDLOOP. + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + + + METHOD create_xl_sheet. + + +** Constant node name + DATA: lc_xml_node_worksheet TYPE string VALUE 'worksheet', + lc_xml_node_dimension TYPE string VALUE 'dimension', + lc_xml_node_sheetviews TYPE string VALUE 'sheetViews', + lc_xml_node_sheetview TYPE string VALUE 'sheetView', + lc_xml_node_selection TYPE string VALUE 'selection', + lc_xml_node_sheetformatpr TYPE string VALUE 'sheetFormatPr', + lc_xml_node_sheetdata TYPE string VALUE 'sheetData', + lc_xml_node_row TYPE string VALUE 'row', + lc_xml_node_c TYPE string VALUE 'c', + lc_xml_node_v TYPE string VALUE 'v', + lc_xml_node_f TYPE string VALUE 'f', + lc_xml_node_pagemargins TYPE string VALUE 'pageMargins', + lc_xml_node_condformatting TYPE string VALUE 'conditionalFormatting', + lc_xml_node_cfrule TYPE string VALUE 'cfRule', + lc_xml_node_iconset TYPE string VALUE 'iconSet', + lc_xml_node_cfvo TYPE string VALUE 'cfvo', + lc_xml_node_formula TYPE string VALUE 'formula', + " Node attributes + lc_xml_attr_ref TYPE string VALUE 'ref', + lc_xml_attr_tabselected TYPE string VALUE 'tabSelected', + lc_xml_attr_workbookviewid TYPE string VALUE 'workbookViewId', + lc_xml_attr_activecell TYPE string VALUE 'activeCell', + lc_xml_attr_sqref TYPE string VALUE 'sqref', + lc_xml_attr_defaultrowheight TYPE string VALUE 'defaultRowHeight', + lc_xml_attr_r TYPE string VALUE 'r', + lc_xml_attr_s TYPE string VALUE 's', + lc_xml_attr_spans TYPE string VALUE 'spans', + lc_xml_attr_t TYPE string VALUE 't', + lc_xml_attr_left TYPE string VALUE 'left', + lc_xml_attr_right TYPE string VALUE 'right', + lc_xml_attr_top TYPE string VALUE 'top', + lc_xml_attr_bottom TYPE string VALUE 'bottom', + lc_xml_attr_header TYPE string VALUE 'header', + lc_xml_attr_footer TYPE string VALUE 'footer', + lc_xml_attr_type TYPE string VALUE 'type', + lc_xml_attr_iconset TYPE string VALUE 'iconSet', + lc_xml_attr_val TYPE string VALUE 'val', + lc_xml_attr_dxfid TYPE string VALUE 'dxfId', + lc_xml_attr_priority TYPE string VALUE 'priority', + lc_xml_attr_operator TYPE string VALUE 'operator', + " Node namespace + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main', + lc_xml_node_r_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_element_2 TYPE REF TO if_ixml_element, + lo_element_3 TYPE REF TO if_ixml_element, + lo_element_4 TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_style_conditional TYPE REF TO zcl_excel_style_conditional. + + DATA: lv_value TYPE string, + lt_percent_val TYPE TABLE OF string, + ls_percent_val TYPE string, + ls_last_row TYPE zexcel_s_cell_data, + ls_style_mapping TYPE zexcel_s_styles_mapping. + + FIELD-SYMBOLS: <ls_sheet_content> TYPE zexcel_s_cell_data. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +*********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_worksheet + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:r' + value = lc_xml_node_r_ns ). + +********************************************************************** +* STEP 4: Create subnodes + + " dimension node + lo_element = lo_document->create_simple_element( name = lc_xml_node_dimension + parent = lo_document ). + lv_value = io_worksheet->get_dimension_range( ). + lo_element->set_attribute_ns( name = lc_xml_attr_ref + value = lv_value ). + lo_element_root->append_child( lo_element ). + + " sheetViews node + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetviews + parent = lo_document ). + " sheetView node + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_sheetview + parent = lo_document ). + IF iv_active EQ abap_true. + lo_element_2->set_attribute_ns( name = lc_xml_attr_tabselected + value = '1' ). + ENDIF. + lo_element_2->set_attribute_ns( name = lc_xml_attr_workbookviewid + value = '0' ). + + " selection node + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_selection + parent = lo_document ). + lv_value = io_worksheet->get_active_cell( ). + lo_element_3->set_attribute_ns( name = lc_xml_attr_activecell + value = lv_value ). + + lo_element_3->set_attribute_ns( name = lc_xml_attr_sqref + value = lv_value ). + + lo_element_2->append_child( lo_element_3 ). " sheetView node + + lo_element->append_child( lo_element_2 ). " sheetView node + + lo_element_root->append_child( lo_element ). " sheetViews node + + + " sheetFormatPr node + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetformatpr + parent = lo_document ). + lv_value = io_worksheet->defaultrowheight. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_defaultrowheight + value = lv_value ). + lo_element_root->append_child( lo_element ). " sheetFormatPr node + + " sheetData node + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetdata + parent = lo_document ). + LOOP AT io_worksheet->sheet_content ASSIGNING <ls_sheet_content>. + CLEAR ls_style_mapping. + IF ls_last_row-cell_row NE <ls_sheet_content>-cell_row. + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_row + parent = lo_document ). + lv_value = <ls_sheet_content>-cell_row. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_2->set_attribute_ns( name = lc_xml_attr_r + value = lv_value ). + + lo_element_2->set_attribute_ns( name = lc_xml_attr_spans + value = '1:1' ). " <******************************* + ENDIF. + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_c + parent = lo_document ). + + lo_element_3->set_attribute_ns( name = lc_xml_attr_r + value = <ls_sheet_content>-cell_coords ). + + IF <ls_sheet_content>-cell_style IS NOT INITIAL. + READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = <ls_sheet_content>-cell_style. + lv_value = ls_style_mapping-style. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_3->set_attribute_ns( name = lc_xml_attr_s + value = lv_value ). + ENDIF. + IF ls_style_mapping-cell_format IS INITIAL. " to avoid errors if no style has been created + IF <ls_sheet_content>-cell_formula IS INITIAL. + ls_style_mapping-cell_format = 'S'. + ELSE. + ls_style_mapping-cell_format = 'F'. + ENDIF. + ENDIF. + " is a shared string and is not a formula + IF ls_style_mapping-cell_format EQ 'S'. + lo_element_3->set_attribute_ns( name = lc_xml_attr_t + value = 's' ). + ENDIF. + IF <ls_sheet_content>-cell_formula IS NOT INITIAL. + " fomula node + lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_f + parent = lo_document ). + lv_value = <ls_sheet_content>-cell_formula. + lo_element_4->set_value( lv_value ). + lo_element_3->append_child( lo_element_4 ). " fomula node + ENDIF. + " value node + lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_v + parent = lo_document ). + + IF ls_style_mapping-cell_format EQ 'S'. + lv_value = me->get_shared_string_index( <ls_sheet_content>-cell_value ). + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_4->set_value( lv_value ). + ELSE. + lv_value = <ls_sheet_content>-cell_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_4->set_value( lv_value ). + ENDIF. + + lo_element_3->append_child( lo_element_4 ). " value node + + lo_element_2->append_child( lo_element_3 ). " column node + IF ls_last_row-cell_row NE <ls_sheet_content>-cell_row. + lo_element->append_child( lo_element_2 ). " row node + ls_last_row = <ls_sheet_content>. + ENDIF. + + ENDLOOP. + lo_element_root->append_child( lo_element ). " sheetData node + + " Conditional formatting node + lo_iterator = io_worksheet->get_cond_styles_iterator( ). + WHILE lo_iterator->has_next( ) EQ abap_true. + lo_style_conditional ?= lo_iterator->get_next( ). + IF lo_style_conditional->rule IS INITIAL. + CONTINUE. + ENDIF. + lo_element = lo_document->create_simple_element( name = lc_xml_node_condformatting + parent = lo_document ). + lv_value = lo_style_conditional->get_dimension_range( ) . + lo_element->set_attribute_ns( name = lc_xml_attr_sqref + value = lv_value ). + + " cfRule node + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_cfrule + parent = lo_document ). + lv_value = lo_style_conditional->rule. + lo_element_2->set_attribute_ns( name = lc_xml_attr_type + value = lv_value ). + lv_value = lo_style_conditional->priority. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_2->set_attribute_ns( name = lc_xml_attr_priority + value = lv_value ). + + CASE lo_style_conditional->rule. + WHEN zcl_excel_style_conditional=>c_rule_iconset. + CLEAR lt_percent_val. + " iconset node + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_iconset + parent = lo_document ). + IF lo_style_conditional->iconset NE zcl_excel_style_conditional=>c_iconset_3trafficlights. + lv_value = lo_style_conditional->iconset. + lo_element_3->set_attribute_ns( name = lc_xml_attr_iconset + value = lv_value ). + ENDIF. + + CASE lo_style_conditional->iconset. + WHEN zcl_excel_style_conditional=>c_iconset_3trafficlights2 OR + zcl_excel_style_conditional=>c_iconset_3arrows OR + zcl_excel_style_conditional=>c_iconset_3arrowsgray OR + zcl_excel_style_conditional=>c_iconset_3flags OR + zcl_excel_style_conditional=>c_iconset_3signs OR + zcl_excel_style_conditional=>c_iconset_3symbols OR + zcl_excel_style_conditional=>c_iconset_3symbols2 OR + zcl_excel_style_conditional=>c_iconset_3trafficlights OR + zcl_excel_style_conditional=>c_iconset_3trafficlights2. + APPEND '0' TO lt_percent_val. + APPEND '33' TO lt_percent_val. + APPEND '67' TO lt_percent_val. + WHEN zcl_excel_style_conditional=>c_iconset_4arrows OR + zcl_excel_style_conditional=>c_iconset_4arrowsgray OR + zcl_excel_style_conditional=>c_iconset_4rating OR + zcl_excel_style_conditional=>c_iconset_4redtoblack OR + zcl_excel_style_conditional=>c_iconset_4trafficlights. + APPEND '0' TO lt_percent_val. + APPEND '25' TO lt_percent_val. + APPEND '50' TO lt_percent_val. + APPEND '75' TO lt_percent_val. + WHEN zcl_excel_style_conditional=>c_iconset_5arrows OR + zcl_excel_style_conditional=>c_iconset_5arrowsgray OR + zcl_excel_style_conditional=>c_iconset_5quarters OR + zcl_excel_style_conditional=>c_iconset_5rating. + APPEND '0' TO lt_percent_val. + APPEND '20' TO lt_percent_val. + APPEND '40' TO lt_percent_val. + APPEND '60' TO lt_percent_val. + APPEND '80' TO lt_percent_val. + WHEN OTHERS. + CLEAR lt_percent_val. + ENDCASE. + + LOOP AT lt_percent_val INTO ls_percent_val. + " cfvo node + lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_cfvo + parent = lo_document ). + lo_element_4->set_attribute_ns( name = lc_xml_attr_type + value = 'percent' ). + lo_element_4->set_attribute_ns( name = lc_xml_attr_val + value = ls_percent_val ). + lo_element_3->append_child( lo_element_4 ). " cfvo node + ENDLOOP. + + + lo_element_2->append_child( lo_element_3 ). " iconset node + WHEN zcl_excel_style_conditional=>c_rule_cellis. + lo_element_2->set_attribute_ns( name = lc_xml_attr_dxfid + value = '0' ). " @TODO <***************************** + lv_value = lo_style_conditional->operator. + lo_element_2->set_attribute_ns( name = lc_xml_attr_operator + value = lv_value ). + " formula node + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_formula + parent = lo_document ). + lv_value = lo_style_conditional->formula. + lo_element_3->set_value( lv_value ). + lo_element_2->append_child( lo_element_3 ). " formula node + + ENDCASE. + + lo_element->append_child( lo_element_2 ). " cfRule node + + lo_element_root->append_child( lo_element ). " Conditional formatting node + ENDWHILE. + " pageMargins node + lo_element = lo_document->create_simple_element( name = lc_xml_node_pagemargins + parent = lo_document ). + + lo_element->set_attribute_ns( name = lc_xml_attr_left + value = '0.7' ). " @TODO <***************************** + lo_element->set_attribute_ns( name = lc_xml_attr_right + value = '0.7' ). " @TODO <***************************** + lo_element->set_attribute_ns( name = lc_xml_attr_top + value = '0.75' ). " @TODO <***************************** + lo_element->set_attribute_ns( name = lc_xml_attr_bottom + value = '0.75' ). " @TODO <***************************** + lo_element->set_attribute_ns( name = lc_xml_attr_header + value = '0.3' ). " @TODO <***************************** + lo_element->set_attribute_ns( name = lc_xml_attr_footer + value = '0.3' ). " @TODO <***************************** + lo_element_root->append_child( lo_element ). " sheetFormatPr node + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD create_xl_sheet_rels. + + +** Constant node name + DATA: lc_xml_node_relationships TYPE string VALUE 'Relationships', + lc_xml_node_relationship TYPE string VALUE 'Relationship', + " Node attributes + lc_xml_attr_id TYPE string VALUE 'Id', + lc_xml_attr_type TYPE string VALUE 'Type', + lc_xml_attr_target TYPE string VALUE 'Target', + " Node namespace + lc_xml_node_rels_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships', + " Node id + lc_xml_node_ridx_id TYPE string VALUE 'rId#', + lc_xml_node_rid_print_id TYPE string VALUE 'rId1', + " Node type + lc_xml_node_rid_print_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings', + " Node target + lc_xml_node_rid_print_tg TYPE string VALUE '../printerSettings/printerSettings1.bin'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_relationships + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_rels_ns ). + +********************************************************************** +* STEP 4: Create subnodes + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lc_xml_node_rid_print_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_print_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_print_tg ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD create_xl_styles. + + +** Constant node name + DATA: lc_xml_node_stylesheet TYPE string VALUE 'styleSheet', + " font + lc_xml_node_fonts TYPE string VALUE 'fonts', + lc_xml_node_font TYPE string VALUE 'font', + lc_xml_node_b TYPE string VALUE 'b', "bold + lc_xml_node_i TYPE string VALUE 'i', "italic + lc_xml_node_u TYPE string VALUE 'u', "underline + lc_xml_node_strike TYPE string VALUE 'strike', "strikethrough + lc_xml_node_sz TYPE string VALUE 'sz', + lc_xml_node_color TYPE string VALUE 'color', + lc_xml_node_name TYPE string VALUE 'name', + lc_xml_node_family TYPE string VALUE 'family', + lc_xml_node_scheme TYPE string VALUE 'scheme', + " fill + lc_xml_node_fills TYPE string VALUE 'fills', + lc_xml_node_fill TYPE string VALUE 'fill', + lc_xml_node_patternfill TYPE string VALUE 'patternFill', + lc_xml_node_fgcolor TYPE string VALUE 'fgColor', + lc_xml_node_bgcolor TYPE string VALUE 'bgColor', + lc_xml_node_gradientfill TYPE string VALUE 'gradientFill', + lc_xml_node_stop TYPE string VALUE 'stop', + " borders + lc_xml_node_borders TYPE string VALUE 'borders', + lc_xml_node_border TYPE string VALUE 'border', + lc_xml_node_left TYPE string VALUE 'left', + lc_xml_node_right TYPE string VALUE 'right', + lc_xml_node_top TYPE string VALUE 'top', + lc_xml_node_bottom TYPE string VALUE 'bottom', + lc_xml_node_diagonal TYPE string VALUE 'diagonal', + " Styles + lc_xml_node_cellstylexfs TYPE string VALUE 'cellStyleXfs', + lc_xml_node_xf TYPE string VALUE 'xf', + lc_xml_node_cellxfs TYPE string VALUE 'cellXfs', + lc_xml_node_cellstyles TYPE string VALUE 'cellStyles', + lc_xml_node_cellstyle TYPE string VALUE 'cellStyle', + lc_xml_node_dxfs TYPE string VALUE 'dxfs', + lc_xml_node_tablestyles TYPE string VALUE 'tableStyles', + " Colors + lc_xml_node_colors TYPE string VALUE 'colors', + lc_xml_node_mrucolors TYPE string VALUE 'mruColors', + " Node attributes + lc_xml_attr_count TYPE string VALUE 'count', + lc_xml_attr_val TYPE string VALUE 'val', + lc_xml_attr_theme TYPE string VALUE 'theme', + lc_xml_attr_rgb TYPE string VALUE 'rgb', + lc_xml_attr_indexed TYPE string VALUE 'indexed', + lc_xml_attr_style TYPE string VALUE 'style', + lc_xml_attr_position TYPE string VALUE 'position', + lc_xml_attr_degree TYPE string VALUE 'degree', + lc_xml_attr_patterntype TYPE string VALUE 'patternType', + lc_xml_attr_numfmtid TYPE string VALUE 'numFmtId', + lc_xml_attr_fontid TYPE string VALUE 'fontId', + lc_xml_attr_fillid TYPE string VALUE 'fillId', + lc_xml_attr_borderid TYPE string VALUE 'borderId', + lc_xml_attr_xfid TYPE string VALUE 'xfId', + lc_xml_attr_applynumberformat TYPE string VALUE 'applyNumberFormat', + lc_xml_attr_applyfont TYPE string VALUE 'applyFont', + lc_xml_attr_applyfill TYPE string VALUE 'applyFill', + lc_xml_attr_applyborder TYPE string VALUE 'applyBorder', + lc_xml_attr_name TYPE string VALUE 'name', + lc_xml_attr_builtinid TYPE string VALUE 'builtinId', + lc_xml_attr_defaulttablestyle TYPE string VALUE 'defaultTableStyle', + lc_xml_attr_defaultpivotstyle TYPE string VALUE 'defaultPivotStyle', + " Node namespace + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element_fonts TYPE REF TO if_ixml_element, + lo_element_font TYPE REF TO if_ixml_element, + lo_element_fills TYPE REF TO if_ixml_element, + lo_element_fill TYPE REF TO if_ixml_element, + lo_element_borders TYPE REF TO if_ixml_element, + lo_element_border TYPE REF TO if_ixml_element, + lo_element_cellxfs TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_sub_element TYPE REF TO if_ixml_element, + lo_sub_element_2 TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_style TYPE REF TO zcl_excel_style. + + + DATA: lt_fonts TYPE zexcel_t_style_font, + ls_font TYPE zexcel_s_style_font, + lt_fills TYPE zexcel_t_style_fill, + ls_fill TYPE zexcel_s_style_fill, + lt_borders TYPE zexcel_t_style_border, + ls_border TYPE zexcel_s_style_border, + ls_format TYPE zexcel_number_format, + lt_cellxfs TYPE zexcel_t_cellxfs, + ls_cellxfs TYPE zexcel_s_cellxfs, + ls_styles_mapping TYPE zexcel_s_styles_mapping, + lt_colors TYPE TABLE OF zexcel_style_color_argb, + ls_color TYPE zexcel_style_color_argb. + + DATA: lv_value TYPE string, + lv_fonts_count TYPE i, + lv_fills_count TYPE i, + lv_borders_count TYPE i, + lv_cellxfs_count TYPE i. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +*********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_stylesheet + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + +********************************************************************** +* STEP 4: Create subnodes + + lo_element_fonts = lo_document->create_simple_element( name = lc_xml_node_fonts + parent = lo_document ). + + lo_element_fills = lo_document->create_simple_element( name = lc_xml_node_fills + parent = lo_document ). + + lo_element_borders = lo_document->create_simple_element( name = lc_xml_node_borders + parent = lo_document ). + + lo_element_cellxfs = lo_document->create_simple_element( name = lc_xml_node_cellxfs + parent = lo_document ). + +* Compress styles + lo_iterator = excel->get_styles_iterator( ). + WHILE lo_iterator->has_next( ) EQ abap_true. + lo_style ?= lo_iterator->get_next( ). + ls_font = lo_style->font->get_structure( ). + ls_fill = lo_style->fill->get_structure( ). + ls_border = lo_style->borders->get_structure( ). + ls_format = lo_style->number_format->get_structure( ). + + +* Compress fonts + READ TABLE lt_fonts FROM ls_font TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_cellxfs-fontid = sy-tabix. + ELSE. + APPEND ls_font TO lt_fonts. + DESCRIBE TABLE lt_fonts LINES ls_cellxfs-fontid. + ENDIF. + SUBTRACT 1 FROM ls_cellxfs-fontid. + +* Compress fills + READ TABLE lt_fills FROM ls_fill TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_cellxfs-fillid = sy-tabix. + ELSE. + APPEND ls_fill TO lt_fills. + DESCRIBE TABLE lt_fills LINES ls_cellxfs-fillid. + ENDIF. + SUBTRACT 1 FROM ls_cellxfs-fillid. + +* Compress borders + READ TABLE lt_borders FROM ls_border TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_cellxfs-borderid = sy-tabix. + ELSE. + APPEND ls_border TO lt_borders. + DESCRIBE TABLE lt_borders LINES ls_cellxfs-borderid. + ENDIF. + SUBTRACT 1 FROM ls_cellxfs-borderid. + + IF ls_format IS INITIAL. + ls_cellxfs-numfmtid = 0. " number format + ELSE. + ls_cellxfs-numfmtid = ls_format. " number format + ENDIF. + ls_cellxfs-xfid = 0. + + IF ls_format IS NOT INITIAL. + ls_cellxfs-applynumberformat = 1. + ls_styles_mapping-cell_format = 'I'. + ELSE. + ls_cellxfs-applynumberformat = 0. + ls_styles_mapping-cell_format = 'S'. + ENDIF. + IF ls_cellxfs-fontid NE 0. + ls_cellxfs-applyfont = 1. + ELSE. + ls_cellxfs-applyfont = 0. + ENDIF. + IF ls_cellxfs-fillid NE 0. + ls_cellxfs-applyfill = 1. + ELSE. + ls_cellxfs-applyfill = 0. + ENDIF. + IF ls_cellxfs-borderid NE 0. + ls_cellxfs-applyborder = 1. + ELSE. + ls_cellxfs-applyborder = 0. + ENDIF. + +* Remap styles + READ TABLE lt_cellxfs FROM ls_cellxfs TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_styles_mapping-style = sy-tabix. + ELSE. + APPEND ls_cellxfs TO lt_cellxfs. + DESCRIBE TABLE lt_cellxfs LINES ls_styles_mapping-style. + ENDIF. + SUBTRACT 1 FROM ls_styles_mapping-style. + ls_styles_mapping-guid = lo_style->get_guid( ). + APPEND ls_styles_mapping TO me->styles_mapping. + ENDWHILE. + + " create font elements + LOOP AT lt_fonts INTO ls_font. + lo_element_font = lo_document->create_simple_element( name = lc_xml_node_font + parent = lo_document ). + IF ls_font-bold EQ abap_true. + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_b + parent = lo_document ). + lo_element_font->append_child( lo_sub_element ). + ENDIF. + IF ls_font-italic EQ abap_true. + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_i + parent = lo_document ). + lo_element_font->append_child( lo_sub_element ). + ENDIF. + IF ls_font-underline EQ abap_true. + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_u + parent = lo_document ). + lv_value = ls_font-underline_mode. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + ENDIF. + IF ls_font-strikethrough EQ abap_true. + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_strike + parent = lo_document ). + lo_element_font->append_child( lo_sub_element ). + ENDIF. + "size + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_sz + parent = lo_document ). + lv_value = ls_font-size. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + "color + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_font-color. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + "name + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_name + parent = lo_document ). + lv_value = ls_font-name. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + "family + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_family + parent = lo_document ). + lv_value = ls_font-family. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + "scheme + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_scheme + parent = lo_document ). + lv_value = ls_font-scheme. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + lo_element_fonts->append_child( lo_element_font ). + " Collect color + APPEND ls_font-color TO lt_colors. + ENDLOOP. + + " create fill elements + LOOP AT lt_fills INTO ls_fill. + lo_element_fill = lo_document->create_simple_element( name = lc_xml_node_fill + parent = lo_document ). + "pattern + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_patternfill + parent = lo_document ). + lv_value = ls_fill-filltype. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_patterntype + value = lv_value ). + " fgcolor + IF ls_fill-fgcolor IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_fgcolor + parent = lo_document ). + lv_value = ls_fill-fgcolor. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + + lo_sub_element->append_child( lo_sub_element_2 )." fgcolor + ENDIF. + " bgcolor + IF ls_fill-bgcolor IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_bgcolor + parent = lo_document ). + lv_value = ls_fill-bgcolor. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_indexed + value = lv_value ). + + lo_sub_element->append_child( lo_sub_element_2 )." bgcolor + ENDIF. + + lo_element_fill->append_child( lo_sub_element )."pattern + lo_element_fills->append_child( lo_element_fill ). + " Collect color + IF ls_fill-fgcolor IS NOT INITIAL. + APPEND ls_fill-fgcolor TO lt_colors. + ENDIF. + ENDLOOP. + + " create border elements + LOOP AT lt_borders INTO ls_border. + lo_element_border = lo_document->create_simple_element( name = lc_xml_node_border + parent = lo_document ). + "left + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_left + parent = lo_document ). + IF ls_border-left_style IS NOT INITIAL. + lv_value = ls_border-left_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + IF ls_border-left_color IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_border-left_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color +* Collect color + APPEND ls_border-left_color TO lt_colors. + ENDIF. + lo_element_border->append_child( lo_sub_element ). + + "right + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_right + parent = lo_document ). + IF ls_border-right_style IS NOT INITIAL. + lv_value = ls_border-right_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + IF ls_border-right_color IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_border-right_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color +* Collect color + APPEND ls_border-right_color TO lt_colors. + ENDIF. + lo_element_border->append_child( lo_sub_element ). + + "top + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_top + parent = lo_document ). + IF ls_border-top_style IS NOT INITIAL. + lv_value = ls_border-top_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + IF ls_border-top_color IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_border-top_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color +* Collect color + APPEND ls_border-top_color TO lt_colors. + ENDIF. + lo_element_border->append_child( lo_sub_element ). + + "bottom + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_bottom + parent = lo_document ). + IF ls_border-bottom_style IS NOT INITIAL. + lv_value = ls_border-bottom_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + IF ls_border-bottom_color IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_border-bottom_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color +* Collect color + APPEND ls_border-bottom_color TO lt_colors. + ENDIF. + lo_element_border->append_child( lo_sub_element ). + + "diagonal + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_diagonal + parent = lo_document ). + IF ls_border-diagonal_style IS NOT INITIAL. + lv_value = ls_border-diagonal_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + IF ls_border-diagonal_color IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_border-diagonal_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color +* Collect color + APPEND ls_border-diagonal_color TO lt_colors. + ENDIF. + lo_element_border->append_child( lo_sub_element ). + lo_element_borders->append_child( lo_element_border ). + ENDLOOP. + + " update attribute "count" + DESCRIBE TABLE lt_fonts LINES lv_fonts_count. + MOVE lv_fonts_count TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_fonts->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + DESCRIBE TABLE lt_fills LINES lv_fills_count. + MOVE lv_fills_count TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_fills->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + DESCRIBE TABLE lt_borders LINES lv_borders_count. + MOVE lv_borders_count TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_borders->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + DESCRIBE TABLE lt_cellxfs LINES lv_cellxfs_count. + MOVE lv_cellxfs_count TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_cellxfs->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + + " Append to root node + lo_element_root->append_child( lo_element_fonts ). + lo_element_root->append_child( lo_element_fills ). + lo_element_root->append_child( lo_element_borders ). + + " cellstylexfs node + lo_element = lo_document->create_simple_element( name = lc_xml_node_cellstylexfs + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_count + value = '1' ). + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_xf + parent = lo_document ). + + lo_sub_element->set_attribute_ns( name = lc_xml_attr_numfmtid + value = '0' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_fontid + value = '0' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_fillid + value = '0' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_borderid + value = '0' ). + + lo_element->append_child( lo_sub_element ). + lo_element_root->append_child( lo_element ). + + LOOP AT lt_cellxfs INTO ls_cellxfs. + lo_element = lo_document->create_simple_element( name = lc_xml_node_xf + parent = lo_document ). + MOVE ls_cellxfs-numfmtid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_numfmtid + value = lv_value ). + MOVE ls_cellxfs-fontid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_fontid + value = lv_value ). + MOVE ls_cellxfs-fillid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_fillid + value = lv_value ). + MOVE ls_cellxfs-borderid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_borderid + value = lv_value ). + MOVE ls_cellxfs-xfid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_xfid + value = lv_value ). + IF ls_cellxfs-applynumberformat EQ 1. + MOVE ls_cellxfs-applynumberformat TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_applynumberformat + value = lv_value ). + ENDIF. + IF ls_cellxfs-applyfont EQ 1. + MOVE ls_cellxfs-applyfont TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_applyfont + value = lv_value ). + ENDIF. + IF ls_cellxfs-applyfill EQ 1. + MOVE ls_cellxfs-applyfill TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_applyfill + value = lv_value ). + ENDIF. + IF ls_cellxfs-applyborder EQ 1. + MOVE ls_cellxfs-applyborder TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_applyborder + value = lv_value ). + ENDIF. + lo_element_cellxfs->append_child( lo_element ). + ENDLOOP. + + lo_element_root->append_child( lo_element_cellxfs ). + + " cellStyles node + lo_element = lo_document->create_simple_element( name = lc_xml_node_cellstyles + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_count + value = '1' ). + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_cellstyle + parent = lo_document ). + + lo_sub_element->set_attribute_ns( name = lc_xml_attr_name + value = 'Normal' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_xfid + value = '0' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_builtinid + value = '0' ). + + lo_element->append_child( lo_sub_element ). + lo_element_root->append_child( lo_element ). + + " dxfs node + lo_element = lo_document->create_simple_element( name = lc_xml_node_dxfs + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_count + value = '0' ). + lo_element_root->append_child( lo_element ). + + " tableStyles node + lo_element = lo_document->create_simple_element( name = lc_xml_node_tablestyles + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_count + value = '0' ). + lo_element->set_attribute_ns( name = lc_xml_attr_defaulttablestyle + value = 'TableStyleMedium9' ). + lo_element->set_attribute_ns( name = lc_xml_attr_defaultpivotstyle + value = 'PivotStyleLight16' ). + lo_element_root->append_child( lo_element ). + + " colors node + lo_element = lo_document->create_simple_element( name = lc_xml_node_colors + parent = lo_document ). + " mruColors node + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_mrucolors + parent = lo_document ). + + SORT lt_colors. + DELETE ADJACENT DUPLICATES FROM lt_colors. + + LOOP AT lt_colors INTO ls_color. + " color node + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color node + ENDLOOP. + + lo_element->append_child( lo_sub_element )." mruColors node + lo_element_root->append_child( lo_element )." colors node + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + METHOD create_xl_theme. + + +* @TODO * + + DATA: lv_xl_theme TYPE string, + lv_xl_theme_01 TYPE string, + lv_xl_theme_02 TYPE string, + lv_xl_theme_03 TYPE string, + lv_xl_theme_04 TYPE string, + lv_xl_theme_05 TYPE string, + lv_xl_theme_06 TYPE string, + lv_xl_theme_07 TYPE string, + lv_xl_theme_08 TYPE string, + lv_xl_theme_09 TYPE string, + lv_xl_theme_10 TYPE string, + lv_xl_theme_11 TYPE string, + lv_xl_theme_12 TYPE string, + lv_xl_theme_13 TYPE string, + lv_xl_theme_14 TYPE string, + lv_xl_theme_15 TYPE string, + lv_xl_theme_16 TYPE string, + lv_xl_theme_17 TYPE string, + lv_xl_theme_18 TYPE string, + lv_xl_theme_19 TYPE string, + lv_xl_theme_20 TYPE string, + lv_xl_theme_21 TYPE string, + lv_xl_theme_22 TYPE string, + lv_xl_theme_23 TYPE string, + lv_xl_theme_24 TYPE string, + lv_xl_theme_25 TYPE string, + lv_xl_theme_26 TYPE string, + lv_xl_theme_27 TYPE string, + lv_xl_theme_28 TYPE string, + lv_xl_theme_29 TYPE string, + lv_xl_theme_30 TYPE string, + lv_xl_theme_31 TYPE string, + lv_xl_theme_32 TYPE string. + + lv_xl_theme_01 = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'. + lv_xl_theme_02 = '<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme"><a:themeElements><a:clrScheme name="Office"><a:dk1><a:sysClr val="windowText" lastClr="000000"/></a:dk1><a:lt1><a:sysClr val="window" '. + lv_xl_theme_03 = 'lastClr="FFFFFF"/></a:lt1><a:dk2><a:srgbClr val="1F497D"/></a:dk2><a:lt2><a:srgbClr val="EEECE1"/></a:lt2><a:accent1><a:srgbClr val="4F81BD"/></a:accent1><a:accent2><a:srgbClr val="C0504D"/></a:accent2><a:accent3><a:srgbClr '. + lv_xl_theme_04 = 'val="9BBB59"/></a:accent3><a:accent4><a:srgbClr val="8064A2"/></a:accent4><a:accent5><a:srgbClr val="4BACC6"/></a:accent5><a:accent6><a:srgbClr val="F79646"/></a:accent6><a:hlink><a:srgbClr val="0000FF"/></a:hlink><a:folHlink>'. + lv_xl_theme_05 = '<a:srgbClr val="800080"/></a:folHlink></a:clrScheme><a:fontScheme name="Office"><a:majorFont><a:latin typeface="Cambria"/><a:ea typeface=""/><a:cs typeface=""/>'. + lv_xl_theme_06 = '<a:font script="Arab" typeface="Times New Roman"/><a:font script="Hebr" typeface="Times New Roman"/><a:font script="Thai" '. + lv_xl_theme_07 = 'typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="MoolBoran"/><a:font script="Knda" typeface="Tunga"/><a:font '. + lv_xl_theme_08 = 'script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font script="Tibt" '. + lv_xl_theme_09 = 'typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" '. + lv_xl_theme_10 = 'typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" '. + lv_xl_theme_11 = 'typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Times New Roman"/><a:font script="Uigh" typeface="Microsoft Uighur"/></a:majorFont><a:minorFont><a:latin typeface="Calibri"/><a:ea typeface=""/><a:cs typeface=""/>'. + lv_xl_theme_12 = '<a:font script="Arab" typeface="Arial"/><a:font script="Hebr" '. + lv_xl_theme_13 = 'typeface="Arial"/><a:font script="Thai" typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="DaunPenh"/><a:font '. + lv_xl_theme_14 = 'script="Knda" typeface="Tunga"/><a:font script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font '. + lv_xl_theme_15 = 'script="Tibt" typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" '. + lv_xl_theme_16 = 'typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" '. + lv_xl_theme_17 = 'typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Arial"/><a:font script="Uigh" typeface="Microsoft Uighur"/></a:minorFont></a:fontScheme><a:fmtScheme name="Office"><a:fillStyleLst><a:solidFill><a:schemeClr val="phClr"/>'. + lv_xl_theme_18 = '</a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="50000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="35000"><a:schemeClr val="phClr"><a:tint val="37000"/><a:satMod '. + lv_xl_theme_19 = 'val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="15000"/><a:satMod val="350000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="1"/></a:gradFill><a:gradFill rotWithShape="1">'. + lv_xl_theme_20 = '<a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:shade val="51000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs pos="80000"><a:schemeClr val="phClr"><a:shade val="93000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs '. + lv_xl_theme_21 = 'pos="100000"><a:schemeClr val="phClr"><a:shade val="94000"/><a:satMod val="135000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="0"/></a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w="9525" cap="flat" cmpd="sng" '. + lv_xl_theme_22 = 'algn="ctr"><a:solidFill><a:schemeClr val="phClr"><a:shade val="95000"/><a:satMod val="105000"/></a:schemeClr></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="25400" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr '. + lv_xl_theme_23 = 'val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="38100" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln></a:lnStyleLst><a:effectStyleLst>'. + lv_xl_theme_24 = '<a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" dist="20000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="38000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst>'. + lv_xl_theme_25 = '<a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" '. + lv_xl_theme_26 = 'dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst><a:scene3d><a:camera prst="orthographicFront"><a:rot lat="0" lon="0" rev="0"/></a:camera><a:lightRig '. + lv_xl_theme_27 = 'rig="threePt" dir="t"><a:rot lat="0" lon="0" rev="1200000"/></a:lightRig></a:scene3d><a:sp3d><a:bevelT w="63500" h="25400"/></a:sp3d></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val="phClr"/>'. + lv_xl_theme_28 = '</a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="40000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="40000"><a:schemeClr val="phClr"><a:tint val="45000"/><a:shade '. + lv_xl_theme_29 = 'val="99000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="20000"/><a:satMod val="255000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" '. + lv_xl_theme_30 = 't="-80000" r="50000" b="180000"/></a:path></a:gradFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="80000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr '. + lv_xl_theme_31 = 'val="phClr"><a:shade val="30000"/><a:satMod val="200000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" t="50000" r="50000" b="50000"/></a:path></a:gradFill></a:bgFillStyleLst></a:fmtScheme>'. + lv_xl_theme_32 = '</a:themeElements><a:objectDefaults/><a:extraClrSchemeLst/></a:theme>'. + + + CONCATENATE lv_xl_theme_01 lv_xl_theme_02 lv_xl_theme_03 lv_xl_theme_04 lv_xl_theme_05 lv_xl_theme_06 lv_xl_theme_07 lv_xl_theme_08 lv_xl_theme_09 lv_xl_theme_10 lv_xl_theme_11 lv_xl_theme_12 lv_xl_theme_13 lv_xl_theme_14 lv_xl_theme_15 + lv_xl_theme_16 lv_xl_theme_17 lv_xl_theme_18 lv_xl_theme_19 lv_xl_theme_20 lv_xl_theme_21 lv_xl_theme_22 lv_xl_theme_23 lv_xl_theme_24 lv_xl_theme_25 lv_xl_theme_26 lv_xl_theme_27 lv_xl_theme_28 lv_xl_theme_29 lv_xl_theme_30 + lv_xl_theme_31 lv_xl_theme_32 + INTO lv_xl_theme SEPARATED BY space. + + CALL FUNCTION 'SCMS_STRING_TO_XSTRING' + EXPORTING + text = lv_xl_theme + IMPORTING + buffer = ep_content. + + +ENDMETHOD. + + + + METHOD create_xl_workbook. + + +** Constant node name + DATA: lc_xml_node_workbook TYPE string VALUE 'workbook', + lc_xml_node_fileversion TYPE string VALUE 'fileVersion', + lc_xml_node_workbookpr TYPE string VALUE 'workbookPr', + lc_xml_node_bookviews TYPE string VALUE 'bookViews', + lc_xml_node_workbookview TYPE string VALUE 'workbookView', + lc_xml_node_sheets TYPE string VALUE 'sheets', + lc_xml_node_sheet TYPE string VALUE 'sheet', + lc_xml_node_calcpr TYPE string VALUE 'calcPr', + " Node attributes + lc_xml_attr_appname TYPE string VALUE 'appName', + lc_xml_attr_lastedited TYPE string VALUE 'lastEdited', + lc_xml_attr_lowestedited TYPE string VALUE 'lowestEdited', + lc_xml_attr_rupbuild TYPE string VALUE 'rupBuild', + lc_xml_attr_themeversion TYPE string VALUE 'defaultThemeVersion', + lc_xml_attr_xwindow TYPE string VALUE 'xWindow', + lc_xml_attr_ywindow TYPE string VALUE 'yWindow', + lc_xml_attr_windowwidth TYPE string VALUE 'windowWidth', + lc_xml_attr_windowheight TYPE string VALUE 'windowHeight', + lc_xml_attr_name TYPE string VALUE 'name', + lc_xml_attr_sheetid TYPE string VALUE 'sheetId', + lc_xml_attr_id TYPE string VALUE 'id', + lc_xml_attr_calcid TYPE string VALUE 'calcId', + " Node namespace + lc_r_ns TYPE string VALUE 'r', + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main', + lc_xml_node_r_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships', + " Node id + lc_xml_node_ridx_id TYPE string VALUE 'rId#'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_sub_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + + DATA: lv_xml_node_ridx_id TYPE string, + lv_value TYPE string, + lv_syindex TYPE string. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_workbook + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:r' + value = lc_xml_node_r_ns ). + +********************************************************************** +* STEP 4: Create subnode + " fileVersion node + lo_element = lo_document->create_simple_element( name = lc_xml_node_fileversion + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_appname + value = 'xl' ). + lo_element->set_attribute_ns( name = lc_xml_attr_lastedited + value = '4' ). + lo_element->set_attribute_ns( name = lc_xml_attr_lowestedited + value = '4' ). + lo_element->set_attribute_ns( name = lc_xml_attr_rupbuild + value = '4506' ). + lo_element_root->append_child( lo_element ). + + " fileVersion node + lo_element = lo_document->create_simple_element( name = lc_xml_node_workbookpr + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_themeversion + value = '124226' ). + lo_element_root->append_child( lo_element ). + + " bookviews node + lo_element = lo_document->create_simple_element( name = lc_xml_node_bookviews + parent = lo_document ). + " bookview node + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_workbookview + parent = lo_document ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_xwindow + value = '120' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_ywindow + value = '120' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_windowwidth + value = '19035' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_windowheight + value = '8445' ). + lo_element->append_child( lo_sub_element )." bookview node + lo_element_root->append_child( lo_element )." bookviews node + + " sheets node + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheets + parent = lo_document ). + lo_iterator = excel->get_worksheets_iterator( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + " sheet node + lo_sub_element = lo_document->create_simple_element_ns( name = lc_xml_node_sheet + parent = lo_document ). + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + lv_value = lo_worksheet->title. + lv_syindex = sy-index. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_name + value = lv_value ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_sheetid + value = lv_syindex ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_id + prefix = lc_r_ns + value = lv_xml_node_ridx_id ). + lo_element->append_child( lo_sub_element ). " sheet node + ENDWHILE. + lo_element_root->append_child( lo_element )." sheets node + + " calcPr node + lo_element = lo_document->create_simple_element( name = lc_xml_node_calcpr + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_calcid + value = '125725' ). + lo_element_root->append_child( lo_element ). + + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + + METHOD flag2bool. + + + IF ip_flag EQ abap_true. + ep_boolean = 'true'. + ELSE. + ep_boolean = 'false'. + ENDIF. +ENDMETHOD. + + + + + METHOD get_shared_string_index. + + + DATA ls_shared_string TYPE zexcel_s_shared_string. + + READ TABLE shared_strings INTO ls_shared_string WITH KEY string_value = ip_cell_value. + ep_index = ls_shared_string-string_no. + +ENDMETHOD. + + + + class ZCL_EXCEL definition + public + final + create public . + +*"* public components of class ZCL_EXCEL +*"* do not include other source files here!!! +public section. + + constants C_XLS type ZEXCEL_FORMAT value 'XLS'. "#EC NOTEXT + constants C_XLSX type ZEXCEL_FORMAT value 'XLSX'. "#EC NOTEXT + data PROPERTIES type ref to ZCL_EXCEL_PROPERTIES . + data SECURITY type ref to ZCL_EXCEL_SECURITY . + + methods ADD_NEW_DRAWING + importing + !IP_TITLE type ZEXCEL_SHEET_TITLE optional + returning + value(EO_DRAWING) type ref to ZCL_EXCEL_DRAWING . + methods ADD_NEW_STYLE + returning + value(EO_STYLE) type ref to ZCL_EXCEL_STYLE . + methods ADD_NEW_WORKSHEET + importing + !IP_TITLE type ZEXCEL_SHEET_TITLE optional + returning + value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET . + methods CONSTRUCTOR . + methods GET_ACTIVE_WORKSHEET + returning + value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET . + methods GET_DRAWINGS_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods GET_STYLES_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods GET_WORKSHEETS_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods GET_WORKSHEETS_NAME + returning + value(EP_NAME) type ZEXCEL_WORKSHEETS_NAME . + methods GET_WORKSHEETS_SIZE + returning + value(EP_SIZE) type I . + methods SAVE_AS + importing + !IP_FORMAT type ZEXCEL_FORMAT + returning + value(EP_FILE) type XSTRING . + *"* protected components of class ZABAP_EXCEL +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL +*"* do not include other source files here!!! +private section. + + data DRAWINGS type ref to ZCL_EXCEL_DRAWINGS . + data RANGES type ref to ZCL_EXCEL_RANGES . + data STYLES type ref to ZCL_EXCEL_STYLES . + data WORKSHEETS type ref to ZCL_EXCEL_WORKSHEETS . + *"* 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 + + + + + + + + + + + + METHOD add_new_drawing. + + DATA: lv_guid TYPE guid_16. +* Create default blank worksheet + CREATE OBJECT eo_drawing + EXPORTING + ip_title = ip_title. + drawings->add( eo_drawing ). +ENDMETHOD. + + + + method ADD_NEW_STYLE. + + +* Create default style + CREATE OBJECT eo_style. + styles->add( eo_style ). + +endmethod. + + + + + METHOD add_new_worksheet. + + + DATA: lv_guid TYPE guid_16. +* Create default blank worksheet + CREATE OBJECT eo_worksheet + EXPORTING + ip_title = ip_title. + worksheets->add( eo_worksheet ). + worksheets->active_worksheet = worksheets->size( ). +ENDMETHOD. + + + METHOD constructor. + + + DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style TYPE REF TO zcl_excel_style. + +* Inizialize instance objects + CREATE OBJECT properties. + CREATE OBJECT security. + CREATE OBJECT worksheets. + CREATE OBJECT ranges. + CREATE OBJECT styles. + CREATE OBJECT drawings. + + me->add_new_worksheet( ). + me->add_new_style( ). " Standard style + lo_style = me->add_new_style( ). " Standard style with fill gray125 + lo_style->fill->filltype = zcl_excel_style_fill=>c_fill_pattern_gray125. + + +ENDMETHOD. + + + + method GET_ACTIVE_WORKSHEET. + + + eo_worksheet = me->worksheets->get( me->worksheets->active_worksheet ). + +endmethod. + + + + METHOD GET_DRAWINGS_ITERATOR. + + + eo_iterator = me->drawings->get_iterator( ). +ENDMETHOD. + + + + METHOD GET_STYLES_ITERATOR. + + + eo_iterator = me->styles->get_iterator( ). +ENDMETHOD. + + + + METHOD get_worksheets_iterator. + + + eo_iterator = me->worksheets->get_iterator( ). +ENDMETHOD. + + + + METHOD GET_WORKSHEETS_NAME. + + + ep_name = me->worksheets->name. + +ENDMETHOD. + + + + METHOD get_worksheets_size. + + + ep_size = me->worksheets->size( ). + +ENDMETHOD. + + + + + METHOD save_as. + + + DATA lo_excel_writer_2007 TYPE REF TO zcl_excel_writer_2007. + +* Determine the output engine to use + CASE ip_format. + WHEN me->c_xlsx. " XLSX for Office 2007 + CREATE OBJECT lo_excel_writer_2007 EXPORTING io_excel = me. + ep_file = lo_excel_writer_2007->create( ). + WHEN OTHERS. + ENDCASE. + +ENDMETHOD. + + + + class ZCL_EXCEL_COMMON definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_COMMON +*"* do not include other source files here!!! +public section. + + class-methods CONVERT_COLUMN2ALPHA + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN + returning + value(EP_COLUMN) type ZEXCEL_CELL_COLUMN_ALPHA . + class-methods CONVERT_COLUMN2INT + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + returning + value(EP_COLUMN) type ZEXCEL_CELL_COLUMN . + *"* protected components of class ZCL_EXCEL_COMMON +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_COMMON +*"* do not include other source files here!!! +private section. + + class-data C_EXCEL_COL_MODULE type INT2 value 64. "#EC NOTEXT . + *"* 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 + + + + + METHOD convert_column2alpha. + + + DATA: lo_conv TYPE REF TO cl_abap_conv_in_ce, + lv_uccpi TYPE i, + lv_text TYPE sychar02, + lv_module TYPE int4, + lv_column TYPE zexcel_cell_column. + + lv_column = ip_column. + WHILE lv_column GT 0. + lv_module = ( lv_column - 1 ) MOD 26. + lv_uccpi = 65 + lv_module. + + lv_column = ( lv_column - lv_module ) / 26. + + lv_text = cl_abap_conv_in_ce=>uccpi( lv_uccpi ). + CONCATENATE lv_text ep_column INTO ep_column. + ENDWHILE. + +ENDMETHOD. + + + + + METHOD convert_column2int. + + + DATA: lv_uccpi TYPE i, + lv_char TYPE c, + lv_column(2) TYPE c. + +* Calculate most significant letter + lv_char = ip_column+1(1). + IF lv_char IS NOT INITIAL. "To avoid the first 26 column that have only a char in first position + ep_column = cl_abap_conv_out_ce=>uccpi( lv_char ). + + ep_column = ep_column MOD ( zcl_excel_common=>c_excel_col_module ). + + lv_char = ip_column(1). + lv_uccpi = cl_abap_conv_out_ce=>uccpi( lv_char ). + + lv_uccpi = ( lv_uccpi MOD ( zcl_excel_common=>c_excel_col_module ) ) * 26. + + ep_column = ep_column + lv_uccpi. + ELSE. + lv_char = ip_column(1). + ep_column = cl_abap_conv_out_ce=>uccpi( lv_char ). + ep_column = ep_column - zcl_excel_common=>c_excel_col_module. + ENDIF. + +ENDMETHOD. + + + + class ZCL_EXCEL_DRAWING definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_DRAWING +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + data TITLE type ZEXCEL_SHEET_TITLE value 'Worksheet'. "#EC NOTEXT . + data X_REFERENCES type CHAR1 . + data Y_REFERENCES type CHAR1 . + data GRAPH_TYPE type ZEXCEL_GRAPH_TYPE . + + methods CONSTRUCTOR + importing + !IP_TITLE type ZEXCEL_SHEET_TITLE optional . + methods GET_GUID + returning + value(EP_GUID) type GUID_16 . + *"* protected components of class ZABAP_EXCEL_WORKSHEET +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_DRAWING +*"* do not include other source files here!!! +private section. + + data GUID type GUID_16 . + data LOWER_CELL type ZEXCEL_S_CELL_DATA . + data UPPER_CELL type ZEXCEL_S_CELL_DATA . + constants C_EXCEL_COL_MODULE type INT2 value 64. "#EC NOTEXT + + methods CONVERT_COLUMN2ALPHA + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN + returning + value(EP_COLUMN) type ZEXCEL_CELL_COLUMN_ALPHA . + methods CONVERT_COLUMN2INT + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + returning + value(EP_COLUMN) type ZEXCEL_CELL_COLUMN . + *"* 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 CONSTRUCTOR. + CALL FUNCTION 'GUID_CREATE' + IMPORTING + ev_guid_16 = me->guid. + + IF ip_title IS NOT INITIAL. + title = ip_title. + ELSE. + title = me->guid. + ENDIF. + +* inizialize dimension range + lower_cell-cell_row = 1. + lower_cell-cell_column = 1. + upper_cell-cell_row = 1. + upper_cell-cell_column = 1. +ENDMETHOD. + + + + + METHOD CONVERT_COLUMN2ALPHA. + DATA: lo_conv TYPE REF TO cl_abap_conv_in_ce, + lv_uccpi TYPE i, + lv_text TYPE sychar02, + lv_module TYPE int4, + lv_column TYPE zexcel_cell_column. + + lv_column = ip_column. + WHILE lv_column GT 0. + lv_module = ( lv_column - 1 ) MOD 26. + lv_uccpi = 65 + lv_module. + + lv_column = ( lv_column - lv_module ) / 26. + + lv_text = cl_abap_conv_in_ce=>uccpi( lv_uccpi ). + CONCATENATE lv_text ep_column INTO ep_column. + ENDWHILE. + +ENDMETHOD. + + + + + METHOD CONVERT_COLUMN2INT. + + DATA: lv_uccpi TYPE i, + lv_char TYPE c, + lv_column(2) TYPE c. + +* Calculate most significant letter + lv_char = ip_column+1(1). + IF lv_char IS NOT INITIAL. "To avoid the first 26 column that have only a char in first position + ep_column = cl_abap_conv_out_ce=>uccpi( lv_char ). + + ep_column = ep_column MOD ( me->c_excel_col_module ). + + lv_char = ip_column(1). + lv_uccpi = cl_abap_conv_out_ce=>uccpi( lv_char ). + + lv_uccpi = ( lv_uccpi MOD ( me->c_excel_col_module ) ) * 26. + + ep_column = ep_column + lv_uccpi. + ELSE. + lv_char = ip_column(1). + ep_column = cl_abap_conv_out_ce=>uccpi( lv_char ). + ep_column = ep_column - me->c_excel_col_module. + ENDIF. + +ENDMETHOD. + + + + method GET_GUID. + + ep_guid = me->guid. + +endmethod. + + + + class ZCL_EXCEL_DRAWINGS definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_DRAWINGS +*"* do not include other source files here!!! +public section. + + methods ADD + importing + !IP_DRAWING type ref to ZCL_EXCEL_DRAWING . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type ZEXCEL_ACTIVE_WORKSHEET + returning + value(EO_DRAWING) type ref to ZCL_EXCEL_DRAWING . + methods GET_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods IS_EMPTY + returning + value(IS_EMPTY) type FLAG . + methods REMOVE + importing + !IP_DRAWING type ref to ZCL_EXCEL_DRAWING . + methods SIZE + returning + value(EP_SIZE) type I . + *"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_DRAWINGS +*"* do not include other source files here!!! +private section. + + data DRAWINGS type ref to CL_OBJECT_COLLECTION . + *"* 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 + + + + METHOD add. + + + drawings->add( ip_drawing ). +ENDMETHOD. + + + METHOD clear. + + + drawings->clear( ). +ENDMETHOD. + + + METHOD constructor. + + + CREATE OBJECT drawings. + +ENDMETHOD. + + + + + METHOD get. + + + DATA lv_index TYPE i. + lv_index = ip_index. + eo_drawing ?= drawings->if_object_collection~get( lv_index ). +ENDMETHOD. + + + + METHOD get_iterator. + + + eo_iterator ?= drawings->if_object_collection~get_iterator( ). +ENDMETHOD. + + + + METHOD is_empty. + + + is_empty = drawings->if_object_collection~is_empty( ). +ENDMETHOD. + + + + METHOD remove. + + + drawings->remove( ip_drawing ). +ENDMETHOD. + + + + METHOD size. + + + ep_size = drawings->if_object_collection~size( ). +ENDMETHOD. + + + + class ZCL_EXCEL_PROPERTIES definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_PROPERTIES +*"* do not include other source files here!!! +public section. + + data CREATOR type ZEXCEL_CREATOR value 'Unknown Creator'. "#EC NOTEXT . + data LASTMODIFIEDBY type ZEXCEL_CREATOR value 'Unknown Creator'. "#EC NOTEXT . + data CREATED type TIMESTAMPL . + data MODIFIED type TIMESTAMPL . + data TITLE type ZEXCEL_TITLE value 'Untitled Spreadsheet'. "#EC NOTEXT . + data SUBJECT type ZEXCEL_SUBJECT . + data DESCRIPTION type ZEXCEL_DESCRIPTION . + data KEYWORDS type ZEXCEL_KEYWORDS . + data CATEGORY type ZEXCEL_CATEGORY . + data COMPANY type ZEXCEL_COMPANY value 'Microsoft Corporation'. "#EC NOTEXT . + data APPLICATION type ZEXCEL_APPLICATION value 'Microsoft Excel'. "#EC NOTEXT . + data DOCSECURITY type ZEXCEL_DOCSECURITY value '0'. "#EC NOTEXT . + data SCALECROP type ZEXCEL_SCALECROP value ''. "#EC NOTEXT . + data LINKSUPTODATE type FLAG . + data SHAREDDOC type FLAG . + data HYPERLINKSCHANGED type FLAG . + data APPVERSION type ZEXCEL_APPVERSION value '12.0000'. "#EC NOTEXT . + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_PROPERTIES +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_PROPERTIES +*"* do not include other source files here!!! +private section. + *"* 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 + + + + + + + + + + + + + + + + + + + METHOD CONSTRUCTOR. + + DATA: lv_timestamp TYPE timestampl. + + GET TIME STAMP FIELD lv_timestamp. + created = lv_timestamp. + modified = lv_timestamp. + +ENDMETHOD. + + + + class ZCL_EXCEL_RANGE definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_RANGE +*"* do not include other source files here!!! +public section. + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_WORKSHEET +*"* do not include other source files here!!! +protected section. + *"* private components of class ZABAP_EXCEL_WORKSHEET +*"* do not include other source files here!!! +private section. + *"* 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 + + method CONSTRUCTOR. +endmethod. + + + + class ZCL_EXCEL_RANGES definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_RANGES +*"* do not include other source files here!!! +public section. + + methods ADD + importing + !IP_RANGE type ref to ZCL_EXCEL_RANGE . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type I + returning + value(EO_RANGE) type ref to ZCL_EXCEL_RANGE . + methods GET_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods IS_EMPTY + returning + value(IS_EMPTY) type FLAG . + methods REMOVE + importing + !IP_RANGE type ref to ZCL_EXCEL_RANGE . + methods SIZE + returning + value(EP_SIZE) type I . + *"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. + *"* private components of class ZABAP_EXCEL_RANGES +*"* do not include other source files here!!! +private section. + + data RANGES type ref to CL_OBJECT_COLLECTION . + *"* 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 + + + + METHOD ADD. + ranges->add( ip_range ). +ENDMETHOD. + + + METHOD CLEAR. + ranges->clear( ). +ENDMETHOD. + + + method CONSTRUCTOR. +endmethod. + + + + + METHOD GET. + eo_range ?= ranges->if_object_collection~get( ip_index ). +ENDMETHOD. + + + + METHOD GET_ITERATOR. + eo_iterator ?= ranges->if_object_collection~get_iterator( ). +ENDMETHOD. + + + + METHOD IS_EMPTY. + is_empty = ranges->if_object_collection~is_empty( ). +ENDMETHOD. + + + + METHOD REMOVE. + ranges->remove( ip_range ). +ENDMETHOD. + + + + METHOD SIZE. + ep_size = ranges->if_object_collection~size( ). +ENDMETHOD. + + + + class ZCL_EXCEL_SECURITY definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_SECURITY +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + data LOCKREVISION type FLAG . + data LOCKSTRUCTURE type FLAG . + data LOCKWINDOWS type FLAG . + data REVISIONSPASSWORD type ZEXCEL_REVISIONSPASSWORD . + data WORKBOOKPASSWORD type ZEXCEL_WORKBOOKPASSWORD . + + methods CONSTRUCTOR . + methods IS_SECURITY_ENABLED + returning + value(EP_SECURITY_ENABLED) type FLAG . + *"* protected components of class ZABAP_EXCEL_SECURITY +*"* do not include other source files here!!! +protected section. + *"* private components of class ZABAP_EXCEL_SECURITY +*"* do not include other source files here!!! +private section. + *"* 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 CONSTRUCTOR. +endmethod. + + + + METHOD IS_SECURITY_ENABLED. + IF lockrevision EQ abap_true OR lockstructure EQ abap_true OR lockwindows EQ abap_true. + ep_security_enabled = abap_true. + ENDIF. +ENDMETHOD. + + + + class ZCL_EXCEL_SHEET_SETUP definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_SHEET_SETUP +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + constants C_PAPERSIZE_LETTER type ZEXCEL_SHEET_PAPER_SIZE value 1. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_SMALL type ZEXCEL_SHEET_PAPER_SIZE value 2. "#EC NOTEXT + constants C_PAPERSIZE_TABLOID type ZEXCEL_SHEET_PAPER_SIZE value 3. "#EC NOTEXT + constants C_PAPERSIZE_LEDGER type ZEXCEL_SHEET_PAPER_SIZE value 4. "#EC NOTEXT + constants C_PAPERSIZE_LEGAL type ZEXCEL_SHEET_PAPER_SIZE value 5. "#EC NOTEXT + constants C_PAPERSIZE_STATEMENT type ZEXCEL_SHEET_PAPER_SIZE value 6. "#EC NOTEXT + constants C_PAPERSIZE_EXECUTIVE type ZEXCEL_SHEET_PAPER_SIZE value 7. "#EC NOTEXT + constants C_PAPERSIZE_A3 type ZEXCEL_SHEET_PAPER_SIZE value 8. "#EC NOTEXT + constants C_PAPERSIZE_A4 type ZEXCEL_SHEET_PAPER_SIZE value 9. "#EC NOTEXT + constants C_PAPERSIZE_A4_SMALL type ZEXCEL_SHEET_PAPER_SIZE value 10. "#EC NOTEXT + constants C_PAPERSIZE_A5 type ZEXCEL_SHEET_PAPER_SIZE value 11. "#EC NOTEXT + constants C_PAPERSIZE_B4 type ZEXCEL_SHEET_PAPER_SIZE value 12. "#EC NOTEXT + constants C_PAPERSIZE_B5 type ZEXCEL_SHEET_PAPER_SIZE value 13. "#EC NOTEXT + constants C_PAPERSIZE_FOLIO type ZEXCEL_SHEET_PAPER_SIZE value 14. "#EC NOTEXT + constants C_PAPERSIZE_QUARTO type ZEXCEL_SHEET_PAPER_SIZE value 15. "#EC NOTEXT + constants C_PAPERSIZE_STANDARD_1 type ZEXCEL_SHEET_PAPER_SIZE value 16. "#EC NOTEXT + constants C_PAPERSIZE_STANDARD_2 type ZEXCEL_SHEET_PAPER_SIZE value 17. "#EC NOTEXT + constants C_PAPERSIZE_NOTE type ZEXCEL_SHEET_PAPER_SIZE value 18. "#EC NOTEXT + constants C_PAPERSIZE_NO9_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 19. "#EC NOTEXT + constants C_PAPERSIZE_NO10_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 20. "#EC NOTEXT + constants C_PAPERSIZE_NO11_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 21. "#EC NOTEXT + constants C_PAPERSIZE_NO12_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 22. "#EC NOTEXT + constants C_PAPERSIZE_NO14_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 23. "#EC NOTEXT + constants C_PAPERSIZE_C type ZEXCEL_SHEET_PAPER_SIZE value 24. "#EC NOTEXT + constants C_PAPERSIZE_D type ZEXCEL_SHEET_PAPER_SIZE value 25. "#EC NOTEXT + constants C_PAPERSIZE_E type ZEXCEL_SHEET_PAPER_SIZE value 26. "#EC NOTEXT + constants C_PAPERSIZE_DL_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 27. "#EC NOTEXT + constants C_PAPERSIZE_C5_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 28. "#EC NOTEXT + constants C_PAPERSIZE_C3_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 29. "#EC NOTEXT + constants C_PAPERSIZE_C4_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 30. "#EC NOTEXT + constants C_PAPERSIZE_C6_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 31. "#EC NOTEXT + constants C_PAPERSIZE_C65_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 32. "#EC NOTEXT + constants C_PAPERSIZE_B4_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 33. "#EC NOTEXT + constants C_PAPERSIZE_B5_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 34. "#EC NOTEXT + constants C_PAPERSIZE_B6_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 35. "#EC NOTEXT + constants C_PAPERSIZE_ITALY_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 36. "#EC NOTEXT + constants C_PAPERSIZE_MONARCH_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 37. "#EC NOTEXT + constants C_PAPERSIZE_6_3_4_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 38. "#EC NOTEXT + constants C_PAPERSIZE_US_STD_FANFOLD type ZEXCEL_SHEET_PAPER_SIZE value 39. "#EC NOTEXT + constants C_PAPERSIZE_DE_STD_FANFOLD type ZEXCEL_SHEET_PAPER_SIZE value 40. "#EC NOTEXT + constants C_PAPERSIZE_DE_LEG_FANFOLD type ZEXCEL_SHEET_PAPER_SIZE value 41. "#EC NOTEXT + constants C_PAPERSIZE_ISO_B4 type ZEXCEL_SHEET_PAPER_SIZE value 42. "#EC NOTEXT + constants C_PAPERSIZE_JPN_DBL_POSTCARD type ZEXCEL_SHEET_PAPER_SIZE value 43. "#EC NOTEXT + constants C_PAPERSIZE_STANDARD_PAPER_1 type ZEXCEL_SHEET_PAPER_SIZE value 44. "#EC NOTEXT + constants C_PAPERSIZE_STANDARD_PAPER_2 type ZEXCEL_SHEET_PAPER_SIZE value 45. "#EC NOTEXT + constants C_PAPERSIZE_STANDARD_PAPER_3 type ZEXCEL_SHEET_PAPER_SIZE value 46. "#EC NOTEXT + constants C_PAPERSIZE_INVITE_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 47. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 48. "#EC NOTEXT + constants C_PAPERSIZE_LEGAL_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 49. "#EC NOTEXT + constants C_PAPERSIZE_TABL_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 50. "#EC NOTEXT + constants C_PAPERSIZE_A4_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 51. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 52. "#EC NOTEXT + constants C_PAPERSIZE_A4_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 53. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_EXTV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 54. "#EC NOTEXT + constants C_PAPERSIZE_SUPERA_A4_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 55. "#EC NOTEXT + constants C_PAPERSIZE_SUPERB_A3_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 56. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_PLUS_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 57. "#EC NOTEXT + constants C_PAPERSIZE_A4_PLUS_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 58. "#EC NOTEXT + constants C_PAPERSIZE_A5_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 59. "#EC NOTEXT + constants C_PAPERSIZE_JIS_B5_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 60. "#EC NOTEXT + constants C_PAPERSIZE_A3_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 61. "#EC NOTEXT + constants C_PAPERSIZE_A5_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 62. "#EC NOTEXT + constants C_PAPERSIZE_ISO_B5_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 63. "#EC NOTEXT + constants C_PAPERSIZE_A2_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 64. "#EC NOTEXT + constants C_PAPERSIZE_A3_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 65. "#EC NOTEXT + constants C_PAPERSIZE_A3_EXTRA_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 66. "#EC NOTEXT + constants C_ORIENTATION_DEFAULT type ZEXCEL_SHEET_ORIENATATION value 'default'. "#EC NOTEXT + constants C_ORIENTATION_LANDSCAPE type ZEXCEL_SHEET_ORIENATATION value 'landscape'. "#EC NOTEXT + constants C_ORIENTATION_PORTRAIT type ZEXCEL_SHEET_ORIENATATION value 'portrait'. "#EC NOTEXT + data ORIENTATION type ZEXCEL_SHEET_ORIENATATION . + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_STYLE +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_SHEET_SETUP +*"* do not include other source files here!!! +private section. + *"* 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 constructor. + orientation = me->c_orientation_default. +ENDMETHOD. + + + + class ZCL_EXCEL_STYLE definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE +*"* do not include other source files here!!! +public section. + + data FONT type ref to ZCL_EXCEL_STYLE_FONT . + data FILL type ref to ZCL_EXCEL_STYLE_FILL . + data BORDERS type ref to ZCL_EXCEL_STYLE_BORDERS . + data NUMBER_FORMAT type ref to ZCL_EXCEL_STYLE_NUMBER_FORMAT . + + methods CONSTRUCTOR . + methods GET_GUID + returning + value(EP_GUID) type ZEXCEL_CELL_STYLE . + *"* protected components of class ZABAP_EXCEL_STYLE +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE +*"* do not include other source files here!!! +private section. + + data ALIGNMENT type ref to ZCL_EXCEL_STYLE_ALIGNMENT . + data PROTECTION type ref to ZCL_EXCEL_STYLE_PROTECTION . + data GUID type ZEXCEL_CELL_STYLE . + *"* 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 + + + + + + + + + METHOD constructor. + + + CREATE OBJECT font. + CREATE OBJECT fill. + CREATE OBJECT borders. + CREATE OBJECT alignment. + CREATE OBJECT number_format. + CREATE OBJECT protection. + + CALL FUNCTION 'GUID_CREATE' + IMPORTING + ev_guid_16 = me->guid. + +ENDMETHOD. + + + + METHOD get_guid. + + + ep_guid = me->guid. +ENDMETHOD. + + + + class ZCL_EXCEL_STYLES definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLES +*"* do not include other source files here!!! +public section. + + methods ADD + importing + !IP_STYLE type ref to ZCL_EXCEL_STYLE . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type I + returning + value(EO_STYLE) type ref to ZCL_EXCEL_STYLE . + methods GET_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods IS_EMPTY + returning + value(IS_EMPTY) type FLAG . + methods REMOVE + importing + !IP_STYLE type ref to ZCL_EXCEL_STYLE . + methods SIZE + returning + value(EP_SIZE) type I . + methods REGISTER_NEW_STYLE + importing + !IO_STYLE type ref to ZCL_EXCEL_STYLE + returning + value(EP_STYLE_CODE) type I . + *"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLES +*"* do not include other source files here!!! +private section. + + data STYLES type ref to CL_OBJECT_COLLECTION . + *"* 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 + + + + METHOD add. + + + styles->add( ip_style ). +ENDMETHOD. + + + METHOD clear. + + + styles->clear( ). +ENDMETHOD. + + + METHOD constructor. + + + CREATE OBJECT styles. +ENDMETHOD. + + + + + METHOD get. + + + eo_style ?= styles->if_object_collection~get( ip_index ). +ENDMETHOD. + + + + METHOD get_iterator. + + + eo_iterator ?= styles->if_object_collection~get_iterator( ). +ENDMETHOD. + + + + METHOD is_empty. + + + is_empty = styles->if_object_collection~is_empty( ). +ENDMETHOD. + + + + + METHOD register_new_style. + + + me->add( io_style ). + ep_style_code = me->size( ) - 1. "style count starts from 0 +ENDMETHOD. + + + + METHOD remove. + + + styles->remove( ip_style ). +ENDMETHOD. + + + + METHOD size. + + + ep_size = styles->if_object_collection~size( ). +ENDMETHOD. + + + + class ZCL_EXCEL_STYLES_CONDITIONAL definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLES_CONDITIONAL +*"* do not include other source files here!!! +public section. + + methods ADD + importing + !IP_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type ZEXCEL_ACTIVE_WORKSHEET + returning + value(EO_STYLE_CONDITIONAL) type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + methods GET_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods IS_EMPTY + returning + value(IS_EMPTY) type FLAG . + methods REMOVE + importing + !IP_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + methods SIZE + returning + value(EP_SIZE) type I . + *"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLES_CONDITIONAL +*"* do not include other source files here!!! +private section. + + data STYLES_CONDITIONAL type ref to CL_OBJECT_COLLECTION . + *"* 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 + + + + METHOD add. + styles_conditional->add( ip_style_conditional ). +ENDMETHOD. + + + METHOD clear. + styles_conditional->clear( ). +ENDMETHOD. + + + METHOD constructor. + + CREATE OBJECT styles_conditional. + +ENDMETHOD. + + + + + METHOD get. + DATA lv_index TYPE i. + lv_index = ip_index. + eo_style_conditional ?= styles_conditional->if_object_collection~get( lv_index ). +ENDMETHOD. + + + + METHOD get_iterator. + eo_iterator ?= styles_conditional->if_object_collection~get_iterator( ). +ENDMETHOD. + + + + METHOD is_empty. + is_empty = styles_conditional->if_object_collection~is_empty( ). +ENDMETHOD. + + + + METHOD remove. + styles_conditional->remove( ip_style_conditional ). +ENDMETHOD. + + + + METHOD size. + ep_size = styles_conditional->if_object_collection~size( ). +ENDMETHOD. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZIFE_TEST_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel1. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE STANDARD TABLE OF solisti1. + +" Creates active sheet +CREATE OBJECT lo_excel. + +" Get active sheet +lo_worksheet = lo_excel->get_active_worksheet( ). +lo_worksheet->title = 'Sheet1'. +lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ). + +lv_file = lo_excel->save_as( zcl_excel=>c_xlsx ). + +" Convert to binary +CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. + +" Save the file +CALL FUNCTION 'GUI_DOWNLOAD' + EXPORTING + bin_filesize = lv_bytecount + filename = 'C:\HelloWorld.xlsx' + filetype = 'BIN' + TABLES + data_tab = lt_file_tab. + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZIFE_TEST_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel2. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_bold TYPE REF TO zcl_excel_style, + lo_style_underline TYPE REF TO zcl_excel_style, + lo_style_filled TYPE REF TO zcl_excel_style, + lo_style_border TYPE REF TO zcl_excel_style, + lo_style_button TYPE REF TO zcl_excel_style, + lo_border_dark TYPE REF TO zcl_excel_style_border, + lo_border_light TYPE REF TO zcl_excel_style_border. + +DATA: lv_style_bold_guid TYPE zexcel_cell_style, + lv_style_underline_guid TYPE zexcel_cell_style, + lv_style_filled_guid TYPE zexcel_cell_style, + lv_style_border_guid TYPE zexcel_cell_style, + lv_style_button_guid TYPE zexcel_cell_style. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE STANDARD TABLE OF solisti1. + +" Creates active sheet +CREATE OBJECT lo_excel. + +" Create border object +CREATE OBJECT lo_border_dark. +lo_border_dark->border_color = zcl_excel_style_color=>c_black. +lo_border_dark->border_style = zcl_excel_style_border=>c_border_thin. +CREATE OBJECT lo_border_light. +lo_border_light->border_color = zcl_excel_style_color=>c_gray. +lo_border_light->border_style = zcl_excel_style_border=>c_border_thin. +" Create a bold / italic style +lo_style_bold = lo_excel->add_new_style( ). +lo_style_bold->font->bold = abap_true. +lo_style_bold->font->italic = abap_true. +lo_style_bold->font->color = zcl_excel_style_color=>c_red. +lv_style_bold_guid = lo_style_bold->get_guid( ). +" Create an underline double style +lo_style_underline = lo_excel->add_new_style( ). +lo_style_underline->font->underline = abap_true. +lo_style_underline->font->underline_mode = zcl_excel_style_font=>c_underline_double. +lv_style_underline_guid = lo_style_underline->get_guid( ). +" Create filled style +lo_style_filled = lo_excel->add_new_style( ). +lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_solid. +lo_style_filled->fill->fgcolor = zcl_excel_style_color=>c_yellow. +lv_style_filled_guid = lo_style_filled->get_guid( ). +" Create border with button effects +lo_style_button = lo_excel->add_new_style( ). +lo_style_button->borders->right = lo_border_dark. +lo_style_button->borders->down = lo_border_dark. +lo_style_button->borders->left = lo_border_light. +lo_style_button->borders->top = lo_border_light. +lv_style_button_guid = lo_style_button->get_guid( ). +"Create style with border +lo_style_border = lo_excel->add_new_style( ). +lo_style_border->borders->allborders = lo_border_dark. +lv_style_border_guid = lo_style_border->get_guid( ). + +" Get active sheet +lo_worksheet = lo_excel->get_active_worksheet( ). +lo_worksheet->title = 'Styles'. +lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ). +lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = 'Bold text' ip_style = lv_style_bold_guid ). +lo_worksheet->set_cell( ip_column = 'D' ip_row = 4 ip_value = 'Underlined text' ip_style = lv_style_underline_guid ). +lo_worksheet->set_cell( ip_column = 'B' ip_row = 5 ip_value = 'Filled text' ip_style = lv_style_filled_guid ). +lo_worksheet->set_cell( ip_column = 'C' ip_row = 6 ip_value = 'Borders' ip_style = lv_style_border_guid ). +lo_worksheet->set_cell( ip_column = 'D' ip_row = 7 ip_value = 'I''m not a button :)' ip_style = lv_style_button_guid ). + +lv_file = lo_excel->save_as( zcl_excel=>c_xlsx ). + +" Convert to binary +CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. + +" Save the file +CALL FUNCTION 'GUI_DOWNLOAD' + EXPORTING + bin_filesize = lv_bytecount + filename = 'C:\Styles.xlsx' + filetype = 'BIN' + TABLES + data_tab = lt_file_tab. + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZIFE_TEST_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel3. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_header TYPE REF TO zcl_excel_style, + lo_style_body TYPE REF TO zcl_excel_style, + lo_border_dark TYPE REF TO zcl_excel_style_border, + lo_border_light TYPE REF TO zcl_excel_style_border. + +DATA: lv_style_header_guid TYPE zexcel_cell_style, + lv_style_body_guid TYPE zexcel_cell_style. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE STANDARD TABLE OF solisti1. + +" Creates active sheet +CREATE OBJECT lo_excel. + +" Create border object +CREATE OBJECT lo_border_dark. +lo_border_dark->border_color = zcl_excel_style_color=>c_black. +lo_border_dark->border_style = zcl_excel_style_border=>c_border_thin. +" Create filled style +lo_style_header = lo_excel->add_new_style( ). +lo_style_header->fill->filltype = zcl_excel_style_fill=>c_fill_solid. +lo_style_header->fill->fgcolor = zcl_excel_style_color=>c_yellow. +lo_style_header->borders->allborders = lo_border_dark. +lv_style_header_guid = lo_style_header->get_guid( ). +"Create style with border +lo_style_body = lo_excel->add_new_style( ). +lo_style_body->borders->allborders = lo_border_dark. +lv_style_body_guid = lo_style_body->get_guid( ). + +" Get active sheet +lo_worksheet = lo_excel->get_active_worksheet( ). +lo_worksheet->title = 'Internal table'. + +DATA lt_test TYPE TABLE OF sflight. +SELECT * FROM sflight INTO TABLE lt_test. +lo_worksheet->set_table( ip_table = lt_test + ip_hdr_style = lv_style_header_guid + ip_body_style = lv_style_body_guid ). + +lv_file = lo_excel->save_as( zcl_excel=>c_xlsx ). + +" Convert to binary +CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. + +" Save the file +CALL FUNCTION 'GUI_DOWNLOAD' + EXPORTING + bin_filesize = lv_bytecount + filename = 'C:\iTab.xlsx' + filetype = 'BIN' + TABLES + data_tab = lt_file_tab. + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZIFE_TEST_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel4. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE STANDARD TABLE OF solisti1. + +" Creates active sheet +CREATE OBJECT lo_excel. + +" Get active sheet +lo_worksheet = lo_excel->get_active_worksheet( ). +lo_worksheet->title = 'Sheet1'. +lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'This is the first sheet' ). + +lo_worksheet = lo_excel->add_new_worksheet( ). +lo_worksheet->title = 'Sheet2'. +lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'This is the second sheet' ). + + +lv_file = lo_excel->save_as( zcl_excel=>c_xlsx ). + +" Convert to binary +CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. + +" Save the file +CALL FUNCTION 'GUI_DOWNLOAD' + EXPORTING + bin_filesize = lv_bytecount + filename = 'C:\Sheets.xlsx' + filetype = 'BIN' + TABLES + data_tab = lt_file_tab. + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZIFE_TEST_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel5. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_conditional TYPE REF TO zcl_excel_style_conditional, + lo_style_number TYPE REF TO zcl_excel_style, + lv_file TYPE xstring, + lv_style_number_guid TYPE zexcel_cell_style, + lv_bytecount TYPE i, + lt_file_tab TYPE STANDARD TABLE OF solisti1. + +CREATE OBJECT lo_excel. + +lo_style_number = lo_excel->add_new_style( ). +lo_style_number->number_format->format_code = zcl_excel_style_number_format=>c_format_number. +lv_style_number_guid = lo_style_number->get_guid( ). + +" Get active sheet +lo_worksheet = lo_excel->get_active_worksheet( ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights2. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 4 + ip_stop_column = 'C' + ip_stop_row = 8 ). + + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = '100' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'C' ip_value = '1000' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'C' ip_value = '150' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = '500' ip_style = lv_style_number_guid ). + +lv_file = lo_excel->save_as( zcl_excel=>c_xlsx ). + +"convert to table +CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. +"Save the file +CALL FUNCTION 'GUI_DOWNLOAD' + EXPORTING + bin_filesize = lv_bytecount + filename = 'C:\CondFormatting.xlsx' + filetype = 'BIN' + TABLES + data_tab = lt_file_tab. + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZIFE_TEST_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel6. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_conditional TYPE REF TO zcl_excel_style_conditional, + lo_style_number TYPE REF TO zcl_excel_style, + lv_file TYPE xstring, + lv_style_number_guid TYPE zexcel_cell_style, + lv_bytecount TYPE i, + lt_file_tab TYPE STANDARD TABLE OF solisti1. + +CREATE OBJECT lo_excel. + +lo_style_number = lo_excel->add_new_style( ). +lo_style_number->number_format->format_code = zcl_excel_style_number_format=>c_format_number. +lv_style_number_guid = lo_style_number->get_guid( ). + +" Get active sheet +lo_worksheet = lo_excel->get_active_worksheet( ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = '100' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'C' ip_value = '1000' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'C' ip_value = '150' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = '500' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'C' ip_value = '1760' ip_formula = 'SUM(C4:C8)' ). + +lv_file = lo_excel->save_as( zcl_excel=>c_xlsx ). + +"convert to table +CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. +"Save the file +CALL FUNCTION 'GUI_DOWNLOAD' + EXPORTING + bin_filesize = lv_bytecount + filename = 'C:\Formula.xlsx' + filetype = 'BIN' + TABLES + data_tab = lt_file_tab. + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZIFE_TEST_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel7. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_conditional TYPE REF TO zcl_excel_style_conditional, + lo_style_number TYPE REF TO zcl_excel_style, + lv_file TYPE xstring, + lv_style_number_guid TYPE zexcel_cell_style, + lv_bytecount TYPE i, + lt_file_tab TYPE STANDARD TABLE OF solisti1. + +CREATE OBJECT lo_excel. + +lo_style_number = lo_excel->add_new_style( ). +lo_style_number->number_format->format_code = zcl_excel_style_number_format=>c_format_number. +lv_style_number_guid = lo_style_number->get_guid( ). + +" Get active sheet +lo_worksheet = lo_excel->get_active_worksheet( ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3arrows. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'B' + ip_start_row = 5 + ip_stop_column = 'B' + ip_stop_row = 9 ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'B' ip_value = 'C_ICONSET_3ARROWS' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'B' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'B' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'B' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'B' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'B' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3arrowsgray. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 5 + ip_stop_column = 'C' + ip_stop_row = 9 ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = 'C_ICONSET_3ARROWSGRAY' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'C' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'C' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'C' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3flags. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'D' + ip_start_row = 5 + ip_stop_column = 'D' + ip_stop_row = 9 ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'D' ip_value = 'C_ICONSET_3FLAGS' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'D' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'D' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'D' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'D' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'D' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'E' + ip_start_row = 5 + ip_stop_column = 'E' + ip_stop_row = 9 ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'E' ip_value = 'C_ICONSET_3TRAFFICLIGHTS' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'E' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'E' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'E' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'E' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'E' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights2. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'F' + ip_start_row = 5 + ip_stop_column = 'F' + ip_stop_row = 9 ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'F' ip_value = 'C_ICONSET_3TRAFFICLIGHTS2' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'F' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'F' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'F' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'F' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'F' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3signs. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'G' + ip_start_row = 5 + ip_stop_column = 'G' + ip_stop_row = 9 ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'G' ip_value = 'C_ICONSET_3SIGNS' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'G' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'G' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'G' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'G' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'G' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3symbols. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'H' + ip_start_row = 5 + ip_stop_column = 'H' + ip_stop_row = 9 ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'H' ip_value = 'C_ICONSET_3SYMBOLS' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'H' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'H' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'H' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'H' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'H' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3symbols2. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'I' + ip_start_row = 5 + ip_stop_column = 'I' + ip_stop_row = 9 ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'I' ip_value = 'C_ICONSET_3SYMBOLS2' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'I' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'I' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'I' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'I' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'I' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_4arrows. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'B' + ip_start_row = 12 + ip_stop_column = 'B' + ip_stop_row = 16 ). + +lo_worksheet->set_cell( ip_row = 11 ip_column = 'B' ip_value = 'C_ICONSET_4ARROWS' ). +lo_worksheet->set_cell( ip_row = 12 ip_column = 'B' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 13 ip_column = 'B' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 14 ip_column = 'B' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 15 ip_column = 'B' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 16 ip_column = 'B' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_4arrowsgray. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 12 + ip_stop_column = 'C' + ip_stop_row = 16 ). + +lo_worksheet->set_cell( ip_row = 11 ip_column = 'C' ip_value = 'C_ICONSET_4ARROWSGRAY' ). +lo_worksheet->set_cell( ip_row = 12 ip_column = 'C' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 13 ip_column = 'C' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 14 ip_column = 'C' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 15 ip_column = 'C' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 16 ip_column = 'C' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_4redtoblack. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'D' + ip_start_row = 12 + ip_stop_column = 'D' + ip_stop_row = 16 ). + +lo_worksheet->set_cell( ip_row = 11 ip_column = 'D' ip_value = 'C_ICONSET_4REDTOBLACK' ). +lo_worksheet->set_cell( ip_row = 12 ip_column = 'D' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 13 ip_column = 'D' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 14 ip_column = 'D' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 15 ip_column = 'D' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 16 ip_column = 'D' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_4rating. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'E' + ip_start_row = 12 + ip_stop_column = 'E' + ip_stop_row = 16 ). + +lo_worksheet->set_cell( ip_row = 11 ip_column = 'E' ip_value = 'C_ICONSET_4RATING' ). +lo_worksheet->set_cell( ip_row = 12 ip_column = 'E' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 13 ip_column = 'E' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 14 ip_column = 'E' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 15 ip_column = 'E' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 16 ip_column = 'E' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_4trafficlights. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'F' + ip_start_row = 12 + ip_stop_column = 'F' + ip_stop_row = 16 ). + +lo_worksheet->set_cell( ip_row = 11 ip_column = 'F' ip_value = 'C_ICONSET_4TRAFFICLIGHTS' ). +lo_worksheet->set_cell( ip_row = 12 ip_column = 'F' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 13 ip_column = 'F' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 14 ip_column = 'F' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 15 ip_column = 'F' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 16 ip_column = 'F' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_5arrows. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'B' + ip_start_row = 19 + ip_stop_column = 'B' + ip_stop_row = 23 ). + +lo_worksheet->set_cell( ip_row = 18 ip_column = 'B' ip_value = 'C_ICONSET_5ARROWS' ). +lo_worksheet->set_cell( ip_row = 19 ip_column = 'B' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 20 ip_column = 'B' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 21 ip_column = 'B' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 22 ip_column = 'B' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 23 ip_column = 'B' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_5arrowsgray. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 19 + ip_stop_column = 'C' + ip_stop_row = 23 ). + +lo_worksheet->set_cell( ip_row = 18 ip_column = 'C' ip_value = 'C_ICONSET_5ARROWSGRAY' ). +lo_worksheet->set_cell( ip_row = 19 ip_column = 'C' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 20 ip_column = 'C' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 21 ip_column = 'C' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 22 ip_column = 'C' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 23 ip_column = 'C' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_5rating. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'D' + ip_start_row = 19 + ip_stop_column = 'D' + ip_stop_row = 23 ). + +lo_worksheet->set_cell( ip_row = 18 ip_column = 'D' ip_value = 'C_ICONSET_5RATING' ). +lo_worksheet->set_cell( ip_row = 19 ip_column = 'D' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 20 ip_column = 'D' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 21 ip_column = 'D' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 22 ip_column = 'D' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 23 ip_column = 'D' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_5quarters. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'E' + ip_start_row = 19 + ip_stop_column = 'E' + ip_stop_row = 23 ). + +lo_worksheet->set_cell( ip_row = 18 ip_column = 'E' ip_value = 'C_ICONSET_5QUARTERS' ). +lo_worksheet->set_cell( ip_row = 19 ip_column = 'E' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 20 ip_column = 'E' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 21 ip_column = 'E' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 22 ip_column = 'E' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 23 ip_column = 'E' ip_value = '50' ip_style = lv_style_number_guid ). + +lv_file = lo_excel->save_as( zcl_excel=>c_xlsx ). + +"convert to table +CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. +"Save the file +CALL FUNCTION 'GUI_DOWNLOAD' + EXPORTING + bin_filesize = lv_bytecount + filename = 'C:\Iconset.xlsx' + filetype = 'BIN' + TABLES + data_tab = lt_file_tab. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/old_releases/NUGG_ABAP2XLSX_V_1_0.nugg.zip b/build/old_releases/NUGG_ABAP2XLSX_V_1_0.nugg.zip new file mode 100644 index 0000000000000000000000000000000000000000..b1c2f6839753e6afb67b623eb62ab3a708e15a0c GIT binary patch literal 86986 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�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 + + + class ZCL_EXCEL_STYLES_CONDITIONAL definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLES_CONDITIONAL +*"* do not include other source files here!!! +public section. + + methods ADD + importing + !IP_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type ZEXCEL_ACTIVE_WORKSHEET + returning + value(EO_STYLE_CONDITIONAL) type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + methods GET_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods IS_EMPTY + returning + value(IS_EMPTY) type FLAG . + methods REMOVE + importing + !IP_STYLE_CONDITIONAL type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + methods SIZE + returning + value(EP_SIZE) type I . + *"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLES_CONDITIONAL +*"* do not include other source files here!!! +private section. + + data STYLES_CONDITIONAL type ref to CL_OBJECT_COLLECTION . + *"* 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 + + + + method ADD. + styles_conditional->add( ip_style_conditional ). +endmethod. + + + method CLEAR. + styles_conditional->clear( ). +endmethod. + + + method CONSTRUCTOR. + + CREATE OBJECT styles_conditional. + +endmethod. + + + + + method GET. + DATA lv_index TYPE i. + lv_index = ip_index. + eo_style_conditional ?= styles_conditional->if_object_collection~get( lv_index ). +endmethod. + + + + method GET_ITERATOR. + eo_iterator ?= styles_conditional->if_object_collection~get_iterator( ). +endmethod. + + + + method IS_EMPTY. + is_empty = styles_conditional->if_object_collection~is_empty( ). +endmethod. + + + + method REMOVE. + styles_conditional->remove( ip_style_conditional ). +endmethod. + + + + method SIZE. + ep_size = styles_conditional->if_object_collection~size( ). +endmethod. + + + + class ZCL_EXCEL_STYLE_ALIGNMENT definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_ALIGNMENT +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + data HORIZONTAL type ZEXCEL_ALIGNMENT . + data VERTICAL type ZEXCEL_ALIGNMENT . + data TEXTROTATION type ZEXCEL_TEXT_ROTATION value 0. "#EC NOTEXT . + data WRAPTEXT type FLAG . + data SHRINKTOFIT type FLAG . + data INDENT type ZEXCEL_INDENT value 0. "#EC NOTEXT . + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_ALIGNMENT +*"* do not include other source files here!!! +private section. + + constants C_HORIZONTAL_GENERAL type ZEXCEL_ALIGNMENT value 'general'. "#EC NOTEXT + constants C_HORIZONTAL_LEFT type ZEXCEL_ALIGNMENT value 'left'. "#EC NOTEXT + constants C_HORIZONTAL_RIGHT type ZEXCEL_ALIGNMENT value 'right'. "#EC NOTEXT + constants C_HORIZONTAL_CENTER type ZEXCEL_ALIGNMENT value 'center'. "#EC NOTEXT + constants C_HORIZONTAL_CENTER_CONTINUOUS type ZEXCEL_ALIGNMENT value 'centerContinuous'. "#EC NOTEXT + constants C_HORIZONTAL_JUSTIFY type ZEXCEL_ALIGNMENT value 'justify'. "#EC NOTEXT + constants C_VERTICAL_BOTTOM type ZEXCEL_ALIGNMENT value 'bottom'. "#EC NOTEXT + constants C_VERTICAL_TOP type ZEXCEL_ALIGNMENT value 'top'. "#EC NOTEXT + constants C_VERTICAL_CENTER type ZEXCEL_ALIGNMENT value 'center'. "#EC NOTEXT + constants C_VERTICAL_JUSTIFY type ZEXCEL_ALIGNMENT value 'justify'. "#EC NOTEXT + *"* 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 CONSTRUCTOR. + horizontal = me->c_horizontal_general. + vertical = me->c_vertical_bottom. + wrapText = abap_false. + shrinkToFit = abap_false. +endmethod. + + + + class ZCL_EXCEL_STYLE_BORDER definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_BORDER +*"* do not include other source files here!!! +public section. + + data BORDER_STYLE type ZEXCEL_BORDER . + data BORDER_COLOR type ZEXCEL_STYLE_COLOR_ARGB . + class-data C_BORDER_NONE type ZEXCEL_BORDER value 'none'. "#EC NOTEXT . + class-data C_BORDER_DASHDOT type ZEXCEL_BORDER value 'dashDot'. "#EC NOTEXT . + class-data C_BORDER_DASHDOTDOT type ZEXCEL_BORDER value 'dashDotDot'. "#EC NOTEXT . + class-data C_BORDER_DASHED type ZEXCEL_BORDER value 'dashed'. "#EC NOTEXT . + class-data C_BORDER_DOTTED type ZEXCEL_BORDER value 'dotted'. "#EC NOTEXT . + class-data C_BORDER_DOUBLE type ZEXCEL_BORDER value 'double'. "#EC NOTEXT . + class-data C_BORDER_HAIR type ZEXCEL_BORDER value 'hair'. "#EC NOTEXT . + class-data C_BORDER_MEDIUM type ZEXCEL_BORDER value 'medium'. "#EC NOTEXT . + class-data C_BORDER_MEDIUMDASHDOT type ZEXCEL_BORDER value 'mediumDashDot'. "#EC NOTEXT . + class-data C_BORDER_MEDIUMDASHDOTDOT type ZEXCEL_BORDER value 'mediumDashDotDot'. "#EC NOTEXT . + class-data C_BORDER_MEDIUMDASHED type ZEXCEL_BORDER value 'mediumDashed'. "#EC NOTEXT . + class-data C_BORDER_SLANTDASHDOT type ZEXCEL_BORDER value 'slantDashDot'. "#EC NOTEXT . + class-data C_BORDER_THICK type ZEXCEL_BORDER value 'thick'. "#EC NOTEXT . + class-data C_BORDER_THIN type ZEXCEL_BORDER value 'thin'. "#EC NOTEXT . + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_BORDER +*"* do not include other source files here!!! +private section. + *"* 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 + + + + + + + + + + + + + + + + + + method CONSTRUCTOR. + border_style = zcl_excel_style_border=>c_border_none. +endmethod. + + + + class ZCL_EXCEL_STYLE_BORDERS definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_BORDERS +*"* do not include other source files here!!! +public section. + + data LEFT type ref to ZCL_EXCEL_STYLE_BORDER . + data RIGHT type ref to ZCL_EXCEL_STYLE_BORDER . + data TOP type ref to ZCL_EXCEL_STYLE_BORDER . + data DOWN type ref to ZCL_EXCEL_STYLE_BORDER . + data DIAGONAL type ref to ZCL_EXCEL_STYLE_BORDER . + data ALLBORDERS type ref to ZCL_EXCEL_STYLE_BORDER . + + methods CONSTRUCTOR . + methods GET_STRUCTURE + returning + value(ES_FILL) type ZEXCEL_S_STYLE_BORDER . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_BORDERS +*"* do not include other source files here!!! +private section. + + constants C_DIAGONAL_NONE type ZEXCEL_DIAGONAL value 0. "#EC NOTEXT + constants C_DIAGONAL_UP type ZEXCEL_DIAGONAL value 1. "#EC NOTEXT + constants C_DIAGONAL_DOWN type ZEXCEL_DIAGONAL value 2. "#EC NOTEXT + constants C_DIAGONAL_BOTH type ZEXCEL_DIAGONAL value 3. "#EC NOTEXT + *"* 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 + + + + + + + + + + + + method CONSTRUCTOR. +endmethod. + + + + method GET_STRUCTURE. + +* Check if all borders is set otherwise check single border + IF me->allborders IS BOUND. + es_fill-left_color = me->allborders->border_color. + es_fill-left_style = me->allborders->border_style. + es_fill-right_color = me->allborders->border_color. + es_fill-right_style = me->allborders->border_style. + es_fill-top_color = me->allborders->border_color. + es_fill-top_style = me->allborders->border_style. + es_fill-bottom_color = me->allborders->border_color. + es_fill-bottom_style = me->allborders->border_style. + ELSE. + IF me->left IS BOUND. + es_fill-left_color = me->left->border_color. + es_fill-left_style = me->left->border_style. + ENDIF. + IF me->right IS BOUND. + es_fill-right_color = me->right->border_color. + es_fill-right_style = me->right->border_style. + ENDIF. + IF me->top IS BOUND. + es_fill-top_color = me->top->border_color. + es_fill-top_style = me->top->border_style. + ENDIF. + IF me->down IS BOUND. + es_fill-bottom_color = me->down->border_color. + es_fill-bottom_style = me->down->border_style. + ENDIF. + ENDIF. + +* Check if diagonal is set + IF me->diagonal IS BOUND. + es_fill-diagonal_color = me->diagonal->border_color. + es_fill-diagonal_style = me->diagonal->border_style. + ENDIF. + +endmethod. + + + + class ZCL_EXCEL_STYLE_COLOR definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_COLOR +*"* do not include other source files here!!! +public section. + + class-data C_BLACK type ZEXCEL_STYLE_COLOR_ARGB value 'FF000000'. "#EC NOTEXT . + class-data C_BLUE type ZEXCEL_STYLE_COLOR_ARGB value 'FF0000FF'. "#EC NOTEXT . + class-data C_DARKBLUE type ZEXCEL_STYLE_COLOR_ARGB value 'FF000080'. "#EC NOTEXT . + class-data C_DARKGREEN type ZEXCEL_STYLE_COLOR_ARGB value 'FF008000'. "#EC NOTEXT . + class-data C_DARKRED type ZEXCEL_STYLE_COLOR_ARGB value 'FF800000'. "#EC NOTEXT . + class-data C_DARKYELLOW type ZEXCEL_STYLE_COLOR_ARGB value 'FF808000'. "#EC NOTEXT . + class-data C_GRAY type ZEXCEL_STYLE_COLOR_ARGB value 'FFCCCCCC'. "#EC NOTEXT . + class-data C_GREEN type ZEXCEL_STYLE_COLOR_ARGB value 'FF00FF00'. "#EC NOTEXT . + class-data C_RED type ZEXCEL_STYLE_COLOR_ARGB value 'FFFF0000'. "#EC NOTEXT . + class-data C_WHITE type ZEXCEL_STYLE_COLOR_ARGB value 'FFFFFFFF'. "#EC NOTEXT . + class-data C_YELLOW type ZEXCEL_STYLE_COLOR_ARGB value 'FFFFFF00'. "#EC NOTEXT . + + methods CONSTRUCTOR . + class-methods CREATE_NEW_ARGB + importing + !IP_RED type ZEXCEL_STYLE_COLOR_COMPONENT + !IP_GREEN type ZEXCEL_STYLE_COLOR_COMPONENT + !IP_BLU type ZEXCEL_STYLE_COLOR_COMPONENT + returning + value(EP_COLOR_ARGB) type ZEXCEL_STYLE_COLOR_ARGB . + *"* protected components of class ZCL_EXCEL_STYLE_COLOR +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_COLOR +*"* do not include other source files here!!! +private section. + + class-data C_ALPHA type CHAR2 value 'FF'. "#EC NOTEXT . + *"* 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 + + + + + + + + + + + + + + method CONSTRUCTOR. + + +endmethod. + + + + + + + method CREATE_NEW_ARGB. + + + CONCATENATE zcl_excel_style_color=>c_alpha ip_red ip_green ip_blu INTO ep_color_argb. + +endmethod. + + + + class ZCL_EXCEL_STYLE_CONDITIONAL definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_CONDITIONAL +*"* do not include other source files here!!! +public section. + + class-data C_ICONSET_3ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '3Arrows'. "#EC NOTEXT . + class-data C_ICONSET_3ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '3ArrowsGray'. "#EC NOTEXT . + class-data C_ICONSET_3FLAGS type ZEXCEL_CONDITION_RULE_ICONSET value '3Flags'. "#EC NOTEXT . + class-data C_ICONSET_3SIGNS type ZEXCEL_CONDITION_RULE_ICONSET value '3Signs'. "#EC NOTEXT . + class-data C_ICONSET_3SYMBOLS type ZEXCEL_CONDITION_RULE_ICONSET value '3Symbols'. "#EC NOTEXT . + class-data C_ICONSET_3SYMBOLS2 type ZEXCEL_CONDITION_RULE_ICONSET value '3Symbols2'. "#EC NOTEXT . + class-data C_ICONSET_3TRAFFICLIGHTS type ZEXCEL_CONDITION_RULE_ICONSET value ''. "#EC NOTEXT . + class-data C_ICONSET_3TRAFFICLIGHTS2 type ZEXCEL_CONDITION_RULE_ICONSET value '3TrafficLights2'. "#EC NOTEXT . + class-data C_ICONSET_4ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '4Arrows'. "#EC NOTEXT . + class-data C_ICONSET_4ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '4ArrowsGray'. "#EC NOTEXT . + class-data C_ICONSET_4RATING type ZEXCEL_CONDITION_RULE_ICONSET value '4Rating'. "#EC NOTEXT . + class-data C_ICONSET_4REDTOBLACK type ZEXCEL_CONDITION_RULE_ICONSET value '4RedToBlack'. "#EC NOTEXT . + class-data C_ICONSET_4TRAFFICLIGHTS type ZEXCEL_CONDITION_RULE_ICONSET value '4TrafficLights'. "#EC NOTEXT . + class-data C_ICONSET_5ARROWS type ZEXCEL_CONDITION_RULE_ICONSET value '5Arrows'. "#EC NOTEXT . + class-data C_ICONSET_5ARROWSGRAY type ZEXCEL_CONDITION_RULE_ICONSET value '5ArrowsGray'. "#EC NOTEXT . + class-data C_ICONSET_5QUARTERS type ZEXCEL_CONDITION_RULE_ICONSET value '5Quarters'. "#EC NOTEXT . + class-data C_ICONSET_5RATING type ZEXCEL_CONDITION_RULE_ICONSET value '5Rating'. "#EC NOTEXT . + class-data C_OPERATOR_BEGINSWITH type ZEXCEL_CONDITION_OPERATOR value 'beginsWith'. "#EC NOTEXT . + class-data C_OPERATOR_BETWEEN type ZEXCEL_CONDITION_OPERATOR value 'between'. "#EC NOTEXT . + class-data C_OPERATOR_CONTAINSTEXT type ZEXCEL_CONDITION_OPERATOR value 'containsText'. "#EC NOTEXT . + class-data C_OPERATOR_ENDSWITH type ZEXCEL_CONDITION_OPERATOR value 'endsWith'. "#EC NOTEXT . + class-data C_OPERATOR_EQUAL type ZEXCEL_CONDITION_OPERATOR value 'equal'. "#EC NOTEXT . + class-data C_OPERATOR_GREATERTHAN type ZEXCEL_CONDITION_OPERATOR value 'greaterThan'. "#EC NOTEXT . + class-data C_OPERATOR_GREATERTHANOREQUAL type ZEXCEL_CONDITION_OPERATOR value 'greaterThanOrEqual'. "#EC NOTEXT . + class-data C_OPERATOR_LESSTHAN type ZEXCEL_CONDITION_OPERATOR value 'lessThan'. "#EC NOTEXT . + class-data C_OPERATOR_LESSTHANOREQUAL type ZEXCEL_CONDITION_OPERATOR value 'lessThanOrEqual'. "#EC NOTEXT . + class-data C_OPERATOR_NONE type ZEXCEL_CONDITION_OPERATOR value ''. "#EC NOTEXT . + class-data C_OPERATOR_NOTCONTAINS type ZEXCEL_CONDITION_OPERATOR value 'notContains'. "#EC NOTEXT . + class-data C_OPERATOR_NOTEQUAL type ZEXCEL_CONDITION_OPERATOR value 'notEqual'. "#EC NOTEXT . + class-data C_RULE_CELLIS type ZEXCEL_CONDITION_RULE value 'cellIs'. "#EC NOTEXT . + class-data C_RULE_CONTAINSTEXT type ZEXCEL_CONDITION_RULE value 'containsText'. "#EC NOTEXT . + class-data C_RULE_EXPRESSION type ZEXCEL_CONDITION_RULE value 'expression'. "#EC NOTEXT . + class-data C_RULE_ICONSET type ZEXCEL_CONDITION_RULE value 'iconSet'. "#EC NOTEXT . + class-data C_RULE_NONE type ZEXCEL_CONDITION_RULE value 'none'. "#EC NOTEXT . + data FORMULA type ZEXCEL_STYLE_FORMULA . + data ICONSET type ZEXCEL_CONDITION_RULE_ICONSET . + data OPERATOR type ZEXCEL_CONDITION_OPERATOR . + data PRIORITY type ZEXCEL_STYLE_PRIORITY value 1. "#EC NOTEXT . + data RULE type ZEXCEL_CONDITION_RULE . + + methods CONSTRUCTOR . + methods GET_DIMENSION_RANGE + returning + value(EP_DIMENSION_RANGE) type STRING . + methods SET_RANGE + importing + !IP_START_ROW type ZEXCEL_CELL_ROW + !IP_START_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + !IP_STOP_ROW type ZEXCEL_CELL_ROW + !IP_STOP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_CONDITIONAL +*"* do not include other source files here!!! +private section. + + data START_CELL type ZEXCEL_S_CELL_DATA . + data STOP_CELL type ZEXCEL_S_CELL_DATA . + *"* 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + method CONSTRUCTOR. + rule = me->c_rule_none. + operator = me->c_operator_none. +* inizialize dimension range + stop_cell-cell_row = 1. + stop_cell-cell_column = 1. + start_cell-cell_row = 1. + start_cell-cell_column = 1. +endmethod. + + + + method GET_DIMENSION_RANGE. + IF stop_cell EQ start_cell. "only one cell + ep_dimension_range = start_cell-cell_coords. + ELSE. + CONCATENATE start_cell-cell_coords ':' stop_cell-cell_coords INTO ep_dimension_range. + ENDIF. +endmethod. + + + + + + + method SET_RANGE. + DATA: lv_column TYPE zexcel_cell_column, + lv_row_alpha TYPE string. + + lv_column = zcl_excel_common=>convert_column2int( ip_stop_column ). + stop_cell-cell_row = 1. + stop_cell-cell_column = lv_column. + lv_row_alpha = ip_stop_row. + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE ip_stop_column lv_row_alpha INTO stop_cell-cell_coords. + + lv_column = zcl_excel_common=>convert_column2int( ip_start_column ). + start_cell-cell_row = 1. + start_cell-cell_column = lv_column. + lv_row_alpha = ip_start_row. + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE ip_start_column lv_row_alpha INTO start_cell-cell_coords. +endmethod. + + + + class ZCL_EXCEL_STYLE_FILL definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_FILL +*"* do not include other source files here!!! +public section. + + class-data C_FILL_NONE type ZEXCEL_FILL_TYPE value 'none'. "#EC NOTEXT . + class-data C_FILL_SOLID type ZEXCEL_FILL_TYPE value 'solid'. "#EC NOTEXT . + class-data C_FILL_GRADIENT_LINEAR type ZEXCEL_FILL_TYPE value 'linear'. "#EC NOTEXT . + class-data C_FILL_GRADIENT_PATH type ZEXCEL_FILL_TYPE value 'path'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKDOWN type ZEXCEL_FILL_TYPE value 'darkDown'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKGRAY type ZEXCEL_FILL_TYPE value 'darkGray'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKGRID type ZEXCEL_FILL_TYPE value 'darkGrid'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKHORIZONTAL type ZEXCEL_FILL_TYPE value 'darkHorizontal'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKTRELLIS type ZEXCEL_FILL_TYPE value 'darkTrellis'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKUP type ZEXCEL_FILL_TYPE value 'darkUp'. "#EC NOTEXT . + class-data C_FILL_PATTERN_DARKVERTICAL type ZEXCEL_FILL_TYPE value 'darkVertical'. "#EC NOTEXT . + class-data C_FILL_PATTERN_GRAY0625 type ZEXCEL_FILL_TYPE value 'gray0625'. "#EC NOTEXT . + class-data C_FILL_PATTERN_GRAY125 type ZEXCEL_FILL_TYPE value 'gray125'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTDOWN type ZEXCEL_FILL_TYPE value 'lightDown'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTGRAY type ZEXCEL_FILL_TYPE value 'lightGray'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTGRID type ZEXCEL_FILL_TYPE value 'lightGrid'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTHORIZONTAL type ZEXCEL_FILL_TYPE value 'lightHorizontal'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTTRELLIS type ZEXCEL_FILL_TYPE value 'lightTrellis'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTUP type ZEXCEL_FILL_TYPE value 'lightUp'. "#EC NOTEXT . + class-data C_FILL_PATTERN_LIGHTVERTICAL type ZEXCEL_FILL_TYPE value 'lightVertical'. "#EC NOTEXT . + class-data C_FILL_PATTERN_MEDIUMGRAY type ZEXCEL_FILL_TYPE value 'mediumGray'. "#EC NOTEXT . + data FILLTYPE type ZEXCEL_FILL_TYPE . + data ROTATION type ZEXCEL_ROTATION . + data FGCOLOR type ZEXCEL_STYLE_COLOR_ARGB . + data BGCOLOR type ZEXCEL_STYLE_COLOR_ARGB value '64'. "#EC NOTEXT . + + methods CONSTRUCTOR . + methods GET_STRUCTURE + returning + value(ES_FILL) type ZEXCEL_S_STYLE_FILL . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_FILL +*"* do not include other source files here!!! +private section. + *"* 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + method CONSTRUCTOR. + filltype = zcl_excel_style_fill=>c_fill_none. + rotation = 0. +endmethod. + + + + method GET_STRUCTURE. + es_fill-rotation = me->rotation. + es_fill-filltype = me->filltype. + es_fill-fgColor = me->fgColor. + es_fill-bgColor = me->bgColor. +endmethod. + + + + class ZCL_EXCEL_STYLE_FONT definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + data BOLD type FLAG . + data COLOR type ZEXCEL_STYLE_COLOR_ARGB . + class-data C_SCHEME_MAJOR type ZEXCEL_STYLE_FONT_SCHEME value 'major'. "#EC NOTEXT . + class-data C_SCHEME_MINOR type ZEXCEL_STYLE_FONT_SCHEME value 'minor'. "#EC NOTEXT . + class-data C_UNDERLINE_DOUBLE type CHAR20 value 'double'. "#EC NOTEXT . + class-data C_UNDERLINE_DOUBLEACCOUNTING type CHAR20 value 'doubleAccounting'. "#EC NOTEXT . + class-data C_UNDERLINE_NONE type CHAR20 value 'none'. "#EC NOTEXT . + class-data C_UNDERLINE_SINGLE type CHAR20 value 'single'. "#EC NOTEXT . + class-data C_UNDERLINE_SINGLEACCOUNTING type CHAR20 value 'singleAccounting'. "#EC NOTEXT . + data FAMILY type INT1 value 2. "#EC NOTEXT . + data ITALIC type FLAG . + data NAME type CHAR255 value 'Calibri'. "#EC NOTEXT . + data SCHEME type ZEXCEL_STYLE_FONT_SCHEME . + data SIZE type INT1 value 11. "#EC NOTEXT . + data STRIKETHROUGH type FLAG . + data UNDERLINE type FLAG . + data UNDERLINE_MODE type CHAR20 . + + methods CONSTRUCTOR . + methods GET_STRUCTURE + returning + value(ES_FONT) type ZEXCEL_S_STYLE_FONT . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +private section. + *"* 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 CONSTRUCTOR. + + + me->color = zcl_excel_style_color=>c_black. + 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. + + + + class ZCL_EXCEL_STYLE_NUMBER_FORMAT definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_NUMBER_FORMAT +*"* do not include other source files here!!! +public section. + + class-data C_FORMAT_NUMBER type ZEXCEL_NUMBER_FORMAT value '0'. "#EC NOTEXT . + class-data C_FORMAT_NUMBER_00 type ZEXCEL_NUMBER_FORMAT value '0.00'. "#EC NOTEXT . + class-data C_FORMAT_NUMBER_COMMA_SEP1 type ZEXCEL_NUMBER_FORMAT value '#,##0.00'. "#EC NOTEXT . + class-data C_FORMAT_NUMBER_COMMA_SEP2 type ZEXCEL_NUMBER_FORMAT value '#,##0.00_-'. "#EC NOTEXT . + class-data C_FORMAT_PERCENTAGE type ZEXCEL_NUMBER_FORMAT value '0%'. "#EC NOTEXT . + class-data C_FORMAT_PERCENTAGE_00 type ZEXCEL_NUMBER_FORMAT value '0.00%'. "#EC NOTEXT . + class-data C_FORMAT_DATE_YYYYMMDD2 type ZEXCEL_NUMBER_FORMAT value 'yyyy-mm-dd'. "#EC NOTEXT . + class-data C_FORMAT_DATE_YYYYMMDD type ZEXCEL_NUMBER_FORMAT value 'yy-mm-dd'. "#EC NOTEXT . + class-data C_FORMAT_DATE_DDMMYYYY type ZEXCEL_NUMBER_FORMAT value 'dd/mm/yy'. "#EC NOTEXT . + class-data C_FORMAT_DATE_DMYSLASH type ZEXCEL_NUMBER_FORMAT value 'd/m/y'. "#EC NOTEXT . + class-data C_FORMAT_DATE_DMYMINUS type ZEXCEL_NUMBER_FORMAT value 'd-m-y'. "#EC NOTEXT . + class-data C_FORMAT_DATE_DMMINUS type ZEXCEL_NUMBER_FORMAT value 'd-m'. "#EC NOTEXT . + class-data C_FORMAT_DATE_MYMINUS type ZEXCEL_NUMBER_FORMAT value 'm-y'. "#EC NOTEXT . + class-data C_FORMAT_DATE_XLSX14 type ZEXCEL_NUMBER_FORMAT value 'mm-dd-yy'. "#EC NOTEXT . + class-data C_FORMAT_DATE_XLSX15 type ZEXCEL_NUMBER_FORMAT value 'd-mmm-yy'. "#EC NOTEXT . + class-data C_FORMAT_DATE_XLSX16 type ZEXCEL_NUMBER_FORMAT value 'd-mmm'. "#EC NOTEXT . + class-data C_FORMAT_DATE_XLSX17 type ZEXCEL_NUMBER_FORMAT value 'mmm-yy'. "#EC NOTEXT . + class-data C_FORMAT_DATE_XLSX22 type ZEXCEL_NUMBER_FORMAT value 'm/d/yy h:mm'. "#EC NOTEXT . + class-data C_FORMAT_DATE_DATETIME type ZEXCEL_NUMBER_FORMAT value 'd/m/y h:mm'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME1 type ZEXCEL_NUMBER_FORMAT value 'h:mm AM/PM'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME2 type ZEXCEL_NUMBER_FORMAT value 'h:mm:ss AM/PM'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME3 type ZEXCEL_NUMBER_FORMAT value 'h:mm'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME4 type ZEXCEL_NUMBER_FORMAT value 'h:mm:ss'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME5 type ZEXCEL_NUMBER_FORMAT value 'mm:ss'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME6 type ZEXCEL_NUMBER_FORMAT value 'h:mm:ss'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME7 type ZEXCEL_NUMBER_FORMAT value 'i:s.S'. "#EC NOTEXT . + class-data C_FORMAT_DATE_TIME8 type ZEXCEL_NUMBER_FORMAT value 'h:mm:ss@'. "#EC NOTEXT . + class-data C_FORMAT_DATE_YYYYMMDDSLASH type ZEXCEL_NUMBER_FORMAT value 'yy/mm/dd@'. "#EC NOTEXT . + class-data C_FORMAT_CURRENCY_USD_SIMPLE type ZEXCEL_NUMBER_FORMAT value '"$"#,##0.00_-'. "#EC NOTEXT . + class-data C_FORMAT_CURRENCY_USD type ZEXCEL_NUMBER_FORMAT value '$#,##0_-'. "#EC NOTEXT . + class-data C_FORMAT_CURRENCY_EUR_SIMPLE type ZEXCEL_NUMBER_FORMAT value '[$EUR ]#,##0.00_-'. "#EC NOTEXT . + data FORMAT_CODE type ZEXCEL_NUMBER_FORMAT . + + methods CONSTRUCTOR . + methods GET_STRUCTURE + returning + value(EP_NUMBER_FORMAT) type ZEXCEL_NUMBER_FORMAT . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_NUMBER_FORMAT +*"* do not include other source files here!!! +private section. + + class-data C_FORMAT_GENERAL type ZEXCEL_NUMBER_FORMAT value ''. "#EC NOTEXT . + class-data C_FORMAT_TEXT type ZEXCEL_NUMBER_FORMAT value '@'. "#EC NOTEXT . + *"* 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 + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + method CONSTRUCTOR. + format_code = me->c_format_general. +endmethod. + + + + method GET_STRUCTURE. + ep_number_format = me->format_code. +endmethod. + + + + class ZCL_EXCEL_STYLE_PROTECTION definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE_PROTECTION +*"* do not include other source files here!!! +public section. + + constants C_PROTECTION_INHERIT type ZEXCEL_PROTECTION value 'inherit'. "#EC NOTEXT + constants C_PROTECTION_PROTECTED type ZEXCEL_PROTECTION value 'protected'. "#EC NOTEXT + constants C_PROTECTION_UNPROTECTED type ZEXCEL_PROTECTION value 'unprotected'. "#EC NOTEXT + data LOCKED type ZEXCEL_PROTECTION . + data HIDDEN type ZEXCEL_PROTECTION . + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE_PROTECTION +*"* do not include other source files here!!! +private section. + *"* 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 + + + + + + + method CONSTRUCTOR. + locked = me->c_protection_inherit. + hidden = me->c_protection_inherit. +endmethod. + + + + class ZCL_EXCEL_WORKSHEET definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_WORKSHEET +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + class-data C_BREAK_COLUMN type ZEXCEL_BREAK value 2. "#EC NOTEXT . + class-data C_BREAK_NONE type ZEXCEL_BREAK value 0. "#EC NOTEXT . + class-data C_BREAK_ROW type ZEXCEL_BREAK value 1. "#EC NOTEXT . + class-data C_SHEET_STATE_HIDDEN type ZEXCEL_SHEET_STATE value 'hidden'. "#EC NOTEXT . + class-data C_SHEET_STATE_VERYHIDDEN type ZEXCEL_SHEET_STATE value 'veryHidden'. "#EC NOTEXT . + class-data C_SHEET_STATE_VISIBLE type ZEXCEL_SHEET_STATE value 'visible'. "#EC NOTEXT . + data DEFAULTROWHEIGHT type INT1 value 15. "#EC NOTEXT . + data SHEET_CONTENT type ZEXCEL_T_CELL_DATA . + data SHEET_SETUP type ref to ZCL_EXCEL_SHEET_SETUP . + data SHEET_STATE type ZEXCEL_SHEET_STATE . + data TITLE type ZEXCEL_SHEET_TITLE value 'Worksheet'. "#EC NOTEXT . + + methods ADD_NEW_CONDITIONAL_STYLE + returning + value(EO_CONDITIONAL_STYLE) type ref to ZCL_EXCEL_STYLE_CONDITIONAL . + methods ADD_NEW_DATA_VALIDATION + returning + value(EO_DATA_VALIDATION) type ref to ZCL_EXCEL_DATA_VALIDATION . + methods CONSTRUCTOR + importing + !IP_TITLE type ZEXCEL_SHEET_TITLE optional . + methods GET_ACTIVE_CELL + returning + value(EP_ACTIVE_CELL) type STRING . + methods GET_CELL + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + !IP_ROW type ZEXCEL_CELL_ROW + exporting + !EP_VALUE type ZEXCEL_CELL_VALUE + !EP_RC type SYSUBRC . + methods GET_COND_STYLES_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods GET_DATA_VALIDATIONS_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods GET_DIMENSION_RANGE + returning + value(EP_DIMENSION_RANGE) type STRING . + methods GET_GUID + returning + value(EP_GUID) type OLTPGUID16 . + methods SET_CELL + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + !IP_ROW type ZEXCEL_CELL_ROW + !IP_VALUE type ZEXCEL_CELL_VALUE + !IP_FORMULA type ZEXCEL_CELL_FORMULA optional + !IP_STYLE type ZEXCEL_CELL_STYLE optional . + methods SET_TABLE + importing + !IP_TABLE type STANDARD TABLE + !IP_HDR_STYLE type ZEXCEL_CELL_STYLE optional + !IP_BODY_STYLE type ZEXCEL_CELL_STYLE optional + !IP_TABLE_TITLE type STRING optional + !IP_TOP_LEFT_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA default 'B' + !IP_TOP_LEFT_ROW type ZEXCEL_CELL_ROW default 3 . + methods GET_DATA_VALIDATIONS_SIZE + returning + value(EP_SIZE) type I . + *"* protected components of class ZABAP_EXCEL_WORKSHEET +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_WORKSHEET +*"* do not include other source files here!!! +private section. + + data ACTIVE_CELL type ZEXCEL_S_CELL_DATA . + data CONDITIONAL_STYLES type ref to ZCL_EXCEL_STYLES_CONDITIONAL . + data DATA_VALIDATIONS type ref to ZCL_EXCEL_DATA_VALIDATIONS . + data GUID type OLTPGUID16 . + data LOWER_CELL type ZEXCEL_S_CELL_DATA . + data UPPER_CELL type ZEXCEL_S_CELL_DATA . + + methods UPDATE_DIMENSION_RANGE . + *"* 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 ADD_NEW_CONDITIONAL_STYLE. + + + CREATE OBJECT eo_conditional_style. + conditional_styles->add( eo_conditional_style ). +endmethod. + + + + method ADD_NEW_DATA_VALIDATION. + + + CREATE OBJECT eo_data_validation. + data_validations->add( eo_data_validation ). +endmethod. + + + + METHOD constructor. + + + CALL FUNCTION 'GUID_CREATE' + IMPORTING + ev_guid_16 = me->guid. + + IF ip_title IS NOT INITIAL. + title = ip_title. + ELSE. + title = me->guid. + ENDIF. + + sheet_state = me->c_sheet_state_visible. + + CREATE OBJECT sheet_setup. + CREATE OBJECT conditional_styles. + CREATE OBJECT data_validations. + +* initialize active cell coordinates + active_cell-cell_row = 1. + active_cell-cell_column = 1. + +* inizialize dimension range + lower_cell-cell_row = 1. + lower_cell-cell_column = 1. + upper_cell-cell_row = 1. + upper_cell-cell_column = 1. +ENDMETHOD. + + + + method GET_ACTIVE_CELL. + + + DATA: lv_active_column TYPE zexcel_cell_column_alpha, + lv_active_row TYPE string. + + lv_active_column = zcl_excel_common=>convert_column2alpha( active_cell-cell_column ). + lv_active_row = active_cell-cell_row. + SHIFT lv_active_row RIGHT DELETING TRAILING space. + SHIFT lv_active_row LEFT DELETING LEADING space. + CONCATENATE lv_active_column lv_active_row INTO ep_active_cell. + +endmethod. + + + + + + + method GET_CELL. + + + DATA: lv_column TYPE zexcel_cell_column, + ls_sheet_content TYPE zexcel_s_cell_data. + + FIELD-SYMBOLS: <fs_sheet_content> TYPE zexcel_s_cell_data. + + lv_column = zcl_excel_common=>convert_column2int( ip_column ). + + READ TABLE sheet_content INTO ls_sheet_content WITH TABLE KEY cell_row = ip_row + cell_column = lv_column. + + ep_rc = sy-subrc. + ep_value = ls_sheet_content-cell_value. +endmethod. + + + + method GET_COND_STYLES_ITERATOR. + + + eo_iterator = me->conditional_styles->get_iterator( ). +endmethod. + + + + method GET_DATA_VALIDATIONS_ITERATOR. + + + eo_iterator = me->data_validations->get_iterator( ). +endmethod. + + + + method GET_DATA_VALIDATIONS_SIZE. + ep_size = me->data_validations->size( ). +endmethod. + + + + method GET_DIMENSION_RANGE. + + + me->update_dimension_range( ). + IF upper_cell EQ lower_cell. "only one cell + ep_dimension_range = upper_cell-cell_coords. + ELSE. + CONCATENATE upper_cell-cell_coords ':' lower_cell-cell_coords INTO ep_dimension_range. + ENDIF. + +endmethod. + + + + method GET_GUID. + + + ep_guid = me->guid. + +endmethod. + + + + + + + + method SET_CELL. + + + DATA: lv_column TYPE zexcel_cell_column, + ls_sheet_content TYPE zexcel_s_cell_data, + lv_row_alpha TYPE string. + + FIELD-SYMBOLS: <fs_sheet_content> TYPE zexcel_s_cell_data. + + lv_column = ZCL_EXCEL_COMMON=>convert_column2int( ip_column ). + + READ TABLE sheet_content ASSIGNING <fs_sheet_content> WITH KEY cell_row = ip_row + cell_column = lv_column. + + IF sy-subrc EQ 0. + <fs_sheet_content>-cell_value = ip_value. + <fs_sheet_content>-cell_formula = ip_formula. + <fs_sheet_content>-cell_style = ip_style. + ELSE. + ls_sheet_content-cell_row = ip_row. + ls_sheet_content-cell_column = lv_column. + ls_sheet_content-cell_value = ip_value. + ls_sheet_content-cell_formula = ip_formula. + ls_sheet_content-cell_style = ip_style. + lv_row_alpha = ip_row. + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE ip_column lv_row_alpha INTO ls_sheet_content-cell_coords. + APPEND ls_sheet_content TO sheet_content. + SORT sheet_content BY cell_row cell_column. +* me->update_dimension_range( ). + + ENDIF. + +endmethod. + + + + + + + + + method SET_TABLE. + + + DATA: lo_tabdescr TYPE REF TO cl_abap_structdescr, + lr_data TYPE REF TO data, + ls_newline TYPE REF TO data, + ls_header TYPE x030l, + lt_dfies TYPE ddfields, + lv_row_header TYPE zexcel_cell_row VALUE '2', + lv_col_header TYPE zexcel_cell_column_alpha VALUE 'B', + lv_row_int TYPE zexcel_cell_row, + lv_column_int TYPE zexcel_cell_column, + lv_column_alpha TYPE zexcel_cell_column_alpha, + lv_cell_value TYPE zexcel_cell_value. + + + FIELD-SYMBOLS: <fs_table_line> TYPE ANY, + <fs_fldval> TYPE ANY, + <fs_dfies> TYPE dfies, + <fs_cell_value> TYPE zexcel_cell_value. + + lv_column_int = zcl_excel_common=>convert_column2int( ip_top_left_column ). + lv_row_int = ip_top_left_row. + + CREATE DATA lr_data LIKE LINE OF ip_table. + + lo_tabdescr ?= cl_abap_structdescr=>describe_by_data_ref( lr_data ). + + ls_header = lo_tabdescr->get_ddic_header( ). + + lt_dfies = lo_tabdescr->get_ddic_field_list( ). + +* It is better to loop column by column + LOOP AT lt_dfies ASSIGNING <fs_dfies>. + lv_column_alpha = zcl_excel_common=>convert_column2alpha( lv_column_int ). + " First of all write column header + lv_cell_value = <fs_dfies>-scrtext_m. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_value = lv_cell_value + ip_style = ip_hdr_style ). + ADD 1 TO lv_row_int. + LOOP AT ip_table ASSIGNING <fs_table_line>. + ASSIGN COMPONENT <fs_dfies>-fieldname OF STRUCTURE <fs_table_line> TO <fs_fldval>. + MOVE <fs_fldval> TO lv_cell_value. + me->set_cell( ip_column = lv_column_alpha + ip_row = lv_row_int + ip_value = lv_cell_value + ip_style = ip_body_style ). + ADD 1 TO lv_row_int. + ENDLOOP. + lv_row_int = ip_top_left_row. + ADD 1 TO lv_column_int. + ENDLOOP. + +endmethod. + + + method UPDATE_DIMENSION_RANGE. + + + DATA: ls_sheet_content TYPE zexcel_s_cell_data, + lt_sheet_content TYPE zexcel_t_cell_data_unsorted, + lv_row_alpha TYPE string, + lv_column_alpha TYPE zexcel_cell_column_alpha. + +* update dimension range + lt_sheet_content = sheet_content. + "upper left corner + SORT lt_sheet_content BY cell_row. + READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content. + upper_cell-cell_row = ls_sheet_content-cell_row. + SORT lt_sheet_content BY cell_column. + READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content. + upper_cell-cell_column = ls_sheet_content-cell_column. + + lv_row_alpha = upper_cell-cell_row. + lv_column_alpha = zcl_excel_common=>convert_column2alpha( upper_cell-cell_column ). + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE lv_column_alpha lv_row_alpha INTO upper_cell-cell_coords. + + "bottom right corner + SORT lt_sheet_content BY cell_row DESCENDING. + READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content. + lower_cell-cell_row = ls_sheet_content-cell_row. + SORT lt_sheet_content BY cell_column DESCENDING. + READ TABLE lt_sheet_content INDEX 1 INTO ls_sheet_content. + lower_cell-cell_column = ls_sheet_content-cell_column. + + lv_row_alpha = lower_cell-cell_row. + lv_column_alpha = zcl_excel_common=>convert_column2alpha( lower_cell-cell_column ). + SHIFT lv_row_alpha RIGHT DELETING TRAILING space. + SHIFT lv_row_alpha LEFT DELETING LEADING space. + CONCATENATE lv_column_alpha lv_row_alpha INTO lower_cell-cell_coords. + +endmethod. + + + + class ZCL_EXCEL_WORKSHEETS definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +public section. + + data ACTIVE_WORKSHEET type ZEXCEL_ACTIVE_WORKSHEET value 1. "#EC NOTEXT . + data NAME type ZEXCEL_WORKSHEETS_NAME value 'Worksheets'. "#EC NOTEXT . + + methods ADD + importing + !IP_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type ZEXCEL_ACTIVE_WORKSHEET + returning + value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET . + methods GET_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods IS_EMPTY + returning + value(IS_EMPTY) type FLAG . + methods REMOVE + importing + !IP_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET . + methods SIZE + returning + value(EP_SIZE) type I . + *"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +private section. + + data WORKSHEETS type ref to CL_OBJECT_COLLECTION . + *"* 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 + + + + + + method ADD. + + + worksheets->add( ip_worksheet ). +endmethod. + + + method CLEAR. + + + worksheets->clear( ). +endmethod. + + + method CONSTRUCTOR. + + + CREATE OBJECT worksheets. + +endmethod. + + + + + method GET. + + + DATA lv_index TYPE i. + lv_index = ip_index. + eo_worksheet ?= worksheets->if_object_collection~get( lv_index ). +endmethod. + + + + method GET_ITERATOR. + + + eo_iterator ?= worksheets->if_object_collection~get_iterator( ). +endmethod. + + + + method IS_EMPTY. + + + is_empty = worksheets->if_object_collection~is_empty( ). +endmethod. + + + + method REMOVE. + + + worksheets->remove( ip_worksheet ). +endmethod. + + + + method SIZE. + + + ep_size = worksheets->if_object_collection~size( ). +endmethod. + + + + class ZCL_EXCEL_WRITER_2007 definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_WRITER_2007 +*"* do not include other source files here!!! +public section. + + methods CONSTRUCTOR + importing + !IO_EXCEL type ref to ZCL_EXCEL . + methods CREATE + returning + value(EP_EXCEL) type XSTRING . + *"* protected components of class ZCL_EXCEL_WRITER_2007 +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_WRITER_2007 +*"* do not include other source files here!!! +private section. + + constants C_CONTENT_TYPES type STRING value '[Content_Types].xml'. "#EC NOTEXT + constants C_DOCPROPS_APP type STRING value 'docProps/app.xml'. "#EC NOTEXT + constants C_DOCPROPS_CORE type STRING value 'docProps/core.xml'. "#EC NOTEXT + constants C_RELATIONSHIPS type STRING value '_rels/.rels'. "#EC NOTEXT + constants C_XL_CALCCHAIN type STRING value 'xl/calcChain.xml'. "#EC NOTEXT + constants C_XL_RELATIONSHIPS type STRING value 'xl/_rels/workbook.xml.rels'. "#EC NOTEXT + constants C_XL_SHAREDSTRINGS type STRING value 'xl/sharedStrings.xml'. "#EC NOTEXT + constants C_XL_SHEET type STRING value 'xl/worksheets/sheet#.xml'. "#EC NOTEXT + constants C_XL_SHEET_RELS type STRING value 'xl/worksheets/_rels/sheet#.xml.rels'. "#EC NOTEXT + constants C_XL_STYLES type STRING value 'xl/styles.xml'. "#EC NOTEXT + constants C_XL_THEME type STRING value 'xl/theme/theme1.xml'. "#EC NOTEXT + constants C_XL_WORKBOOK type STRING value 'xl/workbook.xml'. "#EC NOTEXT + data EXCEL type ref to ZCL_EXCEL . + data SHARED_STRINGS type ZEXCEL_T_SHARED_STRING . + data STYLES_MAPPING type ZEXCEL_T_STYLES_MAPPING . + + methods CREATE_CONTENT_TYPES + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_DOCPROPS_APP + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_DOCPROPS_CORE + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_RELATIONSHIPS + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_CALCCHAIN + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_RELATIONSHIPS + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_SHAREDSTRINGS + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_SHEET + importing + !IO_WORKSHEET type ref to ZCL_EXCEL_WORKSHEET + !IV_ACTIVE type FLAG default '' + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_SHEET_RELS + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_STYLES + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_THEME + returning + value(EP_CONTENT) type XSTRING . + methods CREATE_XL_WORKBOOK + returning + value(EP_CONTENT) type XSTRING . + methods FLAG2BOOL + importing + !IP_FLAG type FLAG + returning + value(EP_BOOLEAN) type CHAR5 . + methods GET_SHARED_STRING_INDEX + importing + !IP_CELL_VALUE type ZEXCEL_CELL_VALUE + returning + value(EP_INDEX) type INT4 . + *"* 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 + + + + + + + + + + + + + + + + + + method CONSTRUCTOR. + + + me->excel = io_excel. +endmethod. + + + + method CREATE. + + +* Office 2007 file format is a cab of several xml files with extension .xlsx + + DATA: lo_zip TYPE REF TO cl_abap_zip, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_active_worksheet TYPE REF TO zcl_excel_worksheet, + lo_iterator TYPE REF TO cl_object_collection_iterator. + + DATA: lv_content TYPE xstring, + lv_active TYPE flag, + lv_xl_sheet TYPE string, + lv_xl_sheet_rels TYPE string, + lv_syindex TYPE string. + + +********************************************************************** +* STEP 1: Create archive object file (ZIP) + CREATE OBJECT lo_zip. + +********************************************************************** +* STEP 2: Add [Content_Types].xml to zip + lv_content = me->create_content_types( ). + lo_zip->add( name = me->c_content_types + content = lv_content ). + +********************************************************************** +* STEP 3: Add _rels/.rels to zip + lv_content = me->create_relationships( ). + lo_zip->add( name = me->c_relationships + content = lv_content ). + +********************************************************************** +* STEP 4: Add docProps/app.xml to zip + lv_content = me->create_docprops_app( ). + lo_zip->add( name = me->c_docprops_app + content = lv_content ). + +********************************************************************** +* STEP 5: Add docProps/core.xml to zip + lv_content = me->create_docprops_core( ). + lo_zip->add( name = me->c_docprops_core + content = lv_content ). + +********************************************************************** +* STEP 6: Add xl/_rels/workbook.xml.rels to zip + lv_content = me->create_xl_relationships( ). + lo_zip->add( name = me->c_xl_relationships + content = lv_content ). + +********************************************************************** +* STEP 6: Add xl/_rels/workbook.xml.rels to zip + lv_content = me->create_xl_theme( ). + lo_zip->add( name = me->c_xl_theme + content = lv_content ). + +********************************************************************** +* STEP 7: Add xl/workbook.xml to zip + lv_content = me->create_xl_workbook( ). + lo_zip->add( name = me->c_xl_workbook + content = lv_content ). + +********************************************************************** +* STEP 8: Add xl/workbook.xml to zip +* lv_content = me->create_xl_styles_static( ). + lv_content = me->create_xl_styles( ). + lo_zip->add( name = me->c_xl_styles + content = lv_content ). + +********************************************************************** +* STEP 9: Add sharedStrings.xml to zip + lv_content = me->create_xl_sharedstrings( ). + lo_zip->add( name = me->c_xl_sharedstrings + content = lv_content ). + +********************************************************************** +* STEP 10: Add sharedStrings.xml to zip + lv_content = me->create_xl_calcchain( ). + lo_zip->add( name = me->c_xl_calcchain + content = lv_content ). + +********************************************************************** +* STEP 11: Add sheet#.xml to zip + lo_iterator = me->excel->get_worksheets_iterator( ). + lo_active_worksheet = me->excel->get_active_worksheet( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + IF lo_active_worksheet->get_guid( ) EQ lo_worksheet->get_guid( ). + lv_active = abap_true. + ELSE. + lv_active = abap_true. + ENDIF. + + lv_content = me->create_xl_sheet( io_worksheet = lo_worksheet + iv_active = lv_active ). + lv_xl_sheet = me->c_xl_sheet. + MOVE sy-index TO lv_syindex. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + REPLACE ALL OCCURRENCES OF '#' IN lv_xl_sheet WITH lv_syindex. + lo_zip->add( name = lv_xl_sheet + content = lv_content ). + + lv_xl_sheet_rels = me->c_xl_sheet_rels. + lv_content = me->create_xl_sheet_rels( ). + REPLACE ALL OCCURRENCES OF '#' IN lv_xl_sheet_rels WITH lv_syindex. + lo_zip->add( name = lv_xl_sheet_rels + content = lv_content ). + ENDWHILE. + +********************************************************************** +* STEP 11: Create the final zip + ep_excel = lo_zip->save( ). + +endmethod. + + + + method CREATE_CONTENT_TYPES. + + +** Constant node name + DATA: lc_xml_node_types TYPE string VALUE 'Types', + lc_xml_node_override TYPE string VALUE 'Override', + lc_xml_node_default TYPE string VALUE 'Default', + " Node attributes + lc_xml_attr_partname TYPE string VALUE 'PartName', + lc_xml_attr_extension TYPE string VALUE 'Extension', + lc_xml_attr_contenttype TYPE string VALUE 'ContentType', + " Node namespace + lc_xml_node_types_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/content-types', + " Node extension + lc_xml_node_rels_ext TYPE string VALUE 'rels', + lc_xml_node_xml_ext TYPE string VALUE 'xml', + " Node partnumber + lc_xml_node_theme_pn TYPE string VALUE '/xl/theme/theme1.xml', + lc_xml_node_styles_pn TYPE string VALUE '/xl/styles.xml', + lc_xml_node_workb_pn TYPE string VALUE '/xl/workbook.xml', + lc_xml_node_props_pn TYPE string VALUE '/docProps/app.xml', + lc_xml_node_worksheet_pn TYPE string VALUE '/xl/worksheets/sheet#.xml', + lc_xml_node_strings_pn TYPE string VALUE '/xl/sharedStrings.xml', + lc_xml_node_core_pn TYPE string VALUE '/docProps/core.xml', + " Node contentType + lc_xml_node_theme_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.theme+xml', + lc_xml_node_styles_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.spreadsheetml.styles+xml', + lc_xml_node_workb_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.spreadsheetml.sheet.main+xml', + lc_xml_node_rels_ct TYPE string VALUE 'application/vnd.openxmlformats-package.relationships+xml', + lc_xml_node_xml_ct TYPE string VALUE 'application/xml', + lc_xml_node_props_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.extended-properties+xml', + lc_xml_node_worksheet_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.spreadsheetml.worksheet+xml', + lc_xml_node_strings_ct TYPE string VALUE 'application/vnd.openxmlformats-officedocument.spreadsheetml.sharedStrings+xml', + lc_xml_node_core_ct TYPE string VALUE 'application/vnd.openxmlformats-package.core-properties+xml'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + + DATA: lv_worksheets_num TYPE i, + lv_worksheets_numc TYPE numc3, + lv_xml_node_worksheet_pn TYPE string, + lv_xml_size TYPE i. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'UTF-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node types + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_types + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_types_ns ). + +********************************************************************** +* STEP 4: Create subnodes + " Theme node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_theme_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_theme_ct ). + lo_element_root->append_child( lo_element ). + + " Styles node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_styles_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_styles_ct ). + lo_element_root->append_child( lo_element ). + + " rels node + lo_element = lo_document->create_simple_element( name = lc_xml_node_default + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_extension + value = lc_xml_node_rels_ext ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_rels_ct ). + lo_element_root->append_child( lo_element ). + + " extension node + lo_element = lo_document->create_simple_element( name = lc_xml_node_default + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_extension + value = lc_xml_node_xml_ext ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_xml_ct ). + lo_element_root->append_child( lo_element ). + + " Workbook node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_workb_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_workb_ct ). + lo_element_root->append_child( lo_element ). + + " Properties node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_props_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_props_ct ). + lo_element_root->append_child( lo_element ). + + " Worksheet node + lv_worksheets_num = excel->get_worksheets_size( ). + DO lv_worksheets_num TIMES. + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + + MOVE sy-index TO lv_worksheets_numc. + SHIFT lv_worksheets_numc LEFT DELETING LEADING '0'. + lv_xml_node_worksheet_pn = lc_xml_node_worksheet_pn. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_worksheet_pn WITH lv_worksheets_numc. + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lv_xml_node_worksheet_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lv_xml_node_worksheet_pn ). + lo_element_root->append_child( lo_element ). + ENDDO. + + " Strings node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_strings_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_strings_ct ). + lo_element_root->append_child( lo_element ). + + " Strings node + lo_element = lo_document->create_simple_element( name = lc_xml_node_override + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_partname + value = lc_xml_node_core_pn ). + lo_element->set_attribute_ns( name = lc_xml_attr_contenttype + value = lc_xml_node_core_ct ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + method CREATE_DOCPROPS_APP. + + +** Constant node name + DATA: lc_xml_node_properties TYPE string VALUE 'Properties', + lc_xml_node_application TYPE string VALUE 'Application', + lc_xml_node_docsecurity TYPE string VALUE 'DocSecurity', + lc_xml_node_scalecrop TYPE string VALUE 'ScaleCrop', + lc_xml_node_headingpairs TYPE string VALUE 'HeadingPairs', + lc_xml_node_vector TYPE string VALUE 'vector', + lc_xml_node_variant TYPE string VALUE 'variant', + lc_xml_node_lpstr TYPE string VALUE 'lpstr', + lc_xml_node_i4 TYPE string VALUE 'i4', + lc_xml_node_titlesofparts TYPE string VALUE 'TitlesOfParts', + lc_xml_node_company TYPE string VALUE 'Company', + lc_xml_node_linksuptodate TYPE string VALUE 'LinksUpToDate', + lc_xml_node_shareddoc TYPE string VALUE 'SharedDoc', + lc_xml_node_hyperlinkschanged TYPE string VALUE 'HyperlinksChanged', + lc_xml_node_appversion TYPE string VALUE 'AppVersion', + " Namespace prefix + lc_vt_ns TYPE string VALUE 'vt', + lc_xml_node_props_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/extended-properties', + lc_xml_node_props_vt_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/docPropsVTypes', + " Node attributes + lc_xml_attr_size TYPE string VALUE 'size', + lc_xml_attr_basetype TYPE string VALUE 'baseType'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_sub_element_vector TYPE REF TO if_ixml_element, + lo_sub_element_variant TYPE REF TO if_ixml_element, + lo_sub_element_lpstr TYPE REF TO if_ixml_element, + lo_sub_element_i4 TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + + DATA: lv_value TYPE string. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node properties + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_properties + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_props_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:vt' + value = lc_xml_node_props_vt_ns ). + +********************************************************************** +* STEP 4: Create subnodes + " Application + lo_element = lo_document->create_simple_element( name = lc_xml_node_application + parent = lo_document ). + lv_value = excel->properties->application. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " DocSecurity + lo_element = lo_document->create_simple_element( name = lc_xml_node_docsecurity + parent = lo_document ). + lv_value = excel->properties->docsecurity. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " ScaleCrop + lo_element = lo_document->create_simple_element( name = lc_xml_node_scalecrop + parent = lo_document ). + lv_value = me->flag2bool( excel->properties->scalecrop ). + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " HeadingPairs + lo_element = lo_document->create_simple_element( name = lc_xml_node_headingpairs + parent = lo_document ). + + + " * vector node + lo_sub_element_vector = lo_document->create_simple_element_ns( name = lc_xml_node_vector + prefix = lc_vt_ns + parent = lo_document ). + lo_sub_element_vector->set_attribute_ns( name = lc_xml_attr_size + value = '2' ). + lo_sub_element_vector->set_attribute_ns( name = lc_xml_attr_basetype + value = lc_xml_node_variant ). + + " ** variant node + lo_sub_element_variant = lo_document->create_simple_element_ns( name = lc_xml_node_variant + prefix = lc_vt_ns + parent = lo_document ). + + " *** lpstr node + lo_sub_element_lpstr = lo_document->create_simple_element_ns( name = lc_xml_node_lpstr + prefix = lc_vt_ns + parent = lo_document ). + lv_value = excel->get_worksheets_name( ). + lo_sub_element_lpstr->set_value( lv_value ). + lo_sub_element_variant->append_child( lo_sub_element_lpstr ). " lpstr node + + lo_sub_element_vector->append_child( lo_sub_element_variant ). " variant node + + " ** variant node + lo_sub_element_variant = lo_document->create_simple_element_ns( name = lc_xml_node_variant + prefix = lc_vt_ns + parent = lo_document ). + + " *** i4 node + lo_sub_element_i4 = lo_document->create_simple_element_ns( name = lc_xml_node_i4 + prefix = lc_vt_ns + parent = lo_document ). + lv_value = excel->get_worksheets_size( ). + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element_i4->set_value( lv_value ). + lo_sub_element_variant->append_child( lo_sub_element_i4 ). " lpstr node + + lo_sub_element_vector->append_child( lo_sub_element_variant ). " variant node + + lo_element->append_child( lo_sub_element_vector ). " vector node + + lo_element_root->append_child( lo_element ). " HeadingPairs + + + " TitlesOfParts + lo_element = lo_document->create_simple_element( name = lc_xml_node_titlesofparts + parent = lo_document ). + + + " * vector node + lo_sub_element_vector = lo_document->create_simple_element_ns( name = lc_xml_node_vector + prefix = lc_vt_ns + parent = lo_document ). + lv_value = excel->get_worksheets_size( ). + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element_vector->set_attribute_ns( name = lc_xml_attr_size + value = lv_value ). + lo_sub_element_vector->set_attribute_ns( name = lc_xml_attr_basetype + value = lc_xml_node_lpstr ). + + lo_iterator = excel->get_worksheets_iterator( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + " ** lpstr node + lo_sub_element_lpstr = lo_document->create_simple_element_ns( name = lc_xml_node_lpstr + prefix = lc_vt_ns + parent = lo_document ). + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + lv_value = lo_worksheet->title. + lo_sub_element_lpstr->set_value( lv_value ). + lo_sub_element_vector->append_child( lo_sub_element_lpstr ). " lpstr node + ENDWHILE. + + lo_element->append_child( lo_sub_element_vector ). " vector node + + lo_element_root->append_child( lo_element ). " TitlesOfParts + + + + " Company + lo_element = lo_document->create_simple_element( name = lc_xml_node_company + parent = lo_document ). + lv_value = excel->properties->company. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " LinksUpToDate + lo_element = lo_document->create_simple_element( name = lc_xml_node_linksuptodate + parent = lo_document ). + lv_value = me->flag2bool( excel->properties->linksuptodate ). + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " SharedDoc + lo_element = lo_document->create_simple_element( name = lc_xml_node_shareddoc + parent = lo_document ). + lv_value = me->flag2bool( excel->properties->shareddoc ). + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " HyperlinksChanged + lo_element = lo_document->create_simple_element( name = lc_xml_node_hyperlinkschanged + parent = lo_document ). + lv_value = me->flag2bool( excel->properties->hyperlinkschanged ). + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " AppVersion + lo_element = lo_document->create_simple_element( name = lc_xml_node_appversion + parent = lo_document ). + lv_value = excel->properties->appversion. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + method CREATE_DOCPROPS_CORE. + + +** Constant node name + DATA: lc_xml_node_coreproperties TYPE string VALUE 'coreProperties', + lc_xml_node_creator TYPE string VALUE 'creator', + lc_xml_node_lastmodifiedby TYPE string VALUE 'lastModifiedBy', + lc_xml_node_created TYPE string VALUE 'created', + lc_xml_node_modified TYPE string VALUE 'modified', + " Node attributes + lc_xml_attr_type TYPE string VALUE 'type', + lc_xml_attr_target TYPE string VALUE 'dcterms:W3CDTF', + " Node namespace + lc_cp_ns TYPE string VALUE 'cp', + lc_dc_ns TYPE string VALUE 'dc', + lc_dcterms_ns TYPE string VALUE 'dcterms', + lc_dcmitype_ns TYPE string VALUE 'dcmitype', + lc_xsi_ns TYPE string VALUE 'xsi', + lc_xml_node_cp_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/metadata/core-properties', + lc_xml_node_dc_ns TYPE string VALUE 'http://purl.org/dc/elements/1.1/', + lc_xml_node_dcterms_ns TYPE string VALUE 'http://purl.org/dc/terms/', + lc_xml_node_dcmitype_ns TYPE string VALUE 'http://purl.org/dc/dcmitype/', + lc_xml_node_xsi_ns TYPE string VALUE 'http://www.w3.org/2001/XMLSchema-instance'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + + DATA: lv_value TYPE string. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node coreProperties + lo_element_root = lo_document->create_simple_element_ns( name = lc_xml_node_coreproperties + prefix = lc_cp_ns + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns:cp' + value = lc_xml_node_cp_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:dc' + value = lc_xml_node_dc_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:dcterms' + value = lc_xml_node_dcterms_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:dcmitype' + value = lc_xml_node_dcmitype_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:xsi' + value = lc_xml_node_xsi_ns ). + +********************************************************************** +* STEP 4: Create subnodes + " Creator node + lo_element = lo_document->create_simple_element_ns( name = lc_xml_node_creator + prefix = lc_dc_ns + parent = lo_document ). + lv_value = excel->properties->creator. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " lastModifiedBy node + lo_element = lo_document->create_simple_element_ns( name = lc_xml_node_lastmodifiedby + prefix = lc_cp_ns + parent = lo_document ). + lv_value = excel->properties->lastmodifiedby. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " Created node + lo_element = lo_document->create_simple_element_ns( name = lc_xml_node_created + prefix = lc_dcterms_ns + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + prefix = lc_xsi_ns + value = lc_xml_attr_target ). + lv_value = excel->properties->created. + lv_value = '2010-07-04T14:58:53Z'. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + + " Modified node + lo_element = lo_document->create_simple_element_ns( name = lc_xml_node_modified + prefix = lc_dcterms_ns + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + prefix = lc_xsi_ns + value = lc_xml_attr_target ). + lv_value = excel->properties->modified. + lv_value = '2010-07-04T14:58:53Z'. + lo_element->set_value( lv_value ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + method CREATE_RELATIONSHIPS. + + +** Constant node name + DATA: lc_xml_node_relationships TYPE string VALUE 'Relationships', + lc_xml_node_relationship TYPE string VALUE 'Relationship', + " Node attributes + lc_xml_attr_id TYPE string VALUE 'Id', + lc_xml_attr_type TYPE string VALUE 'Type', + lc_xml_attr_target TYPE string VALUE 'Target', + " Node namespace + lc_xml_node_rels_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships', + " Node id + lc_xml_node_rId1_id TYPE string VALUE 'rId1', + lc_xml_node_rId2_id TYPE string VALUE 'rId2', + lc_xml_node_rId3_id TYPE string VALUE 'rId3', + " Node type + lc_xml_node_rId1_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument', + lc_xml_node_rId2_tp TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties', + lc_xml_node_rId3_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/extended-properties', + " Node target + lc_xml_node_rId1_tg TYPE string VALUE 'xl/workbook.xml', + lc_xml_node_rId2_tg TYPE string VALUE 'docProps/core.xml', + lc_xml_node_rId3_tg TYPE string VALUE 'docProps/app.xml'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_relationships + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_rels_ns ). + +********************************************************************** +* STEP 4: Create subnodes + " Theme node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lc_xml_node_rId3_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rId3_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rId3_tg ). + lo_element_root->append_child( lo_element ). + + " Styles node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lc_xml_node_rId2_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rId2_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rId2_tg ). + lo_element_root->append_child( lo_element ). + + " rels node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lc_xml_node_rId1_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rId1_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rId1_tg ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + method CREATE_XL_CALCCHAIN. + + +** Constant node name + DATA: lc_xml_node_calcchain TYPE string VALUE 'calcChain', + lc_xml_node_c TYPE string VALUE 'c', + " Node attributes + lc_xml_attr_r TYPE string VALUE 'r', + lc_xml_attr_i TYPE string VALUE 'i', + " Node namespace + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + + DATA: lv_value TYPE string, + lv_value_i TYPE string, + lv_sheets_count TYPE i. + + FIELD-SYMBOLS: <ls_sheet_content> TYPE zexcel_s_cell_data. + +********************************************************************** +* STEP 1: Create xl/calcChain.xml + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'UTF-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node calcChain + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_calcchain + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + +********************************************************************** +* STEP 4: Create subnodes + lo_iterator = excel->get_worksheets_iterator( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + ADD 1 TO lv_sheets_count. + MOVE lv_sheets_count TO lv_value_i. + SHIFT lv_value_i RIGHT DELETING TRAILING space. + SHIFT lv_value_i LEFT DELETING LEADING space. + LOOP AT lo_worksheet->sheet_content ASSIGNING <ls_sheet_content> WHERE cell_formula IS NOT INITIAL. + " formula chain node + lo_element = lo_document->create_simple_element( name = lc_xml_node_c + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_r + value = lv_value ). + lo_element->set_attribute_ns( name = lc_xml_attr_i + value = lv_value_i ). + lo_element_root->append_child( lo_element ). + ENDLOOP. + ENDWHILE. + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + method CREATE_XL_RELATIONSHIPS. + + +** Constant node name + DATA: lc_xml_node_relationships TYPE string VALUE 'Relationships', + lc_xml_node_relationship TYPE string VALUE 'Relationship', + " Node attributes + lc_xml_attr_id TYPE string VALUE 'Id', + lc_xml_attr_type TYPE string VALUE 'Type', + lc_xml_attr_target TYPE string VALUE 'Target', + " Node namespace + lc_xml_node_rels_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships', + " Node id + lc_xml_node_ridx_id TYPE string VALUE 'rId#', + " Node type + lc_xml_node_rid_sheet_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet', + lc_xml_node_rid_theme_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme', + lc_xml_node_rid_styles_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles', + lc_xml_node_rid_shared_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings', + lc_xml_node_rid_calcchain_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/calcChain', + " Node target + lc_xml_node_ridx_tg TYPE string VALUE 'worksheets/sheet#.xml', + lc_xml_node_rid_shared_tg TYPE string VALUE 'sharedStrings.xml', + lc_xml_node_rid_styles_tg TYPE string VALUE 'styles.xml', + lc_xml_node_rid_theme_tg TYPE string VALUE 'theme/theme1.xml', + lc_xml_node_rid_calcchain_tg TYPE string VALUE 'calcChain.xml'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + + DATA: lv_xml_node_ridx_tg TYPE string, + lv_xml_node_ridx_id TYPE string, + lv_size TYPE i, + lv_syindex(2) TYPE c. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_relationships + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_rels_ns ). + +********************************************************************** +* STEP 4: Create subnodes + + lv_size = excel->get_worksheets_size( ). + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lv_size = lv_size + 2. + lv_syindex = lv_size. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_styles_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_styles_tg ). + lo_element_root->append_child( lo_element ). + + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lv_size = lv_size - 1. + lv_syindex = lv_size. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_theme_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_theme_tg ). + lo_element_root->append_child( lo_element ). + + lv_size = excel->get_worksheets_size( ). + + DO lv_size TIMES. + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + lv_xml_node_ridx_tg = lc_xml_node_ridx_tg. + lv_syindex = sy-index. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_tg WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_sheet_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lv_xml_node_ridx_tg ). + lo_element_root->append_child( lo_element ). + ENDDO. + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + ADD 3 TO lv_size. + lv_syindex = lv_size. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_shared_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_shared_tg ). + lo_element_root->append_child( lo_element ). + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + ADD 1 TO lv_size. + lv_syindex = lv_size. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lv_xml_node_ridx_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_calcchain_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_calcchain_tg ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + method CREATE_XL_SHAREDSTRINGS. + + +** Constant node name + DATA: lc_xml_node_sst TYPE string VALUE 'sst', + lc_xml_node_si TYPE string VALUE 'si', + lc_xml_node_t TYPE string VALUE 't', + " Node attributes + lc_xml_attr_count TYPE string VALUE 'count', + lc_xml_attr_uniquecount TYPE string VALUE 'uniqueCount', + " Node namespace + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_sub_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + + DATA: lt_cell_data TYPE zexcel_t_cell_data_unsorted, + ls_shared_string TYPE zexcel_s_shared_string, + lv_value TYPE string, + lv_count_str TYPE string, + lv_uniquecount_str TYPE string, + lv_sytabix TYPE sytabix, + lv_count TYPE i, + lv_uniquecount TYPE i. + + FIELD-SYMBOLS: <fs_sheet_content> TYPE zexcel_s_cell_data, + <fs_sheet_string> TYPE zexcel_s_shared_string. + +********************************************************************** +* STEP 1: Collect strings from each worksheet + lo_iterator = excel->get_worksheets_iterator( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + APPEND LINES OF lo_worksheet->sheet_content TO lt_cell_data. + ENDWHILE. + + DELETE lt_cell_data WHERE cell_formula IS NOT INITIAL. " delete formula content + + DESCRIBE TABLE lt_cell_data LINES lv_count. + MOVE lv_count TO lv_count_str. + + SHIFT lv_count_str RIGHT DELETING TRAILING space. + SHIFT lv_count_str LEFT DELETING LEADING space. + + SORT lt_cell_data BY cell_value. + DELETE ADJACENT DUPLICATES FROM lt_cell_data COMPARING cell_value. + + DESCRIBE TABLE lt_cell_data LINES lv_uniquecount. + MOVE lv_uniquecount TO lv_uniquecount_str. + + SHIFT lv_uniquecount_str RIGHT DELETING TRAILING space. + SHIFT lv_uniquecount_str LEFT DELETING LEADING space. + + LOOP AT lt_cell_data ASSIGNING <fs_sheet_content>. + lv_sytabix = sy-tabix - 1. + MOVE lv_sytabix TO ls_shared_string-string_no. + MOVE <fs_sheet_content>-cell_value TO ls_shared_string-string_value. + APPEND ls_shared_string TO shared_strings. + ENDLOOP. + + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_sst + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + lo_element_root->set_attribute_ns( name = lc_xml_attr_count + value = lv_count_str ). + lo_element_root->set_attribute_ns( name = lc_xml_attr_uniquecount + value = lv_uniquecount_str ). + +********************************************************************** +* STEP 4: Create subnode + LOOP AT shared_strings ASSIGNING <fs_sheet_string>. + lo_element = lo_document->create_simple_element( name = lc_xml_node_si + parent = lo_document ). + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_t + parent = lo_document ). + lo_sub_element->set_value( <fs_sheet_string>-string_value ). + lo_element->append_child( lo_sub_element ). + lo_element_root->append_child( lo_element ). + ENDLOOP. + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + + + METHOD create_xl_sheet. + + +** Constant node name + DATA: lc_xml_node_worksheet TYPE string VALUE 'worksheet', + lc_xml_node_dimension TYPE string VALUE 'dimension', + lc_xml_node_sheetviews TYPE string VALUE 'sheetViews', + lc_xml_node_sheetview TYPE string VALUE 'sheetView', + lc_xml_node_selection TYPE string VALUE 'selection', + lc_xml_node_sheetformatpr TYPE string VALUE 'sheetFormatPr', + lc_xml_node_sheetdata TYPE string VALUE 'sheetData', + lc_xml_node_row TYPE string VALUE 'row', + lc_xml_node_c TYPE string VALUE 'c', + lc_xml_node_v TYPE string VALUE 'v', + lc_xml_node_f TYPE string VALUE 'f', + lc_xml_node_pagemargins TYPE string VALUE 'pageMargins', + lc_xml_node_condformatting TYPE string VALUE 'conditionalFormatting', + lc_xml_node_cfrule TYPE string VALUE 'cfRule', + lc_xml_node_iconset TYPE string VALUE 'iconSet', + lc_xml_node_cfvo TYPE string VALUE 'cfvo', + lc_xml_node_formula TYPE string VALUE 'formula', + lc_xml_node_datavalidations TYPE string VALUE 'dataValidations', + lc_xml_node_datavalidation TYPE string VALUE 'dataValidation', + lc_xml_node_formula1 TYPE string VALUE 'formula1', + " Node attributes + lc_xml_attr_ref TYPE string VALUE 'ref', + lc_xml_attr_tabselected TYPE string VALUE 'tabSelected', + lc_xml_attr_workbookviewid TYPE string VALUE 'workbookViewId', + lc_xml_attr_activecell TYPE string VALUE 'activeCell', + lc_xml_attr_sqref TYPE string VALUE 'sqref', + lc_xml_attr_defaultrowheight TYPE string VALUE 'defaultRowHeight', + lc_xml_attr_r TYPE string VALUE 'r', + lc_xml_attr_s TYPE string VALUE 's', + lc_xml_attr_spans TYPE string VALUE 'spans', + lc_xml_attr_t TYPE string VALUE 't', + lc_xml_attr_left TYPE string VALUE 'left', + lc_xml_attr_right TYPE string VALUE 'right', + lc_xml_attr_top TYPE string VALUE 'top', + lc_xml_attr_bottom TYPE string VALUE 'bottom', + lc_xml_attr_header TYPE string VALUE 'header', + lc_xml_attr_footer TYPE string VALUE 'footer', + lc_xml_attr_type TYPE string VALUE 'type', + lc_xml_attr_iconset TYPE string VALUE 'iconSet', + lc_xml_attr_val TYPE string VALUE 'val', + lc_xml_attr_dxfid TYPE string VALUE 'dxfId', + lc_xml_attr_priority TYPE string VALUE 'priority', + lc_xml_attr_operator TYPE string VALUE 'operator', + lc_xml_attr_allowblank TYPE string VALUE 'allowBlank', + lc_xml_attr_showinputmessage TYPE string VALUE 'showInputMessage', + lc_xml_attr_showerrormessage TYPE string VALUE 'showErrorMessage', + " Node namespace + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main', + lc_xml_node_r_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_element_2 TYPE REF TO if_ixml_element, + lo_element_3 TYPE REF TO if_ixml_element, + lo_element_4 TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_style_conditional TYPE REF TO zcl_excel_style_conditional, + lo_data_validation TYPE REF TO zcl_excel_data_validation. + + DATA: lv_value TYPE string, + lt_percent_val TYPE TABLE OF string, + ls_percent_val TYPE string, + lv_cell_row_s TYPE string, + ls_last_row TYPE zexcel_s_cell_data, + ls_style_mapping TYPE zexcel_s_styles_mapping. + + FIELD-SYMBOLS: <ls_sheet_content> TYPE zexcel_s_cell_data. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +*********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_worksheet + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:r' + value = lc_xml_node_r_ns ). + +********************************************************************** +* STEP 4: Create subnodes + + " dimension node + lo_element = lo_document->create_simple_element( name = lc_xml_node_dimension + parent = lo_document ). + lv_value = io_worksheet->get_dimension_range( ). + lo_element->set_attribute_ns( name = lc_xml_attr_ref + value = lv_value ). + lo_element_root->append_child( lo_element ). + + " sheetViews node + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetviews + parent = lo_document ). + " sheetView node + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_sheetview + parent = lo_document ). + IF iv_active EQ abap_true. + lo_element_2->set_attribute_ns( name = lc_xml_attr_tabselected + value = '1' ). + ENDIF. + lo_element_2->set_attribute_ns( name = lc_xml_attr_workbookviewid + value = '0' ). + + " selection node + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_selection + parent = lo_document ). + lv_value = io_worksheet->get_active_cell( ). + lo_element_3->set_attribute_ns( name = lc_xml_attr_activecell + value = lv_value ). + + lo_element_3->set_attribute_ns( name = lc_xml_attr_sqref + value = lv_value ). + + lo_element_2->append_child( lo_element_3 ). " sheetView node + + lo_element->append_child( lo_element_2 ). " sheetView node + + lo_element_root->append_child( lo_element ). " sheetViews node + + + " sheetFormatPr node + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetformatpr + parent = lo_document ). + lv_value = io_worksheet->defaultrowheight. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_defaultrowheight + value = lv_value ). + lo_element_root->append_child( lo_element ). " sheetFormatPr node + + " sheetData node + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheetdata + parent = lo_document ). + LOOP AT io_worksheet->sheet_content ASSIGNING <ls_sheet_content>. + CLEAR ls_style_mapping. + IF ls_last_row-cell_row NE <ls_sheet_content>-cell_row. + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_row + parent = lo_document ). + lv_value = <ls_sheet_content>-cell_row. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_2->set_attribute_ns( name = lc_xml_attr_r + value = lv_value ). + + lo_element_2->set_attribute_ns( name = lc_xml_attr_spans + value = '1:1' ). " <******************************* + ENDIF. + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_c + parent = lo_document ). + + lo_element_3->set_attribute_ns( name = lc_xml_attr_r + value = <ls_sheet_content>-cell_coords ). + + IF <ls_sheet_content>-cell_style IS NOT INITIAL. + READ TABLE styles_mapping INTO ls_style_mapping WITH KEY guid = <ls_sheet_content>-cell_style. + lv_value = ls_style_mapping-style. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_3->set_attribute_ns( name = lc_xml_attr_s + value = lv_value ). + ENDIF. + IF ls_style_mapping-cell_format IS INITIAL. " to avoid errors if no style has been created + IF <ls_sheet_content>-cell_formula IS INITIAL. + ls_style_mapping-cell_format = 'S'. + ELSE. + ls_style_mapping-cell_format = 'F'. + ENDIF. + ENDIF. + " is a shared string and is not a formula + IF ls_style_mapping-cell_format EQ 'S'. + lo_element_3->set_attribute_ns( name = lc_xml_attr_t + value = 's' ). + ENDIF. + IF <ls_sheet_content>-cell_formula IS NOT INITIAL. + " fomula node + lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_f + parent = lo_document ). + lv_value = <ls_sheet_content>-cell_formula. + lo_element_4->set_value( lv_value ). + lo_element_3->append_child( lo_element_4 ). " fomula node + ENDIF. + " value node + lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_v + parent = lo_document ). + + IF ls_style_mapping-cell_format EQ 'S'. + lv_value = me->get_shared_string_index( <ls_sheet_content>-cell_value ). + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_4->set_value( lv_value ). + ELSE. + lv_value = <ls_sheet_content>-cell_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_4->set_value( lv_value ). + ENDIF. + + lo_element_3->append_child( lo_element_4 ). " value node + + lo_element_2->append_child( lo_element_3 ). " column node + IF ls_last_row-cell_row NE <ls_sheet_content>-cell_row. + lo_element->append_child( lo_element_2 ). " row node + ls_last_row = <ls_sheet_content>. + ENDIF. + + ENDLOOP. + lo_element_root->append_child( lo_element ). " sheetData node + + " Conditional formatting node + lo_iterator = io_worksheet->get_cond_styles_iterator( ). + WHILE lo_iterator->has_next( ) EQ abap_true. + lo_style_conditional ?= lo_iterator->get_next( ). + IF lo_style_conditional->rule IS INITIAL. + CONTINUE. + ENDIF. + lo_element = lo_document->create_simple_element( name = lc_xml_node_condformatting + parent = lo_document ). + lv_value = lo_style_conditional->get_dimension_range( ) . + lo_element->set_attribute_ns( name = lc_xml_attr_sqref + value = lv_value ). + + " cfRule node + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_cfrule + parent = lo_document ). + lv_value = lo_style_conditional->rule. + lo_element_2->set_attribute_ns( name = lc_xml_attr_type + value = lv_value ). + lv_value = lo_style_conditional->priority. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_2->set_attribute_ns( name = lc_xml_attr_priority + value = lv_value ). + + CASE lo_style_conditional->rule. + WHEN zcl_excel_style_conditional=>c_rule_iconset. + CLEAR lt_percent_val. + " iconset node + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_iconset + parent = lo_document ). + IF lo_style_conditional->iconset NE zcl_excel_style_conditional=>c_iconset_3trafficlights. + lv_value = lo_style_conditional->iconset. + lo_element_3->set_attribute_ns( name = lc_xml_attr_iconset + value = lv_value ). + ENDIF. + + CASE lo_style_conditional->iconset. + WHEN zcl_excel_style_conditional=>c_iconset_3trafficlights2 OR + zcl_excel_style_conditional=>c_iconset_3arrows OR + zcl_excel_style_conditional=>c_iconset_3arrowsgray OR + zcl_excel_style_conditional=>c_iconset_3flags OR + zcl_excel_style_conditional=>c_iconset_3signs OR + zcl_excel_style_conditional=>c_iconset_3symbols OR + zcl_excel_style_conditional=>c_iconset_3symbols2 OR + zcl_excel_style_conditional=>c_iconset_3trafficlights OR + zcl_excel_style_conditional=>c_iconset_3trafficlights2. + APPEND '0' TO lt_percent_val. + APPEND '33' TO lt_percent_val. + APPEND '67' TO lt_percent_val. + WHEN zcl_excel_style_conditional=>c_iconset_4arrows OR + zcl_excel_style_conditional=>c_iconset_4arrowsgray OR + zcl_excel_style_conditional=>c_iconset_4rating OR + zcl_excel_style_conditional=>c_iconset_4redtoblack OR + zcl_excel_style_conditional=>c_iconset_4trafficlights. + APPEND '0' TO lt_percent_val. + APPEND '25' TO lt_percent_val. + APPEND '50' TO lt_percent_val. + APPEND '75' TO lt_percent_val. + WHEN zcl_excel_style_conditional=>c_iconset_5arrows OR + zcl_excel_style_conditional=>c_iconset_5arrowsgray OR + zcl_excel_style_conditional=>c_iconset_5quarters OR + zcl_excel_style_conditional=>c_iconset_5rating. + APPEND '0' TO lt_percent_val. + APPEND '20' TO lt_percent_val. + APPEND '40' TO lt_percent_val. + APPEND '60' TO lt_percent_val. + APPEND '80' TO lt_percent_val. + WHEN OTHERS. + CLEAR lt_percent_val. + ENDCASE. + + LOOP AT lt_percent_val INTO ls_percent_val. + " cfvo node + lo_element_4 = lo_document->create_simple_element( name = lc_xml_node_cfvo + parent = lo_document ). + lo_element_4->set_attribute_ns( name = lc_xml_attr_type + value = 'percent' ). + lo_element_4->set_attribute_ns( name = lc_xml_attr_val + value = ls_percent_val ). + lo_element_3->append_child( lo_element_4 ). " cfvo node + ENDLOOP. + + + lo_element_2->append_child( lo_element_3 ). " iconset node + WHEN zcl_excel_style_conditional=>c_rule_cellis. + lo_element_2->set_attribute_ns( name = lc_xml_attr_dxfid + value = '0' ). " @TODO <***************************** + lv_value = lo_style_conditional->operator. + lo_element_2->set_attribute_ns( name = lc_xml_attr_operator + value = lv_value ). + " formula node + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_formula + parent = lo_document ). + lv_value = lo_style_conditional->formula. + lo_element_3->set_value( lv_value ). + lo_element_2->append_child( lo_element_3 ). " formula node + + ENDCASE. + + lo_element->append_child( lo_element_2 ). " cfRule node + + lo_element_root->append_child( lo_element ). " Conditional formatting node + ENDWHILE. + + + IF io_worksheet->get_data_validations_size( ) GT 0. + " dataValidations node + lo_element = lo_document->create_simple_element( name = lc_xml_node_datavalidations + parent = lo_document ). + " Conditional formatting node + lo_iterator = io_worksheet->get_data_validations_iterator( ). + WHILE lo_iterator->has_next( ) EQ abap_true. + lo_data_validation ?= lo_iterator->get_next( ). + " dataValidation node + lo_element_2 = lo_document->create_simple_element( name = lc_xml_node_datavalidation + parent = lo_document ). + lv_value = lo_data_validation->type. + lo_element_2->set_attribute_ns( name = lc_xml_attr_type + value = lv_value ). + IF lo_data_validation->allowblank EQ abap_true. + lv_value = '1'. + ELSE. + lv_value = '0'. + ENDIF. + lo_element_2->set_attribute_ns( name = lc_xml_attr_allowblank + value = lv_value ). + IF lo_data_validation->showinputmessage EQ abap_true. + lv_value = '1'. + ELSE. + lv_value = '0'. + ENDIF. + lo_element_2->set_attribute_ns( name = lc_xml_attr_showinputmessage + value = lv_value ). + IF lo_data_validation->showerrormessage EQ abap_true. + lv_value = '1'. + ELSE. + lv_value = '0'. + ENDIF. + lo_element_2->set_attribute_ns( name = lc_xml_attr_showerrormessage + value = lv_value ). + lv_cell_row_s = lo_data_validation->cell_row. + SHIFT lv_cell_row_s RIGHT DELETING TRAILING space. + SHIFT lv_cell_row_s LEFT DELETING LEADING space. + CONCATENATE lo_data_validation->cell_column lv_cell_row_s INTO lv_value. + lo_element_2->set_attribute_ns( name = lc_xml_attr_sqref + value = lv_value ). + " formula1 node + lo_element_3 = lo_document->create_simple_element( name = lc_xml_node_formula1 + parent = lo_document ). + lv_value = lo_data_validation->value. + lo_element_3->set_value( lv_value ). + + lo_element_2->append_child( lo_element_3 ). " formula1 node + + lo_element->append_child( lo_element_2 ). " dataValidation node + ENDWHILE. + lo_element_root->append_child( lo_element ). " dataValidations node + ENDIF. + + " pageMargins node + lo_element = lo_document->create_simple_element( name = lc_xml_node_pagemargins + parent = lo_document ). + + lo_element->set_attribute_ns( name = lc_xml_attr_left + value = '0.7' ). " @TODO <***************************** + lo_element->set_attribute_ns( name = lc_xml_attr_right + value = '0.7' ). " @TODO <***************************** + lo_element->set_attribute_ns( name = lc_xml_attr_top + value = '0.75' ). " @TODO <***************************** + lo_element->set_attribute_ns( name = lc_xml_attr_bottom + value = '0.75' ). " @TODO <***************************** + lo_element->set_attribute_ns( name = lc_xml_attr_header + value = '0.3' ). " @TODO <***************************** + lo_element->set_attribute_ns( name = lc_xml_attr_footer + value = '0.3' ). " @TODO <***************************** + lo_element_root->append_child( lo_element ). " sheetFormatPr node + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + method CREATE_XL_SHEET_RELS. + + +** Constant node name + DATA: lc_xml_node_relationships TYPE string VALUE 'Relationships', + lc_xml_node_relationship TYPE string VALUE 'Relationship', + " Node attributes + lc_xml_attr_id TYPE string VALUE 'Id', + lc_xml_attr_type TYPE string VALUE 'Type', + lc_xml_attr_target TYPE string VALUE 'Target', + " Node namespace + lc_xml_node_rels_ns TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships', + " Node id + lc_xml_node_ridx_id TYPE string VALUE 'rId#', + lc_xml_node_rid_print_id TYPE string VALUE 'rId1', + " Node type + lc_xml_node_rid_print_tp TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings', + " Node target + lc_xml_node_rid_print_tg TYPE string VALUE '../printerSettings/printerSettings1.bin'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_relationships + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_rels_ns ). + +********************************************************************** +* STEP 4: Create subnodes + + " Relationship node + lo_element = lo_document->create_simple_element( name = lc_xml_node_relationship + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_id + value = lc_xml_node_rid_print_id ). + lo_element->set_attribute_ns( name = lc_xml_attr_type + value = lc_xml_node_rid_print_tp ). + lo_element->set_attribute_ns( name = lc_xml_attr_target + value = lc_xml_node_rid_print_tg ). + lo_element_root->append_child( lo_element ). + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + method CREATE_XL_STYLES. + + +** Constant node name + DATA: lc_xml_node_stylesheet TYPE string VALUE 'styleSheet', + " font + lc_xml_node_fonts TYPE string VALUE 'fonts', + lc_xml_node_font TYPE string VALUE 'font', + lc_xml_node_b TYPE string VALUE 'b', "bold + lc_xml_node_i TYPE string VALUE 'i', "italic + lc_xml_node_u TYPE string VALUE 'u', "underline + lc_xml_node_strike TYPE string VALUE 'strike', "strikethrough + lc_xml_node_sz TYPE string VALUE 'sz', + lc_xml_node_color TYPE string VALUE 'color', + lc_xml_node_name TYPE string VALUE 'name', + lc_xml_node_family TYPE string VALUE 'family', + lc_xml_node_scheme TYPE string VALUE 'scheme', + " fill + lc_xml_node_fills TYPE string VALUE 'fills', + lc_xml_node_fill TYPE string VALUE 'fill', + lc_xml_node_patternfill TYPE string VALUE 'patternFill', + lc_xml_node_fgcolor TYPE string VALUE 'fgColor', + lc_xml_node_bgcolor TYPE string VALUE 'bgColor', + lc_xml_node_gradientfill TYPE string VALUE 'gradientFill', + lc_xml_node_stop TYPE string VALUE 'stop', + " borders + lc_xml_node_borders TYPE string VALUE 'borders', + lc_xml_node_border TYPE string VALUE 'border', + lc_xml_node_left TYPE string VALUE 'left', + lc_xml_node_right TYPE string VALUE 'right', + lc_xml_node_top TYPE string VALUE 'top', + lc_xml_node_bottom TYPE string VALUE 'bottom', + lc_xml_node_diagonal TYPE string VALUE 'diagonal', + " Styles + lc_xml_node_cellstylexfs TYPE string VALUE 'cellStyleXfs', + lc_xml_node_xf TYPE string VALUE 'xf', + lc_xml_node_cellxfs TYPE string VALUE 'cellXfs', + lc_xml_node_cellstyles TYPE string VALUE 'cellStyles', + lc_xml_node_cellstyle TYPE string VALUE 'cellStyle', + lc_xml_node_dxfs TYPE string VALUE 'dxfs', + lc_xml_node_tablestyles TYPE string VALUE 'tableStyles', + " Colors + lc_xml_node_colors TYPE string VALUE 'colors', + lc_xml_node_mrucolors TYPE string VALUE 'mruColors', + " Node attributes + lc_xml_attr_count TYPE string VALUE 'count', + lc_xml_attr_val TYPE string VALUE 'val', + lc_xml_attr_theme TYPE string VALUE 'theme', + lc_xml_attr_rgb TYPE string VALUE 'rgb', + lc_xml_attr_indexed TYPE string VALUE 'indexed', + lc_xml_attr_style TYPE string VALUE 'style', + lc_xml_attr_position TYPE string VALUE 'position', + lc_xml_attr_degree TYPE string VALUE 'degree', + lc_xml_attr_patterntype TYPE string VALUE 'patternType', + lc_xml_attr_numfmtid TYPE string VALUE 'numFmtId', + lc_xml_attr_fontid TYPE string VALUE 'fontId', + lc_xml_attr_fillid TYPE string VALUE 'fillId', + lc_xml_attr_borderid TYPE string VALUE 'borderId', + lc_xml_attr_xfid TYPE string VALUE 'xfId', + lc_xml_attr_applynumberformat TYPE string VALUE 'applyNumberFormat', + lc_xml_attr_applyfont TYPE string VALUE 'applyFont', + lc_xml_attr_applyfill TYPE string VALUE 'applyFill', + lc_xml_attr_applyborder TYPE string VALUE 'applyBorder', + lc_xml_attr_name TYPE string VALUE 'name', + lc_xml_attr_builtinid TYPE string VALUE 'builtinId', + lc_xml_attr_defaulttablestyle TYPE string VALUE 'defaultTableStyle', + lc_xml_attr_defaultpivotstyle TYPE string VALUE 'defaultPivotStyle', + " Node namespace + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element_fonts TYPE REF TO if_ixml_element, + lo_element_font TYPE REF TO if_ixml_element, + lo_element_fills TYPE REF TO if_ixml_element, + lo_element_fill TYPE REF TO if_ixml_element, + lo_element_borders TYPE REF TO if_ixml_element, + lo_element_border TYPE REF TO if_ixml_element, + lo_element_cellxfs TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_sub_element TYPE REF TO if_ixml_element, + lo_sub_element_2 TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_style TYPE REF TO zcl_excel_style. + + + DATA: lt_fonts TYPE zexcel_t_style_font, + ls_font TYPE zexcel_s_style_font, + lt_fills TYPE zexcel_t_style_fill, + ls_fill TYPE zexcel_s_style_fill, + lt_borders TYPE zexcel_t_style_border, + ls_border TYPE zexcel_s_style_border, + ls_format TYPE zexcel_number_format, + lt_cellxfs TYPE zexcel_t_cellxfs, + ls_cellxfs TYPE zexcel_s_cellxfs, + ls_styles_mapping TYPE zexcel_s_styles_mapping, + lt_colors TYPE TABLE OF zexcel_style_color_argb, + ls_color TYPE zexcel_style_color_argb. + + DATA: lv_value TYPE string, + lv_fonts_count TYPE i, + lv_fills_count TYPE i, + lv_borders_count TYPE i, + lv_cellxfs_count TYPE i. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +*********************************************************************** +* STEP 3: Create main node relationships + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_stylesheet + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + +********************************************************************** +* STEP 4: Create subnodes + + lo_element_fonts = lo_document->create_simple_element( name = lc_xml_node_fonts + parent = lo_document ). + + lo_element_fills = lo_document->create_simple_element( name = lc_xml_node_fills + parent = lo_document ). + + lo_element_borders = lo_document->create_simple_element( name = lc_xml_node_borders + parent = lo_document ). + + lo_element_cellxfs = lo_document->create_simple_element( name = lc_xml_node_cellxfs + parent = lo_document ). + +* Compress styles + lo_iterator = excel->get_styles_iterator( ). + WHILE lo_iterator->has_next( ) EQ abap_true. + lo_style ?= lo_iterator->get_next( ). + ls_font = lo_style->font->get_structure( ). + ls_fill = lo_style->fill->get_structure( ). + ls_border = lo_style->borders->get_structure( ). + ls_format = lo_style->number_format->get_structure( ). + + +* Compress fonts + READ TABLE lt_fonts FROM ls_font TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_cellxfs-fontid = sy-tabix. + ELSE. + APPEND ls_font TO lt_fonts. + DESCRIBE TABLE lt_fonts LINES ls_cellxfs-fontid. + ENDIF. + SUBTRACT 1 FROM ls_cellxfs-fontid. + +* Compress fills + READ TABLE lt_fills FROM ls_fill TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_cellxfs-fillid = sy-tabix. + ELSE. + APPEND ls_fill TO lt_fills. + DESCRIBE TABLE lt_fills LINES ls_cellxfs-fillid. + ENDIF. + SUBTRACT 1 FROM ls_cellxfs-fillid. + +* Compress borders + READ TABLE lt_borders FROM ls_border TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_cellxfs-borderid = sy-tabix. + ELSE. + APPEND ls_border TO lt_borders. + DESCRIBE TABLE lt_borders LINES ls_cellxfs-borderid. + ENDIF. + SUBTRACT 1 FROM ls_cellxfs-borderid. + + IF ls_format IS INITIAL. + ls_cellxfs-numfmtid = 0. " number format + ELSE. + ls_cellxfs-numfmtid = ls_format. " number format + ENDIF. + ls_cellxfs-xfid = 0. + + IF ls_format IS NOT INITIAL. + ls_cellxfs-applynumberformat = 1. + ls_styles_mapping-cell_format = 'I'. + ELSE. + ls_cellxfs-applynumberformat = 0. + ls_styles_mapping-cell_format = 'S'. + ENDIF. + IF ls_cellxfs-fontid NE 0. + ls_cellxfs-applyfont = 1. + ELSE. + ls_cellxfs-applyfont = 0. + ENDIF. + IF ls_cellxfs-fillid NE 0. + ls_cellxfs-applyfill = 1. + ELSE. + ls_cellxfs-applyfill = 0. + ENDIF. + IF ls_cellxfs-borderid NE 0. + ls_cellxfs-applyborder = 1. + ELSE. + ls_cellxfs-applyborder = 0. + ENDIF. + +* Remap styles + READ TABLE lt_cellxfs FROM ls_cellxfs TRANSPORTING NO FIELDS. + IF sy-subrc EQ 0. + ls_styles_mapping-style = sy-tabix. + ELSE. + APPEND ls_cellxfs TO lt_cellxfs. + DESCRIBE TABLE lt_cellxfs LINES ls_styles_mapping-style. + ENDIF. + SUBTRACT 1 FROM ls_styles_mapping-style. + ls_styles_mapping-guid = lo_style->get_guid( ). + APPEND ls_styles_mapping TO me->styles_mapping. + ENDWHILE. + + " create font elements + LOOP AT lt_fonts INTO ls_font. + lo_element_font = lo_document->create_simple_element( name = lc_xml_node_font + parent = lo_document ). + IF ls_font-bold EQ abap_true. + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_b + parent = lo_document ). + lo_element_font->append_child( lo_sub_element ). + ENDIF. + IF ls_font-italic EQ abap_true. + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_i + parent = lo_document ). + lo_element_font->append_child( lo_sub_element ). + ENDIF. + IF ls_font-underline EQ abap_true. + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_u + parent = lo_document ). + lv_value = ls_font-underline_mode. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + ENDIF. + IF ls_font-strikethrough EQ abap_true. + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_strike + parent = lo_document ). + lo_element_font->append_child( lo_sub_element ). + ENDIF. + "size + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_sz + parent = lo_document ). + lv_value = ls_font-size. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + "color + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_font-color. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + "name + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_name + parent = lo_document ). + lv_value = ls_font-name. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + "family + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_family + parent = lo_document ). + lv_value = ls_font-family. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + "scheme + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_scheme + parent = lo_document ). + lv_value = ls_font-scheme. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_val + value = lv_value ). + lo_element_font->append_child( lo_sub_element ). + lo_element_fonts->append_child( lo_element_font ). + " Collect color + APPEND ls_font-color TO lt_colors. + ENDLOOP. + + " create fill elements + LOOP AT lt_fills INTO ls_fill. + lo_element_fill = lo_document->create_simple_element( name = lc_xml_node_fill + parent = lo_document ). + "pattern + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_patternfill + parent = lo_document ). + lv_value = ls_fill-filltype. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_patterntype + value = lv_value ). + " fgcolor + IF ls_fill-fgcolor IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_fgcolor + parent = lo_document ). + lv_value = ls_fill-fgcolor. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + + lo_sub_element->append_child( lo_sub_element_2 )." fgcolor + ENDIF. + " bgcolor + IF ls_fill-bgcolor IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_bgcolor + parent = lo_document ). + lv_value = ls_fill-bgcolor. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_indexed + value = lv_value ). + + lo_sub_element->append_child( lo_sub_element_2 )." bgcolor + ENDIF. + + lo_element_fill->append_child( lo_sub_element )."pattern + lo_element_fills->append_child( lo_element_fill ). + " Collect color + IF ls_fill-fgcolor IS NOT INITIAL. + APPEND ls_fill-fgcolor TO lt_colors. + ENDIF. + ENDLOOP. + + " create border elements + LOOP AT lt_borders INTO ls_border. + lo_element_border = lo_document->create_simple_element( name = lc_xml_node_border + parent = lo_document ). + "left + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_left + parent = lo_document ). + IF ls_border-left_style IS NOT INITIAL. + lv_value = ls_border-left_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + IF ls_border-left_color IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_border-left_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color +* Collect color + APPEND ls_border-left_color TO lt_colors. + ENDIF. + lo_element_border->append_child( lo_sub_element ). + + "right + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_right + parent = lo_document ). + IF ls_border-right_style IS NOT INITIAL. + lv_value = ls_border-right_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + IF ls_border-right_color IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_border-right_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color +* Collect color + APPEND ls_border-right_color TO lt_colors. + ENDIF. + lo_element_border->append_child( lo_sub_element ). + + "top + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_top + parent = lo_document ). + IF ls_border-top_style IS NOT INITIAL. + lv_value = ls_border-top_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + IF ls_border-top_color IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_border-top_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color +* Collect color + APPEND ls_border-top_color TO lt_colors. + ENDIF. + lo_element_border->append_child( lo_sub_element ). + + "bottom + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_bottom + parent = lo_document ). + IF ls_border-bottom_style IS NOT INITIAL. + lv_value = ls_border-bottom_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + IF ls_border-bottom_color IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_border-bottom_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color +* Collect color + APPEND ls_border-bottom_color TO lt_colors. + ENDIF. + lo_element_border->append_child( lo_sub_element ). + + "diagonal + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_diagonal + parent = lo_document ). + IF ls_border-diagonal_style IS NOT INITIAL. + lv_value = ls_border-diagonal_style. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_style + value = lv_value ). + ENDIF. + IF ls_border-diagonal_color IS NOT INITIAL. + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_border-diagonal_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color +* Collect color + APPEND ls_border-diagonal_color TO lt_colors. + ENDIF. + lo_element_border->append_child( lo_sub_element ). + lo_element_borders->append_child( lo_element_border ). + ENDLOOP. + + " update attribute "count" + DESCRIBE TABLE lt_fonts LINES lv_fonts_count. + MOVE lv_fonts_count TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_fonts->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + DESCRIBE TABLE lt_fills LINES lv_fills_count. + MOVE lv_fills_count TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_fills->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + DESCRIBE TABLE lt_borders LINES lv_borders_count. + MOVE lv_borders_count TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_borders->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + DESCRIBE TABLE lt_cellxfs LINES lv_cellxfs_count. + MOVE lv_cellxfs_count TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element_cellxfs->set_attribute_ns( name = lc_xml_attr_count + value = lv_value ). + + " Append to root node + lo_element_root->append_child( lo_element_fonts ). + lo_element_root->append_child( lo_element_fills ). + lo_element_root->append_child( lo_element_borders ). + + " cellstylexfs node + lo_element = lo_document->create_simple_element( name = lc_xml_node_cellstylexfs + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_count + value = '1' ). + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_xf + parent = lo_document ). + + lo_sub_element->set_attribute_ns( name = lc_xml_attr_numfmtid + value = '0' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_fontid + value = '0' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_fillid + value = '0' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_borderid + value = '0' ). + + lo_element->append_child( lo_sub_element ). + lo_element_root->append_child( lo_element ). + + LOOP AT lt_cellxfs INTO ls_cellxfs. + lo_element = lo_document->create_simple_element( name = lc_xml_node_xf + parent = lo_document ). + MOVE ls_cellxfs-numfmtid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_numfmtid + value = lv_value ). + MOVE ls_cellxfs-fontid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_fontid + value = lv_value ). + MOVE ls_cellxfs-fillid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_fillid + value = lv_value ). + MOVE ls_cellxfs-borderid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_borderid + value = lv_value ). + MOVE ls_cellxfs-xfid TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_xfid + value = lv_value ). + IF ls_cellxfs-applynumberformat EQ 1. + MOVE ls_cellxfs-applynumberformat TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_applynumberformat + value = lv_value ). + ENDIF. + IF ls_cellxfs-applyfont EQ 1. + MOVE ls_cellxfs-applyfont TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_applyfont + value = lv_value ). + ENDIF. + IF ls_cellxfs-applyfill EQ 1. + MOVE ls_cellxfs-applyfill TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_applyfill + value = lv_value ). + ENDIF. + IF ls_cellxfs-applyborder EQ 1. + MOVE ls_cellxfs-applyborder TO lv_value. + SHIFT lv_value RIGHT DELETING TRAILING space. + SHIFT lv_value LEFT DELETING LEADING space. + lo_element->set_attribute_ns( name = lc_xml_attr_applyborder + value = lv_value ). + ENDIF. + lo_element_cellxfs->append_child( lo_element ). + ENDLOOP. + + lo_element_root->append_child( lo_element_cellxfs ). + + " cellStyles node + lo_element = lo_document->create_simple_element( name = lc_xml_node_cellstyles + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_count + value = '1' ). + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_cellstyle + parent = lo_document ). + + lo_sub_element->set_attribute_ns( name = lc_xml_attr_name + value = 'Normal' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_xfid + value = '0' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_builtinid + value = '0' ). + + lo_element->append_child( lo_sub_element ). + lo_element_root->append_child( lo_element ). + + " dxfs node + lo_element = lo_document->create_simple_element( name = lc_xml_node_dxfs + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_count + value = '0' ). + lo_element_root->append_child( lo_element ). + + " tableStyles node + lo_element = lo_document->create_simple_element( name = lc_xml_node_tablestyles + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_count + value = '0' ). + lo_element->set_attribute_ns( name = lc_xml_attr_defaulttablestyle + value = 'TableStyleMedium9' ). + lo_element->set_attribute_ns( name = lc_xml_attr_defaultpivotstyle + value = 'PivotStyleLight16' ). + lo_element_root->append_child( lo_element ). + + " colors node + lo_element = lo_document->create_simple_element( name = lc_xml_node_colors + parent = lo_document ). + " mruColors node + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_mrucolors + parent = lo_document ). + + SORT lt_colors. + DELETE ADJACENT DUPLICATES FROM lt_colors. + + LOOP AT lt_colors INTO ls_color. + " color node + lo_sub_element_2 = lo_document->create_simple_element( name = lc_xml_node_color + parent = lo_document ). + lv_value = ls_color. + lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_rgb + value = lv_value ). + lo_sub_element->append_child( lo_sub_element_2 )." color node + ENDLOOP. + + lo_element->append_child( lo_sub_element )." mruColors node + lo_element_root->append_child( lo_element )." colors node + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +endmethod. + + + + method CREATE_XL_THEME. + + +* @TODO * + + DATA: lv_xl_theme TYPE string, + lv_xl_theme_01 TYPE string, + lv_xl_theme_02 TYPE string, + lv_xl_theme_03 TYPE string, + lv_xl_theme_04 TYPE string, + lv_xl_theme_05 TYPE string, + lv_xl_theme_06 TYPE string, + lv_xl_theme_07 TYPE string, + lv_xl_theme_08 TYPE string, + lv_xl_theme_09 TYPE string, + lv_xl_theme_10 TYPE string, + lv_xl_theme_11 TYPE string, + lv_xl_theme_12 TYPE string, + lv_xl_theme_13 TYPE string, + lv_xl_theme_14 TYPE string, + lv_xl_theme_15 TYPE string, + lv_xl_theme_16 TYPE string, + lv_xl_theme_17 TYPE string, + lv_xl_theme_18 TYPE string, + lv_xl_theme_19 TYPE string, + lv_xl_theme_20 TYPE string, + lv_xl_theme_21 TYPE string, + lv_xl_theme_22 TYPE string, + lv_xl_theme_23 TYPE string, + lv_xl_theme_24 TYPE string, + lv_xl_theme_25 TYPE string, + lv_xl_theme_26 TYPE string, + lv_xl_theme_27 TYPE string, + lv_xl_theme_28 TYPE string, + lv_xl_theme_29 TYPE string, + lv_xl_theme_30 TYPE string, + lv_xl_theme_31 TYPE string, + lv_xl_theme_32 TYPE string. + + lv_xl_theme_01 = '<?xml version="1.0" encoding="UTF-8" standalone="yes"?>'. + lv_xl_theme_02 = '<a:theme xmlns:a="http://schemas.openxmlformats.org/drawingml/2006/main" name="Office Theme"><a:themeElements><a:clrScheme name="Office"><a:dk1><a:sysClr val="windowText" lastClr="000000"/></a:dk1><a:lt1><a:sysClr val="window" '. + lv_xl_theme_03 = 'lastClr="FFFFFF"/></a:lt1><a:dk2><a:srgbClr val="1F497D"/></a:dk2><a:lt2><a:srgbClr val="EEECE1"/></a:lt2><a:accent1><a:srgbClr val="4F81BD"/></a:accent1><a:accent2><a:srgbClr val="C0504D"/></a:accent2><a:accent3><a:srgbClr '. + lv_xl_theme_04 = 'val="9BBB59"/></a:accent3><a:accent4><a:srgbClr val="8064A2"/></a:accent4><a:accent5><a:srgbClr val="4BACC6"/></a:accent5><a:accent6><a:srgbClr val="F79646"/></a:accent6><a:hlink><a:srgbClr val="0000FF"/></a:hlink><a:folHlink>'. + lv_xl_theme_05 = '<a:srgbClr val="800080"/></a:folHlink></a:clrScheme><a:fontScheme name="Office"><a:majorFont><a:latin typeface="Cambria"/><a:ea typeface=""/><a:cs typeface=""/>'. + lv_xl_theme_06 = '<a:font script="Arab" typeface="Times New Roman"/><a:font script="Hebr" typeface="Times New Roman"/><a:font script="Thai" '. + lv_xl_theme_07 = 'typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="MoolBoran"/><a:font script="Knda" typeface="Tunga"/><a:font '. + lv_xl_theme_08 = 'script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font script="Tibt" '. + lv_xl_theme_09 = 'typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" '. + lv_xl_theme_10 = 'typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" '. + lv_xl_theme_11 = 'typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Times New Roman"/><a:font script="Uigh" typeface="Microsoft Uighur"/></a:majorFont><a:minorFont><a:latin typeface="Calibri"/><a:ea typeface=""/><a:cs typeface=""/>'. + lv_xl_theme_12 = '<a:font script="Arab" typeface="Arial"/><a:font script="Hebr" '. + lv_xl_theme_13 = 'typeface="Arial"/><a:font script="Thai" typeface="Tahoma"/><a:font script="Ethi" typeface="Nyala"/><a:font script="Beng" typeface="Vrinda"/><a:font script="Gujr" typeface="Shruti"/><a:font script="Khmr" typeface="DaunPenh"/><a:font '. + lv_xl_theme_14 = 'script="Knda" typeface="Tunga"/><a:font script="Guru" typeface="Raavi"/><a:font script="Cans" typeface="Euphemia"/><a:font script="Cher" typeface="Plantagenet Cherokee"/><a:font script="Yiii" typeface="Microsoft Yi Baiti"/><a:font '. + lv_xl_theme_15 = 'script="Tibt" typeface="Microsoft Himalaya"/><a:font script="Thaa" typeface="MV Boli"/><a:font script="Deva" typeface="Mangal"/><a:font script="Telu" typeface="Gautami"/><a:font script="Taml" typeface="Latha"/><a:font script="Syrc" '. + lv_xl_theme_16 = 'typeface="Estrangelo Edessa"/><a:font script="Orya" typeface="Kalinga"/><a:font script="Mlym" typeface="Kartika"/><a:font script="Laoo" typeface="DokChampa"/><a:font script="Sinh" typeface="Iskoola Pota"/><a:font script="Mong" '. + lv_xl_theme_17 = 'typeface="Mongolian Baiti"/><a:font script="Viet" typeface="Arial"/><a:font script="Uigh" typeface="Microsoft Uighur"/></a:minorFont></a:fontScheme><a:fmtScheme name="Office"><a:fillStyleLst><a:solidFill><a:schemeClr val="phClr"/>'. + lv_xl_theme_18 = '</a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="50000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="35000"><a:schemeClr val="phClr"><a:tint val="37000"/><a:satMod '. + lv_xl_theme_19 = 'val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:tint val="15000"/><a:satMod val="350000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="1"/></a:gradFill><a:gradFill rotWithShape="1">'. + lv_xl_theme_20 = '<a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:shade val="51000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs pos="80000"><a:schemeClr val="phClr"><a:shade val="93000"/><a:satMod val="130000"/></a:schemeClr></a:gs><a:gs '. + lv_xl_theme_21 = 'pos="100000"><a:schemeClr val="phClr"><a:shade val="94000"/><a:satMod val="135000"/></a:schemeClr></a:gs></a:gsLst><a:lin ang="16200000" scaled="0"/></a:gradFill></a:fillStyleLst><a:lnStyleLst><a:ln w="9525" cap="flat" cmpd="sng" '. + lv_xl_theme_22 = 'algn="ctr"><a:solidFill><a:schemeClr val="phClr"><a:shade val="95000"/><a:satMod val="105000"/></a:schemeClr></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="25400" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr '. + lv_xl_theme_23 = 'val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln><a:ln w="38100" cap="flat" cmpd="sng" algn="ctr"><a:solidFill><a:schemeClr val="phClr"/></a:solidFill><a:prstDash val="solid"/></a:ln></a:lnStyleLst><a:effectStyleLst>'. + lv_xl_theme_24 = '<a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" dist="20000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="38000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst>'. + lv_xl_theme_25 = '<a:outerShdw blurRad="40000" dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst></a:effectStyle><a:effectStyle><a:effectLst><a:outerShdw blurRad="40000" '. + lv_xl_theme_26 = 'dist="23000" dir="5400000" rotWithShape="0"><a:srgbClr val="000000"><a:alpha val="35000"/></a:srgbClr></a:outerShdw></a:effectLst><a:scene3d><a:camera prst="orthographicFront"><a:rot lat="0" lon="0" rev="0"/></a:camera><a:lightRig '. + lv_xl_theme_27 = 'rig="threePt" dir="t"><a:rot lat="0" lon="0" rev="1200000"/></a:lightRig></a:scene3d><a:sp3d><a:bevelT w="63500" h="25400"/></a:sp3d></a:effectStyle></a:effectStyleLst><a:bgFillStyleLst><a:solidFill><a:schemeClr val="phClr"/>'. + lv_xl_theme_28 = '</a:solidFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="40000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="40000"><a:schemeClr val="phClr"><a:tint val="45000"/><a:shade '. + lv_xl_theme_29 = 'val="99000"/><a:satMod val="350000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr val="phClr"><a:shade val="20000"/><a:satMod val="255000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" '. + lv_xl_theme_30 = 't="-80000" r="50000" b="180000"/></a:path></a:gradFill><a:gradFill rotWithShape="1"><a:gsLst><a:gs pos="0"><a:schemeClr val="phClr"><a:tint val="80000"/><a:satMod val="300000"/></a:schemeClr></a:gs><a:gs pos="100000"><a:schemeClr '. + lv_xl_theme_31 = 'val="phClr"><a:shade val="30000"/><a:satMod val="200000"/></a:schemeClr></a:gs></a:gsLst><a:path path="circle"><a:fillToRect l="50000" t="50000" r="50000" b="50000"/></a:path></a:gradFill></a:bgFillStyleLst></a:fmtScheme>'. + lv_xl_theme_32 = '</a:themeElements><a:objectDefaults/><a:extraClrSchemeLst/></a:theme>'. + + + CONCATENATE lv_xl_theme_01 lv_xl_theme_02 lv_xl_theme_03 lv_xl_theme_04 lv_xl_theme_05 lv_xl_theme_06 lv_xl_theme_07 lv_xl_theme_08 lv_xl_theme_09 lv_xl_theme_10 lv_xl_theme_11 lv_xl_theme_12 lv_xl_theme_13 lv_xl_theme_14 lv_xl_theme_15 + lv_xl_theme_16 lv_xl_theme_17 lv_xl_theme_18 lv_xl_theme_19 lv_xl_theme_20 lv_xl_theme_21 lv_xl_theme_22 lv_xl_theme_23 lv_xl_theme_24 lv_xl_theme_25 lv_xl_theme_26 lv_xl_theme_27 lv_xl_theme_28 lv_xl_theme_29 lv_xl_theme_30 + lv_xl_theme_31 lv_xl_theme_32 + INTO lv_xl_theme SEPARATED BY space. + + CALL FUNCTION 'SCMS_STRING_TO_XSTRING' + EXPORTING + text = lv_xl_theme + IMPORTING + buffer = ep_content. + + +endmethod. + + + + METHOD create_xl_workbook. + + +** Constant node name + DATA: lc_xml_node_workbook TYPE string VALUE 'workbook', + lc_xml_node_fileversion TYPE string VALUE 'fileVersion', + lc_xml_node_workbookpr TYPE string VALUE 'workbookPr', + lc_xml_node_bookviews TYPE string VALUE 'bookViews', + lc_xml_node_workbookview TYPE string VALUE 'workbookView', + lc_xml_node_sheets TYPE string VALUE 'sheets', + lc_xml_node_sheet TYPE string VALUE 'sheet', + lc_xml_node_calcpr TYPE string VALUE 'calcPr', + lc_xml_node_definednames TYPE string VALUE 'definedNames', + lc_xml_node_definedname TYPE string VALUE 'definedName', + " Node attributes + lc_xml_attr_appname TYPE string VALUE 'appName', + lc_xml_attr_lastedited TYPE string VALUE 'lastEdited', + lc_xml_attr_lowestedited TYPE string VALUE 'lowestEdited', + lc_xml_attr_rupbuild TYPE string VALUE 'rupBuild', + lc_xml_attr_themeversion TYPE string VALUE 'defaultThemeVersion', + lc_xml_attr_xwindow TYPE string VALUE 'xWindow', + lc_xml_attr_ywindow TYPE string VALUE 'yWindow', + lc_xml_attr_windowwidth TYPE string VALUE 'windowWidth', + lc_xml_attr_windowheight TYPE string VALUE 'windowHeight', + lc_xml_attr_name TYPE string VALUE 'name', + lc_xml_attr_sheetid TYPE string VALUE 'sheetId', + lc_xml_attr_id TYPE string VALUE 'id', + lc_xml_attr_calcid TYPE string VALUE 'calcId', + " Node namespace + lc_r_ns TYPE string VALUE 'r', + lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main', + lc_xml_node_r_ns TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships', + " Node id + lc_xml_node_ridx_id TYPE string VALUE 'rId#'. + + DATA: lo_ixml TYPE REF TO if_ixml, + lo_document TYPE REF TO if_ixml_document, + lo_element_root TYPE REF TO if_ixml_element, + lo_element TYPE REF TO if_ixml_element, + lo_sub_element TYPE REF TO if_ixml_element, + lo_encoding TYPE REF TO if_ixml_encoding, + lo_streamfactory TYPE REF TO if_ixml_stream_factory, + lo_ostream TYPE REF TO if_ixml_ostream, + lo_renderer TYPE REF TO if_ixml_renderer, + lo_iterator TYPE REF TO cl_object_collection_iterator, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_range TYPE REF TO zcl_excel_range. + + DATA: lv_xml_node_ridx_id TYPE string, + lv_value TYPE string, + lv_syindex TYPE string. + +********************************************************************** +* STEP 1: Create [Content_Types].xml into the root of the ZIP + lo_ixml = cl_ixml=>create( ). + +********************************************************************** +* STEP 2: Set document attributes + lo_encoding = lo_ixml->create_encoding( byte_order = if_ixml_encoding=>co_platform_endian + character_set = 'utf-8' ). + lo_document = lo_ixml->create_document( ). + lo_document->set_encoding( lo_encoding ). + lo_document->set_standalone( abap_true ). + +********************************************************************** +* STEP 3: Create main node + lo_element_root = lo_document->create_simple_element( name = lc_xml_node_workbook + parent = lo_document ). + lo_element_root->set_attribute_ns( name = 'xmlns' + value = lc_xml_node_ns ). + lo_element_root->set_attribute_ns( name = 'xmlns:r' + value = lc_xml_node_r_ns ). + +********************************************************************** +* STEP 4: Create subnode + " fileVersion node + lo_element = lo_document->create_simple_element( name = lc_xml_node_fileversion + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_appname + value = 'xl' ). + lo_element->set_attribute_ns( name = lc_xml_attr_lastedited + value = '4' ). + lo_element->set_attribute_ns( name = lc_xml_attr_lowestedited + value = '4' ). + lo_element->set_attribute_ns( name = lc_xml_attr_rupbuild + value = '4506' ). + lo_element_root->append_child( lo_element ). + + " fileVersion node + lo_element = lo_document->create_simple_element( name = lc_xml_node_workbookpr + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_themeversion + value = '124226' ). + lo_element_root->append_child( lo_element ). + + " bookviews node + lo_element = lo_document->create_simple_element( name = lc_xml_node_bookviews + parent = lo_document ). + " bookview node + lo_sub_element = lo_document->create_simple_element( name = lc_xml_node_workbookview + parent = lo_document ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_xwindow + value = '120' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_ywindow + value = '120' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_windowwidth + value = '19035' ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_windowheight + value = '8445' ). + lo_element->append_child( lo_sub_element )." bookview node + lo_element_root->append_child( lo_element )." bookviews node + + " sheets node + lo_element = lo_document->create_simple_element( name = lc_xml_node_sheets + parent = lo_document ). + lo_iterator = excel->get_worksheets_iterator( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + " sheet node + lo_sub_element = lo_document->create_simple_element_ns( name = lc_xml_node_sheet + parent = lo_document ). + lo_worksheet ?= lo_iterator->if_object_collection_iterator~get_next( ). + lv_value = lo_worksheet->title. + lv_syindex = sy-index. + SHIFT lv_syindex RIGHT DELETING TRAILING space. + SHIFT lv_syindex LEFT DELETING LEADING space. + lv_xml_node_ridx_id = lc_xml_node_ridx_id. + REPLACE ALL OCCURRENCES OF '#' IN lv_xml_node_ridx_id WITH lv_syindex. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_name + value = lv_value ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_sheetid + value = lv_syindex ). + lo_sub_element->set_attribute_ns( name = lc_xml_attr_id + prefix = lc_r_ns + value = lv_xml_node_ridx_id ). + lo_element->append_child( lo_sub_element ). " sheet node + ENDWHILE. + lo_element_root->append_child( lo_element )." sheets node + + + " ranges node + lo_element = lo_document->create_simple_element( name = lc_xml_node_definedNames + parent = lo_document ). + lo_iterator = excel->get_ranges_iterator( ). + + WHILE lo_iterator->if_object_collection_iterator~has_next( ) EQ abap_true. + " range node + lo_sub_element = lo_document->create_simple_element_ns( name = lc_xml_node_definedName + parent = lo_document ). + lo_range ?= lo_iterator->if_object_collection_iterator~get_next( ). + lv_value = lo_range->name. + lo_sub_element->set_attribute_ns( name = lc_xml_attr_name + value = lv_value ). + lv_value = lo_range->get_value( ). + lo_sub_element->set_value( lv_value ). + lo_element->append_child( lo_sub_element ). " range node + ENDWHILE. + lo_element_root->append_child( lo_element )." ranges node + + " calcPr node + lo_element = lo_document->create_simple_element( name = lc_xml_node_calcpr + parent = lo_document ). + lo_element->set_attribute_ns( name = lc_xml_attr_calcid + value = '125725' ). + lo_element_root->append_child( lo_element ). + + +********************************************************************** +* STEP 5: Create xstring stream + lo_streamfactory = lo_ixml->create_stream_factory( ). + lo_ostream = lo_streamfactory->create_ostream_xstring( string = ep_content ). + lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). + lo_renderer->render( ). + +ENDMETHOD. + + + + + method FLAG2BOOL. + + + IF ip_flag EQ abap_true. + ep_boolean = 'true'. + ELSE. + ep_boolean = 'false'. + ENDIF. +endmethod. + + + + + method GET_SHARED_STRING_INDEX. + + + DATA ls_shared_string TYPE zexcel_s_shared_string. + + READ TABLE shared_strings INTO ls_shared_string WITH KEY string_value = ip_cell_value. + ep_index = ls_shared_string-string_no. + +endmethod. + + + + class ZCL_EXCEL definition + public + final + create public . + +*"* public components of class ZCL_EXCEL +*"* do not include other source files here!!! +public section. + + constants C_XLS type ZEXCEL_FORMAT value 'XLS'. "#EC NOTEXT + constants C_XLSX type ZEXCEL_FORMAT value 'XLSX'. "#EC NOTEXT + data PROPERTIES type ref to ZCL_EXCEL_PROPERTIES . + data SECURITY type ref to ZCL_EXCEL_SECURITY . + + methods ADD_NEW_DRAWING + importing + !IP_TITLE type ZEXCEL_SHEET_TITLE optional + returning + value(EO_DRAWING) type ref to ZCL_EXCEL_DRAWING . + methods ADD_NEW_RANGE + returning + value(EO_RANGE) type ref to ZCL_EXCEL_RANGE . + methods ADD_NEW_STYLE + returning + value(EO_STYLE) type ref to ZCL_EXCEL_STYLE . + methods ADD_NEW_WORKSHEET + importing + !IP_TITLE type ZEXCEL_SHEET_TITLE optional + returning + value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET . + methods CONSTRUCTOR . + methods GET_ACTIVE_WORKSHEET + returning + value(EO_WORKSHEET) type ref to ZCL_EXCEL_WORKSHEET . + methods GET_DRAWINGS_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods GET_RANGES_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods GET_STYLES_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods GET_WORKSHEETS_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods GET_WORKSHEETS_NAME + returning + value(EP_NAME) type ZEXCEL_WORKSHEETS_NAME . + methods GET_WORKSHEETS_SIZE + returning + value(EP_SIZE) type I . + methods SAVE_AS + importing + !IP_FORMAT type ZEXCEL_FORMAT + returning + value(EP_FILE) type XSTRING . + *"* protected components of class ZABAP_EXCEL +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL +*"* do not include other source files here!!! +private section. + + data DRAWINGS type ref to ZCL_EXCEL_DRAWINGS . + data RANGES type ref to ZCL_EXCEL_RANGES . + data STYLES type ref to ZCL_EXCEL_STYLES . + data WORKSHEETS type ref to ZCL_EXCEL_WORKSHEETS . + *"* 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 + + + + + + + + + + + + method ADD_NEW_DRAWING. + + DATA: lv_guid TYPE guid_16. +* Create default blank worksheet + CREATE OBJECT eo_drawing + EXPORTING + ip_title = ip_title. + drawings->add( eo_drawing ). +endmethod. + + + + method ADD_NEW_RANGE. + + +* Create default blank range + CREATE OBJECT eo_range. + ranges->add( eo_range ). +endmethod. + + + + method ADD_NEW_STYLE. + + +* Create default style + CREATE OBJECT eo_style. + styles->add( eo_style ). + +endmethod. + + + + + method ADD_NEW_WORKSHEET. + + + DATA: lv_guid TYPE guid_16. +* Create default blank worksheet + CREATE OBJECT eo_worksheet + EXPORTING + ip_title = ip_title. + worksheets->add( eo_worksheet ). + worksheets->active_worksheet = worksheets->size( ). +endmethod. + + + method CONSTRUCTOR. + + + DATA: lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style TYPE REF TO zcl_excel_style. + +* Inizialize instance objects + CREATE OBJECT properties. + CREATE OBJECT security. + CREATE OBJECT worksheets. + CREATE OBJECT ranges. + CREATE OBJECT styles. + CREATE OBJECT drawings. + + me->add_new_worksheet( ). + me->add_new_style( ). " Standard style + lo_style = me->add_new_style( ). " Standard style with fill gray125 + lo_style->fill->filltype = zcl_excel_style_fill=>c_fill_pattern_gray125. + + +endmethod. + + + + method GET_ACTIVE_WORKSHEET. + + + eo_worksheet = me->worksheets->get( me->worksheets->active_worksheet ). + +endmethod. + + + + method GET_DRAWINGS_ITERATOR. + + + eo_iterator = me->drawings->get_iterator( ). +endmethod. + + + + method GET_RANGES_ITERATOR. + + + eo_iterator = me->ranges->get_iterator( ). +endmethod. + + + + method GET_STYLES_ITERATOR. + + + eo_iterator = me->styles->get_iterator( ). +endmethod. + + + + method GET_WORKSHEETS_ITERATOR. + + + eo_iterator = me->worksheets->get_iterator( ). +endmethod. + + + + method GET_WORKSHEETS_NAME. + + + ep_name = me->worksheets->name. + +endmethod. + + + + method GET_WORKSHEETS_SIZE. + + + ep_size = me->worksheets->size( ). + +endmethod. + + + + + method SAVE_AS. + + + DATA lo_excel_writer_2007 TYPE REF TO zcl_excel_writer_2007. + +* Determine the output engine to use + CASE ip_format. + WHEN me->c_xlsx. " XLSX for Office 2007 + CREATE OBJECT lo_excel_writer_2007 EXPORTING io_excel = me. + ep_file = lo_excel_writer_2007->create( ). + WHEN OTHERS. + ENDCASE. + +endmethod. + + + + class ZCL_EXCEL_COMMON definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_COMMON +*"* do not include other source files here!!! +public section. + + class-methods CONVERT_COLUMN2ALPHA + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN + returning + value(EP_COLUMN) type ZEXCEL_CELL_COLUMN_ALPHA . + class-methods CONVERT_COLUMN2INT + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + returning + value(EP_COLUMN) type ZEXCEL_CELL_COLUMN . + *"* protected components of class ZCL_EXCEL_COMMON +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_COMMON +*"* do not include other source files here!!! +private section. + + class-data C_EXCEL_COL_MODULE type INT2 value 64. "#EC NOTEXT . + *"* 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 + + + + + method CONVERT_COLUMN2ALPHA. + + + DATA: lo_conv TYPE REF TO cl_abap_conv_in_ce, + lv_uccpi TYPE i, + lv_text TYPE sychar02, + lv_module TYPE int4, + lv_column TYPE zexcel_cell_column. + + lv_column = ip_column. + WHILE lv_column GT 0. + lv_module = ( lv_column - 1 ) MOD 26. + lv_uccpi = 65 + lv_module. + + lv_column = ( lv_column - lv_module ) / 26. + + lv_text = cl_abap_conv_in_ce=>uccpi( lv_uccpi ). + CONCATENATE lv_text ep_column INTO ep_column. + ENDWHILE. + +endmethod. + + + + + method CONVERT_COLUMN2INT. + + + DATA: lv_uccpi TYPE i, + lv_char TYPE c, + lv_column(2) TYPE c. + +* Calculate most significant letter + lv_char = ip_column+1(1). + IF lv_char IS NOT INITIAL. "To avoid the first 26 column that have only a char in first position + ep_column = cl_abap_conv_out_ce=>uccpi( lv_char ). + + ep_column = ep_column MOD ( zcl_excel_common=>c_excel_col_module ). + + lv_char = ip_column(1). + lv_uccpi = cl_abap_conv_out_ce=>uccpi( lv_char ). + + lv_uccpi = ( lv_uccpi MOD ( zcl_excel_common=>c_excel_col_module ) ) * 26. + + ep_column = ep_column + lv_uccpi. + ELSE. + lv_char = ip_column(1). + ep_column = cl_abap_conv_out_ce=>uccpi( lv_char ). + ep_column = ep_column - zcl_excel_common=>c_excel_col_module. + ENDIF. + +endmethod. + + + + class ZCL_EXCEL_DATA_VALIDATION definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_DATA_VALIDATION +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + data ALLOWBLANK type FLAG value 'X'. "#EC NOTEXT . + data CELL_ROW type ZEXCEL_CELL_ROW . + class-data C_TYPE_LIST type ZEXCEL_DATA_VAL_TYPE value 'list'. "#EC NOTEXT . + data SHOWERRORMESSAGE type FLAG value 'X'. "#EC NOTEXT . + data SHOWINPUTMESSAGE type FLAG value 'X'. "#EC NOTEXT . + data TYPE type ZEXCEL_DATA_VAL_TYPE . + data VALUE type ZEXCEL_VALIDATION_FORMULA1 . + data CELL_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA . + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_STYLE_FONT +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_DATA_VALIDATION +*"* do not include other source files here!!! +private section. + *"* 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 constructor. + type = me->c_type_list. +* inizialize dimension range + cell_row = 1. + cell_column = 'A'. +ENDMETHOD. + + + + class ZCL_EXCEL_DATA_VALIDATIONS definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_DATA_VALIDATIONS +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + methods ADD + importing + !IP_DATA_VALIDATION type ref to ZCL_EXCEL_DATA_VALIDATION . + methods CLEAR . + methods CONSTRUCTOR . + methods GET_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods IS_EMPTY + returning + value(IS_EMPTY) type FLAG . + methods REMOVE + importing + !IP_DATA_VALIDATION type ref to ZCL_EXCEL_DATA_VALIDATION . + methods SIZE + returning + value(EP_SIZE) type I . + *"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_DATA_VALIDATIONS +*"* do not include other source files here!!! +private section. + + data DATA_VALIDATIONS type ref to CL_OBJECT_COLLECTION . + *"* 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 add. + data_validations->add( ip_data_validation ). +ENDMETHOD. + + + METHOD clear. + data_validations->clear( ). +ENDMETHOD. + + + METHOD constructor. + + CREATE OBJECT data_validations. + +ENDMETHOD. + + + + METHOD get_iterator. + eo_iterator ?= data_validations->if_object_collection~get_iterator( ). +ENDMETHOD. + + + + METHOD is_empty. + is_empty = data_validations->if_object_collection~is_empty( ). +ENDMETHOD. + + + + METHOD remove. + data_validations->remove( ip_data_validation ). +ENDMETHOD. + + + + METHOD size. + ep_size = data_validations->if_object_collection~size( ). +ENDMETHOD. + + + + class ZCL_EXCEL_DRAWING definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_DRAWING +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + data TITLE type ZEXCEL_SHEET_TITLE value 'Worksheet'. "#EC NOTEXT . + data X_REFERENCES type CHAR1 . + data Y_REFERENCES type CHAR1 . + data GRAPH_TYPE type ZEXCEL_GRAPH_TYPE . + + methods CONSTRUCTOR + importing + !IP_TITLE type ZEXCEL_SHEET_TITLE optional . + methods GET_GUID + returning + value(EP_GUID) type GUID_16 . + *"* protected components of class ZABAP_EXCEL_WORKSHEET +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_DRAWING +*"* do not include other source files here!!! +private section. + + data GUID type GUID_16 . + data LOWER_CELL type ZEXCEL_S_CELL_DATA . + data UPPER_CELL type ZEXCEL_S_CELL_DATA . + constants C_EXCEL_COL_MODULE type INT2 value 64. "#EC NOTEXT + + methods CONVERT_COLUMN2ALPHA + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN + returning + value(EP_COLUMN) type ZEXCEL_CELL_COLUMN_ALPHA . + methods CONVERT_COLUMN2INT + importing + !IP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + returning + value(EP_COLUMN) type ZEXCEL_CELL_COLUMN . + *"* 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 CONSTRUCTOR. + CALL FUNCTION 'GUID_CREATE' + IMPORTING + ev_guid_16 = me->guid. + + IF ip_title IS NOT INITIAL. + title = ip_title. + ELSE. + title = me->guid. + ENDIF. + +* inizialize dimension range + lower_cell-cell_row = 1. + lower_cell-cell_column = 1. + upper_cell-cell_row = 1. + upper_cell-cell_column = 1. +endmethod. + + + + + method CONVERT_COLUMN2ALPHA. + DATA: lo_conv TYPE REF TO cl_abap_conv_in_ce, + lv_uccpi TYPE i, + lv_text TYPE sychar02, + lv_module TYPE int4, + lv_column TYPE zexcel_cell_column. + + lv_column = ip_column. + WHILE lv_column GT 0. + lv_module = ( lv_column - 1 ) MOD 26. + lv_uccpi = 65 + lv_module. + + lv_column = ( lv_column - lv_module ) / 26. + + lv_text = cl_abap_conv_in_ce=>uccpi( lv_uccpi ). + CONCATENATE lv_text ep_column INTO ep_column. + ENDWHILE. + +endmethod. + + + + + method CONVERT_COLUMN2INT. + + DATA: lv_uccpi TYPE i, + lv_char TYPE c, + lv_column(2) TYPE c. + +* Calculate most significant letter + lv_char = ip_column+1(1). + IF lv_char IS NOT INITIAL. "To avoid the first 26 column that have only a char in first position + ep_column = cl_abap_conv_out_ce=>uccpi( lv_char ). + + ep_column = ep_column MOD ( me->c_excel_col_module ). + + lv_char = ip_column(1). + lv_uccpi = cl_abap_conv_out_ce=>uccpi( lv_char ). + + lv_uccpi = ( lv_uccpi MOD ( me->c_excel_col_module ) ) * 26. + + ep_column = ep_column + lv_uccpi. + ELSE. + lv_char = ip_column(1). + ep_column = cl_abap_conv_out_ce=>uccpi( lv_char ). + ep_column = ep_column - me->c_excel_col_module. + ENDIF. + +endmethod. + + + + method GET_GUID. + + ep_guid = me->guid. + +endmethod. + + + + class ZCL_EXCEL_DRAWINGS definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_DRAWINGS +*"* do not include other source files here!!! +public section. + + methods ADD + importing + !IP_DRAWING type ref to ZCL_EXCEL_DRAWING . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type ZEXCEL_ACTIVE_WORKSHEET + returning + value(EO_DRAWING) type ref to ZCL_EXCEL_DRAWING . + methods GET_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods IS_EMPTY + returning + value(IS_EMPTY) type FLAG . + methods REMOVE + importing + !IP_DRAWING type ref to ZCL_EXCEL_DRAWING . + methods SIZE + returning + value(EP_SIZE) type I . + *"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_DRAWINGS +*"* do not include other source files here!!! +private section. + + data DRAWINGS type ref to CL_OBJECT_COLLECTION . + *"* 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 + + + + method ADD. + + + drawings->add( ip_drawing ). +endmethod. + + + method CLEAR. + + + drawings->clear( ). +endmethod. + + + method CONSTRUCTOR. + + + CREATE OBJECT drawings. + +endmethod. + + + + + method GET. + + + DATA lv_index TYPE i. + lv_index = ip_index. + eo_drawing ?= drawings->if_object_collection~get( lv_index ). +endmethod. + + + + method GET_ITERATOR. + + + eo_iterator ?= drawings->if_object_collection~get_iterator( ). +endmethod. + + + + method IS_EMPTY. + + + is_empty = drawings->if_object_collection~is_empty( ). +endmethod. + + + + method REMOVE. + + + drawings->remove( ip_drawing ). +endmethod. + + + + method SIZE. + + + ep_size = drawings->if_object_collection~size( ). +endmethod. + + + + class ZCL_EXCEL_PROPERTIES definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_PROPERTIES +*"* do not include other source files here!!! +public section. + + data CREATOR type ZEXCEL_CREATOR value 'Unknown Creator'. "#EC NOTEXT . + data LASTMODIFIEDBY type ZEXCEL_CREATOR value 'Unknown Creator'. "#EC NOTEXT . + data CREATED type TIMESTAMPL . + data MODIFIED type TIMESTAMPL . + data TITLE type ZEXCEL_TITLE value 'Untitled Spreadsheet'. "#EC NOTEXT . + data SUBJECT type ZEXCEL_SUBJECT . + data DESCRIPTION type ZEXCEL_DESCRIPTION . + data KEYWORDS type ZEXCEL_KEYWORDS . + data CATEGORY type ZEXCEL_CATEGORY . + data COMPANY type ZEXCEL_COMPANY value 'Microsoft Corporation'. "#EC NOTEXT . + data APPLICATION type ZEXCEL_APPLICATION value 'Microsoft Excel'. "#EC NOTEXT . + data DOCSECURITY type ZEXCEL_DOCSECURITY value '0'. "#EC NOTEXT . + data SCALECROP type ZEXCEL_SCALECROP value ''. "#EC NOTEXT . + data LINKSUPTODATE type FLAG . + data SHAREDDOC type FLAG . + data HYPERLINKSCHANGED type FLAG . + data APPVERSION type ZEXCEL_APPVERSION value '12.0000'. "#EC NOTEXT . + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_PROPERTIES +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_PROPERTIES +*"* do not include other source files here!!! +private section. + *"* 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 + + + + + + + + + + + + + + + + + + + method CONSTRUCTOR. + + DATA: lv_timestamp TYPE timestampl. + + GET TIME STAMP FIELD lv_timestamp. + created = lv_timestamp. + modified = lv_timestamp. + +endmethod. + + + + class ZCL_EXCEL_RANGE definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_RANGE +*"* do not include other source files here!!! +public section. + + data NAME type ZEXCEL_RANGE_NAME . + data GUID type ZEXCEL_RANGE_GUID . + + methods CONSTRUCTOR . + methods GET_GUID + returning + value(EP_GUID) type ZEXCEL_RANGE_GUID . + methods SET_VALUE + importing + !IP_SHEET_NAME type ZEXCEL_SHEET_TITLE + !IP_START_ROW type ZEXCEL_CELL_ROW + !IP_START_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA + !IP_STOP_ROW type ZEXCEL_CELL_ROW + !IP_STOP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA . + methods GET_VALUE + returning + value(EP_VALUE) type ZEXCEL_RANGE_VALUE . + *"* protected components of class ZABAP_EXCEL_WORKSHEET +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_RANGE +*"* do not include other source files here!!! +private section. + + data VALUE type ZEXCEL_RANGE_VALUE . + *"* 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 + + + + + method CONSTRUCTOR. +endmethod. + + + + METHOD get_guid. + + ep_guid = me->guid. + +ENDMETHOD. + + + + METHOD get_value. + + ep_value = me->value. + +ENDMETHOD. + + + + + + + + METHOD set_value. + DATA: lv_start_row_c TYPE char7, + lv_stop_row_c TYPE char7. + lv_stop_row_c = ip_stop_row. + SHIFT lv_stop_row_c RIGHT DELETING TRAILING space. + SHIFT lv_stop_row_c LEFT DELETING LEADING space. + lv_start_row_c = ip_start_row. + SHIFT lv_start_row_c RIGHT DELETING TRAILING space. + SHIFT lv_start_row_c LEFT DELETING LEADING space. + CONCATENATE ip_sheet_name '!$' ip_start_column '$' lv_start_row_c ':$' ip_stop_column '$' lv_stop_row_c INTO me->value. +ENDMETHOD. + + + + class ZCL_EXCEL_RANGES definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_RANGES +*"* do not include other source files here!!! +public section. + + methods ADD + importing + !IP_RANGE type ref to ZCL_EXCEL_RANGE . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type I + returning + value(EO_RANGE) type ref to ZCL_EXCEL_RANGE . + methods GET_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods IS_EMPTY + returning + value(IS_EMPTY) type FLAG . + methods REMOVE + importing + !IP_RANGE type ref to ZCL_EXCEL_RANGE . + methods SIZE + returning + value(EP_SIZE) type I . + *"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. + *"* private components of class ZABAP_EXCEL_RANGES +*"* do not include other source files here!!! +private section. + + data RANGES type ref to CL_OBJECT_COLLECTION . + *"* 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 + + + + method ADD. + ranges->add( ip_range ). +endmethod. + + + method CLEAR. + ranges->clear( ). +endmethod. + + + METHOD constructor. + + + CREATE OBJECT ranges. + +ENDMETHOD. + + + + + method GET. + eo_range ?= ranges->if_object_collection~get( ip_index ). +endmethod. + + + + method GET_ITERATOR. + eo_iterator ?= ranges->if_object_collection~get_iterator( ). +endmethod. + + + + method IS_EMPTY. + is_empty = ranges->if_object_collection~is_empty( ). +endmethod. + + + + method REMOVE. + ranges->remove( ip_range ). +endmethod. + + + + method SIZE. + ep_size = ranges->if_object_collection~size( ). +endmethod. + + + + class ZCL_EXCEL_SECURITY definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_SECURITY +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + data LOCKREVISION type FLAG . + data LOCKSTRUCTURE type FLAG . + data LOCKWINDOWS type FLAG . + data REVISIONSPASSWORD type ZEXCEL_REVISIONSPASSWORD . + data WORKBOOKPASSWORD type ZEXCEL_WORKBOOKPASSWORD . + + methods CONSTRUCTOR . + methods IS_SECURITY_ENABLED + returning + value(EP_SECURITY_ENABLED) type FLAG . + *"* protected components of class ZABAP_EXCEL_SECURITY +*"* do not include other source files here!!! +protected section. + *"* private components of class ZABAP_EXCEL_SECURITY +*"* do not include other source files here!!! +private section. + *"* 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 CONSTRUCTOR. +endmethod. + + + + method IS_SECURITY_ENABLED. + IF lockrevision EQ abap_true OR lockstructure EQ abap_true OR lockwindows EQ abap_true. + ep_security_enabled = abap_true. + ENDIF. +endmethod. + + + + class ZCL_EXCEL_SHEET_SETUP definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_SHEET_SETUP +*"* do not include other source files here!!! +public section. + type-pools ABAP . + + constants C_PAPERSIZE_LETTER type ZEXCEL_SHEET_PAPER_SIZE value 1. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_SMALL type ZEXCEL_SHEET_PAPER_SIZE value 2. "#EC NOTEXT + constants C_PAPERSIZE_TABLOID type ZEXCEL_SHEET_PAPER_SIZE value 3. "#EC NOTEXT + constants C_PAPERSIZE_LEDGER type ZEXCEL_SHEET_PAPER_SIZE value 4. "#EC NOTEXT + constants C_PAPERSIZE_LEGAL type ZEXCEL_SHEET_PAPER_SIZE value 5. "#EC NOTEXT + constants C_PAPERSIZE_STATEMENT type ZEXCEL_SHEET_PAPER_SIZE value 6. "#EC NOTEXT + constants C_PAPERSIZE_EXECUTIVE type ZEXCEL_SHEET_PAPER_SIZE value 7. "#EC NOTEXT + constants C_PAPERSIZE_A3 type ZEXCEL_SHEET_PAPER_SIZE value 8. "#EC NOTEXT + constants C_PAPERSIZE_A4 type ZEXCEL_SHEET_PAPER_SIZE value 9. "#EC NOTEXT + constants C_PAPERSIZE_A4_SMALL type ZEXCEL_SHEET_PAPER_SIZE value 10. "#EC NOTEXT + constants C_PAPERSIZE_A5 type ZEXCEL_SHEET_PAPER_SIZE value 11. "#EC NOTEXT + constants C_PAPERSIZE_B4 type ZEXCEL_SHEET_PAPER_SIZE value 12. "#EC NOTEXT + constants C_PAPERSIZE_B5 type ZEXCEL_SHEET_PAPER_SIZE value 13. "#EC NOTEXT + constants C_PAPERSIZE_FOLIO type ZEXCEL_SHEET_PAPER_SIZE value 14. "#EC NOTEXT + constants C_PAPERSIZE_QUARTO type ZEXCEL_SHEET_PAPER_SIZE value 15. "#EC NOTEXT + constants C_PAPERSIZE_STANDARD_1 type ZEXCEL_SHEET_PAPER_SIZE value 16. "#EC NOTEXT + constants C_PAPERSIZE_STANDARD_2 type ZEXCEL_SHEET_PAPER_SIZE value 17. "#EC NOTEXT + constants C_PAPERSIZE_NOTE type ZEXCEL_SHEET_PAPER_SIZE value 18. "#EC NOTEXT + constants C_PAPERSIZE_NO9_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 19. "#EC NOTEXT + constants C_PAPERSIZE_NO10_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 20. "#EC NOTEXT + constants C_PAPERSIZE_NO11_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 21. "#EC NOTEXT + constants C_PAPERSIZE_NO12_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 22. "#EC NOTEXT + constants C_PAPERSIZE_NO14_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 23. "#EC NOTEXT + constants C_PAPERSIZE_C type ZEXCEL_SHEET_PAPER_SIZE value 24. "#EC NOTEXT + constants C_PAPERSIZE_D type ZEXCEL_SHEET_PAPER_SIZE value 25. "#EC NOTEXT + constants C_PAPERSIZE_E type ZEXCEL_SHEET_PAPER_SIZE value 26. "#EC NOTEXT + constants C_PAPERSIZE_DL_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 27. "#EC NOTEXT + constants C_PAPERSIZE_C5_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 28. "#EC NOTEXT + constants C_PAPERSIZE_C3_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 29. "#EC NOTEXT + constants C_PAPERSIZE_C4_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 30. "#EC NOTEXT + constants C_PAPERSIZE_C6_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 31. "#EC NOTEXT + constants C_PAPERSIZE_C65_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 32. "#EC NOTEXT + constants C_PAPERSIZE_B4_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 33. "#EC NOTEXT + constants C_PAPERSIZE_B5_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 34. "#EC NOTEXT + constants C_PAPERSIZE_B6_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 35. "#EC NOTEXT + constants C_PAPERSIZE_ITALY_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 36. "#EC NOTEXT + constants C_PAPERSIZE_MONARCH_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 37. "#EC NOTEXT + constants C_PAPERSIZE_6_3_4_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 38. "#EC NOTEXT + constants C_PAPERSIZE_US_STD_FANFOLD type ZEXCEL_SHEET_PAPER_SIZE value 39. "#EC NOTEXT + constants C_PAPERSIZE_DE_STD_FANFOLD type ZEXCEL_SHEET_PAPER_SIZE value 40. "#EC NOTEXT + constants C_PAPERSIZE_DE_LEG_FANFOLD type ZEXCEL_SHEET_PAPER_SIZE value 41. "#EC NOTEXT + constants C_PAPERSIZE_ISO_B4 type ZEXCEL_SHEET_PAPER_SIZE value 42. "#EC NOTEXT + constants C_PAPERSIZE_JPN_DBL_POSTCARD type ZEXCEL_SHEET_PAPER_SIZE value 43. "#EC NOTEXT + constants C_PAPERSIZE_STANDARD_PAPER_1 type ZEXCEL_SHEET_PAPER_SIZE value 44. "#EC NOTEXT + constants C_PAPERSIZE_STANDARD_PAPER_2 type ZEXCEL_SHEET_PAPER_SIZE value 45. "#EC NOTEXT + constants C_PAPERSIZE_STANDARD_PAPER_3 type ZEXCEL_SHEET_PAPER_SIZE value 46. "#EC NOTEXT + constants C_PAPERSIZE_INVITE_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 47. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 48. "#EC NOTEXT + constants C_PAPERSIZE_LEGAL_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 49. "#EC NOTEXT + constants C_PAPERSIZE_TABL_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 50. "#EC NOTEXT + constants C_PAPERSIZE_A4_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 51. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 52. "#EC NOTEXT + constants C_PAPERSIZE_A4_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 53. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_EXTV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 54. "#EC NOTEXT + constants C_PAPERSIZE_SUPERA_A4_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 55. "#EC NOTEXT + constants C_PAPERSIZE_SUPERB_A3_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 56. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_PLUS_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 57. "#EC NOTEXT + constants C_PAPERSIZE_A4_PLUS_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 58. "#EC NOTEXT + constants C_PAPERSIZE_A5_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 59. "#EC NOTEXT + constants C_PAPERSIZE_JIS_B5_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 60. "#EC NOTEXT + constants C_PAPERSIZE_A3_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 61. "#EC NOTEXT + constants C_PAPERSIZE_A5_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 62. "#EC NOTEXT + constants C_PAPERSIZE_ISO_B5_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 63. "#EC NOTEXT + constants C_PAPERSIZE_A2_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 64. "#EC NOTEXT + constants C_PAPERSIZE_A3_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 65. "#EC NOTEXT + constants C_PAPERSIZE_A3_EXTRA_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 66. "#EC NOTEXT + constants C_ORIENTATION_DEFAULT type ZEXCEL_SHEET_ORIENATATION value 'default'. "#EC NOTEXT + constants C_ORIENTATION_LANDSCAPE type ZEXCEL_SHEET_ORIENATATION value 'landscape'. "#EC NOTEXT + constants C_ORIENTATION_PORTRAIT type ZEXCEL_SHEET_ORIENATATION value 'portrait'. "#EC NOTEXT + data ORIENTATION type ZEXCEL_SHEET_ORIENATATION . + + methods CONSTRUCTOR . + *"* protected components of class ZABAP_EXCEL_STYLE +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_SHEET_SETUP +*"* do not include other source files here!!! +private section. + *"* 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 CONSTRUCTOR. + orientation = me->c_orientation_default. +endmethod. + + + + class ZCL_EXCEL_STYLE definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLE +*"* do not include other source files here!!! +public section. + + data FONT type ref to ZCL_EXCEL_STYLE_FONT . + data FILL type ref to ZCL_EXCEL_STYLE_FILL . + data BORDERS type ref to ZCL_EXCEL_STYLE_BORDERS . + data NUMBER_FORMAT type ref to ZCL_EXCEL_STYLE_NUMBER_FORMAT . + + methods CONSTRUCTOR . + methods GET_GUID + returning + value(EP_GUID) type ZEXCEL_CELL_STYLE . + *"* protected components of class ZABAP_EXCEL_STYLE +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLE +*"* do not include other source files here!!! +private section. + + data ALIGNMENT type ref to ZCL_EXCEL_STYLE_ALIGNMENT . + data PROTECTION type ref to ZCL_EXCEL_STYLE_PROTECTION . + data GUID type ZEXCEL_CELL_STYLE . + *"* 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 + + + + + + + + + method CONSTRUCTOR. + + + CREATE OBJECT font. + CREATE OBJECT fill. + CREATE OBJECT borders. + CREATE OBJECT alignment. + CREATE OBJECT number_format. + CREATE OBJECT protection. + + CALL FUNCTION 'GUID_CREATE' + IMPORTING + ev_guid_16 = me->guid. + +endmethod. + + + + method GET_GUID. + + + ep_guid = me->guid. +endmethod. + + + + class ZCL_EXCEL_STYLES definition + public + final + create public . + +*"* public components of class ZCL_EXCEL_STYLES +*"* do not include other source files here!!! +public section. + + methods ADD + importing + !IP_STYLE type ref to ZCL_EXCEL_STYLE . + methods CLEAR . + methods CONSTRUCTOR . + methods GET + importing + !IP_INDEX type I + returning + value(EO_STYLE) type ref to ZCL_EXCEL_STYLE . + methods GET_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods IS_EMPTY + returning + value(IS_EMPTY) type FLAG . + methods REMOVE + importing + !IP_STYLE type ref to ZCL_EXCEL_STYLE . + methods SIZE + returning + value(EP_SIZE) type I . + methods REGISTER_NEW_STYLE + importing + !IO_STYLE type ref to ZCL_EXCEL_STYLE + returning + value(EP_STYLE_CODE) type I . + *"* protected components of class ZABAP_EXCEL_WORKSHEETS +*"* do not include other source files here!!! +protected section. + *"* private components of class ZCL_EXCEL_STYLES +*"* do not include other source files here!!! +private section. + + data STYLES type ref to CL_OBJECT_COLLECTION . + *"* 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 + + + + method ADD. + + + styles->add( ip_style ). +endmethod. + + + method CLEAR. + + + styles->clear( ). +endmethod. + + + method CONSTRUCTOR. + + + CREATE OBJECT styles. +endmethod. + + + + + method GET. + + + eo_style ?= styles->if_object_collection~get( ip_index ). +endmethod. + + + + method GET_ITERATOR. + + + eo_iterator ?= styles->if_object_collection~get_iterator( ). +endmethod. + + + + method IS_EMPTY. + + + is_empty = styles->if_object_collection~is_empty( ). +endmethod. + + + + + method REGISTER_NEW_STYLE. + + + me->add( io_style ). + ep_style_code = me->size( ) - 1. "style count starts from 0 +endmethod. + + + + method REMOVE. + + + styles->remove( ip_style ). +endmethod. + + + + method SIZE. + + + ep_size = styles->if_object_collection~size( ). +endmethod. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZIFE_TEST_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel9. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_range TYPE REF TO zcl_excel_range, + lo_data_validation TYPE REF TO zcl_excel_data_validation, + lv_file TYPE xstring, + lv_style_number_guid TYPE zexcel_cell_style, + lv_bytecount TYPE i, + lt_file_tab TYPE STANDARD TABLE OF solisti1. + +CREATE OBJECT lo_excel. + +" Get active sheet +lo_worksheet = lo_excel->get_active_worksheet( ). +lo_worksheet->title = 'sheet1'. +lo_range = lo_excel->add_new_range( ). +lo_range->name = 'range'. +lo_range->set_value( ip_sheet_name = lo_worksheet->title + ip_start_column = 'C' + ip_start_row = 4 + ip_stop_column = 'C' + ip_stop_row = 8 ). + +lo_data_validation = lo_worksheet->add_new_data_validation( ). +lo_data_validation->value = lo_range->name. +lo_data_validation->cell_row = 4. +lo_data_validation->cell_column = 'A'. + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'A' ip_value = 'Select a value' ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = 'Apple' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'C' ip_value = 'Banana' ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'C' ip_value = 'Blueberry' ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 'Ananas' ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Grapes' ). + +lv_file = lo_excel->save_as( zcl_excel=>c_xlsx ). + +"convert to table +CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. +"Save the file +CALL FUNCTION 'GUI_DOWNLOAD' + EXPORTING + bin_filesize = lv_bytecount + filename = 'C:\DataValidation.xlsx' + filetype = 'BIN' + TABLES + data_tab = lt_file_tab. + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZIFE_TEST_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel8. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_range TYPE REF TO zcl_excel_range, + lv_file TYPE xstring, + lv_style_number_guid TYPE zexcel_cell_style, + lv_bytecount TYPE i, + lt_file_tab TYPE STANDARD TABLE OF solisti1. + +CREATE OBJECT lo_excel. + +" Get active sheet +lo_worksheet = lo_excel->get_active_worksheet( ). +lo_worksheet->title = 'sheet1'. +lo_range = lo_excel->add_new_range( ). +lo_range->name = 'range'. +lo_range->set_value( ip_sheet_name = lo_worksheet->title + ip_start_column = 'C' + ip_start_row = 4 + ip_stop_column = 'C' + ip_stop_row = 8 ). + + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = 'Apple' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'C' ip_value = 'Banana' ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'C' ip_value = 'Blueberry' ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 'Ananas' ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 'Grapes' ). + +lv_file = lo_excel->save_as( zcl_excel=>c_xlsx ). + +"convert to table +CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. +"Save the file +CALL FUNCTION 'GUI_DOWNLOAD' + EXPORTING + bin_filesize = lv_bytecount + filename = 'C:\Range.xlsx' + filetype = 'BIN' + TABLES + data_tab = lt_file_tab. + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZIFE_TEST_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel7. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_conditional TYPE REF TO zcl_excel_style_conditional, + lo_style_number TYPE REF TO zcl_excel_style, + lv_file TYPE xstring, + lv_style_number_guid TYPE zexcel_cell_style, + lv_bytecount TYPE i, + lt_file_tab TYPE STANDARD TABLE OF solisti1. + +CREATE OBJECT lo_excel. + +lo_style_number = lo_excel->add_new_style( ). +lo_style_number->number_format->format_code = zcl_excel_style_number_format=>c_format_number. +lv_style_number_guid = lo_style_number->get_guid( ). + +" Get active sheet +lo_worksheet = lo_excel->get_active_worksheet( ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3arrows. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'B' + ip_start_row = 5 + ip_stop_column = 'B' + ip_stop_row = 9 ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'B' ip_value = 'C_ICONSET_3ARROWS' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'B' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'B' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'B' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'B' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'B' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3arrowsgray. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 5 + ip_stop_column = 'C' + ip_stop_row = 9 ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = 'C_ICONSET_3ARROWSGRAY' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'C' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'C' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'C' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3flags. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'D' + ip_start_row = 5 + ip_stop_column = 'D' + ip_stop_row = 9 ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'D' ip_value = 'C_ICONSET_3FLAGS' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'D' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'D' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'D' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'D' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'D' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'E' + ip_start_row = 5 + ip_stop_column = 'E' + ip_stop_row = 9 ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'E' ip_value = 'C_ICONSET_3TRAFFICLIGHTS' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'E' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'E' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'E' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'E' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'E' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights2. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'F' + ip_start_row = 5 + ip_stop_column = 'F' + ip_stop_row = 9 ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'F' ip_value = 'C_ICONSET_3TRAFFICLIGHTS2' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'F' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'F' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'F' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'F' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'F' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3signs. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'G' + ip_start_row = 5 + ip_stop_column = 'G' + ip_stop_row = 9 ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'G' ip_value = 'C_ICONSET_3SIGNS' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'G' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'G' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'G' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'G' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'G' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3symbols. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'H' + ip_start_row = 5 + ip_stop_column = 'H' + ip_stop_row = 9 ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'H' ip_value = 'C_ICONSET_3SYMBOLS' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'H' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'H' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'H' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'H' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'H' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3symbols2. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'I' + ip_start_row = 5 + ip_stop_column = 'I' + ip_stop_row = 9 ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'I' ip_value = 'C_ICONSET_3SYMBOLS2' ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'I' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'I' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'I' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'I' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'I' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_4arrows. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'B' + ip_start_row = 12 + ip_stop_column = 'B' + ip_stop_row = 16 ). + +lo_worksheet->set_cell( ip_row = 11 ip_column = 'B' ip_value = 'C_ICONSET_4ARROWS' ). +lo_worksheet->set_cell( ip_row = 12 ip_column = 'B' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 13 ip_column = 'B' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 14 ip_column = 'B' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 15 ip_column = 'B' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 16 ip_column = 'B' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_4arrowsgray. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 12 + ip_stop_column = 'C' + ip_stop_row = 16 ). + +lo_worksheet->set_cell( ip_row = 11 ip_column = 'C' ip_value = 'C_ICONSET_4ARROWSGRAY' ). +lo_worksheet->set_cell( ip_row = 12 ip_column = 'C' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 13 ip_column = 'C' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 14 ip_column = 'C' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 15 ip_column = 'C' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 16 ip_column = 'C' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_4redtoblack. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'D' + ip_start_row = 12 + ip_stop_column = 'D' + ip_stop_row = 16 ). + +lo_worksheet->set_cell( ip_row = 11 ip_column = 'D' ip_value = 'C_ICONSET_4REDTOBLACK' ). +lo_worksheet->set_cell( ip_row = 12 ip_column = 'D' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 13 ip_column = 'D' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 14 ip_column = 'D' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 15 ip_column = 'D' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 16 ip_column = 'D' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_4rating. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'E' + ip_start_row = 12 + ip_stop_column = 'E' + ip_stop_row = 16 ). + +lo_worksheet->set_cell( ip_row = 11 ip_column = 'E' ip_value = 'C_ICONSET_4RATING' ). +lo_worksheet->set_cell( ip_row = 12 ip_column = 'E' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 13 ip_column = 'E' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 14 ip_column = 'E' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 15 ip_column = 'E' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 16 ip_column = 'E' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_4trafficlights. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'F' + ip_start_row = 12 + ip_stop_column = 'F' + ip_stop_row = 16 ). + +lo_worksheet->set_cell( ip_row = 11 ip_column = 'F' ip_value = 'C_ICONSET_4TRAFFICLIGHTS' ). +lo_worksheet->set_cell( ip_row = 12 ip_column = 'F' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 13 ip_column = 'F' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 14 ip_column = 'F' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 15 ip_column = 'F' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 16 ip_column = 'F' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_5arrows. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'B' + ip_start_row = 19 + ip_stop_column = 'B' + ip_stop_row = 23 ). + +lo_worksheet->set_cell( ip_row = 18 ip_column = 'B' ip_value = 'C_ICONSET_5ARROWS' ). +lo_worksheet->set_cell( ip_row = 19 ip_column = 'B' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 20 ip_column = 'B' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 21 ip_column = 'B' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 22 ip_column = 'B' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 23 ip_column = 'B' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_5arrowsgray. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 19 + ip_stop_column = 'C' + ip_stop_row = 23 ). + +lo_worksheet->set_cell( ip_row = 18 ip_column = 'C' ip_value = 'C_ICONSET_5ARROWSGRAY' ). +lo_worksheet->set_cell( ip_row = 19 ip_column = 'C' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 20 ip_column = 'C' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 21 ip_column = 'C' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 22 ip_column = 'C' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 23 ip_column = 'C' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_5rating. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'D' + ip_start_row = 19 + ip_stop_column = 'D' + ip_stop_row = 23 ). + +lo_worksheet->set_cell( ip_row = 18 ip_column = 'D' ip_value = 'C_ICONSET_5RATING' ). +lo_worksheet->set_cell( ip_row = 19 ip_column = 'D' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 20 ip_column = 'D' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 21 ip_column = 'D' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 22 ip_column = 'D' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 23 ip_column = 'D' ip_value = '50' ip_style = lv_style_number_guid ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_5quarters. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'E' + ip_start_row = 19 + ip_stop_column = 'E' + ip_stop_row = 23 ). + +lo_worksheet->set_cell( ip_row = 18 ip_column = 'E' ip_value = 'C_ICONSET_5QUARTERS' ). +lo_worksheet->set_cell( ip_row = 19 ip_column = 'E' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 20 ip_column = 'E' ip_value = '20' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 21 ip_column = 'E' ip_value = '30' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 22 ip_column = 'E' ip_value = '40' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 23 ip_column = 'E' ip_value = '50' ip_style = lv_style_number_guid ). + +lv_file = lo_excel->save_as( zcl_excel=>c_xlsx ). + +"convert to table +CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. +"Save the file +CALL FUNCTION 'GUI_DOWNLOAD' + EXPORTING + bin_filesize = lv_bytecount + filename = 'C:\Iconset.xlsx' + filetype = 'BIN' + TABLES + data_tab = lt_file_tab. + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZIFE_TEST_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel6. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_conditional TYPE REF TO zcl_excel_style_conditional, + lo_style_number TYPE REF TO zcl_excel_style, + lv_file TYPE xstring, + lv_style_number_guid TYPE zexcel_cell_style, + lv_bytecount TYPE i, + lt_file_tab TYPE STANDARD TABLE OF solisti1. + +CREATE OBJECT lo_excel. + +lo_style_number = lo_excel->add_new_style( ). +lo_style_number->number_format->format_code = zcl_excel_style_number_format=>c_format_number. +lv_style_number_guid = lo_style_number->get_guid( ). + +" Get active sheet +lo_worksheet = lo_excel->get_active_worksheet( ). + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = '100' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'C' ip_value = '1000' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'C' ip_value = '150' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = '500' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 9 ip_column = 'C' ip_value = '1760' ip_formula = 'SUM(C4:C8)' ). + +lv_file = lo_excel->save_as( zcl_excel=>c_xlsx ). + +"convert to table +CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. +"Save the file +CALL FUNCTION 'GUI_DOWNLOAD' + EXPORTING + bin_filesize = lv_bytecount + filename = 'C:\Formula.xlsx' + filetype = 'BIN' + TABLES + data_tab = lt_file_tab. + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZIFE_TEST_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel5. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_conditional TYPE REF TO zcl_excel_style_conditional, + lo_style_number TYPE REF TO zcl_excel_style, + lv_file TYPE xstring, + lv_style_number_guid TYPE zexcel_cell_style, + lv_bytecount TYPE i, + lt_file_tab TYPE STANDARD TABLE OF solisti1. + +CREATE OBJECT lo_excel. + +lo_style_number = lo_excel->add_new_style( ). +lo_style_number->number_format->format_code = zcl_excel_style_number_format=>c_format_number. +lv_style_number_guid = lo_style_number->get_guid( ). + +" Get active sheet +lo_worksheet = lo_excel->get_active_worksheet( ). + +lo_style_conditional = lo_worksheet->add_new_conditional_style( ). +lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. +lo_style_conditional->iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights2. +lo_style_conditional->priority = 1. +lo_style_conditional->set_range( ip_start_column = 'C' + ip_start_row = 4 + ip_stop_column = 'C' + ip_stop_row = 8 ). + + +lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = '100' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 5 ip_column = 'C' ip_value = '1000' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 6 ip_column = 'C' ip_value = '150' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = '10' ip_style = lv_style_number_guid ). +lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = '500' ip_style = lv_style_number_guid ). + +lv_file = lo_excel->save_as( zcl_excel=>c_xlsx ). + +"convert to table +CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. +"Save the file +CALL FUNCTION 'GUI_DOWNLOAD' + EXPORTING + bin_filesize = lv_bytecount + filename = 'C:\CondFormatting.xlsx' + filetype = 'BIN' + TABLES + data_tab = lt_file_tab. + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZIFE_TEST_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel4. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE STANDARD TABLE OF solisti1. + +" Creates active sheet +CREATE OBJECT lo_excel. + +" Get active sheet +lo_worksheet = lo_excel->get_active_worksheet( ). +lo_worksheet->title = 'Sheet1'. +lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'This is the first sheet' ). + +lo_worksheet = lo_excel->add_new_worksheet( ). +lo_worksheet->title = 'Sheet2'. +lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'This is the second sheet' ). + + +lv_file = lo_excel->save_as( zcl_excel=>c_xlsx ). + +" Convert to binary +CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. + +" Save the file +CALL FUNCTION 'GUI_DOWNLOAD' + EXPORTING + bin_filesize = lv_bytecount + filename = 'C:\Sheets.xlsx' + filetype = 'BIN' + TABLES + data_tab = lt_file_tab. + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZIFE_TEST_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel3. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_header TYPE REF TO zcl_excel_style, + lo_style_body TYPE REF TO zcl_excel_style, + lo_border_dark TYPE REF TO zcl_excel_style_border, + lo_border_light TYPE REF TO zcl_excel_style_border. + +DATA: lv_style_header_guid TYPE zexcel_cell_style, + lv_style_body_guid TYPE zexcel_cell_style. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE STANDARD TABLE OF solisti1. + +" Creates active sheet +CREATE OBJECT lo_excel. + +" Create border object +CREATE OBJECT lo_border_dark. +lo_border_dark->border_color = zcl_excel_style_color=>c_black. +lo_border_dark->border_style = zcl_excel_style_border=>c_border_thin. +" Create filled style +lo_style_header = lo_excel->add_new_style( ). +lo_style_header->fill->filltype = zcl_excel_style_fill=>c_fill_solid. +lo_style_header->fill->fgcolor = zcl_excel_style_color=>c_yellow. +lo_style_header->borders->allborders = lo_border_dark. +lv_style_header_guid = lo_style_header->get_guid( ). +"Create style with border +lo_style_body = lo_excel->add_new_style( ). +lo_style_body->borders->allborders = lo_border_dark. +lv_style_body_guid = lo_style_body->get_guid( ). + +" Get active sheet +lo_worksheet = lo_excel->get_active_worksheet( ). +lo_worksheet->title = 'Internal table'. + +DATA lt_test TYPE TABLE OF sflight. +SELECT * FROM sflight INTO TABLE lt_test. +lo_worksheet->set_table( ip_table = lt_test + ip_hdr_style = lv_style_header_guid + ip_body_style = lv_style_body_guid ). + +lv_file = lo_excel->save_as( zcl_excel=>c_xlsx ). + +" Convert to binary +CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. + +" Save the file +CALL FUNCTION 'GUI_DOWNLOAD' + EXPORTING + bin_filesize = lv_bytecount + filename = 'C:\iTab.xlsx' + filetype = 'BIN' + TABLES + data_tab = lt_file_tab. + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZIFE_TEST_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel2. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet, + lo_style_bold TYPE REF TO zcl_excel_style, + lo_style_underline TYPE REF TO zcl_excel_style, + lo_style_filled TYPE REF TO zcl_excel_style, + lo_style_border TYPE REF TO zcl_excel_style, + lo_style_button TYPE REF TO zcl_excel_style, + lo_border_dark TYPE REF TO zcl_excel_style_border, + lo_border_light TYPE REF TO zcl_excel_style_border. + +DATA: lv_style_bold_guid TYPE zexcel_cell_style, + lv_style_underline_guid TYPE zexcel_cell_style, + lv_style_filled_guid TYPE zexcel_cell_style, + lv_style_border_guid TYPE zexcel_cell_style, + lv_style_button_guid TYPE zexcel_cell_style. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE STANDARD TABLE OF solisti1. + +" Creates active sheet +CREATE OBJECT lo_excel. + +" Create border object +CREATE OBJECT lo_border_dark. +lo_border_dark->border_color = zcl_excel_style_color=>c_black. +lo_border_dark->border_style = zcl_excel_style_border=>c_border_thin. +CREATE OBJECT lo_border_light. +lo_border_light->border_color = zcl_excel_style_color=>c_gray. +lo_border_light->border_style = zcl_excel_style_border=>c_border_thin. +" Create a bold / italic style +lo_style_bold = lo_excel->add_new_style( ). +lo_style_bold->font->bold = abap_true. +lo_style_bold->font->italic = abap_true. +lo_style_bold->font->color = zcl_excel_style_color=>c_red. +lv_style_bold_guid = lo_style_bold->get_guid( ). +" Create an underline double style +lo_style_underline = lo_excel->add_new_style( ). +lo_style_underline->font->underline = abap_true. +lo_style_underline->font->underline_mode = zcl_excel_style_font=>c_underline_double. +lv_style_underline_guid = lo_style_underline->get_guid( ). +" Create filled style +lo_style_filled = lo_excel->add_new_style( ). +lo_style_filled->fill->filltype = zcl_excel_style_fill=>c_fill_solid. +lo_style_filled->fill->fgcolor = zcl_excel_style_color=>c_yellow. +lv_style_filled_guid = lo_style_filled->get_guid( ). +" Create border with button effects +lo_style_button = lo_excel->add_new_style( ). +lo_style_button->borders->right = lo_border_dark. +lo_style_button->borders->down = lo_border_dark. +lo_style_button->borders->left = lo_border_light. +lo_style_button->borders->top = lo_border_light. +lv_style_button_guid = lo_style_button->get_guid( ). +"Create style with border +lo_style_border = lo_excel->add_new_style( ). +lo_style_border->borders->allborders = lo_border_dark. +lv_style_border_guid = lo_style_border->get_guid( ). + +" Get active sheet +lo_worksheet = lo_excel->get_active_worksheet( ). +lo_worksheet->title = 'Styles'. +lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ). +lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = 'Bold text' ip_style = lv_style_bold_guid ). +lo_worksheet->set_cell( ip_column = 'D' ip_row = 4 ip_value = 'Underlined text' ip_style = lv_style_underline_guid ). +lo_worksheet->set_cell( ip_column = 'B' ip_row = 5 ip_value = 'Filled text' ip_style = lv_style_filled_guid ). +lo_worksheet->set_cell( ip_column = 'C' ip_row = 6 ip_value = 'Borders' ip_style = lv_style_border_guid ). +lo_worksheet->set_cell( ip_column = 'D' ip_row = 7 ip_value = 'I''m not a button :)' ip_style = lv_style_button_guid ). + +lv_file = lo_excel->save_as( zcl_excel=>c_xlsx ). + +" Convert to binary +CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. + +" Save the file +CALL FUNCTION 'GUI_DOWNLOAD' + EXPORTING + bin_filesize = lv_bytecount + filename = 'C:\Styles.xlsx' + filetype = 'BIN' + TABLES + data_tab = lt_file_tab. + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZIFE_TEST_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel1. + +DATA: lo_excel TYPE REF TO zcl_excel, + lo_worksheet TYPE REF TO zcl_excel_worksheet. + +DATA: lv_file TYPE xstring, + lv_bytecount TYPE i, + lt_file_tab TYPE STANDARD TABLE OF solisti1. + +" Creates active sheet +CREATE OBJECT lo_excel. + +" Get active sheet +lo_worksheet = lo_excel->get_active_worksheet( ). +lo_worksheet->title = 'Sheet1'. +lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ). + +lv_file = lo_excel->save_as( zcl_excel=>c_xlsx ). + +" Convert to binary +CALL FUNCTION 'SCMS_XSTRING_TO_BINARY' + EXPORTING + buffer = lv_file + IMPORTING + output_length = lv_bytecount + TABLES + binary_tab = lt_file_tab. + +" Save the file +CALL FUNCTION 'GUI_DOWNLOAD' + EXPORTING + bin_filesize = lv_bytecount + filename = 'C:\HelloWorld.xlsx' + filetype = 'BIN' + TABLES + data_tab = lt_file_tab. + + + + + + + + *&---------------------------------------------------------------------* +*& Report Z_ZAKE_SVN +*& +*&---------------------------------------------------------------------* +*& Checkout / Checkin the ZAKE_SVN Project +*& +*&---------------------------------------------------------------------* + +REPORT zake_svn_a2x. + +CONSTANTS cl_svn TYPE seoclsname VALUE 'ZCL_ZAKE_SVN'. +CONSTANTS cl_tortoise_svn TYPE seoclsname VALUE 'ZCL_ZAKE_TORTOISE_SVN'. + +DATA package TYPE devclass. +DATA zake TYPE REF TO zake. + +DATA zake_objects TYPE scts_tadir. + +DATA files TYPE string_table. +DATA file LIKE LINE OF files. + +DATA zake_build TYPE string. +DATA zake_nuggetname TYPE string. + +DATA comment_str TYPE string. +DATA loclpath_str TYPE string. +DATA svnpath_str TYPE string. +DATA username_str TYPE string. +DATA password_str TYPE string. +DATA class TYPE seoclsname. + +DATA: ex TYPE REF TO zcx_saplink, + message TYPE string. + +SELECTION-SCREEN BEGIN OF BLOCK a WITH FRAME TITLE a. +PARAMETERS: + checkout TYPE flag RADIOBUTTON GROUP act, + update TYPE flag RADIOBUTTON GROUP act DEFAULT 'X', + checkin TYPE flag RADIOBUTTON GROUP act. +SELECTION-SCREEN END OF BLOCK a. + +SELECTION-SCREEN BEGIN OF BLOCK b WITH FRAME TITLE b. +PARAMETERS: + svn TYPE flag RADIOBUTTON GROUP cl, + tortoise TYPE flag RADIOBUTTON GROUP cl. +SELECTION-SCREEN END OF BLOCK b. + +SELECTION-SCREEN BEGIN OF BLOCK c WITH FRAME TITLE c. +PARAMETERS: + loclpath TYPE char512 DEFAULT 'C:\ZAKE_SVN\Projects\abap2xlsx' LOWER CASE OBLIGATORY, + zakebuil TYPE char512 DEFAULT 'C:\ZAKE_SVN\Projects\abap2xlsx\build\NUGG_ABAP2XLSX_V_1_0.nugg' LOWER CASE OBLIGATORY, + zakenugg TYPE char512 DEFAULT 'C:\ZAKE_SVN\Projects\abap2xlsx\nuggs\NUGG_ABAP2XLSX_V_1_0.nugg' LOWER CASE OBLIGATORY, + svnpath TYPE char512 DEFAULT 'https://abap2xlsx.googlecode.com/svn/trunk/abap2xlsx' LOWER CASE OBLIGATORY, + comment TYPE char512 DEFAULT '' LOWER CASE, + username TYPE char512 LOWER CASE, + password TYPE char512 LOWER CASE, + testrun TYPE flag DEFAULT 'X'. +SELECTION-SCREEN END OF BLOCK c. + +INITIALIZATION. + a = 'Action'. + b = 'Version Controll Program'. + c = 'Parameters'. + +START-OF-SELECTION. + + svnpath_str = svnpath. + loclpath_str = loclpath. + zake_build = zakebuil. + zake_nuggetname = zakenugg. + comment_str = comment. + + SELECT * INTO TABLE zake_objects FROM tadir WHERE devclass = 'ZABAP2XLSX'. + DELETE zake_objects WHERE object = 'DEVC'. + + TRY. + IF svn = 'X'. + class = cl_svn. + ELSE. + class = cl_tortoise_svn. + ENDIF. + + CREATE OBJECT zake + TYPE + (class) + EXPORTING + i_svnpath = svnpath_str + i_localpath = loclpath_str. + zake->set_testrun( testrun ). + + IF checkin = 'X'. + zake->set_package( 'ZA2X' ). + zake->set_checkin_objects( zake_objects ). + zake->create_slinkees( zake_nuggetname ). + " Build a complete package for download +* zake->set_package( 'ZA2X' ). +* zake->set_checkin_objects( zake_objects ). +* " Let's add the CMD Scripts to the complete package +* CONCATENATE loclpath 'bin/svn-script.cmd' INTO file. +* APPEND file TO files. +* CONCATENATE loclpath 'bin/tortoise-svn-script.cmd' INTO file. +* APPEND file TO files. +* zake->add_files_to_zip( files ). +* " We don't want that for the complete Package Slinkees are created +* " in the ZAKE folder +* zake->download_slinkees_to_lm = space. +* zake->download_nugget_to_lm = space. +* zake->create_slinkees( zake_nuggetname ). + IF testrun IS INITIAL. + zake->checkin( comment_str ). + ENDIF. + ELSE. + IF update = 'X'. + zake->update( ). + ELSE. + zake->checkout( ). + ENDIF. + " zake->install_slinkees_from_lm( testrun ). + zake->install_objects( zake_objects ). + ENDIF. + CATCH zcx_saplink INTO ex. + message = ex->msg. + WRITE: / 'An Error occured: ', message. + ENDTRY. + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/build/old_releases/NUGG_ABAP2XLSX_V_1_1.nugg.zip b/build/old_releases/NUGG_ABAP2XLSX_V_1_1.nugg.zip new file mode 100644 index 0000000000000000000000000000000000000000..c207b98a124abb8331de0aee75b4b59a2975cd6e GIT binary patch literal 49055 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 literal 0 HcmV?d00001 diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-CREATE_XL_THEME.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-CREATE_XL_THEME.html new file mode 100644 index 0000000..e653e75 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-CREATE_XL_THEME.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_THEME + + + + + +

CREATE_XL_THEME

+
+

+Description: +Create 'xl/theme/theme1.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-CREATE_XL_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-CREATE_XL_WORKBOOK.html new file mode 100644 index 0000000..a386291 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-CREATE_XL_WORKBOOK.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_WORKBOOK + + + + + +

CREATE_XL_WORKBOOK

+
+

+Description: +Create 'xl/workbook.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-DATE_TO_EXCEL_STRING.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-DATE_TO_EXCEL_STRING.html new file mode 100644 index 0000000..4aa2bbf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-DATE_TO_EXCEL_STRING.html @@ -0,0 +1,121 @@ + + + +DATE_TO_EXCEL_STRING + + + + + +

DATE_TO_EXCEL_STRING

+
+

+Description: +Convert date from SAP format to Excel +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeDYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeZEXCEL_CELL_VALUEYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-DELETE_MERGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-DELETE_MERGE.html new file mode 100644 index 0000000..43df7e0 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-DELETE_MERGE.html @@ -0,0 +1,105 @@ + + + +DELETE_MERGE + + + + + +

DELETE_MERGE

+
+

+Description: +Delete the used merges +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ENCRYPT_PASSWORD.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ENCRYPT_PASSWORD.html new file mode 100644 index 0000000..f8b04c9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ENCRYPT_PASSWORD.html @@ -0,0 +1,121 @@ + + + +ENCRYPT_PASSWORD + + + + + +

ENCRYPT_PASSWORD

+
+

+Description: +Encrypt password +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_PWDTypeZEXCEL_AES_PASSWORDYesNoAES Password
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ENCRYPTED_PWDTypeZEXCEL_AES_PASSWORDYesAES Password
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ESCAPE_STRING.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ESCAPE_STRING.html new file mode 100644 index 0000000..f01cd5f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ESCAPE_STRING.html @@ -0,0 +1,121 @@ + + + +ESCAPE_STRING + + + + + +

ESCAPE_STRING

+
+

+Description: +Escape a string +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ESCAPED_VALUETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-EXCEL_STRING_TO_DATE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-EXCEL_STRING_TO_DATE.html new file mode 100644 index 0000000..75d55db --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-EXCEL_STRING_TO_DATE.html @@ -0,0 +1,121 @@ + + + +EXCEL_STRING_TO_DATE + + + + + +

EXCEL_STRING_TO_DATE

+
+

+Description: +Convert date from Excel format to SAP +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeDYesDate
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-EXCEL_STRING_TO_TIME.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-EXCEL_STRING_TO_TIME.html new file mode 100644 index 0000000..b7b4fc8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-EXCEL_STRING_TO_TIME.html @@ -0,0 +1,121 @@ + + + +EXCEL_STRING_TO_TIME + + + + + +

EXCEL_STRING_TO_TIME

+
+

+Description: +Convert time from Excel format to SAP +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeTYesTime
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-FILL_STRUCT_FROM_ATTRIBUTES.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-FILL_STRUCT_FROM_ATTRIBUTES.html new file mode 100644 index 0000000..392dbb7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-FILL_STRUCT_FROM_ATTRIBUTES.html @@ -0,0 +1,123 @@ + + + +FILL_STRUCT_FROM_ATTRIBUTES + + + + + +

FILL_STRUCT_FROM_ATTRIBUTES

+
+

+Description: +Fills structure fields based on XML node attributes +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ELEMENTType Ref ToIF_IXML_ELEMENTYesNoIF_IXML_ELEMENT
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
CP_STRUCTURETypeANYYesNo
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-FLAG2BOOL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-FLAG2BOOL.html new file mode 100644 index 0000000..acffa66 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-FLAG2BOOL.html @@ -0,0 +1,121 @@ + + + +FLAG2BOOL + + + + + +

FLAG2BOOL

+
+

+Description: +Convert a FLAG to BOOLEAN value +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_FLAGTypeFLAGYesNoGeneral Flag
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_BOOLEANTypeCHAR5YesBoolean value
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-FREEZE_PANES.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-FREEZE_PANES.html new file mode 100644 index 0000000..2d6d702 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-FREEZE_PANES.html @@ -0,0 +1,127 @@ + + + +FREEZE_PANES + + + + + +

FREEZE_PANES

+
+

+Description: +Freeze panes for supplied number of rows and/or columns +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_NUM_COLUMNSTypeIYesNoNumber of columns to freeze (starting from left-most)
IP_NUM_ROWSTypeIYesNoNumber of rows to freeze (starting from top-most)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET.html new file mode 100644 index 0000000..19ef0be --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET.html @@ -0,0 +1,121 @@ + + + +GET + + + + + +

GET

+
+

+Description: +Gets Element +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeZEXCEL_ACTIVE_WORKSHEETYesNoActive Worksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_STYLE_CONDITIONALType Ref ToZCL_EXCEL_STYLE_CONDITIONALYesFont Style
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ACTIVE_CELL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ACTIVE_CELL.html new file mode 100644 index 0000000..bb7c123 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ACTIVE_CELL.html @@ -0,0 +1,112 @@ + + + +GET_ACTIVE_CELL + + + + + +

GET_ACTIVE_CELL

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ACTIVE_CELLTypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ACTIVE_SHEET_INDEX.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ACTIVE_SHEET_INDEX.html new file mode 100644 index 0000000..4c69bf6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ACTIVE_SHEET_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_ACTIVE_SHEET_INDEX + + + + + +

GET_ACTIVE_SHEET_INDEX

+
+

+Description: +Get active worksheet index +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ACTIVE_WORKSHEETTypeZEXCEL_ACTIVE_WORKSHEETYesActive Worksheet
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ACTIVE_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ACTIVE_WORKSHEET.html new file mode 100644 index 0000000..7fa1a2d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ACTIVE_WORKSHEET.html @@ -0,0 +1,112 @@ + + + +GET_ACTIVE_WORKSHEET + + + + + +

GET_ACTIVE_WORKSHEET

+
+

+Description: +Get active worksheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesWorksheet
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_AUTO_SIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_AUTO_SIZE.html new file mode 100644 index 0000000..3e73703 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_AUTO_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_AUTO_SIZE + + + + + +

GET_AUTO_SIZE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_AUTO_SIZETypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_CELL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_CELL.html new file mode 100644 index 0000000..f4c3126 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_CELL.html @@ -0,0 +1,144 @@ + + + +GET_CELL + + + + + +

GET_CELL

+
+

+Description: +Get cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeZEXCEL_CELL_VALUENoCell Value
EP_RCTypeSYSUBRCNoReturn Value of ABAP Statements
EP_STYLEType Ref ToZCL_EXCEL_STYLENoStyle
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLLAPSED.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLLAPSED.html new file mode 100644 index 0000000..74a9257 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLLAPSED.html @@ -0,0 +1,112 @@ + + + +GET_COLLAPSED + + + + + +

GET_COLLAPSED

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLLAPSEDTypeBOOLEANYesBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLORS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLUMN_DIMENSION.html new file mode 100644 index 0000000..6db5e93 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLUMN_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_COLUMN_DIMENSION + + + + + +

GET_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLUMN_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLUMN_DIMENSIONS.html new file mode 100644 index 0000000..60b59e7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLUMN_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_COLUMN_DIMENSIONS + + + + + +

GET_COLUMN_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONTypeZEXCEL_T_WORKSHEET_COLUMNDIMEYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLUMN_INDEX.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLUMN_INDEX.html new file mode 100644 index 0000000..f42996f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COLUMN_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_COLUMN_INDEX + + + + + +

GET_COLUMN_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COND_STYLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COND_STYLES_ITERATOR.html new file mode 100644 index 0000000..dc493ea --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_COND_STYLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_COND_STYLES_ITERATOR + + + + + +

GET_COND_STYLES_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DATA_VALIDATIONS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DATA_VALIDATIONS_ITERATOR.html new file mode 100644 index 0000000..94858f6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DATA_VALIDATIONS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_ITERATOR + + + + + +

GET_DATA_VALIDATIONS_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DATA_VALIDATIONS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DATA_VALIDATIONS_SIZE.html new file mode 100644 index 0000000..a67368c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DATA_VALIDATIONS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_SIZE + + + + + +

GET_DATA_VALIDATIONS_SIZE

+
+

+Description: +Get the number of data validation objects +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DEFAULT_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DEFAULT_COLUMN_DIMENSION.html new file mode 100644 index 0000000..46ee9cf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DEFAULT_COLUMN_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_COLUMN_DIMENSION + + + + + +

GET_DEFAULT_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..d51aab7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

GET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Gets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesDefault date format
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DEFAULT_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DEFAULT_ROW_DIMENSION.html new file mode 100644 index 0000000..40813a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DEFAULT_ROW_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_ROW_DIMENSION + + + + + +

GET_DEFAULT_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DIMENSION_RANGE.html new file mode 100644 index 0000000..9edc420 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DIMENSION_RANGE.html @@ -0,0 +1,112 @@ + + + +GET_DIMENSION_RANGE + + + + + +

GET_DIMENSION_RANGE

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DIMENSION_RANGETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DRAWINGS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DRAWINGS.html new file mode 100644 index 0000000..7e27efa --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DRAWINGS.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS + + + + + +

GET_DRAWINGS

+
+

+Description: +Gets drawing attached to the sheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_DRAWINGSType Ref ToZCL_EXCEL_DRAWINGSYesDrawings collection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DRAWINGS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DRAWINGS_ITERATOR.html new file mode 100644 index 0000000..2f60e7a --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_DRAWINGS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS_ITERATOR + + + + + +

GET_DRAWINGS_ITERATOR

+
+

+Description: +Get drawing iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FIELDCATALOG.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FIELDCATALOG.html new file mode 100644 index 0000000..45cae9d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FIELDCATALOG.html @@ -0,0 +1,121 @@ + + + +GET_FIELDCATALOG + + + + + +

GET_FIELDCATALOG

+
+

+Description: +Creates field catalog for BIND_TABLE based on internal table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FIELDCATALOGTypeZEXCEL_T_FIELDCATALOGYesTable binding field catalog
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FREEZE_CELL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FREEZE_CELL.html new file mode 100644 index 0000000..9d16d96 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FREEZE_CELL.html @@ -0,0 +1,119 @@ + + + +GET_FREEZE_CELL + + + + + +

GET_FREEZE_CELL

+
+

+Description: +Gets the coordinates of cell determining freeze panes +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ROWTypeZEXCEL_CELL_ROWNoCell Row
EP_COLUMNTypeZEXCEL_CELL_COLUMNNoCell Column
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FROM_COL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FROM_COL.html new file mode 100644 index 0000000..9b81620 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FROM_COL.html @@ -0,0 +1,112 @@ + + + +GET_FROM_COL + + + + + +

GET_FROM_COL

+
+

+Description: +From col +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_FROM_COLTypeZEXCEL_CELL_COLUMNYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FROM_ROW.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FROM_ROW.html new file mode 100644 index 0000000..5e6817d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FROM_ROW.html @@ -0,0 +1,112 @@ + + + +GET_FROM_ROW + + + + + +

GET_FROM_ROW

+
+

+Description: +From row +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_FROM_ROWTypeZEXCEL_CELL_ROWYesCell Row
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FROM_ZIP_ARCHIVE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FROM_ZIP_ARCHIVE.html new file mode 100644 index 0000000..38cddf2 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_FROM_ZIP_ARCHIVE.html @@ -0,0 +1,125 @@ + + + +GET_FROM_ZIP_ARCHIVE + + + + + +

GET_FROM_ZIP_ARCHIVE

+
+

+Description: +Read file from ZIP Archive +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_FILENAMETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_GUID.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_GUID.html new file mode 100644 index 0000000..0917593 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_GUID.html @@ -0,0 +1,112 @@ + + + +GET_GUID + + + + + +

GET_GUID

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_GUIDTypeZEXCEL_CELL_STYLEYesGeneric Data Element for GUID Fields (X16)
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HEIGHT_EMU_STR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HEIGHT_EMU_STR.html new file mode 100644 index 0000000..cd8198f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HEIGHT_EMU_STR.html @@ -0,0 +1,112 @@ + + + +GET_HEIGHT_EMU_STR + + + + + +

GET_HEIGHT_EMU_STR

+
+

+Description: +Height of bitmap in EMU as string +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HEIGHTTypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HIGHEST_COLUMN.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HIGHEST_COLUMN.html new file mode 100644 index 0000000..1288247 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HIGHEST_COLUMN.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_COLUMN + + + + + +

GET_HIGHEST_COLUMN

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_COLUMNTypeZEXCEL_CELL_COLUMNYesCell Column
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HIGHEST_ROW.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HIGHEST_ROW.html new file mode 100644 index 0000000..5c87508 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HIGHEST_ROW.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_ROW + + + + + +

GET_HIGHEST_ROW

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_ROWTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HYPERLINKS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HYPERLINKS_ITERATOR.html new file mode 100644 index 0000000..b800a69 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HYPERLINKS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_ITERATOR + + + + + +

GET_HYPERLINKS_ITERATOR

+
+

+Description: +Get iterator for links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HYPERLINKS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HYPERLINKS_SIZE.html new file mode 100644 index 0000000..dd81de8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_HYPERLINKS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_SIZE + + + + + +

GET_HYPERLINKS_SIZE

+
+

+Description: +Gets the size of links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ID.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ID.html new file mode 100644 index 0000000..bc94249 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ID.html @@ -0,0 +1,112 @@ + + + +GET_ID + + + + + +

GET_ID

+
+

+Description: +Gets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_IDTypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ITERATOR.html new file mode 100644 index 0000000..d97edb4 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_ITERATOR + + + + + +

GET_ITERATOR

+
+

+Description: +Returns an iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_IXML_FROM_ZIP_ARCHIVE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_IXML_FROM_ZIP_ARCHIVE.html new file mode 100644 index 0000000..4586120 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_IXML_FROM_ZIP_ARCHIVE.html @@ -0,0 +1,125 @@ + + + +GET_IXML_FROM_ZIP_ARCHIVE + + + + + +

GET_IXML_FROM_ZIP_ARCHIVE

+
+

+Description: +Read file from ZIP Archive +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_FILENAMETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_IXMLType Ref ToIF_IXML_DOCUMENTYesIF_IXML_DOCUMENT
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_MEDIA.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_MEDIA.html new file mode 100644 index 0000000..0cb826e --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_MEDIA.html @@ -0,0 +1,112 @@ + + + +GET_MEDIA + + + + + +

GET_MEDIA

+
+

+Description: +Returns media as XSTRING +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_MEDIATypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_MEDIA_NAME.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_MEDIA_NAME.html new file mode 100644 index 0000000..1f0cf5a --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_MEDIA_NAME.html @@ -0,0 +1,112 @@ + + + +GET_MEDIA_NAME + + + + + +

GET_MEDIA_NAME

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_NAMETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_MEDIA_TYPE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_MEDIA_TYPE.html new file mode 100644 index 0000000..c36c0dc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_MEDIA_TYPE.html @@ -0,0 +1,112 @@ + + + +GET_MEDIA_TYPE + + + + + +

GET_MEDIA_TYPE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_TYPETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_MERGE.html new file mode 100644 index 0000000..98a3674 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_MERGE.html @@ -0,0 +1,112 @@ + + + +GET_MERGE + + + + + +

GET_MERGE

+
+

+Description: +Get the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
MERGE_RANGETypeSTRING_TABLEYesTable of Strings
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_NAME.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_NAME.html new file mode 100644 index 0000000..dd3da1f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_NAME.html @@ -0,0 +1,112 @@ + + + +GET_NAME + + + + + +

GET_NAME

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_NAMETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_NEXT_TABLE_ID.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_NEXT_TABLE_ID.html new file mode 100644 index 0000000..05985fc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_NEXT_TABLE_ID.html @@ -0,0 +1,112 @@ + + + +GET_NEXT_TABLE_ID + + + + + +

GET_NEXT_TABLE_ID

+
+

+Description: +Get table ID unique across sheets +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_IDTypeIYesID
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_OUTLINE_LEVEL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_OUTLINE_LEVEL.html new file mode 100644 index 0000000..73f899f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_OUTLINE_LEVEL.html @@ -0,0 +1,112 @@ + + + +GET_OUTLINE_LEVEL + + + + + +

GET_OUTLINE_LEVEL

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_OUTLINE_LEVELTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_RANGES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_RANGES_ITERATOR.html new file mode 100644 index 0000000..3b5b903 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_RANGES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_RANGES_ITERATOR + + + + + +

GET_RANGES_ITERATOR

+
+

+Description: +Get ranges iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_REF.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_REF.html new file mode 100644 index 0000000..6afe4d6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_REF.html @@ -0,0 +1,112 @@ + + + +GET_REF + + + + + +

GET_REF

+
+

+Description: +Gets the reference string +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EV_REFTypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_REFERENCE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_REFERENCE.html new file mode 100644 index 0000000..0489503 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_REFERENCE.html @@ -0,0 +1,121 @@ + + + +GET_REFERENCE + + + + + +

GET_REFERENCE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INCLUDE_TOTALS_ROWTypeABAP_BOOLABAP_TRUEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_REFERENCETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ROW_DIMENSION.html new file mode 100644 index 0000000..6690595 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ROW_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_ROW_DIMENSION + + + + + +

GET_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ROWTypeINT4YesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ROW_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ROW_DIMENSIONS.html new file mode 100644 index 0000000..ae6b7a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ROW_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_ROW_DIMENSIONS + + + + + +

GET_ROW_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONTypeZEXCEL_T_WORKSHEET_ROWDIMENSIOYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ROW_HEIGHT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ROW_HEIGHT.html new file mode 100644 index 0000000..9d64f54 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ROW_HEIGHT.html @@ -0,0 +1,112 @@ + + + +GET_ROW_HEIGHT + + + + + +

GET_ROW_HEIGHT

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_HEIGHTTypeFLOATYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ROW_INDEX.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ROW_INDEX.html new file mode 100644 index 0000000..2bc2217 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_ROW_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_ROW_INDEX + + + + + +

GET_ROW_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_SHARED_STRING_INDEX.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_SHARED_STRING_INDEX.html new file mode 100644 index 0000000..4a1f6fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_SHARED_STRING_INDEX.html @@ -0,0 +1,121 @@ + + + +GET_SHARED_STRING_INDEX + + + + + +

GET_SHARED_STRING_INDEX

+
+

+Description: +Get shared string index +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CELL_VALUETypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_INDEXTypeINT4YesNatural Number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_STRUCTURE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_STRUCTURE.html new file mode 100644 index 0000000..7392c5b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_STRUCTURE.html @@ -0,0 +1,112 @@ + + + +GET_STRUCTURE + + + + + +

GET_STRUCTURE

+
+

+Description: +Get class as a structure +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
ES_ALIGNMENTTypeZEXCEL_S_STYLE_ALIGNMENTYesCell alignment
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_STYLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_STYLES_ITERATOR.html new file mode 100644 index 0000000..a77a016 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_STYLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_STYLES_ITERATOR + + + + + +

GET_STYLES_ITERATOR

+
+

+Description: +Get styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TABLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TABLES_ITERATOR.html new file mode 100644 index 0000000..007bde7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TABLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_ITERATOR + + + + + +

GET_TABLES_ITERATOR

+
+

+Description: +Get iterator for tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TABLES_SIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TABLES_SIZE.html new file mode 100644 index 0000000..a402427 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TABLES_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_SIZE + + + + + +

GET_TABLES_SIZE

+
+

+Description: +Gets the size of tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYesSize
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TITLE.html new file mode 100644 index 0000000..4126af5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TITLE.html @@ -0,0 +1,121 @@ + + + +GET_TITLE + + + + + +

GET_TITLE

+
+

+Description: +Set WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ESCAPEDTypeFLAG''YesNoReturn escaped?
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_TITLETypeZEXCEL_SHEET_TITLEYesTitle
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TOTALS_FORMULA.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TOTALS_FORMULA.html new file mode 100644 index 0000000..fbd6259 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TOTALS_FORMULA.html @@ -0,0 +1,130 @@ + + + +GET_TOTALS_FORMULA + + + + + +

GET_TOTALS_FORMULA

+
+

+Description: +Returns formula for totals row based on column name and fun +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeCLIKEYesNo
IP_FUNCTIONTypeZEXCEL_TABLE_TOTALS_FUNCTIONYesNoTotals function for table column (xml ST_TotalsRowFunction)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FORMULATypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TO_COL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TO_COL.html new file mode 100644 index 0000000..71e6caa --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TO_COL.html @@ -0,0 +1,112 @@ + + + +GET_TO_COL + + + + + +

GET_TO_COL

+
+

+Description: +To col +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_TO_COLTypeZEXCEL_CELL_COLUMNYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TO_ROW.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TO_ROW.html new file mode 100644 index 0000000..3986b4f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_TO_ROW.html @@ -0,0 +1,112 @@ + + + +GET_TO_ROW + + + + + +

GET_TO_ROW

+
+

+Description: +To row +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_TO_ROWTypeZEXCEL_CELL_ROWYesCell Row
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_URL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_URL.html new file mode 100644 index 0000000..bb4e7f9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_URL.html @@ -0,0 +1,112 @@ + + + +GET_URL + + + + + +

GET_URL

+
+

+Description: +Gets the urls of the link +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EV_URLTypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_VALUE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_VALUE.html new file mode 100644 index 0000000..f5d62da --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_VALUE.html @@ -0,0 +1,112 @@ + + + +GET_VALUE + + + + + +

GET_VALUE

+
+

+Description: +Get value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeZEXCEL_RANGE_VALUEYesCell Value
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_VISIBLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_VISIBLE.html new file mode 100644 index 0000000..f1c7546 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_VISIBLE.html @@ -0,0 +1,112 @@ + + + +GET_VISIBLE + + + + + +

GET_VISIBLE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_VISIBLETypeBOOLEANYesBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WIDTH.html new file mode 100644 index 0000000..d3da96b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WIDTH.html @@ -0,0 +1,112 @@ + + + +GET_WIDTH + + + + + +

GET_WIDTH

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeFLOATYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WIDTH_EMU_STR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WIDTH_EMU_STR.html new file mode 100644 index 0000000..90ae64c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WIDTH_EMU_STR.html @@ -0,0 +1,112 @@ + + + +GET_WIDTH_EMU_STR + + + + + +

GET_WIDTH_EMU_STR

+
+

+Description: +Width of bitmap in EMU as string +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WORKSHEETS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WORKSHEETS_ITERATOR.html new file mode 100644 index 0000000..78914cd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WORKSHEETS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_WORKSHEETS_ITERATOR + + + + + +

GET_WORKSHEETS_ITERATOR

+
+

+Description: +Get worksheets iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WORKSHEETS_NAME.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WORKSHEETS_NAME.html new file mode 100644 index 0000000..5a20e24 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WORKSHEETS_NAME.html @@ -0,0 +1,112 @@ + + + +GET_WORKSHEETS_NAME + + + + + +

GET_WORKSHEETS_NAME

+
+

+Description: +Returns the name of worksheets +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_NAMETypeZEXCEL_WORKSHEETS_NAMEYesWorksheets name
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WORKSHEETS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WORKSHEETS_SIZE.html new file mode 100644 index 0000000..96ffee0 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_WORKSHEETS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_WORKSHEETS_SIZE + + + + + +

GET_WORKSHEETS_SIZE

+
+

+Description: +Returns the number of worksheets +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_XF_INDEX.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_XF_INDEX.html new file mode 100644 index 0000000..f327f59 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-GET_XF_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_XF_INDEX + + + + + +

GET_XF_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_XF_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-HAS_TOTALS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-HAS_TOTALS.html new file mode 100644 index 0000000..a5b0a92 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-HAS_TOTALS.html @@ -0,0 +1,112 @@ + + + +HAS_TOTALS + + + + + +

HAS_TOTALS

+
+

+Description: +Determines if any column has totals function +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_RESULTTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-IS_EMPTY.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-IS_EMPTY.html new file mode 100644 index 0000000..2a57772 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-IS_EMPTY.html @@ -0,0 +1,112 @@ + + + +IS_EMPTY + + + + + +

IS_EMPTY

+
+

+Description: +Checks whether elements are contained +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
IS_EMPTYTypeFLAGYesGeneral Flag
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-IS_INTERNAL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-IS_INTERNAL.html new file mode 100644 index 0000000..e0a248b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-IS_INTERNAL.html @@ -0,0 +1,112 @@ + + + +IS_INTERNAL + + + + + +

IS_INTERNAL

+
+

+Description: +Checks if link is pointing to internall location +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EV_RETTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-IS_MODIFIED.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-IS_SECURITY_ENABLED.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-IS_SECURITY_ENABLED.html new file mode 100644 index 0000000..0c6f69c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-IS_SECURITY_ENABLED.html @@ -0,0 +1,112 @@ + + + +IS_SECURITY_ENABLED + + + + + +

IS_SECURITY_ENABLED

+
+

+Description: +Is some sort of dcument security enabled? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SECURITY_ENABLEDTypeFLAGYesGeneral Flag
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_SHARED_STRINGS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_SHARED_STRINGS.html new file mode 100644 index 0000000..e071fcf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_SHARED_STRINGS.html @@ -0,0 +1,114 @@ + + + +LOAD_SHARED_STRINGS + + + + + +

LOAD_SHARED_STRINGS

+
+

+Description: +Loads shared strings table +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLES.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLES.html new file mode 100644 index 0000000..b944209 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLES.html @@ -0,0 +1,123 @@ + + + +LOAD_STYLES + + + + + +

LOAD_STYLES

+
+

+Description: +Loads styles +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLE_BORDERS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLE_BORDERS.html new file mode 100644 index 0000000..86006ba --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLE_BORDERS.html @@ -0,0 +1,121 @@ + + + +LOAD_STYLE_BORDERS + + + + + +

LOAD_STYLE_BORDERS

+
+

+Description: +Loads 'borders' part of styles +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XMLType Ref ToIF_IXML_DOCUMENTYesNoIF_IXML_DOCUMENT
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_BORDERSTypeT_BORDERSYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLE_FILLS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLE_FILLS.html new file mode 100644 index 0000000..3594575 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLE_FILLS.html @@ -0,0 +1,121 @@ + + + +LOAD_STYLE_FILLS + + + + + +

LOAD_STYLE_FILLS

+
+

+Description: +Loads 'fills' part of styles +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XMLType Ref ToIF_IXML_DOCUMENTYesNoIF_IXML_DOCUMENT
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FILLSTypeT_FILLSYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLE_FONTS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLE_FONTS.html new file mode 100644 index 0000000..6658ea5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLE_FONTS.html @@ -0,0 +1,121 @@ + + + +LOAD_STYLE_FONTS + + + + + +

LOAD_STYLE_FONTS

+
+

+Description: +Loads 'fonts' part of styles +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XMLType Ref ToIF_IXML_DOCUMENTYesNoIF_IXML_DOCUMENT
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FONTSTypeT_FONTSYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLE_NUM_FORMATS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLE_NUM_FORMATS.html new file mode 100644 index 0000000..9f6930b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_STYLE_NUM_FORMATS.html @@ -0,0 +1,121 @@ + + + +LOAD_STYLE_NUM_FORMATS + + + + + +

LOAD_STYLE_NUM_FORMATS

+
+

+Description: +Loads 'number format' part of styles +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XMLType Ref ToIF_IXML_DOCUMENTYesNoIF_IXML_DOCUMENT
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_NUM_FORMATSTypeT_NUM_FORMATSYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-NUMBER_TO_EXCEL_STRING.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-NUMBER_TO_EXCEL_STRING.html new file mode 100644 index 0000000..660f51a --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-NUMBER_TO_EXCEL_STRING.html @@ -0,0 +1,121 @@ + + + +NUMBER_TO_EXCEL_STRING + + + + + +

NUMBER_TO_EXCEL_STRING

+
+

+Description: +Converts number to string representation in Excel format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeNUMERICYesYes
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeZEXCEL_CELL_VALUEYesCell Value
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-PIXEL2EMU.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-PIXEL2EMU.html new file mode 100644 index 0000000..356de09 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-PIXEL2EMU.html @@ -0,0 +1,130 @@ + + + +PIXEL2EMU + + + + + +

PIXEL2EMU

+
+

+Description: +Convert pixel to EMU +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PIXELTypeINT4YesNoNatural number
IP_DPITypeINT2YesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_EMUTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-REGISTER_NEW_STYLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-REGISTER_NEW_STYLE.html new file mode 100644 index 0000000..2430610 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-REGISTER_NEW_STYLE.html @@ -0,0 +1,121 @@ + + + +REGISTER_NEW_STYLE + + + + + +

REGISTER_NEW_STYLE

+
+

+Description: +Register a new style +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_STYLEType Ref ToZCL_EXCEL_STYLEYesNoStyle
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_STYLE_CODETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-REMOVE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-REMOVE.html new file mode 100644 index 0000000..76d4791 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-REMOVE.html @@ -0,0 +1,114 @@ + + + +REMOVE + + + + + +

REMOVE

+
+

+Description: +Deletes an Element from the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_STYLE_CONDITIONALType Ref ToZCL_EXCEL_STYLE_CONDITIONALYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ACTIVE_SHEET_INDEX.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ACTIVE_SHEET_INDEX.html new file mode 100644 index 0000000..fbc2dbc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ACTIVE_SHEET_INDEX.html @@ -0,0 +1,114 @@ + + + +SET_ACTIVE_SHEET_INDEX + + + + + +

SET_ACTIVE_SHEET_INDEX

+
+

+Description: +Set active worksheet index +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_ACTIVE_WORKSHEETTypeZEXCEL_ACTIVE_WORKSHEETYesNoActive Worksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ACTIVE_SHEET_INDEX_BY_NAME.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ACTIVE_SHEET_INDEX_BY_NAME.html new file mode 100644 index 0000000..97778a7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ACTIVE_SHEET_INDEX_BY_NAME.html @@ -0,0 +1,114 @@ + + + +SET_ACTIVE_SHEET_INDEX_BY_NAME + + + + + +

SET_ACTIVE_SHEET_INDEX_BY_NAME

+
+

+Description: +Set active worksheet index by name +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_WORKSHEET_NAMETypeZEXCEL_WORKSHEETS_NAMEYesNoWorksheets name
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_AUTO_SIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_AUTO_SIZE.html new file mode 100644 index 0000000..c5ade56 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_AUTO_SIZE.html @@ -0,0 +1,121 @@ + + + +SET_AUTO_SIZE + + + + + +

SET_AUTO_SIZE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_AUTO_SIZETypeABAP_BOOLYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_CELL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_CELL.html new file mode 100644 index 0000000..09f16c5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_CELL.html @@ -0,0 +1,177 @@ + + + +SET_CELL + + + + + +

SET_CELL

+
+

+Description: +Set cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_VALUETypeSIMPLEYesNoCell Value
IP_FORMULATypeZEXCEL_CELL_FORMULAYesNoCell Formula
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
IP_HYPERLINKType Ref ToZCL_EXCEL_HYPERLINKYesNoHyperlink
IP_DATA_TYPETypeZEXCEL_CELL_DATA_TYPEYesNoCell data type
IP_ABAP_TYPETypeABAP_TYPEKINDYesNoABAP data type
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_CELL_REFERENCE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_CELL_REFERENCE.html new file mode 100644 index 0000000..641eb7b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_CELL_REFERENCE.html @@ -0,0 +1,123 @@ + + + +SET_CELL_REFERENCE + + + + + +

SET_CELL_REFERENCE

+
+

+Description: +Sets reference to the cell +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_CELL_STYLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_CELL_STYLE.html new file mode 100644 index 0000000..15c65bf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_CELL_STYLE.html @@ -0,0 +1,136 @@ + + + +SET_CELL_STYLE + + + + + +

SET_CELL_STYLE

+
+

+Description: +Set cell style +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_COLLAPSED.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_COLLAPSED.html new file mode 100644 index 0000000..4ecdf10 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_COLLAPSED.html @@ -0,0 +1,114 @@ + + + +SET_COLLAPSED + + + + + +

SET_COLLAPSED

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLLAPSEDTypeBOOLEANYesNoBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_COLUMN_INDEX.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_COLUMN_INDEX.html new file mode 100644 index 0000000..35b09fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_COLUMN_INDEX.html @@ -0,0 +1,121 @@ + + + +SET_COLUMN_INDEX + + + + + +

SET_COLUMN_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_DATA.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_DATA.html new file mode 100644 index 0000000..9d3cb84 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_DATA.html @@ -0,0 +1,114 @@ + + + +SET_DATA + + + + + +

SET_DATA

+
+

+Description: +Sets the reference to table data +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IR_DATATypeSTANDARD TABLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..f3e219f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,114 @@ + + + +SET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

SET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Sets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesNoDefault date format
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_DELIMITER.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_DELIMITER.html new file mode 100644 index 0000000..7b145da --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_DELIMITER.html @@ -0,0 +1,114 @@ + + + +SET_DELIMITER + + + + + +

SET_DELIMITER

+
+

+Description: +Set Delimiter value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeCHAR01';'YesYesDelimiter Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ENCLOSURE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ENCLOSURE.html new file mode 100644 index 0000000..3f1ef98 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ENCLOSURE.html @@ -0,0 +1,114 @@ + + + +SET_ENCLOSURE + + + + + +

SET_ENCLOSURE

+
+

+Description: +Set Enclosure character +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeCHAR01'"'YesYesText field enclosure character
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ENDOFLINE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ENDOFLINE.html new file mode 100644 index 0000000..7ea5f54 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ENDOFLINE.html @@ -0,0 +1,114 @@ + + + +SET_ENDOFLINE + + + + + +

SET_ENDOFLINE

+
+

+Description: +Set End Of Line character +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeANYCL_ABAP_CHAR_UTILITIES=>CR_LFYesYesEnd Of Line Character
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ID.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ID.html new file mode 100644 index 0000000..3d6a1c9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ID.html @@ -0,0 +1,114 @@ + + + +SET_ID + + + + + +

SET_ID

+
+

+Description: +Sets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IV_IDTypeIYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_MEDIA.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_MEDIA.html new file mode 100644 index 0000000..9d09ff0 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_MEDIA.html @@ -0,0 +1,141 @@ + + + +SET_MEDIA + + + + + +

SET_MEDIA

+
+

+Description: +Add media to drawing as XSTRING +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_MEDIATypeXSTRINGYesNo
IP_MEDIA_TYPETypeSTRINGYesNo
IP_WIDTHTypeINT4YesNoNatural number
IP_HEIGHTTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_MEDIA_MIME.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_MEDIA_MIME.html new file mode 100644 index 0000000..498f28e --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_MEDIA_MIME.html @@ -0,0 +1,132 @@ + + + +SET_MEDIA_MIME + + + + + +

SET_MEDIA_MIME

+
+

+Description: +Add media from mime repository +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_IOTypeSKWF_IOYesNoKW Framework: Object Key
IP_WIDTHTypeINT4YesNoNatural Number
IP_HEIGHTTypeINT4YesNoNatural Number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_MEDIA_WWW.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_MEDIA_WWW.html new file mode 100644 index 0000000..bcd2c52 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_MEDIA_WWW.html @@ -0,0 +1,132 @@ + + + +SET_MEDIA_WWW + + + + + +

SET_MEDIA_WWW

+
+

+Description: +Add media from www repository SMW0 +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_KEYTypeWWWDATATABYesNoContents of table WWWDATA
IP_WIDTHTypeINT4YesNoNatural number
IP_HEIGHTTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_MERGE.html new file mode 100644 index 0000000..28ab5bc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_MERGE.html @@ -0,0 +1,141 @@ + + + +SET_MERGE + + + + + +

SET_MERGE

+
+

+Description: +Set the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMN_STARTTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column Start
IP_COLUMN_ENDTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column End
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_ROW_TOTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_OUTLINE_LEVEL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_OUTLINE_LEVEL.html new file mode 100644 index 0000000..b5d09ad --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_OUTLINE_LEVEL.html @@ -0,0 +1,118 @@ + + + +SET_OUTLINE_LEVEL + + + + + +

SET_OUTLINE_LEVEL

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_OUTLINE_LEVELTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_PAGE_MARGINS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_PAGE_MARGINS.html new file mode 100644 index 0000000..2cc3734 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_PAGE_MARGINS.html @@ -0,0 +1,168 @@ + + + +SET_PAGE_MARGINS + + + + + +

SET_PAGE_MARGINS

+
+

+Description: +Set page margins +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_BOTTOMTypeFLOATYesNoMargin bottom
IP_FOOTERTypeFLOATYesNoMargin footer
IP_HEADERTypeFLOATYesNoMargin header
IP_LEFTTypeFLOATYesNoMargin left
IP_RIGHTTypeFLOATYesNoMargin right
IP_TOPTypeFLOATYesNoMargin top
IP_UNITTypeCSEQUENCE'in'YesNoin, cm
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_POSITION.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_POSITION.html new file mode 100644 index 0000000..d1b28b7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_POSITION.html @@ -0,0 +1,123 @@ + + + +SET_POSITION + + + + + +

SET_POSITION

+
+

+Description: +Set position of drawing +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_FROM_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_FROM_COLTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_PRINT_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_PRINT_GRIDLINES.html new file mode 100644 index 0000000..9bf6e56 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_PRINT_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_PRINT_GRIDLINES + + + + + +

SET_PRINT_GRIDLINES

+
+

+Description: +Set print gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_PRINT_GRIDLINESTypeZEXCEL_PRINT_GRIDLINESYesNoPrint Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_RANGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_RANGE.html new file mode 100644 index 0000000..fe9f9b1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_RANGE.html @@ -0,0 +1,141 @@ + + + +SET_RANGE + + + + + +

SET_RANGE

+
+

+Description: +Set range used in conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_START_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_START_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_STOP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STOP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_RANGE_VALUE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_RANGE_VALUE.html new file mode 100644 index 0000000..058ca82 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_RANGE_VALUE.html @@ -0,0 +1,114 @@ + + + +SET_RANGE_VALUE + + + + + +

SET_RANGE_VALUE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeZEXCEL_RANGE_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ROW_HEIGHT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ROW_HEIGHT.html new file mode 100644 index 0000000..d1d84a9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ROW_HEIGHT.html @@ -0,0 +1,114 @@ + + + +SET_ROW_HEIGHT + + + + + +

SET_ROW_HEIGHT

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ROW_HEIGHTTypeFLOATYesNoField of type FLTP
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ROW_INDEX.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ROW_INDEX.html new file mode 100644 index 0000000..80c0ccd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_ROW_INDEX.html @@ -0,0 +1,114 @@ + + + +SET_ROW_INDEX + + + + + +

SET_ROW_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_SHOW_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_SHOW_GRIDLINES.html new file mode 100644 index 0000000..f42cb62 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_SHOW_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_GRIDLINES + + + + + +

SET_SHOW_GRIDLINES

+
+

+Description: +Set show gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_GRIDLINESTypeZEXCEL_SHOW_GRIDLINESYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_SHOW_ROWCOLHEADERS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_SHOW_ROWCOLHEADERS.html new file mode 100644 index 0000000..b365b86 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_SHOW_ROWCOLHEADERS.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_ROWCOLHEADERS + + + + + +

SET_SHOW_ROWCOLHEADERS

+
+

+Description: +Set show colum row headers +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_ROWCOLHEADERSTypeZEXCEL_SHOW_ROWCOLHEADERYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_TABLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_TABLE.html new file mode 100644 index 0000000..ef2d677 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_TABLE.html @@ -0,0 +1,159 @@ + + + +SET_TABLE + + + + + +

SET_TABLE

+
+

+Description: +Set cell value from a table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
IP_HDR_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_BODY_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_TABLE_TITLETypeSTRINGYesNo
IP_TOP_LEFT_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHA'B'YesNoCell Column
IP_TOP_LEFT_ROWTypeZEXCEL_CELL_ROW3YesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_TITLE.html new file mode 100644 index 0000000..fe9bc3e --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_TITLE.html @@ -0,0 +1,114 @@ + + + +SET_TITLE + + + + + +

SET_TITLE

+
+

+Description: +Get WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TITLETypeZEXCEL_SHEET_TITLEYesNoTitle
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_VALUE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_VALUE.html new file mode 100644 index 0000000..2ae46ff --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_VALUE.html @@ -0,0 +1,150 @@ + + + +SET_VALUE + + + + + +

SET_VALUE

+
+

+Description: +Set Range value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_SHEET_NAMETypeZEXCEL_SHEET_TITLEYesNoTitle
IP_START_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_START_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_STOP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STOP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_VISIBLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_VISIBLE.html new file mode 100644 index 0000000..13e1bd6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_VISIBLE.html @@ -0,0 +1,114 @@ + + + +SET_VISIBLE + + + + + +

SET_VISIBLE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VISIBLETypeBOOLEANYesNoBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_WIDTH.html new file mode 100644 index 0000000..af242fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_WIDTH.html @@ -0,0 +1,121 @@ + + + +SET_WIDTH + + + + + +

SET_WIDTH

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WIDTHTypeFLOATYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_XF_INDEX.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_XF_INDEX.html new file mode 100644 index 0000000..cb76611 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SET_XF_INDEX.html @@ -0,0 +1,114 @@ + + + +SET_XF_INDEX + + + + + +

SET_XF_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XF_INDEXTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SHL01.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SHL01.html new file mode 100644 index 0000000..db803a1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SHL01.html @@ -0,0 +1,121 @@ + + + +SHL01 + + + + + +

SHL01

+
+

+Description: + +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_PWD_HASHTypeZEXCEL_PWD_HASHYesNoPassword hash
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_PWD_HASHTypeZEXCEL_PWD_HASHYesPassword hash
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SHR14.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SHR14.html new file mode 100644 index 0000000..a34f7d4 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SHR14.html @@ -0,0 +1,121 @@ + + + +SHR14 + + + + + +

SHR14

+
+

+Description: + +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_PWD_HASHTypeZEXCEL_PWD_HASHYesNoPassword hash
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_PWD_HASHTypeZEXCEL_PWD_HASHYesPassword hash
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SIZE.html new file mode 100644 index 0000000..3b298dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-SIZE.html @@ -0,0 +1,112 @@ + + + +SIZE + + + + + +

SIZE

+
+

+Description: +Specifies number of contained elements +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-TIME_TO_EXCEL_STRING.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-TIME_TO_EXCEL_STRING.html new file mode 100644 index 0000000..19c9211 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-TIME_TO_EXCEL_STRING.html @@ -0,0 +1,121 @@ + + + +TIME_TO_EXCEL_STRING + + + + + +

TIME_TO_EXCEL_STRING

+
+

+Description: +Convert time from SAP format to Excel +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeTYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeZEXCEL_CELL_VALUEYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-UPDATE_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-UPDATE_DIMENSION_RANGE.html new file mode 100644 index 0000000..8b43dab --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-UPDATE_DIMENSION_RANGE.html @@ -0,0 +1,105 @@ + + + +UPDATE_DIMENSION_RANGE + + + + + +

UPDATE_DIMENSION_RANGE

+
+

+Description: +Update dimension range +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE.html new file mode 100644 index 0000000..addd5a2 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE + + + + + +

ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE

+
+

+Description: +Inizialize book properties +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE.html new file mode 100644 index 0000000..5e3629a --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE + + + + + +

ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE

+
+

+Description: +Initialize protection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME.html new file mode 100644 index 0000000..049e5da --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME + + + + + +

ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAMETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR.html new file mode 100644 index 0000000..c863308 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR + + + + + +

ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAME_PRTypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT.html new file mode 100644 index 0000000..d8e347d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT + + + + + +

ZIF_EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VBAPROJECTTypeXSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_READER~LOAD.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_READER~LOAD.html new file mode 100644 index 0000000..4c6a065 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_READER~LOAD.html @@ -0,0 +1,125 @@ + + + +ZIF_EXCEL_READER~LOAD + + + + + +

ZIF_EXCEL_READER~LOAD

+
+

+Description: +Loads ZCL_EXCEL from provided xstring +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_EXCEL2007TypeXSTRINGYesNoExcel 2007 data
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_EXCELType Ref ToZCL_EXCELYesExcel creator
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_READER~LOAD_FILE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_READER~LOAD_FILE.html new file mode 100644 index 0000000..1779c08 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_READER~LOAD_FILE.html @@ -0,0 +1,125 @@ + + + +ZIF_EXCEL_READER~LOAD_FILE + + + + + +

ZIF_EXCEL_READER~LOAD_FILE

+
+

+Description: +Loads ZCL_EXCEL from file +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_FILENAMETypeSTRINGYesNoFilename
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_EXCELType Ref ToZCL_EXCELYesExcel creator
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html new file mode 100644 index 0000000..792a359 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html @@ -0,0 +1,112 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE

+
+

+Description: +Set Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_STYLETypeZEXCEL_CELL_STYLEYesStyle identifier
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html new file mode 100644 index 0000000..23583c3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE

+
+

+Description: +Inizialize sheet properties +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html new file mode 100644 index 0000000..bf942bb --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE

+
+

+Description: +Get Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_STYLETypeZEXCEL_CELL_STYLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html new file mode 100644 index 0000000..c77e426 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE

+
+

+Description: +Initialize protection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html new file mode 100644 index 0000000..27f1c1d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAMETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html new file mode 100644 index 0000000..e1b86f9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAME_PRTypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_WRITER~WRITE_FILE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_WRITER~WRITE_FILE.html new file mode 100644 index 0000000..c483160 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT-ZIF_EXCEL_WRITER~WRITE_FILE.html @@ -0,0 +1,121 @@ + + + +ZIF_EXCEL_WRITER~WRITE_FILE + + + + + +

ZIF_EXCEL_WRITER~WRITE_FILE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FILETypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT.html new file mode 100644 index 0000000..ea3cdcf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_ALIGNMENT.html @@ -0,0 +1,195 @@ + + + +ZCL_EXCEL_STYLE_ALIGNMENT + + + + + + +

ZCL_EXCEL_STYLE_ALIGNMENT

+
+Description: +Alignment Style +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
C_HORIZONTAL_GENERALConstantPublicNoTypeZEXCEL_ALIGNMENTAlignment'general'
C_HORIZONTAL_LEFTConstantPublicNoTypeZEXCEL_ALIGNMENTAlignment'left'
C_HORIZONTAL_RIGHTConstantPublicNoTypeZEXCEL_ALIGNMENTAlignment'right'
C_HORIZONTAL_CENTERConstantPublicNoTypeZEXCEL_ALIGNMENTAlignment'center'
C_HORIZONTAL_CENTER_CONTINUOUSConstantPublicNoTypeZEXCEL_ALIGNMENTAlignment'centerContinuous'
C_HORIZONTAL_JUSTIFYConstantPublicNoTypeZEXCEL_ALIGNMENTAlignment'justify'
C_VERTICAL_BOTTOMConstantPublicNoTypeZEXCEL_ALIGNMENTAlignment'bottom'
C_VERTICAL_TOPConstantPublicNoTypeZEXCEL_ALIGNMENTAlignment'top'
C_VERTICAL_CENTERConstantPublicNoTypeZEXCEL_ALIGNMENTAlignment'center'
C_VERTICAL_JUSTIFYConstantPublicNoTypeZEXCEL_ALIGNMENTAlignment'justify'
HORIZONTALInstance AttributePublicNoTypeZEXCEL_ALIGNMENTAlignment
VERTICALInstance AttributePublicNoTypeZEXCEL_ALIGNMENTAlignment
TEXTROTATIONInstance AttributePublicNoTypeZEXCEL_TEXT_ROTATIONText Rotation0
WRAPTEXTInstance AttributePublicNoTypeFLAGGeneral Flag
SHRINKTOFITInstance AttributePublicNoTypeFLAGGeneral Flag
INDENTInstance AttributePublicNoTypeZEXCEL_INDENTIndent0
+

Events:

+
+ + diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ADD.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ADD.html new file mode 100644 index 0000000..95b5747 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ADD.html @@ -0,0 +1,114 @@ + + + +ADD + + + + + +

ADD

+
+

+Description: +Adds an Element to the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ADD_DRAWING.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ADD_DRAWING.html new file mode 100644 index 0000000..b949f63 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ADD_DRAWING.html @@ -0,0 +1,114 @@ + + + +ADD_DRAWING + + + + + +

ADD_DRAWING

+
+

+Description: +Add drawing to the sheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_DRAWINGType Ref ToZCL_EXCEL_DRAWINGYesNoDrawing
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ADD_NEW_CONDITIONAL_STYLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ADD_NEW_CONDITIONAL_STYLE.html new file mode 100644 index 0000000..7f3dd7d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ADD_NEW_CONDITIONAL_STYLE.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_CONDITIONAL_STYLE + + + + + +

ADD_NEW_CONDITIONAL_STYLE

+
+

+Description: +Creates a new conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_CONDITIONAL_STYLEType Ref ToZCL_EXCEL_STYLE_CONDITIONALYesFont Style
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ADD_NEW_DATA_VALIDATION.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ADD_NEW_DATA_VALIDATION.html new file mode 100644 index 0000000..fd4c6ac --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ADD_NEW_DATA_VALIDATION.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_DATA_VALIDATION + + + + + +

ADD_NEW_DATA_VALIDATION

+
+

+Description: +Creates a new data validation +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_DATA_VALIDATIONType Ref ToZCL_EXCEL_DATA_VALIDATIONYesData validation
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-BIND_ALV.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-BIND_ALV.html new file mode 100644 index 0000000..6ff57fb --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-BIND_ALV.html @@ -0,0 +1,241 @@ + + + +BIND_ALV + + + + + +

BIND_ALV

+
+

+Description: +Set cell value from ALV object +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_DOCUMENT_URLTypeCHAR255SPACEYesNoURL of file, must start with
I_XLSTypeCSPACEYesNoExport to .xls file?
I_SAVE_PATHTypeSTRINGYesNoLocal file path
IO_ALVType Ref ToCL_GUI_ALV_GRIDYesNoALV List Viewer
IT_LISTHEADERTypeSLIS_T_LISTHEADERYesNoTop-of-page
I_TOPTypeI1YesNoTop edge of data block
I_LEFTTypeI1YesNoLeft-hand edge of data block
I_COLUMNS_HEADERTypeC'X'YesNoExport columns header?
I_COLUMNS_AUTOFITTypeC'X'YesNoAutofit columns width?
I_FORMAT_COL_HEADERTypeSOI_FORMAT_ITEMYesNoColumn header format
I_FORMAT_SUBTOTALTypeSOI_FORMAT_ITEMYesNoSubtotal lines format
I_FORMAT_TOTALTypeSOI_FORMAT_ITEMYesNoTotal line format
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExceptionShort Text
MISS_GUIDEWindows guide is missing
EX_TRANSFER_KKBLO_ERRORTransfer to KKBLO struct error
FATAL_ERROR
INV_DATA_RANGE
DIM_MISMATCH_VKEY
DIM_MISMATCH_SEMA
ERROR_IN_SEMAUn-know columns Ops, columns Typ
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-BIND_TABLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-BIND_TABLE.html new file mode 100644 index 0000000..f760734 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-BIND_TABLE.html @@ -0,0 +1,139 @@ + + + +BIND_TABLE + + + + + +

BIND_TABLE

+
+

+Description: +Set cell value from a table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
IT_FIELD_CATALOGTypeZEXCEL_T_FIELDCATALOGYesNoTable binding field catalog
IS_TABLE_SETTINGSTypeZEXCEL_S_TABLE_SETTINGSYesNoExcel table binding settings
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
ES_TABLE_SETTINGSTypeZEXCEL_S_TABLE_SETTINGSNoExcel table binding settings
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CALCULATE_COLUMN_WIDTHS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CALCULATE_COLUMN_WIDTHS.html new file mode 100644 index 0000000..c59f060 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CALCULATE_COLUMN_WIDTHS.html @@ -0,0 +1,105 @@ + + + +CALCULATE_COLUMN_WIDTHS + + + + + +

CALCULATE_COLUMN_WIDTHS

+
+

+Description: +Calculate widths for auto-size columns +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CALCULATE_TEXT_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CALCULATE_TEXT_WIDTH.html new file mode 100644 index 0000000..736c4dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CALCULATE_TEXT_WIDTH.html @@ -0,0 +1,121 @@ + + + +CALCULATE_TEXT_WIDTH + + + + + +

CALCULATE_TEXT_WIDTH

+
+

+Description: +Calculate text width based on font size +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_TEXTTypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeIYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CLEAR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CLEAR.html new file mode 100644 index 0000000..5653d6c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CLEAR.html @@ -0,0 +1,105 @@ + + + +CLEAR + + + + + +

CLEAR

+
+

+Description: +Initializes the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CONSTRUCTOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CONSTRUCTOR.html new file mode 100644 index 0000000..ffab25c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CONSTRUCTOR.html @@ -0,0 +1,105 @@ + + + +CONSTRUCTOR + + + + + +

CONSTRUCTOR

+
+

+Description: +CONSTRUCTOR +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
ConstructorInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE.html new file mode 100644 index 0000000..e6a9636 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE.html @@ -0,0 +1,112 @@ + + + +CREATE + + + + + +

CREATE

+
+

+Description: +Create +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_EXCELTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_CONTENT_TYPES.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_CONTENT_TYPES.html new file mode 100644 index 0000000..f075699 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_CONTENT_TYPES.html @@ -0,0 +1,112 @@ + + + +CREATE_CONTENT_TYPES + + + + + +

CREATE_CONTENT_TYPES

+
+

+Description: +Create '[Content_Types].xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_CSV.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_CSV.html new file mode 100644 index 0000000..16666aa --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_CSV.html @@ -0,0 +1,112 @@ + + + +CREATE_CSV + + + + + +

CREATE_CSV

+
+

+Description: +Create CSV ; Delimited format +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_DOCPROPS_APP.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_DOCPROPS_APP.html new file mode 100644 index 0000000..db4a694 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_DOCPROPS_APP.html @@ -0,0 +1,112 @@ + + + +CREATE_DOCPROPS_APP + + + + + +

CREATE_DOCPROPS_APP

+
+

+Description: +Create 'docProps/app.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_DOCPROPS_CORE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_DOCPROPS_CORE.html new file mode 100644 index 0000000..213dc1c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_DOCPROPS_CORE.html @@ -0,0 +1,112 @@ + + + +CREATE_DOCPROPS_CORE + + + + + +

CREATE_DOCPROPS_CORE

+
+

+Description: +Create 'docProps/core.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_NEW_ARGB.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_NEW_ARGB.html new file mode 100644 index 0000000..7c423b3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_NEW_ARGB.html @@ -0,0 +1,139 @@ + + + +CREATE_NEW_ARGB + + + + + +

CREATE_NEW_ARGB

+
+

+Description: +Create a custom ARGB color from RGB +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_REDTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_GREENTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_BLUTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLOR_ARGBTypeZEXCEL_STYLE_COLOR_ARGBYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_RELATIONSHIPS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_RELATIONSHIPS.html new file mode 100644 index 0000000..5cd6227 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_RELATIONSHIPS.html @@ -0,0 +1,112 @@ + + + +CREATE_RELATIONSHIPS + + + + + +

CREATE_RELATIONSHIPS

+
+

+Description: +Create '_rels/.rels' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_DRAWINGS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_DRAWINGS.html new file mode 100644 index 0000000..5af19bc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_DRAWINGS.html @@ -0,0 +1,121 @@ + + + +CREATE_XL_DRAWINGS + + + + + +

CREATE_XL_DRAWINGS

+
+

+Description: +Create 'xl/drawings/drawing1.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_DRAWINGS_RELS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_DRAWINGS_RELS.html new file mode 100644 index 0000000..fa1a2c4 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_DRAWINGS_RELS.html @@ -0,0 +1,121 @@ + + + +CREATE_XL_DRAWINGS_RELS + + + + + +

CREATE_XL_DRAWINGS_RELS

+
+

+Description: +Create 'xl/drawings/_rels/drawing1.xml.rels' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_RELATIONSHIPS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_RELATIONSHIPS.html new file mode 100644 index 0000000..1a3dac6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_RELATIONSHIPS.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_RELATIONSHIPS + + + + + +

CREATE_XL_RELATIONSHIPS

+
+

+Description: +Create 'xl/_rels/workbook.xml.rels' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_SHAREDSTRINGS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_SHAREDSTRINGS.html new file mode 100644 index 0000000..e4be645 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_SHAREDSTRINGS.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_SHAREDSTRINGS + + + + + +

CREATE_XL_SHAREDSTRINGS

+
+

+Description: +Create 'xl/sharedStrings.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_SHEET.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_SHEET.html new file mode 100644 index 0000000..b1bc270 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_SHEET.html @@ -0,0 +1,130 @@ + + + +CREATE_XL_SHEET + + + + + +

CREATE_XL_SHEET

+
+

+Description: +Create 'xl/sheet.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
IV_ACTIVETypeFLAG''YesNoGeneral Flag
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_SHEET_RELS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_SHEET_RELS.html new file mode 100644 index 0000000..ea8fced --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_SHEET_RELS.html @@ -0,0 +1,130 @@ + + + +CREATE_XL_SHEET_RELS + + + + + +

CREATE_XL_SHEET_RELS

+
+

+Description: +Create 'xl/workbook/_rels/sheet.xml.rels' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNo
IV_DRAWING_INDEXTypeIYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_STYLES.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_STYLES.html new file mode 100644 index 0000000..6c30f6f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_STYLES.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_STYLES + + + + + +

CREATE_XL_STYLES

+
+

+Description: +Create 'xl/styles.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_STYLES_COLOR_NODE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_STYLES_COLOR_NODE.html new file mode 100644 index 0000000..fc6d9fd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_STYLES_COLOR_NODE.html @@ -0,0 +1,141 @@ + + + +CREATE_XL_STYLES_COLOR_NODE + + + + + +

CREATE_XL_STYLES_COLOR_NODE

+
+

+Description: +Create 'xl/styles.xml' color node +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_DOCUMENTType Ref ToIF_IXML_DOCUMENTYesNoIF_IXML_DOCUMENT
IO_PARENTType Ref ToIF_IXML_ELEMENTYesNoIF_IXML_ELEMENT
IV_COLOR_ELEM_NAMETypeSTRING'color'YesNo
IS_COLORTypeZEXCEL_S_STYLE_COLORYesNoColor
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_TABLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_TABLE.html new file mode 100644 index 0000000..5cead51 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_TABLE.html @@ -0,0 +1,121 @@ + + + +CREATE_XL_TABLE + + + + + +

CREATE_XL_TABLE

+
+

+Description: + +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_TABLEType Ref ToZCL_EXCEL_TABLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_THEME.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_THEME.html new file mode 100644 index 0000000..e653e75 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_THEME.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_THEME + + + + + +

CREATE_XL_THEME

+
+

+Description: +Create 'xl/theme/theme1.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_WORKBOOK.html new file mode 100644 index 0000000..a386291 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-CREATE_XL_WORKBOOK.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_WORKBOOK + + + + + +

CREATE_XL_WORKBOOK

+
+

+Description: +Create 'xl/workbook.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-DELETE_MERGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-DELETE_MERGE.html new file mode 100644 index 0000000..43df7e0 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-DELETE_MERGE.html @@ -0,0 +1,105 @@ + + + +DELETE_MERGE + + + + + +

DELETE_MERGE

+
+

+Description: +Delete the used merges +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-FILL_STRUCT_FROM_ATTRIBUTES.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-FILL_STRUCT_FROM_ATTRIBUTES.html new file mode 100644 index 0000000..392dbb7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-FILL_STRUCT_FROM_ATTRIBUTES.html @@ -0,0 +1,123 @@ + + + +FILL_STRUCT_FROM_ATTRIBUTES + + + + + +

FILL_STRUCT_FROM_ATTRIBUTES

+
+

+Description: +Fills structure fields based on XML node attributes +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ELEMENTType Ref ToIF_IXML_ELEMENTYesNoIF_IXML_ELEMENT
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
CP_STRUCTURETypeANYYesNo
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-FLAG2BOOL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-FLAG2BOOL.html new file mode 100644 index 0000000..acffa66 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-FLAG2BOOL.html @@ -0,0 +1,121 @@ + + + +FLAG2BOOL + + + + + +

FLAG2BOOL

+
+

+Description: +Convert a FLAG to BOOLEAN value +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_FLAGTypeFLAGYesNoGeneral Flag
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_BOOLEANTypeCHAR5YesBoolean value
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-FREEZE_PANES.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-FREEZE_PANES.html new file mode 100644 index 0000000..2d6d702 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-FREEZE_PANES.html @@ -0,0 +1,127 @@ + + + +FREEZE_PANES + + + + + +

FREEZE_PANES

+
+

+Description: +Freeze panes for supplied number of rows and/or columns +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_NUM_COLUMNSTypeIYesNoNumber of columns to freeze (starting from left-most)
IP_NUM_ROWSTypeIYesNoNumber of rows to freeze (starting from top-most)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET.html new file mode 100644 index 0000000..a3e1019 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET.html @@ -0,0 +1,121 @@ + + + +GET + + + + + +

GET

+
+

+Description: +Gets Element +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeZEXCEL_ACTIVE_WORKSHEETYesNoActive Worksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesWorksheet
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ACTIVE_CELL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ACTIVE_CELL.html new file mode 100644 index 0000000..bb7c123 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ACTIVE_CELL.html @@ -0,0 +1,112 @@ + + + +GET_ACTIVE_CELL + + + + + +

GET_ACTIVE_CELL

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ACTIVE_CELLTypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_AUTO_SIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_AUTO_SIZE.html new file mode 100644 index 0000000..3e73703 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_AUTO_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_AUTO_SIZE + + + + + +

GET_AUTO_SIZE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_AUTO_SIZETypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_CELL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_CELL.html new file mode 100644 index 0000000..f4c3126 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_CELL.html @@ -0,0 +1,144 @@ + + + +GET_CELL + + + + + +

GET_CELL

+
+

+Description: +Get cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeZEXCEL_CELL_VALUENoCell Value
EP_RCTypeSYSUBRCNoReturn Value of ABAP Statements
EP_STYLEType Ref ToZCL_EXCEL_STYLENoStyle
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLLAPSED.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLLAPSED.html new file mode 100644 index 0000000..74a9257 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLLAPSED.html @@ -0,0 +1,112 @@ + + + +GET_COLLAPSED + + + + + +

GET_COLLAPSED

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLLAPSEDTypeBOOLEANYesBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLORS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLUMN_DIMENSION.html new file mode 100644 index 0000000..6db5e93 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLUMN_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_COLUMN_DIMENSION + + + + + +

GET_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLUMN_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLUMN_DIMENSIONS.html new file mode 100644 index 0000000..60b59e7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLUMN_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_COLUMN_DIMENSIONS + + + + + +

GET_COLUMN_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONTypeZEXCEL_T_WORKSHEET_COLUMNDIMEYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLUMN_INDEX.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLUMN_INDEX.html new file mode 100644 index 0000000..f42996f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COLUMN_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_COLUMN_INDEX + + + + + +

GET_COLUMN_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COND_STYLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COND_STYLES_ITERATOR.html new file mode 100644 index 0000000..dc493ea --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_COND_STYLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_COND_STYLES_ITERATOR + + + + + +

GET_COND_STYLES_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DATA_VALIDATIONS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DATA_VALIDATIONS_ITERATOR.html new file mode 100644 index 0000000..94858f6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DATA_VALIDATIONS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_ITERATOR + + + + + +

GET_DATA_VALIDATIONS_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DATA_VALIDATIONS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DATA_VALIDATIONS_SIZE.html new file mode 100644 index 0000000..a67368c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DATA_VALIDATIONS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_SIZE + + + + + +

GET_DATA_VALIDATIONS_SIZE

+
+

+Description: +Get the number of data validation objects +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DEFAULT_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DEFAULT_COLUMN_DIMENSION.html new file mode 100644 index 0000000..46ee9cf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DEFAULT_COLUMN_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_COLUMN_DIMENSION + + + + + +

GET_DEFAULT_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..d51aab7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

GET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Gets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesDefault date format
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DEFAULT_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DEFAULT_ROW_DIMENSION.html new file mode 100644 index 0000000..40813a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DEFAULT_ROW_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_ROW_DIMENSION + + + + + +

GET_DEFAULT_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DIMENSION_RANGE.html new file mode 100644 index 0000000..9edc420 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DIMENSION_RANGE.html @@ -0,0 +1,112 @@ + + + +GET_DIMENSION_RANGE + + + + + +

GET_DIMENSION_RANGE

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DIMENSION_RANGETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DRAWINGS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DRAWINGS.html new file mode 100644 index 0000000..7e27efa --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DRAWINGS.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS + + + + + +

GET_DRAWINGS

+
+

+Description: +Gets drawing attached to the sheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_DRAWINGSType Ref ToZCL_EXCEL_DRAWINGSYesDrawings collection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DRAWINGS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DRAWINGS_ITERATOR.html new file mode 100644 index 0000000..cb9da9c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_DRAWINGS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS_ITERATOR + + + + + +

GET_DRAWINGS_ITERATOR

+
+

+Description: +Get iterator for drawings collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_FREEZE_CELL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_FREEZE_CELL.html new file mode 100644 index 0000000..9d16d96 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_FREEZE_CELL.html @@ -0,0 +1,119 @@ + + + +GET_FREEZE_CELL + + + + + +

GET_FREEZE_CELL

+
+

+Description: +Gets the coordinates of cell determining freeze panes +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ROWTypeZEXCEL_CELL_ROWNoCell Row
EP_COLUMNTypeZEXCEL_CELL_COLUMNNoCell Column
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_FROM_ZIP_ARCHIVE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_FROM_ZIP_ARCHIVE.html new file mode 100644 index 0000000..38cddf2 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_FROM_ZIP_ARCHIVE.html @@ -0,0 +1,125 @@ + + + +GET_FROM_ZIP_ARCHIVE + + + + + +

GET_FROM_ZIP_ARCHIVE

+
+

+Description: +Read file from ZIP Archive +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_FILENAMETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_GUID.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_GUID.html new file mode 100644 index 0000000..5e9b3c7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_GUID.html @@ -0,0 +1,112 @@ + + + +GET_GUID + + + + + +

GET_GUID

+
+

+Description: +Get sheet guid +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_GUIDTypeOLTPGUID16YesGUID in 'RAW' format
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_HIGHEST_COLUMN.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_HIGHEST_COLUMN.html new file mode 100644 index 0000000..1288247 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_HIGHEST_COLUMN.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_COLUMN + + + + + +

GET_HIGHEST_COLUMN

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_COLUMNTypeZEXCEL_CELL_COLUMNYesCell Column
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_HIGHEST_ROW.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_HIGHEST_ROW.html new file mode 100644 index 0000000..5c87508 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_HIGHEST_ROW.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_ROW + + + + + +

GET_HIGHEST_ROW

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_ROWTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_HYPERLINKS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_HYPERLINKS_ITERATOR.html new file mode 100644 index 0000000..b800a69 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_HYPERLINKS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_ITERATOR + + + + + +

GET_HYPERLINKS_ITERATOR

+
+

+Description: +Get iterator for links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_HYPERLINKS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_HYPERLINKS_SIZE.html new file mode 100644 index 0000000..dd81de8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_HYPERLINKS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_SIZE + + + + + +

GET_HYPERLINKS_SIZE

+
+

+Description: +Gets the size of links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ID.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ID.html new file mode 100644 index 0000000..bc94249 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ID.html @@ -0,0 +1,112 @@ + + + +GET_ID + + + + + +

GET_ID

+
+

+Description: +Gets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_IDTypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ITERATOR.html new file mode 100644 index 0000000..d97edb4 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_ITERATOR + + + + + +

GET_ITERATOR

+
+

+Description: +Returns an iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_IXML_FROM_ZIP_ARCHIVE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_IXML_FROM_ZIP_ARCHIVE.html new file mode 100644 index 0000000..4586120 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_IXML_FROM_ZIP_ARCHIVE.html @@ -0,0 +1,125 @@ + + + +GET_IXML_FROM_ZIP_ARCHIVE + + + + + +

GET_IXML_FROM_ZIP_ARCHIVE

+
+

+Description: +Read file from ZIP Archive +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_FILENAMETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_IXMLType Ref ToIF_IXML_DOCUMENTYesIF_IXML_DOCUMENT
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_MERGE.html new file mode 100644 index 0000000..98a3674 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_MERGE.html @@ -0,0 +1,112 @@ + + + +GET_MERGE + + + + + +

GET_MERGE

+
+

+Description: +Get the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
MERGE_RANGETypeSTRING_TABLEYesTable of Strings
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_NAME.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_NAME.html new file mode 100644 index 0000000..b08b859 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_NAME.html @@ -0,0 +1,112 @@ + + + +GET_NAME + + + + + +

GET_NAME

+
+

+Description: +Gets the name +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_NAMETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_OUTLINE_LEVEL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_OUTLINE_LEVEL.html new file mode 100644 index 0000000..73f899f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_OUTLINE_LEVEL.html @@ -0,0 +1,112 @@ + + + +GET_OUTLINE_LEVEL + + + + + +

GET_OUTLINE_LEVEL

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_OUTLINE_LEVELTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_REFERENCE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_REFERENCE.html new file mode 100644 index 0000000..0489503 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_REFERENCE.html @@ -0,0 +1,121 @@ + + + +GET_REFERENCE + + + + + +

GET_REFERENCE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INCLUDE_TOTALS_ROWTypeABAP_BOOLABAP_TRUEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_REFERENCETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ROW_DIMENSION.html new file mode 100644 index 0000000..6690595 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ROW_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_ROW_DIMENSION + + + + + +

GET_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ROWTypeINT4YesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ROW_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ROW_DIMENSIONS.html new file mode 100644 index 0000000..ae6b7a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ROW_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_ROW_DIMENSIONS + + + + + +

GET_ROW_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONTypeZEXCEL_T_WORKSHEET_ROWDIMENSIOYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ROW_HEIGHT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ROW_HEIGHT.html new file mode 100644 index 0000000..9d64f54 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ROW_HEIGHT.html @@ -0,0 +1,112 @@ + + + +GET_ROW_HEIGHT + + + + + +

GET_ROW_HEIGHT

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_HEIGHTTypeFLOATYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ROW_INDEX.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ROW_INDEX.html new file mode 100644 index 0000000..2bc2217 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_ROW_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_ROW_INDEX + + + + + +

GET_ROW_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_SHARED_STRING_INDEX.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_SHARED_STRING_INDEX.html new file mode 100644 index 0000000..4a1f6fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_SHARED_STRING_INDEX.html @@ -0,0 +1,121 @@ + + + +GET_SHARED_STRING_INDEX + + + + + +

GET_SHARED_STRING_INDEX

+
+

+Description: +Get shared string index +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CELL_VALUETypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_INDEXTypeINT4YesNatural Number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_STRUCTURE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_STRUCTURE.html new file mode 100644 index 0000000..e612904 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_STRUCTURE.html @@ -0,0 +1,112 @@ + + + +GET_STRUCTURE + + + + + +

GET_STRUCTURE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_PROTECTIONTypeZEXCEL_S_STYLE_PROTECTIONYesProtection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_TABLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_TABLES_ITERATOR.html new file mode 100644 index 0000000..007bde7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_TABLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_ITERATOR + + + + + +

GET_TABLES_ITERATOR

+
+

+Description: +Get iterator for tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_TABLES_SIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_TABLES_SIZE.html new file mode 100644 index 0000000..a402427 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_TABLES_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_SIZE + + + + + +

GET_TABLES_SIZE

+
+

+Description: +Gets the size of tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYesSize
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_TITLE.html new file mode 100644 index 0000000..4126af5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_TITLE.html @@ -0,0 +1,121 @@ + + + +GET_TITLE + + + + + +

GET_TITLE

+
+

+Description: +Set WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ESCAPEDTypeFLAG''YesNoReturn escaped?
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_TITLETypeZEXCEL_SHEET_TITLEYesTitle
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_TOTALS_FORMULA.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_TOTALS_FORMULA.html new file mode 100644 index 0000000..fbd6259 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_TOTALS_FORMULA.html @@ -0,0 +1,130 @@ + + + +GET_TOTALS_FORMULA + + + + + +

GET_TOTALS_FORMULA

+
+

+Description: +Returns formula for totals row based on column name and fun +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeCLIKEYesNo
IP_FUNCTIONTypeZEXCEL_TABLE_TOTALS_FUNCTIONYesNoTotals function for table column (xml ST_TotalsRowFunction)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FORMULATypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_VISIBLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_VISIBLE.html new file mode 100644 index 0000000..f1c7546 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_VISIBLE.html @@ -0,0 +1,112 @@ + + + +GET_VISIBLE + + + + + +

GET_VISIBLE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_VISIBLETypeBOOLEANYesBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_WIDTH.html new file mode 100644 index 0000000..d3da96b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_WIDTH.html @@ -0,0 +1,112 @@ + + + +GET_WIDTH + + + + + +

GET_WIDTH

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeFLOATYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_XF_INDEX.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_XF_INDEX.html new file mode 100644 index 0000000..f327f59 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-GET_XF_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_XF_INDEX + + + + + +

GET_XF_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_XF_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-HAS_TOTALS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-HAS_TOTALS.html new file mode 100644 index 0000000..a5b0a92 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-HAS_TOTALS.html @@ -0,0 +1,112 @@ + + + +HAS_TOTALS + + + + + +

HAS_TOTALS

+
+

+Description: +Determines if any column has totals function +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_RESULTTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-IS_EMPTY.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-IS_EMPTY.html new file mode 100644 index 0000000..2a57772 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-IS_EMPTY.html @@ -0,0 +1,112 @@ + + + +IS_EMPTY + + + + + +

IS_EMPTY

+
+

+Description: +Checks whether elements are contained +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
IS_EMPTYTypeFLAGYesGeneral Flag
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-IS_MODIFIED.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_SHARED_STRINGS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_SHARED_STRINGS.html new file mode 100644 index 0000000..e071fcf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_SHARED_STRINGS.html @@ -0,0 +1,114 @@ + + + +LOAD_SHARED_STRINGS + + + + + +

LOAD_SHARED_STRINGS

+
+

+Description: +Loads shared strings table +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLES.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLES.html new file mode 100644 index 0000000..b944209 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLES.html @@ -0,0 +1,123 @@ + + + +LOAD_STYLES + + + + + +

LOAD_STYLES

+
+

+Description: +Loads styles +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLE_BORDERS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLE_BORDERS.html new file mode 100644 index 0000000..86006ba --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLE_BORDERS.html @@ -0,0 +1,121 @@ + + + +LOAD_STYLE_BORDERS + + + + + +

LOAD_STYLE_BORDERS

+
+

+Description: +Loads 'borders' part of styles +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XMLType Ref ToIF_IXML_DOCUMENTYesNoIF_IXML_DOCUMENT
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_BORDERSTypeT_BORDERSYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLE_FILLS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLE_FILLS.html new file mode 100644 index 0000000..3594575 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLE_FILLS.html @@ -0,0 +1,121 @@ + + + +LOAD_STYLE_FILLS + + + + + +

LOAD_STYLE_FILLS

+
+

+Description: +Loads 'fills' part of styles +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XMLType Ref ToIF_IXML_DOCUMENTYesNoIF_IXML_DOCUMENT
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FILLSTypeT_FILLSYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLE_FONTS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLE_FONTS.html new file mode 100644 index 0000000..6658ea5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLE_FONTS.html @@ -0,0 +1,121 @@ + + + +LOAD_STYLE_FONTS + + + + + +

LOAD_STYLE_FONTS

+
+

+Description: +Loads 'fonts' part of styles +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XMLType Ref ToIF_IXML_DOCUMENTYesNoIF_IXML_DOCUMENT
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FONTSTypeT_FONTSYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLE_NUM_FORMATS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLE_NUM_FORMATS.html new file mode 100644 index 0000000..9f6930b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_STYLE_NUM_FORMATS.html @@ -0,0 +1,121 @@ + + + +LOAD_STYLE_NUM_FORMATS + + + + + +

LOAD_STYLE_NUM_FORMATS

+
+

+Description: +Loads 'number format' part of styles +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XMLType Ref ToIF_IXML_DOCUMENTYesNoIF_IXML_DOCUMENT
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_NUM_FORMATSTypeT_NUM_FORMATSYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-REMOVE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-REMOVE.html new file mode 100644 index 0000000..e48e778 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-REMOVE.html @@ -0,0 +1,114 @@ + + + +REMOVE + + + + + +

REMOVE

+
+

+Description: +Deletes an Element from the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ACTIVE_SHEET_INDEX.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ACTIVE_SHEET_INDEX.html new file mode 100644 index 0000000..e30201d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ACTIVE_SHEET_INDEX.html @@ -0,0 +1,114 @@ + + + +SET_ACTIVE_SHEET_INDEX + + + + + +

SET_ACTIVE_SHEET_INDEX

+
+

+Description: +Activate worksheet by index before the CSV file creation +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_ACTIVE_WORKSHEETTypeZEXCEL_ACTIVE_WORKSHEETYesNoActive Worksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ACTIVE_SHEET_INDEX_BY_NAME.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ACTIVE_SHEET_INDEX_BY_NAME.html new file mode 100644 index 0000000..de7b761 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ACTIVE_SHEET_INDEX_BY_NAME.html @@ -0,0 +1,114 @@ + + + +SET_ACTIVE_SHEET_INDEX_BY_NAME + + + + + +

SET_ACTIVE_SHEET_INDEX_BY_NAME

+
+

+Description: +Activate worksheet by name before the CSV file creation +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_WORKSHEET_NAMETypeZEXCEL_WORKSHEETS_NAMEYesNoWorksheets name
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_AUTO_SIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_AUTO_SIZE.html new file mode 100644 index 0000000..c5ade56 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_AUTO_SIZE.html @@ -0,0 +1,121 @@ + + + +SET_AUTO_SIZE + + + + + +

SET_AUTO_SIZE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_AUTO_SIZETypeABAP_BOOLYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_CELL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_CELL.html new file mode 100644 index 0000000..09f16c5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_CELL.html @@ -0,0 +1,177 @@ + + + +SET_CELL + + + + + +

SET_CELL

+
+

+Description: +Set cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_VALUETypeSIMPLEYesNoCell Value
IP_FORMULATypeZEXCEL_CELL_FORMULAYesNoCell Formula
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
IP_HYPERLINKType Ref ToZCL_EXCEL_HYPERLINKYesNoHyperlink
IP_DATA_TYPETypeZEXCEL_CELL_DATA_TYPEYesNoCell data type
IP_ABAP_TYPETypeABAP_TYPEKINDYesNoABAP data type
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_CELL_STYLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_CELL_STYLE.html new file mode 100644 index 0000000..15c65bf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_CELL_STYLE.html @@ -0,0 +1,136 @@ + + + +SET_CELL_STYLE + + + + + +

SET_CELL_STYLE

+
+

+Description: +Set cell style +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_COLLAPSED.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_COLLAPSED.html new file mode 100644 index 0000000..4ecdf10 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_COLLAPSED.html @@ -0,0 +1,114 @@ + + + +SET_COLLAPSED + + + + + +

SET_COLLAPSED

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLLAPSEDTypeBOOLEANYesNoBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_COLUMN_INDEX.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_COLUMN_INDEX.html new file mode 100644 index 0000000..35b09fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_COLUMN_INDEX.html @@ -0,0 +1,121 @@ + + + +SET_COLUMN_INDEX + + + + + +

SET_COLUMN_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_DATA.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_DATA.html new file mode 100644 index 0000000..9d3cb84 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_DATA.html @@ -0,0 +1,114 @@ + + + +SET_DATA + + + + + +

SET_DATA

+
+

+Description: +Sets the reference to table data +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IR_DATATypeSTANDARD TABLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..f3e219f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,114 @@ + + + +SET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

SET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Sets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesNoDefault date format
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_DELIMITER.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_DELIMITER.html new file mode 100644 index 0000000..7b145da --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_DELIMITER.html @@ -0,0 +1,114 @@ + + + +SET_DELIMITER + + + + + +

SET_DELIMITER

+
+

+Description: +Set Delimiter value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeCHAR01';'YesYesDelimiter Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ENCLOSURE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ENCLOSURE.html new file mode 100644 index 0000000..3f1ef98 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ENCLOSURE.html @@ -0,0 +1,114 @@ + + + +SET_ENCLOSURE + + + + + +

SET_ENCLOSURE

+
+

+Description: +Set Enclosure character +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeCHAR01'"'YesYesText field enclosure character
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ENDOFLINE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ENDOFLINE.html new file mode 100644 index 0000000..7ea5f54 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ENDOFLINE.html @@ -0,0 +1,114 @@ + + + +SET_ENDOFLINE + + + + + +

SET_ENDOFLINE

+
+

+Description: +Set End Of Line character +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeANYCL_ABAP_CHAR_UTILITIES=>CR_LFYesYesEnd Of Line Character
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ID.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ID.html new file mode 100644 index 0000000..3d6a1c9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ID.html @@ -0,0 +1,114 @@ + + + +SET_ID + + + + + +

SET_ID

+
+

+Description: +Sets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IV_IDTypeIYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_MERGE.html new file mode 100644 index 0000000..28ab5bc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_MERGE.html @@ -0,0 +1,141 @@ + + + +SET_MERGE + + + + + +

SET_MERGE

+
+

+Description: +Set the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMN_STARTTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column Start
IP_COLUMN_ENDTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column End
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_ROW_TOTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_OUTLINE_LEVEL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_OUTLINE_LEVEL.html new file mode 100644 index 0000000..b5d09ad --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_OUTLINE_LEVEL.html @@ -0,0 +1,118 @@ + + + +SET_OUTLINE_LEVEL + + + + + +

SET_OUTLINE_LEVEL

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_OUTLINE_LEVELTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_PRINT_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_PRINT_GRIDLINES.html new file mode 100644 index 0000000..9bf6e56 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_PRINT_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_PRINT_GRIDLINES + + + + + +

SET_PRINT_GRIDLINES

+
+

+Description: +Set print gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_PRINT_GRIDLINESTypeZEXCEL_PRINT_GRIDLINESYesNoPrint Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_RANGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_RANGE.html new file mode 100644 index 0000000..fe9f9b1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_RANGE.html @@ -0,0 +1,141 @@ + + + +SET_RANGE + + + + + +

SET_RANGE

+
+

+Description: +Set range used in conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_START_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_START_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_STOP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STOP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ROW_HEIGHT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ROW_HEIGHT.html new file mode 100644 index 0000000..d1d84a9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ROW_HEIGHT.html @@ -0,0 +1,114 @@ + + + +SET_ROW_HEIGHT + + + + + +

SET_ROW_HEIGHT

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ROW_HEIGHTTypeFLOATYesNoField of type FLTP
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ROW_INDEX.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ROW_INDEX.html new file mode 100644 index 0000000..80c0ccd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_ROW_INDEX.html @@ -0,0 +1,114 @@ + + + +SET_ROW_INDEX + + + + + +

SET_ROW_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_SHOW_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_SHOW_GRIDLINES.html new file mode 100644 index 0000000..f42cb62 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_SHOW_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_GRIDLINES + + + + + +

SET_SHOW_GRIDLINES

+
+

+Description: +Set show gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_GRIDLINESTypeZEXCEL_SHOW_GRIDLINESYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_SHOW_ROWCOLHEADERS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_SHOW_ROWCOLHEADERS.html new file mode 100644 index 0000000..b365b86 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_SHOW_ROWCOLHEADERS.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_ROWCOLHEADERS + + + + + +

SET_SHOW_ROWCOLHEADERS

+
+

+Description: +Set show colum row headers +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_ROWCOLHEADERSTypeZEXCEL_SHOW_ROWCOLHEADERYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_TABLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_TABLE.html new file mode 100644 index 0000000..ef2d677 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_TABLE.html @@ -0,0 +1,159 @@ + + + +SET_TABLE + + + + + +

SET_TABLE

+
+

+Description: +Set cell value from a table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
IP_HDR_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_BODY_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_TABLE_TITLETypeSTRINGYesNo
IP_TOP_LEFT_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHA'B'YesNoCell Column
IP_TOP_LEFT_ROWTypeZEXCEL_CELL_ROW3YesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_TITLE.html new file mode 100644 index 0000000..fe9bc3e --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_TITLE.html @@ -0,0 +1,114 @@ + + + +SET_TITLE + + + + + +

SET_TITLE

+
+

+Description: +Get WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TITLETypeZEXCEL_SHEET_TITLEYesNoTitle
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_VISIBLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_VISIBLE.html new file mode 100644 index 0000000..13e1bd6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_VISIBLE.html @@ -0,0 +1,114 @@ + + + +SET_VISIBLE + + + + + +

SET_VISIBLE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VISIBLETypeBOOLEANYesNoBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_WIDTH.html new file mode 100644 index 0000000..af242fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_WIDTH.html @@ -0,0 +1,121 @@ + + + +SET_WIDTH + + + + + +

SET_WIDTH

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WIDTHTypeFLOATYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_XF_INDEX.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_XF_INDEX.html new file mode 100644 index 0000000..cb76611 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SET_XF_INDEX.html @@ -0,0 +1,114 @@ + + + +SET_XF_INDEX + + + + + +

SET_XF_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XF_INDEXTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SIZE.html new file mode 100644 index 0000000..3b298dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-SIZE.html @@ -0,0 +1,112 @@ + + + +SIZE + + + + + +

SIZE

+
+

+Description: +Specifies number of contained elements +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-UPDATE_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-UPDATE_DIMENSION_RANGE.html new file mode 100644 index 0000000..8b43dab --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-UPDATE_DIMENSION_RANGE.html @@ -0,0 +1,105 @@ + + + +UPDATE_DIMENSION_RANGE + + + + + +

UPDATE_DIMENSION_RANGE

+
+

+Description: +Update dimension range +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_READER~LOAD.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_READER~LOAD.html new file mode 100644 index 0000000..4c6a065 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_READER~LOAD.html @@ -0,0 +1,125 @@ + + + +ZIF_EXCEL_READER~LOAD + + + + + +

ZIF_EXCEL_READER~LOAD

+
+

+Description: +Loads ZCL_EXCEL from provided xstring +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_EXCEL2007TypeXSTRINGYesNoExcel 2007 data
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_EXCELType Ref ToZCL_EXCELYesExcel creator
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_READER~LOAD_FILE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_READER~LOAD_FILE.html new file mode 100644 index 0000000..1779c08 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_READER~LOAD_FILE.html @@ -0,0 +1,125 @@ + + + +ZIF_EXCEL_READER~LOAD_FILE + + + + + +

ZIF_EXCEL_READER~LOAD_FILE

+
+

+Description: +Loads ZCL_EXCEL from file +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_FILENAMETypeSTRINGYesNoFilename
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_EXCELType Ref ToZCL_EXCELYesExcel creator
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html new file mode 100644 index 0000000..792a359 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html @@ -0,0 +1,112 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE

+
+

+Description: +Set Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_STYLETypeZEXCEL_CELL_STYLEYesStyle identifier
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html new file mode 100644 index 0000000..23583c3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE

+
+

+Description: +Inizialize sheet properties +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html new file mode 100644 index 0000000..bf942bb --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE

+
+

+Description: +Get Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_STYLETypeZEXCEL_CELL_STYLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html new file mode 100644 index 0000000..c77e426 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE

+
+

+Description: +Initialize protection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html new file mode 100644 index 0000000..27f1c1d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAMETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html new file mode 100644 index 0000000..e1b86f9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAME_PRTypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_WRITER~WRITE_FILE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_WRITER~WRITE_FILE.html new file mode 100644 index 0000000..c483160 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER-ZIF_EXCEL_WRITER~WRITE_FILE.html @@ -0,0 +1,121 @@ + + + +ZIF_EXCEL_WRITER~WRITE_FILE + + + + + +

ZIF_EXCEL_WRITER~WRITE_FILE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FILETypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER.html new file mode 100644 index 0000000..45f9949 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDER.html @@ -0,0 +1,195 @@ + + + +ZCL_EXCEL_STYLE_BORDER + + + + + + +

ZCL_EXCEL_STYLE_BORDER

+
+Description: +Border +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
BORDER_STYLEInstance AttributePublicNoTypeZEXCEL_BORDERBorder style
BORDER_COLORInstance AttributePublicNoTypeZEXCEL_S_STYLE_COLORColor ARGB
C_BORDER_NONEConstantPublicNoTypeZEXCEL_BORDERBorder style'none'
C_BORDER_DASHDOTConstantPublicNoTypeZEXCEL_BORDERBorder style'dashDot'
C_BORDER_DASHDOTDOTConstantPublicNoTypeZEXCEL_BORDERBorder style'dashDotDot'
C_BORDER_DASHEDConstantPublicNoTypeZEXCEL_BORDERBorder style'dashed'
C_BORDER_DOTTEDConstantPublicNoTypeZEXCEL_BORDERBorder style'dotted'
C_BORDER_DOUBLEConstantPublicNoTypeZEXCEL_BORDERBorder style'double'
C_BORDER_HAIRConstantPublicNoTypeZEXCEL_BORDERBorder style'hair'
C_BORDER_MEDIUMConstantPublicNoTypeZEXCEL_BORDERBorder style'medium'
C_BORDER_MEDIUMDASHDOTConstantPublicNoTypeZEXCEL_BORDERBorder style'mediumDashDot'
C_BORDER_MEDIUMDASHDOTDOTConstantPublicNoTypeZEXCEL_BORDERBorder style'mediumDashDotDot'
C_BORDER_MEDIUMDASHEDConstantPublicNoTypeZEXCEL_BORDERBorder style'mediumDashed'
C_BORDER_SLANTDASHDOTConstantPublicNoTypeZEXCEL_BORDERBorder style'slantDashDot'
C_BORDER_THICKConstantPublicNoTypeZEXCEL_BORDERBorder style'thick'
C_BORDER_THINConstantPublicNoTypeZEXCEL_BORDERBorder style'thin'
+

Events:

+
+ + diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-CONSTRUCTOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-CONSTRUCTOR.html new file mode 100644 index 0000000..ffab25c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-CONSTRUCTOR.html @@ -0,0 +1,105 @@ + + + +CONSTRUCTOR + + + + + +

CONSTRUCTOR

+
+

+Description: +CONSTRUCTOR +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
ConstructorInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-GET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-GET_COLORS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-GET_STRUCTURE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-GET_STRUCTURE.html new file mode 100644 index 0000000..984ada6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-GET_STRUCTURE.html @@ -0,0 +1,112 @@ + + + +GET_STRUCTURE + + + + + +

GET_STRUCTURE

+
+

+Description: +Get structure +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
ES_FILLTypeZEXCEL_S_STYLE_BORDERYesSingle-Character Indicator
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-IS_MODIFIED.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-LOAD_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-LOAD_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-SET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS.html new file mode 100644 index 0000000..e60a319 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_BORDERS.html @@ -0,0 +1,145 @@ + + + +ZCL_EXCEL_STYLE_BORDERS + + + + + + +

ZCL_EXCEL_STYLE_BORDERS

+
+Description: +Border Style +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
ALLBORDERSInstance AttributePublicNoType Ref ToZCL_EXCEL_STYLE_BORDERBorder
C_DIAGONAL_BOTHConstantPublicNoTypeZEXCEL_DIAGONALDiagonal3
C_DIAGONAL_DOWNConstantPublicNoTypeZEXCEL_DIAGONALDiagonal2
C_DIAGONAL_NONEConstantPublicNoTypeZEXCEL_DIAGONALDiagonal0
C_DIAGONAL_UPConstantPublicNoTypeZEXCEL_DIAGONALDiagonal1
DIAGONALInstance AttributePublicNoType Ref ToZCL_EXCEL_STYLE_BORDERBorder
DIAGONAL_MODEInstance AttributePublicNoTypeZEXCEL_DIAGONALDiagonal
DOWNInstance AttributePublicNoType Ref ToZCL_EXCEL_STYLE_BORDERBorder
LEFTInstance AttributePublicNoType Ref ToZCL_EXCEL_STYLE_BORDERBorder
RIGHTInstance AttributePublicNoType Ref ToZCL_EXCEL_STYLE_BORDERBorder
TOPInstance AttributePublicNoType Ref ToZCL_EXCEL_STYLE_BORDERBorder
+

Events:

+
+ + diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-CONSTRUCTOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-CONSTRUCTOR.html new file mode 100644 index 0000000..ffab25c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-CONSTRUCTOR.html @@ -0,0 +1,105 @@ + + + +CONSTRUCTOR + + + + + +

CONSTRUCTOR

+
+

+Description: +CONSTRUCTOR +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
ConstructorInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-CREATE_NEW_ARGB.html b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-CREATE_NEW_ARGB.html new file mode 100644 index 0000000..7c423b3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-CREATE_NEW_ARGB.html @@ -0,0 +1,139 @@ + + + +CREATE_NEW_ARGB + + + + + +

CREATE_NEW_ARGB

+
+

+Description: +Create a custom ARGB color from RGB +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_REDTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_GREENTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_BLUTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLOR_ARGBTypeZEXCEL_STYLE_COLOR_ARGBYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-GET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-GET_COLORS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-GET_STRUCTURE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-GET_STRUCTURE.html new file mode 100644 index 0000000..984ada6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-GET_STRUCTURE.html @@ -0,0 +1,112 @@ + + + +GET_STRUCTURE + + + + + +

GET_STRUCTURE

+
+

+Description: +Get structure +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
ES_FILLTypeZEXCEL_S_STYLE_BORDERYesSingle-Character Indicator
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-IS_MODIFIED.html b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-LOAD_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-LOAD_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-SET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR.html new file mode 100644 index 0000000..b7ce59f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_COLOR.html @@ -0,0 +1,305 @@ + + + +ZCL_EXCEL_STYLE_COLOR + + + + + + +

ZCL_EXCEL_STYLE_COLOR

+
+Description: +Excel Style Color +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
C_ALPHAConstantPrivateNoTypeCHAR2Color Alpha'FF'
C_BLACKConstantPublicNoTypeZEXCEL_STYLE_COLOR_ARGBColor ARGB'FF000000'
C_BLUEConstantPublicNoTypeZEXCEL_STYLE_COLOR_ARGBColor ARGB'FF0000FF'
C_DARKBLUEConstantPublicNoTypeZEXCEL_STYLE_COLOR_ARGBColor ARGB'FF000080'
C_DARKGREENConstantPublicNoTypeZEXCEL_STYLE_COLOR_ARGBColor ARGB'FF008000'
C_DARKREDConstantPublicNoTypeZEXCEL_STYLE_COLOR_ARGBColor ARGB'FF800000'
C_DARKYELLOWConstantPublicNoTypeZEXCEL_STYLE_COLOR_ARGBColor ARGB'FF808000'
C_GRAYConstantPublicNoTypeZEXCEL_STYLE_COLOR_ARGBColor ARGB'FFCCCCCC'
C_GREENConstantPublicNoTypeZEXCEL_STYLE_COLOR_ARGBColor ARGB'FF00FF00'
C_REDConstantPublicNoTypeZEXCEL_STYLE_COLOR_ARGBColor ARGB'FFFF0000'
C_WHITEConstantPublicNoTypeZEXCEL_STYLE_COLOR_ARGBColor ARGB'FFFFFFFF'
C_YELLOWConstantPublicNoTypeZEXCEL_STYLE_COLOR_ARGBColor ARGB'FFFFFF00'
C_THEME_DARK1ConstantPublicNoTypeZEXCEL_STYLE_COLOR_THEMETheme Color'0'
C_THEME_LIGHT1ConstantPublicNoTypeZEXCEL_STYLE_COLOR_THEMETheme Color'1'
C_THEME_DARK2ConstantPublicNoTypeZEXCEL_STYLE_COLOR_THEMETheme Color'2'
C_THEME_LIGHT2ConstantPublicNoTypeZEXCEL_STYLE_COLOR_THEMETheme Color'3'
C_THEME_ACCENT1ConstantPublicNoTypeZEXCEL_STYLE_COLOR_THEMETheme Color'4'
C_THEME_ACCENT2ConstantPublicNoTypeZEXCEL_STYLE_COLOR_THEMETheme Color'5'
C_THEME_ACCENT3ConstantPublicNoTypeZEXCEL_STYLE_COLOR_THEMETheme Color'6'
C_THEME_ACCENT4ConstantPublicNoTypeZEXCEL_STYLE_COLOR_THEMETheme Color'7'
C_THEME_ACCENT5ConstantPublicNoTypeZEXCEL_STYLE_COLOR_THEMETheme Color'8'
C_THEME_ACCENT6ConstantPublicNoTypeZEXCEL_STYLE_COLOR_THEMETheme Color'9'
C_THEME_HYPERLINKConstantPublicNoTypeZEXCEL_STYLE_COLOR_THEMETheme Color'10'
C_THEME_HYPERLINK_FOLLOWEDConstantPublicNoTypeZEXCEL_STYLE_COLOR_THEMETheme Color'11'
C_THEME_NOT_SETConstantPublicNoTypeZEXCEL_STYLE_COLOR_THEMETheme Color - Not Set-1
C_INDEXED_NOT_SETConstantPublicNoTypeZEXCEL_STYLE_COLOR_INDEXEDIndexed color value - Not Set-1
C_INDEXED_SYS_FOREGROUNDConstantPublicNoTypeZEXCEL_STYLE_COLOR_INDEXEDIndexed color value64
+

Events:

+
+ + diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-CONSTRUCTOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-CONSTRUCTOR.html new file mode 100644 index 0000000..ffab25c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-CONSTRUCTOR.html @@ -0,0 +1,105 @@ + + + +CONSTRUCTOR + + + + + +

CONSTRUCTOR

+
+

+Description: +CONSTRUCTOR +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
ConstructorInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-CREATE_NEW_ARGB.html b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-CREATE_NEW_ARGB.html new file mode 100644 index 0000000..7c423b3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-CREATE_NEW_ARGB.html @@ -0,0 +1,139 @@ + + + +CREATE_NEW_ARGB + + + + + +

CREATE_NEW_ARGB

+
+

+Description: +Create a custom ARGB color from RGB +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_REDTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_GREENTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_BLUTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLOR_ARGBTypeZEXCEL_STYLE_COLOR_ARGBYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-GET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-GET_COLORS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-GET_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-GET_DIMENSION_RANGE.html new file mode 100644 index 0000000..9edc420 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-GET_DIMENSION_RANGE.html @@ -0,0 +1,112 @@ + + + +GET_DIMENSION_RANGE + + + + + +

GET_DIMENSION_RANGE

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DIMENSION_RANGETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-GET_STRUCTURE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-GET_STRUCTURE.html new file mode 100644 index 0000000..984ada6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-GET_STRUCTURE.html @@ -0,0 +1,112 @@ + + + +GET_STRUCTURE + + + + + +

GET_STRUCTURE

+
+

+Description: +Get structure +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
ES_FILLTypeZEXCEL_S_STYLE_BORDERYesSingle-Character Indicator
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-IS_MODIFIED.html b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-LOAD_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-LOAD_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-SET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-SET_RANGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-SET_RANGE.html new file mode 100644 index 0000000..fe9f9b1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL-SET_RANGE.html @@ -0,0 +1,141 @@ + + + +SET_RANGE + + + + + +

SET_RANGE

+
+

+Description: +Set range used in conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_START_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_START_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_STOP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STOP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL.html new file mode 100644 index 0000000..593d914 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_CONDITIONAL.html @@ -0,0 +1,505 @@ + + + +ZCL_EXCEL_STYLE_CONDITIONAL + + + + + + +

ZCL_EXCEL_STYLE_CONDITIONAL

+
+Description: +Font Style +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
C_CFVO_TYPE_FORMULAConstantPublicNoTypeZEXCEL_CONDITIONAL_TYPECondition type'formula'
C_CFVO_TYPE_NUMBERConstantPublicNoTypeZEXCEL_CONDITIONAL_TYPECondition type'num'
C_CFVO_TYPE_PERCENTConstantPublicNoTypeZEXCEL_CONDITIONAL_TYPECondition type'percent'
C_CFVO_TYPE_PERCENTILEConstantPublicNoTypeZEXCEL_CONDITIONAL_TYPECondition type'percentile'
C_ICONSET_3ARROWSConstantPublicNoTypeZEXCEL_CONDITION_RULE_ICONSETCondition rule iconset'3Arrows'
C_ICONSET_3ARROWSGRAYConstantPublicNoTypeZEXCEL_CONDITION_RULE_ICONSETCondition rule iconset'3ArrowsGray'
C_ICONSET_3FLAGSConstantPublicNoTypeZEXCEL_CONDITION_RULE_ICONSETCondition rule iconset'3Flags'
C_ICONSET_3SIGNSConstantPublicNoTypeZEXCEL_CONDITION_RULE_ICONSETCondition rule iconset'3Signs'
C_ICONSET_3SYMBOLSConstantPublicNoTypeZEXCEL_CONDITION_RULE_ICONSETCondition rule iconset'3Symbols'
C_ICONSET_3SYMBOLS2ConstantPublicNoTypeZEXCEL_CONDITION_RULE_ICONSETCondition rule iconset'3Symbols2'
C_ICONSET_3TRAFFICLIGHTSConstantPublicNoTypeZEXCEL_CONDITION_RULE_ICONSETCondition rule iconset''
C_ICONSET_3TRAFFICLIGHTS2ConstantPublicNoTypeZEXCEL_CONDITION_RULE_ICONSETCondition rule iconset'3TrafficLights2'
C_ICONSET_4ARROWSConstantPublicNoTypeZEXCEL_CONDITION_RULE_ICONSETCondition rule iconset'4Arrows'
C_ICONSET_4ARROWSGRAYConstantPublicNoTypeZEXCEL_CONDITION_RULE_ICONSETCondition rule iconset'4ArrowsGray'
C_ICONSET_4RATINGConstantPublicNoTypeZEXCEL_CONDITION_RULE_ICONSETCondition rule iconset'4Rating'
C_ICONSET_4REDTOBLACKConstantPublicNoTypeZEXCEL_CONDITION_RULE_ICONSETCondition rule iconset'4RedToBlack'
C_ICONSET_4TRAFFICLIGHTSConstantPublicNoTypeZEXCEL_CONDITION_RULE_ICONSETCondition rule iconset'4TrafficLights'
C_ICONSET_5ARROWSConstantPublicNoTypeZEXCEL_CONDITION_RULE_ICONSETCondition rule iconset'5Arrows'
C_ICONSET_5ARROWSGRAYConstantPublicNoTypeZEXCEL_CONDITION_RULE_ICONSETCondition rule iconset'5ArrowsGray'
C_ICONSET_5QUARTERSConstantPublicNoTypeZEXCEL_CONDITION_RULE_ICONSETCondition rule iconset'5Quarters'
C_ICONSET_5RATINGConstantPublicNoTypeZEXCEL_CONDITION_RULE_ICONSETCondition rule iconset'5Rating'
C_OPERATOR_BEGINSWITHConstantPublicNoTypeZEXCEL_CONDITION_OPERATORCondition operator'beginsWith'
C_OPERATOR_BETWEENConstantPublicNoTypeZEXCEL_CONDITION_OPERATORCondition operator'between'
C_OPERATOR_CONTAINSTEXTConstantPublicNoTypeZEXCEL_CONDITION_OPERATORCondition operator'containsText'
C_OPERATOR_ENDSWITHConstantPublicNoTypeZEXCEL_CONDITION_OPERATORCondition operator'endsWith'
C_OPERATOR_EQUALConstantPublicNoTypeZEXCEL_CONDITION_OPERATORCondition operator'equal'
C_OPERATOR_GREATERTHANConstantPublicNoTypeZEXCEL_CONDITION_OPERATORCondition operator'greaterThan'
C_OPERATOR_GREATERTHANOREQUALConstantPublicNoTypeZEXCEL_CONDITION_OPERATORCondition operator'greaterThanOrEqual'
C_OPERATOR_LESSTHANConstantPublicNoTypeZEXCEL_CONDITION_OPERATORCondition operator'lessThan'
C_OPERATOR_LESSTHANOREQUALConstantPublicNoTypeZEXCEL_CONDITION_OPERATORCondition operator'lessThanOrEqual'
C_OPERATOR_NONEConstantPublicNoTypeZEXCEL_CONDITION_OPERATORCondition operator''
C_OPERATOR_NOTCONTAINSConstantPublicNoTypeZEXCEL_CONDITION_OPERATORCondition operator'notContains'
C_OPERATOR_NOTEQUALConstantPublicNoTypeZEXCEL_CONDITION_OPERATORCondition operator'notEqual'
C_RULE_CELLISConstantPublicNoTypeZEXCEL_CONDITION_RULECondition rule'cellIs'
C_RULE_CONTAINSTEXTConstantPublicNoTypeZEXCEL_CONDITION_RULECondition rule'containsText'
C_RULE_EXPRESSIONConstantPublicNoTypeZEXCEL_CONDITION_RULECondition rule'expression'
C_RULE_ICONSETConstantPublicNoTypeZEXCEL_CONDITION_RULECondition rule'iconSet'
C_RULE_NONEConstantPublicNoTypeZEXCEL_CONDITION_RULECondition rule'none'
C_SHOWVALUE_FALSEConstantPublicNoTypeZEXCEL_CONDITIONAL_SHOW_VALUECondition type0
C_SHOWVALUE_TRUEConstantPublicNoTypeZEXCEL_CONDITIONAL_SHOW_VALUECondition type1
MODE_CELLISInstance AttributePublicNoTypeZEXCEL_CONDITIONAL_CELLISIconset settings
MODE_EXPRESSIONInstance AttributePublicNoTypeZEXCEL_CONDITIONAL_EXPRESSIONExpression settings
MODE_ICONSETInstance AttributePublicNoTypeZEXCEL_CONDITIONAL_ICONSETIconset settings
PRIORITYInstance AttributePublicNoTypeZEXCEL_STYLE_PRIORITYStyle Priority1
RULEInstance AttributePublicNoTypeZEXCEL_CONDITION_RULECondition rule
START_CELLInstance AttributePrivateNoTypeZEXCEL_S_CELL_DATACell data
STOP_CELLInstance AttributePrivateNoTypeZEXCEL_S_CELL_DATACell data
+

Events:

+
+ + diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-CONSTRUCTOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-CONSTRUCTOR.html new file mode 100644 index 0000000..ffab25c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-CONSTRUCTOR.html @@ -0,0 +1,105 @@ + + + +CONSTRUCTOR + + + + + +

CONSTRUCTOR

+
+

+Description: +CONSTRUCTOR +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
ConstructorInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-CREATE_NEW_ARGB.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-CREATE_NEW_ARGB.html new file mode 100644 index 0000000..7c423b3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-CREATE_NEW_ARGB.html @@ -0,0 +1,139 @@ + + + +CREATE_NEW_ARGB + + + + + +

CREATE_NEW_ARGB

+
+

+Description: +Create a custom ARGB color from RGB +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_REDTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_GREENTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_BLUTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLOR_ARGBTypeZEXCEL_STYLE_COLOR_ARGBYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-GET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-GET_COLORS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-GET_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-GET_DIMENSION_RANGE.html new file mode 100644 index 0000000..9edc420 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-GET_DIMENSION_RANGE.html @@ -0,0 +1,112 @@ + + + +GET_DIMENSION_RANGE + + + + + +

GET_DIMENSION_RANGE

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DIMENSION_RANGETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-GET_STRUCTURE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-GET_STRUCTURE.html new file mode 100644 index 0000000..d7157a6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-GET_STRUCTURE.html @@ -0,0 +1,112 @@ + + + +GET_STRUCTURE + + + + + +

GET_STRUCTURE

+
+

+Description: +Get structure +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
ES_FILLTypeZEXCEL_S_STYLE_FILLYesCell Fill
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-IS_MODIFIED.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-LOAD_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-LOAD_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-SET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-SET_RANGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-SET_RANGE.html new file mode 100644 index 0000000..fe9f9b1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL-SET_RANGE.html @@ -0,0 +1,141 @@ + + + +SET_RANGE + + + + + +

SET_RANGE

+
+

+Description: +Set range used in conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_START_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_START_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_STOP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STOP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FILL.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL.html new file mode 100644 index 0000000..3ed7c18 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FILL.html @@ -0,0 +1,285 @@ + + + +ZCL_EXCEL_STYLE_FILL + + + + + + +

ZCL_EXCEL_STYLE_FILL

+
+Description: +Fill Style +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
C_FILL_NONEConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'none'
C_FILL_SOLIDConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'solid'
C_FILL_GRADIENT_LINEARConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'linear'
C_FILL_GRADIENT_PATHConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'path'
C_FILL_PATTERN_DARKDOWNConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'darkDown'
C_FILL_PATTERN_DARKGRAYConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'darkGray'
C_FILL_PATTERN_DARKGRIDConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'darkGrid'
C_FILL_PATTERN_DARKHORIZONTALConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'darkHorizontal'
C_FILL_PATTERN_DARKTRELLISConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'darkTrellis'
C_FILL_PATTERN_DARKUPConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'darkUp'
C_FILL_PATTERN_DARKVERTICALConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'darkVertical'
C_FILL_PATTERN_GRAY0625ConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'gray0625'
C_FILL_PATTERN_GRAY125ConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'gray125'
C_FILL_PATTERN_LIGHTDOWNConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'lightDown'
C_FILL_PATTERN_LIGHTGRAYConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'lightGray'
C_FILL_PATTERN_LIGHTGRIDConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'lightGrid'
C_FILL_PATTERN_LIGHTHORIZONTALConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'lightHorizontal'
C_FILL_PATTERN_LIGHTTRELLISConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'lightTrellis'
C_FILL_PATTERN_LIGHTUPConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'lightUp'
C_FILL_PATTERN_LIGHTVERTICALConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'lightVertical'
C_FILL_PATTERN_MEDIUMGRAYConstantPublicNoTypeZEXCEL_FILL_TYPEFill Type'mediumGray'
FILLTYPEInstance AttributePublicNoTypeZEXCEL_FILL_TYPEFill Type
ROTATIONInstance AttributePublicNoTypeZEXCEL_ROTATIONRotation
FGCOLORInstance AttributePublicNoTypeZEXCEL_S_STYLE_COLORColor
BGCOLORInstance AttributePublicNoTypeZEXCEL_S_STYLE_COLORColor
+

Events:

+
+ + diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-CALCULATE_TEXT_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-CALCULATE_TEXT_WIDTH.html new file mode 100644 index 0000000..736c4dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-CALCULATE_TEXT_WIDTH.html @@ -0,0 +1,121 @@ + + + +CALCULATE_TEXT_WIDTH + + + + + +

CALCULATE_TEXT_WIDTH

+
+

+Description: +Calculate text width based on font size +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_TEXTTypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeIYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-CONSTRUCTOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-CONSTRUCTOR.html new file mode 100644 index 0000000..ffab25c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-CONSTRUCTOR.html @@ -0,0 +1,105 @@ + + + +CONSTRUCTOR + + + + + +

CONSTRUCTOR

+
+

+Description: +CONSTRUCTOR +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
ConstructorInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-CREATE_NEW_ARGB.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-CREATE_NEW_ARGB.html new file mode 100644 index 0000000..7c423b3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-CREATE_NEW_ARGB.html @@ -0,0 +1,139 @@ + + + +CREATE_NEW_ARGB + + + + + +

CREATE_NEW_ARGB

+
+

+Description: +Create a custom ARGB color from RGB +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_REDTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_GREENTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_BLUTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLOR_ARGBTypeZEXCEL_STYLE_COLOR_ARGBYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-GET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-GET_COLORS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-GET_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-GET_DIMENSION_RANGE.html new file mode 100644 index 0000000..9edc420 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-GET_DIMENSION_RANGE.html @@ -0,0 +1,112 @@ + + + +GET_DIMENSION_RANGE + + + + + +

GET_DIMENSION_RANGE

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DIMENSION_RANGETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-GET_STRUCTURE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-GET_STRUCTURE.html new file mode 100644 index 0000000..62eeea7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-GET_STRUCTURE.html @@ -0,0 +1,112 @@ + + + +GET_STRUCTURE + + + + + +

GET_STRUCTURE

+
+

+Description: +Get class as a structure +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
ES_FONTTypeZEXCEL_S_STYLE_FONTYesCell Font
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-IS_MODIFIED.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-LOAD_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-LOAD_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-SET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-SET_RANGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-SET_RANGE.html new file mode 100644 index 0000000..fe9f9b1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT-SET_RANGE.html @@ -0,0 +1,141 @@ + + + +SET_RANGE + + + + + +

SET_RANGE

+
+

+Description: +Set range used in conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_START_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_START_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_STOP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STOP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_FONT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT.html new file mode 100644 index 0000000..3dcaf97 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_FONT.html @@ -0,0 +1,315 @@ + + + +ZCL_EXCEL_STYLE_FONT + + + + + + +

ZCL_EXCEL_STYLE_FONT

+
+Description: +Font Style +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
BOLDInstance AttributePublicNoTypeFLAGBold
COLORInstance AttributePublicNoTypeZEXCEL_S_STYLE_COLORColor ARGB
C_FAMILY_DECORATIVEConstantPublicNoTypeZEXCEL_STYLE_FONT_FAMILYFont family5
C_FAMILY_MODERNConstantPublicNoTypeZEXCEL_STYLE_FONT_FAMILYFont family3
C_FAMILY_NONEConstantPublicNoTypeZEXCEL_STYLE_FONT_FAMILYFont family0
C_FAMILY_ROMANConstantPublicNoTypeZEXCEL_STYLE_FONT_FAMILYFont family1
C_FAMILY_SCRIPTConstantPublicNoTypeZEXCEL_STYLE_FONT_FAMILYFont family4
C_FAMILY_SWISSConstantPublicNoTypeZEXCEL_STYLE_FONT_FAMILYFont family2
C_NAME_ARIALConstantPublicNoTypeZEXCEL_STYLE_FONT_NAMEFont name'Arial'
C_NAME_CALIBRIConstantPublicNoTypeZEXCEL_STYLE_FONT_NAMEFont name'Calibri'
C_NAME_CAMBRIAConstantPublicNoTypeZEXCEL_STYLE_FONT_NAMEFont name'Cambria'
C_NAME_ROMANConstantPublicNoTypeZEXCEL_STYLE_FONT_NAMEFont name'Times New Roman'
C_SCHEME_MAJORConstantPublicNoTypeZEXCEL_STYLE_FONT_SCHEMEFont scheme'major'
C_SCHEME_NONEConstantPublicNoTypeZEXCEL_STYLE_FONT_SCHEMEFont scheme''
C_SCHEME_MINORConstantPublicNoTypeZEXCEL_STYLE_FONT_SCHEMEFont scheme'minor'
C_UNDERLINE_DOUBLEConstantPublicNoTypeZEXCEL_STYLE_FONT_UNDERLINEFont underline'double'
C_UNDERLINE_DOUBLEACCOUNTINGConstantPublicNoTypeZEXCEL_STYLE_FONT_UNDERLINEFont underline'doubleAccounting'
C_UNDERLINE_NONEConstantPublicNoTypeZEXCEL_STYLE_FONT_UNDERLINEFont underline'none'
C_UNDERLINE_SINGLEConstantPublicNoTypeZEXCEL_STYLE_FONT_UNDERLINEFont underline'single'
C_UNDERLINE_SINGLEACCOUNTINGConstantPublicNoTypeZEXCEL_STYLE_FONT_UNDERLINEFont underline'singleAccounting'
FAMILYInstance AttributePublicNoTypeZEXCEL_STYLE_FONT_FAMILYFont family2
ITALICInstance AttributePublicNoTypeFLAGItalic
NAMEInstance AttributePublicNoTypeZEXCEL_STYLE_FONT_NAMEFont name'Calibri'
SCHEMEInstance AttributePublicNoTypeZEXCEL_STYLE_FONT_SCHEMEScheme code'minor'
SIZEInstance AttributePublicNoTypeZEXCEL_STYLE_FONT_SIZEFont size11
STRIKETHROUGHInstance AttributePublicNoTypeFLAGStrikethrough
UNDERLINEInstance AttributePublicNoTypeFLAGUnderline
UNDERLINE_MODEInstance AttributePublicNoTypeZEXCEL_STYLE_FONT_UNDERLINEUnderline mode
+

Events:

+
+ + diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-CALCULATE_TEXT_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-CALCULATE_TEXT_WIDTH.html new file mode 100644 index 0000000..736c4dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-CALCULATE_TEXT_WIDTH.html @@ -0,0 +1,121 @@ + + + +CALCULATE_TEXT_WIDTH + + + + + +

CALCULATE_TEXT_WIDTH

+
+

+Description: +Calculate text width based on font size +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_TEXTTypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeIYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-CONSTRUCTOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-CONSTRUCTOR.html new file mode 100644 index 0000000..ffab25c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-CONSTRUCTOR.html @@ -0,0 +1,105 @@ + + + +CONSTRUCTOR + + + + + +

CONSTRUCTOR

+
+

+Description: +CONSTRUCTOR +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
ConstructorInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-CREATE_NEW_ARGB.html b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-CREATE_NEW_ARGB.html new file mode 100644 index 0000000..7c423b3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-CREATE_NEW_ARGB.html @@ -0,0 +1,139 @@ + + + +CREATE_NEW_ARGB + + + + + +

CREATE_NEW_ARGB

+
+

+Description: +Create a custom ARGB color from RGB +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_REDTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_GREENTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_BLUTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLOR_ARGBTypeZEXCEL_STYLE_COLOR_ARGBYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-GET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-GET_COLORS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-GET_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-GET_DIMENSION_RANGE.html new file mode 100644 index 0000000..9edc420 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-GET_DIMENSION_RANGE.html @@ -0,0 +1,112 @@ + + + +GET_DIMENSION_RANGE + + + + + +

GET_DIMENSION_RANGE

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DIMENSION_RANGETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-GET_STRUCTURE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-GET_STRUCTURE.html new file mode 100644 index 0000000..b60c6f4 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-GET_STRUCTURE.html @@ -0,0 +1,112 @@ + + + +GET_STRUCTURE + + + + + +

GET_STRUCTURE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_NUMBER_FORMATTypeZEXCEL_S_STYLE_NUMFMTYesNumber format
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-IS_MODIFIED.html b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-LOAD_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-LOAD_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-SET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-SET_RANGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-SET_RANGE.html new file mode 100644 index 0000000..fe9f9b1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT-SET_RANGE.html @@ -0,0 +1,141 @@ + + + +SET_RANGE + + + + + +

SET_RANGE

+
+

+Description: +Set range used in conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_START_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_START_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_STOP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STOP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT.html new file mode 100644 index 0000000..6c7f468 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_NUMBER_FORMAT.html @@ -0,0 +1,415 @@ + + + +ZCL_EXCEL_STYLE_NUMBER_FORMAT + + + + + + +

ZCL_EXCEL_STYLE_NUMBER_FORMAT

+
+Description: +Number Format Style +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
C_FORMAT_CURRENCY_EUR_SIMPLEConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'[$EUR ]#,##0.00_-'
C_FORMAT_CURRENCY_USDConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'$#,##0_-'
C_FORMAT_CURRENCY_USD_SIMPLEConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'"$"#,##0.00_-'
C_FORMAT_DATE_DATETIMEConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'd/m/y h:mm'
C_FORMAT_DATE_DDMMYYYYConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'dd/mm/yy'
C_FORMAT_DATE_DDMMYYYYDOTConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'dd\.mm\.yyyy'
C_FORMAT_DATE_DMMINUSConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'd-m'
C_FORMAT_DATE_DMYMINUSConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'd-m-y'
C_FORMAT_DATE_DMYSLASHConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'd/m/y'
C_FORMAT_DATE_MYMINUSConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'm-y'
C_FORMAT_DATE_TIME1ConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'h:mm AM/PM'
C_FORMAT_DATE_TIME2ConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'h:mm:ss AM/PM'
C_FORMAT_DATE_TIME3ConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'h:mm'
C_FORMAT_DATE_TIME4ConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'h:mm:ss'
C_FORMAT_DATE_TIME5ConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'mm:ss'
C_FORMAT_DATE_TIME6ConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'h:mm:ss'
C_FORMAT_DATE_TIME7ConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'i:s.S'
C_FORMAT_DATE_TIME8ConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'h:mm:ss@'
C_FORMAT_DATE_XLSX14ConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'mm-dd-yy'
C_FORMAT_DATE_XLSX15ConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'd-mmm-yy'
C_FORMAT_DATE_XLSX16ConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'd-mmm'
C_FORMAT_DATE_XLSX17ConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'mmm-yy'
C_FORMAT_DATE_XLSX22ConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'm/d/yy h:mm'
C_FORMAT_DATE_YYMMDDConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'yymmdd'
C_FORMAT_DATE_YYMMDDMINUSConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'yy-mm-dd'
C_FORMAT_DATE_YYMMDDSLASHConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'yy/mm/dd'
C_FORMAT_DATE_YYYYMMDDConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'yyyymmdd'
C_FORMAT_DATE_YYYYMMDDMINUSConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'yyyy-mm-dd'
C_FORMAT_DATE_YYYYMMDDSLASHConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'yyyy/mm/dd'
C_FORMAT_GENERALConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format''
C_FORMAT_NUMBERConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'0'
C_FORMAT_NUMBER_00ConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'0.00'
C_FORMAT_NUMBER_COMMA_SEP1ConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'#,##0.00'
C_FORMAT_NUMBER_COMMA_SEP2ConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'#,##0.00_-'
C_FORMAT_PERCENTAGEConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'0%'
C_FORMAT_PERCENTAGE_00ConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'0.00%'
C_FORMAT_TEXTConstantPublicNoTypeZEXCEL_NUMBER_FORMATNumber format'@'
FORMAT_CODEInstance AttributePublicNoTypeZEXCEL_NUMBER_FORMATNumber format
+

Events:

+
+ + diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-CALCULATE_TEXT_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-CALCULATE_TEXT_WIDTH.html new file mode 100644 index 0000000..736c4dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-CALCULATE_TEXT_WIDTH.html @@ -0,0 +1,121 @@ + + + +CALCULATE_TEXT_WIDTH + + + + + +

CALCULATE_TEXT_WIDTH

+
+

+Description: +Calculate text width based on font size +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_TEXTTypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeIYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-CONSTRUCTOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-CONSTRUCTOR.html new file mode 100644 index 0000000..ffab25c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-CONSTRUCTOR.html @@ -0,0 +1,105 @@ + + + +CONSTRUCTOR + + + + + +

CONSTRUCTOR

+
+

+Description: +CONSTRUCTOR +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
ConstructorInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-CREATE_NEW_ARGB.html b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-CREATE_NEW_ARGB.html new file mode 100644 index 0000000..7c423b3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-CREATE_NEW_ARGB.html @@ -0,0 +1,139 @@ + + + +CREATE_NEW_ARGB + + + + + +

CREATE_NEW_ARGB

+
+

+Description: +Create a custom ARGB color from RGB +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_REDTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_GREENTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_BLUTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLOR_ARGBTypeZEXCEL_STYLE_COLOR_ARGBYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-GET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-GET_COLORS.html b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-GET_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-GET_DIMENSION_RANGE.html new file mode 100644 index 0000000..9edc420 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-GET_DIMENSION_RANGE.html @@ -0,0 +1,112 @@ + + + +GET_DIMENSION_RANGE + + + + + +

GET_DIMENSION_RANGE

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DIMENSION_RANGETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-GET_STRUCTURE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-GET_STRUCTURE.html new file mode 100644 index 0000000..e612904 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-GET_STRUCTURE.html @@ -0,0 +1,112 @@ + + + +GET_STRUCTURE + + + + + +

GET_STRUCTURE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_PROTECTIONTypeZEXCEL_S_STYLE_PROTECTIONYesProtection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-IS_MODIFIED.html b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-LOAD_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-LOAD_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-SET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-SET_RANGE.html b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-SET_RANGE.html new file mode 100644 index 0000000..fe9f9b1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION-SET_RANGE.html @@ -0,0 +1,141 @@ + + + +SET_RANGE + + + + + +

SET_RANGE

+
+

+Description: +Set range used in conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_START_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_START_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_STOP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STOP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION.html b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION.html new file mode 100644 index 0000000..34fc412 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_STYLE_PROTECTION.html @@ -0,0 +1,95 @@ + + + +ZCL_EXCEL_STYLE_PROTECTION + + + + + + +

ZCL_EXCEL_STYLE_PROTECTION

+
+Description: +Protection Style +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
C_PROTECTION_HIDDENConstantPublicNoTypeZEXCEL_CELL_PROTECTIONProtection'1'
C_PROTECTION_LOCKEDConstantPublicNoTypeZEXCEL_CELL_PROTECTIONProtection'1'
C_PROTECTION_UNHIDDENConstantPublicNoTypeZEXCEL_CELL_PROTECTIONProtection'0'
C_PROTECTION_UNLOCKEDConstantPublicNoTypeZEXCEL_CELL_PROTECTIONProtection'0'
HIDDENInstance AttributePublicNoTypeZEXCEL_CELL_PROTECTIONProtection
LOCKEDInstance AttributePublicNoTypeZEXCEL_CELL_PROTECTIONProtection
+

Events:

+
+ + diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-CALCULATE_TEXT_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_TABLE-CALCULATE_TEXT_WIDTH.html new file mode 100644 index 0000000..736c4dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-CALCULATE_TEXT_WIDTH.html @@ -0,0 +1,121 @@ + + + +CALCULATE_TEXT_WIDTH + + + + + +

CALCULATE_TEXT_WIDTH

+
+

+Description: +Calculate text width based on font size +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_TEXTTypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeIYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-CONSTRUCTOR.html b/tools/APIDoc/ZCL_EXCEL_TABLE-CONSTRUCTOR.html new file mode 100644 index 0000000..ffab25c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-CONSTRUCTOR.html @@ -0,0 +1,105 @@ + + + +CONSTRUCTOR + + + + + +

CONSTRUCTOR

+
+

+Description: +CONSTRUCTOR +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
ConstructorInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-CREATE_NEW_ARGB.html b/tools/APIDoc/ZCL_EXCEL_TABLE-CREATE_NEW_ARGB.html new file mode 100644 index 0000000..7c423b3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-CREATE_NEW_ARGB.html @@ -0,0 +1,139 @@ + + + +CREATE_NEW_ARGB + + + + + +

CREATE_NEW_ARGB

+
+

+Description: +Create a custom ARGB color from RGB +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_REDTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_GREENTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_BLUTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLOR_ARGBTypeZEXCEL_STYLE_COLOR_ARGBYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-GET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_TABLE-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-GET_COLORS.html b/tools/APIDoc/ZCL_EXCEL_TABLE-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-GET_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_TABLE-GET_DIMENSION_RANGE.html new file mode 100644 index 0000000..9edc420 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-GET_DIMENSION_RANGE.html @@ -0,0 +1,112 @@ + + + +GET_DIMENSION_RANGE + + + + + +

GET_DIMENSION_RANGE

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DIMENSION_RANGETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-GET_ID.html b/tools/APIDoc/ZCL_EXCEL_TABLE-GET_ID.html new file mode 100644 index 0000000..bc94249 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-GET_ID.html @@ -0,0 +1,112 @@ + + + +GET_ID + + + + + +

GET_ID

+
+

+Description: +Gets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_IDTypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-GET_NAME.html b/tools/APIDoc/ZCL_EXCEL_TABLE-GET_NAME.html new file mode 100644 index 0000000..b08b859 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-GET_NAME.html @@ -0,0 +1,112 @@ + + + +GET_NAME + + + + + +

GET_NAME

+
+

+Description: +Gets the name +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_NAMETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-GET_REFERENCE.html b/tools/APIDoc/ZCL_EXCEL_TABLE-GET_REFERENCE.html new file mode 100644 index 0000000..0489503 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-GET_REFERENCE.html @@ -0,0 +1,121 @@ + + + +GET_REFERENCE + + + + + +

GET_REFERENCE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INCLUDE_TOTALS_ROWTypeABAP_BOOLABAP_TRUEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_REFERENCETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-GET_STRUCTURE.html b/tools/APIDoc/ZCL_EXCEL_TABLE-GET_STRUCTURE.html new file mode 100644 index 0000000..e612904 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-GET_STRUCTURE.html @@ -0,0 +1,112 @@ + + + +GET_STRUCTURE + + + + + +

GET_STRUCTURE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_PROTECTIONTypeZEXCEL_S_STYLE_PROTECTIONYesProtection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-GET_TOTALS_FORMULA.html b/tools/APIDoc/ZCL_EXCEL_TABLE-GET_TOTALS_FORMULA.html new file mode 100644 index 0000000..fbd6259 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-GET_TOTALS_FORMULA.html @@ -0,0 +1,130 @@ + + + +GET_TOTALS_FORMULA + + + + + +

GET_TOTALS_FORMULA

+
+

+Description: +Returns formula for totals row based on column name and fun +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeCLIKEYesNo
IP_FUNCTIONTypeZEXCEL_TABLE_TOTALS_FUNCTIONYesNoTotals function for table column (xml ST_TotalsRowFunction)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FORMULATypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-HAS_TOTALS.html b/tools/APIDoc/ZCL_EXCEL_TABLE-HAS_TOTALS.html new file mode 100644 index 0000000..a5b0a92 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-HAS_TOTALS.html @@ -0,0 +1,112 @@ + + + +HAS_TOTALS + + + + + +

HAS_TOTALS

+
+

+Description: +Determines if any column has totals function +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_RESULTTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-IS_MODIFIED.html b/tools/APIDoc/ZCL_EXCEL_TABLE-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_TABLE-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-LOAD_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_TABLE-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-LOAD_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_TABLE-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-SET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_TABLE-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-SET_DATA.html b/tools/APIDoc/ZCL_EXCEL_TABLE-SET_DATA.html new file mode 100644 index 0000000..9d3cb84 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-SET_DATA.html @@ -0,0 +1,114 @@ + + + +SET_DATA + + + + + +

SET_DATA

+
+

+Description: +Sets the reference to table data +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IR_DATATypeSTANDARD TABLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-SET_ID.html b/tools/APIDoc/ZCL_EXCEL_TABLE-SET_ID.html new file mode 100644 index 0000000..3d6a1c9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-SET_ID.html @@ -0,0 +1,114 @@ + + + +SET_ID + + + + + +

SET_ID

+
+

+Description: +Sets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IV_IDTypeIYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE-SET_RANGE.html b/tools/APIDoc/ZCL_EXCEL_TABLE-SET_RANGE.html new file mode 100644 index 0000000..fe9f9b1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE-SET_RANGE.html @@ -0,0 +1,141 @@ + + + +SET_RANGE + + + + + +

SET_RANGE

+
+

+Description: +Set range used in conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_START_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_START_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_STOP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STOP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_TABLE.html b/tools/APIDoc/ZCL_EXCEL_TABLE.html new file mode 100644 index 0000000..2e26d44 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_TABLE.html @@ -0,0 +1,315 @@ + + + +ZCL_EXCEL_TABLE + + + + + + +

ZCL_EXCEL_TABLE

+
+Description: +Represents Excel Table +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
BUILTINSTYLE_DARK1ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'TableStyleDark1'
BUILTINSTYLE_DARK2ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'TableStyleDark2'
BUILTINSTYLE_DARK3ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'TableStyleDark3'
BUILTINSTYLE_DARK4ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'TableStyleDark4'
BUILTINSTYLE_DARK5ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'TableStyleDark5'
BUILTINSTYLE_LIGHT1ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'TableStyleLight1'
BUILTINSTYLE_LIGHT2ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'TableStyleLight2'
BUILTINSTYLE_LIGHT3ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'TableStyleLight3'
BUILTINSTYLE_LIGHT4ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'TableStyleLight4'
BUILTINSTYLE_LIGHT5ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'TableStyleLight5'
BUILTINSTYLE_MEDIUM1ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'TableStyleMedium1'
BUILTINSTYLE_MEDIUM2ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'TableStyleMedium2'
BUILTINSTYLE_MEDIUM3ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'TableStyleMedium3'
BUILTINSTYLE_MEDIUM4ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'TableStyleMedium4'
BUILTINSTYLE_MEDIUM5ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'TableStyleMedium5'
BUILTINSTYLE_MEDIUM9ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'TableStyleMedium9'
BUILTINSTYLE_MEDIUM16ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'TableStyleMedium16'
BUILTINSTYLE_PIVOT_LIGHT16ConstantPublicNoTypeZEXCEL_TABLE_STYLEBuilt in table style'PivotStyleLight16'
FIELDCATInstance AttributePublicNoTypeZEXCEL_T_FIELDCATALOGfield catalog
IDInstance AttributePrivateNoTypeITable ID
NAMEInstance AttributePrivateNoTypeSTRINGA string representing the name of the table
SETTINGSInstance AttributePublicNoTypeZEXCEL_S_TABLE_SETTINGStable settings
TABLE_DATAInstance AttributePrivateNoType Ref ToDATARef to data
TOTALS_FUNCTION_AVERAGEConstantPublicNoTypeZEXCEL_TABLE_TOTALS_FUNCTIONTotals function'average'
TOTALS_FUNCTION_COUNTConstantPublicNoTypeZEXCEL_TABLE_TOTALS_FUNCTIONTotals function'count'
TOTALS_FUNCTION_MAXConstantPublicNoTypeZEXCEL_TABLE_TOTALS_FUNCTIONTotals function'max'
TOTALS_FUNCTION_MINConstantPublicNoTypeZEXCEL_TABLE_TOTALS_FUNCTIONTotals function'min'
TOTALS_FUNCTION_SUMConstantPublicNoTypeZEXCEL_TABLE_TOTALS_FUNCTIONTotals function'sum'
+

Events:

+
+ + diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ADD_DRAWING.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ADD_DRAWING.html new file mode 100644 index 0000000..b949f63 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ADD_DRAWING.html @@ -0,0 +1,114 @@ + + + +ADD_DRAWING + + + + + +

ADD_DRAWING

+
+

+Description: +Add drawing to the sheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_DRAWINGType Ref ToZCL_EXCEL_DRAWINGYesNoDrawing
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ADD_NEW_CONDITIONAL_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ADD_NEW_CONDITIONAL_STYLE.html new file mode 100644 index 0000000..7f3dd7d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ADD_NEW_CONDITIONAL_STYLE.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_CONDITIONAL_STYLE + + + + + +

ADD_NEW_CONDITIONAL_STYLE

+
+

+Description: +Creates a new conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_CONDITIONAL_STYLEType Ref ToZCL_EXCEL_STYLE_CONDITIONALYesFont Style
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ADD_NEW_DATA_VALIDATION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ADD_NEW_DATA_VALIDATION.html new file mode 100644 index 0000000..fd4c6ac --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ADD_NEW_DATA_VALIDATION.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_DATA_VALIDATION + + + + + +

ADD_NEW_DATA_VALIDATION

+
+

+Description: +Creates a new data validation +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_DATA_VALIDATIONType Ref ToZCL_EXCEL_DATA_VALIDATIONYesData validation
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-BIND_ALV.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-BIND_ALV.html new file mode 100644 index 0000000..6ff57fb --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-BIND_ALV.html @@ -0,0 +1,241 @@ + + + +BIND_ALV + + + + + +

BIND_ALV

+
+

+Description: +Set cell value from ALV object +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_DOCUMENT_URLTypeCHAR255SPACEYesNoURL of file, must start with
I_XLSTypeCSPACEYesNoExport to .xls file?
I_SAVE_PATHTypeSTRINGYesNoLocal file path
IO_ALVType Ref ToCL_GUI_ALV_GRIDYesNoALV List Viewer
IT_LISTHEADERTypeSLIS_T_LISTHEADERYesNoTop-of-page
I_TOPTypeI1YesNoTop edge of data block
I_LEFTTypeI1YesNoLeft-hand edge of data block
I_COLUMNS_HEADERTypeC'X'YesNoExport columns header?
I_COLUMNS_AUTOFITTypeC'X'YesNoAutofit columns width?
I_FORMAT_COL_HEADERTypeSOI_FORMAT_ITEMYesNoColumn header format
I_FORMAT_SUBTOTALTypeSOI_FORMAT_ITEMYesNoSubtotal lines format
I_FORMAT_TOTALTypeSOI_FORMAT_ITEMYesNoTotal line format
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExceptionShort Text
MISS_GUIDEWindows guide is missing
EX_TRANSFER_KKBLO_ERRORTransfer to KKBLO struct error
FATAL_ERROR
INV_DATA_RANGE
DIM_MISMATCH_VKEY
DIM_MISMATCH_SEMA
ERROR_IN_SEMAUn-know columns Ops, columns Typ
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-BIND_TABLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-BIND_TABLE.html new file mode 100644 index 0000000..f760734 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-BIND_TABLE.html @@ -0,0 +1,139 @@ + + + +BIND_TABLE + + + + + +

BIND_TABLE

+
+

+Description: +Set cell value from a table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
IT_FIELD_CATALOGTypeZEXCEL_T_FIELDCATALOGYesNoTable binding field catalog
IS_TABLE_SETTINGSTypeZEXCEL_S_TABLE_SETTINGSYesNoExcel table binding settings
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
ES_TABLE_SETTINGSTypeZEXCEL_S_TABLE_SETTINGSNoExcel table binding settings
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-CALCULATE_COLUMN_WIDTHS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-CALCULATE_COLUMN_WIDTHS.html new file mode 100644 index 0000000..c59f060 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-CALCULATE_COLUMN_WIDTHS.html @@ -0,0 +1,105 @@ + + + +CALCULATE_COLUMN_WIDTHS + + + + + +

CALCULATE_COLUMN_WIDTHS

+
+

+Description: +Calculate widths for auto-size columns +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-CALCULATE_TEXT_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-CALCULATE_TEXT_WIDTH.html new file mode 100644 index 0000000..736c4dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-CALCULATE_TEXT_WIDTH.html @@ -0,0 +1,121 @@ + + + +CALCULATE_TEXT_WIDTH + + + + + +

CALCULATE_TEXT_WIDTH

+
+

+Description: +Calculate text width based on font size +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_TEXTTypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeIYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-CONSTRUCTOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-CONSTRUCTOR.html new file mode 100644 index 0000000..d06b452 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-CONSTRUCTOR.html @@ -0,0 +1,123 @@ + + + +CONSTRUCTOR + + + + + +

CONSTRUCTOR

+
+

+Description: +CONSTRUCTOR +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
ConstructorInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_EXCELType Ref ToZCL_EXCELYesNoRef to parent document
IP_TITLETypeZEXCEL_SHEET_TITLEYesNoTitle
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-CREATE_NEW_ARGB.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-CREATE_NEW_ARGB.html new file mode 100644 index 0000000..7c423b3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-CREATE_NEW_ARGB.html @@ -0,0 +1,139 @@ + + + +CREATE_NEW_ARGB + + + + + +

CREATE_NEW_ARGB

+
+

+Description: +Create a custom ARGB color from RGB +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_REDTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_GREENTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_BLUTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLOR_ARGBTypeZEXCEL_STYLE_COLOR_ARGBYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-DELETE_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-DELETE_MERGE.html new file mode 100644 index 0000000..43df7e0 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-DELETE_MERGE.html @@ -0,0 +1,105 @@ + + + +DELETE_MERGE + + + + + +

DELETE_MERGE

+
+

+Description: +Delete the used merges +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-FREEZE_PANES.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-FREEZE_PANES.html new file mode 100644 index 0000000..2d6d702 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-FREEZE_PANES.html @@ -0,0 +1,127 @@ + + + +FREEZE_PANES + + + + + +

FREEZE_PANES

+
+

+Description: +Freeze panes for supplied number of rows and/or columns +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_NUM_COLUMNSTypeIYesNoNumber of columns to freeze (starting from left-most)
IP_NUM_ROWSTypeIYesNoNumber of rows to freeze (starting from top-most)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_ACTIVE_CELL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_ACTIVE_CELL.html new file mode 100644 index 0000000..bb7c123 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_ACTIVE_CELL.html @@ -0,0 +1,112 @@ + + + +GET_ACTIVE_CELL + + + + + +

GET_ACTIVE_CELL

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ACTIVE_CELLTypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_CELL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_CELL.html new file mode 100644 index 0000000..f4c3126 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_CELL.html @@ -0,0 +1,144 @@ + + + +GET_CELL + + + + + +

GET_CELL

+
+

+Description: +Get cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeZEXCEL_CELL_VALUENoCell Value
EP_RCTypeSYSUBRCNoReturn Value of ABAP Statements
EP_STYLEType Ref ToZCL_EXCEL_STYLENoStyle
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COLORS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COLUMN_DIMENSION.html new file mode 100644 index 0000000..6db5e93 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COLUMN_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_COLUMN_DIMENSION + + + + + +

GET_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COLUMN_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COLUMN_DIMENSIONS.html new file mode 100644 index 0000000..60b59e7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COLUMN_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_COLUMN_DIMENSIONS + + + + + +

GET_COLUMN_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONTypeZEXCEL_T_WORKSHEET_COLUMNDIMEYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COND_STYLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COND_STYLES_ITERATOR.html new file mode 100644 index 0000000..dc493ea --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_COND_STYLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_COND_STYLES_ITERATOR + + + + + +

GET_COND_STYLES_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DATA_VALIDATIONS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DATA_VALIDATIONS_ITERATOR.html new file mode 100644 index 0000000..94858f6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DATA_VALIDATIONS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_ITERATOR + + + + + +

GET_DATA_VALIDATIONS_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DATA_VALIDATIONS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DATA_VALIDATIONS_SIZE.html new file mode 100644 index 0000000..a67368c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DATA_VALIDATIONS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_SIZE + + + + + +

GET_DATA_VALIDATIONS_SIZE

+
+

+Description: +Get the number of data validation objects +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DEFAULT_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DEFAULT_COLUMN_DIMENSION.html new file mode 100644 index 0000000..46ee9cf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DEFAULT_COLUMN_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_COLUMN_DIMENSION + + + + + +

GET_DEFAULT_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..d51aab7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

GET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Gets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesDefault date format
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DEFAULT_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DEFAULT_ROW_DIMENSION.html new file mode 100644 index 0000000..40813a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DEFAULT_ROW_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_ROW_DIMENSION + + + + + +

GET_DEFAULT_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DIMENSION_RANGE.html new file mode 100644 index 0000000..9edc420 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DIMENSION_RANGE.html @@ -0,0 +1,112 @@ + + + +GET_DIMENSION_RANGE + + + + + +

GET_DIMENSION_RANGE

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DIMENSION_RANGETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DRAWINGS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DRAWINGS.html new file mode 100644 index 0000000..7e27efa --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DRAWINGS.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS + + + + + +

GET_DRAWINGS

+
+

+Description: +Gets drawing attached to the sheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_DRAWINGSType Ref ToZCL_EXCEL_DRAWINGSYesDrawings collection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DRAWINGS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DRAWINGS_ITERATOR.html new file mode 100644 index 0000000..cb9da9c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_DRAWINGS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS_ITERATOR + + + + + +

GET_DRAWINGS_ITERATOR

+
+

+Description: +Get iterator for drawings collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_FREEZE_CELL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_FREEZE_CELL.html new file mode 100644 index 0000000..9d16d96 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_FREEZE_CELL.html @@ -0,0 +1,119 @@ + + + +GET_FREEZE_CELL + + + + + +

GET_FREEZE_CELL

+
+

+Description: +Gets the coordinates of cell determining freeze panes +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ROWTypeZEXCEL_CELL_ROWNoCell Row
EP_COLUMNTypeZEXCEL_CELL_COLUMNNoCell Column
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_GUID.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_GUID.html new file mode 100644 index 0000000..5e9b3c7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_GUID.html @@ -0,0 +1,112 @@ + + + +GET_GUID + + + + + +

GET_GUID

+
+

+Description: +Get sheet guid +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_GUIDTypeOLTPGUID16YesGUID in 'RAW' format
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_HIGHEST_COLUMN.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_HIGHEST_COLUMN.html new file mode 100644 index 0000000..1288247 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_HIGHEST_COLUMN.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_COLUMN + + + + + +

GET_HIGHEST_COLUMN

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_COLUMNTypeZEXCEL_CELL_COLUMNYesCell Column
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_HIGHEST_ROW.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_HIGHEST_ROW.html new file mode 100644 index 0000000..5c87508 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_HIGHEST_ROW.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_ROW + + + + + +

GET_HIGHEST_ROW

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_ROWTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_HYPERLINKS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_HYPERLINKS_ITERATOR.html new file mode 100644 index 0000000..b800a69 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_HYPERLINKS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_ITERATOR + + + + + +

GET_HYPERLINKS_ITERATOR

+
+

+Description: +Get iterator for links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_HYPERLINKS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_HYPERLINKS_SIZE.html new file mode 100644 index 0000000..dd81de8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_HYPERLINKS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_SIZE + + + + + +

GET_HYPERLINKS_SIZE

+
+

+Description: +Gets the size of links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_ID.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_ID.html new file mode 100644 index 0000000..bc94249 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_ID.html @@ -0,0 +1,112 @@ + + + +GET_ID + + + + + +

GET_ID

+
+

+Description: +Gets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_IDTypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_MERGE.html new file mode 100644 index 0000000..98a3674 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_MERGE.html @@ -0,0 +1,112 @@ + + + +GET_MERGE + + + + + +

GET_MERGE

+
+

+Description: +Get the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
MERGE_RANGETypeSTRING_TABLEYesTable of Strings
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_NAME.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_NAME.html new file mode 100644 index 0000000..b08b859 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_NAME.html @@ -0,0 +1,112 @@ + + + +GET_NAME + + + + + +

GET_NAME

+
+

+Description: +Gets the name +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_NAMETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_REFERENCE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_REFERENCE.html new file mode 100644 index 0000000..0489503 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_REFERENCE.html @@ -0,0 +1,121 @@ + + + +GET_REFERENCE + + + + + +

GET_REFERENCE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INCLUDE_TOTALS_ROWTypeABAP_BOOLABAP_TRUEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_REFERENCETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_ROW_DIMENSION.html new file mode 100644 index 0000000..6690595 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_ROW_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_ROW_DIMENSION + + + + + +

GET_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ROWTypeINT4YesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_ROW_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_ROW_DIMENSIONS.html new file mode 100644 index 0000000..ae6b7a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_ROW_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_ROW_DIMENSIONS + + + + + +

GET_ROW_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONTypeZEXCEL_T_WORKSHEET_ROWDIMENSIOYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_STRUCTURE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_STRUCTURE.html new file mode 100644 index 0000000..e612904 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_STRUCTURE.html @@ -0,0 +1,112 @@ + + + +GET_STRUCTURE + + + + + +

GET_STRUCTURE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_PROTECTIONTypeZEXCEL_S_STYLE_PROTECTIONYesProtection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_TABLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_TABLES_ITERATOR.html new file mode 100644 index 0000000..007bde7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_TABLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_ITERATOR + + + + + +

GET_TABLES_ITERATOR

+
+

+Description: +Get iterator for tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_TABLES_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_TABLES_SIZE.html new file mode 100644 index 0000000..a402427 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_TABLES_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_SIZE + + + + + +

GET_TABLES_SIZE

+
+

+Description: +Gets the size of tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYesSize
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_TITLE.html new file mode 100644 index 0000000..4126af5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_TITLE.html @@ -0,0 +1,121 @@ + + + +GET_TITLE + + + + + +

GET_TITLE

+
+

+Description: +Set WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ESCAPEDTypeFLAG''YesNoReturn escaped?
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_TITLETypeZEXCEL_SHEET_TITLEYesTitle
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_TOTALS_FORMULA.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_TOTALS_FORMULA.html new file mode 100644 index 0000000..fbd6259 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-GET_TOTALS_FORMULA.html @@ -0,0 +1,130 @@ + + + +GET_TOTALS_FORMULA + + + + + +

GET_TOTALS_FORMULA

+
+

+Description: +Returns formula for totals row based on column name and fun +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeCLIKEYesNo
IP_FUNCTIONTypeZEXCEL_TABLE_TOTALS_FUNCTIONYesNoTotals function for table column (xml ST_TotalsRowFunction)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FORMULATypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-HAS_TOTALS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-HAS_TOTALS.html new file mode 100644 index 0000000..a5b0a92 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-HAS_TOTALS.html @@ -0,0 +1,112 @@ + + + +HAS_TOTALS + + + + + +

HAS_TOTALS

+
+

+Description: +Determines if any column has totals function +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_RESULTTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-IS_MODIFIED.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-LOAD_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-LOAD_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_CELL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_CELL.html new file mode 100644 index 0000000..09f16c5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_CELL.html @@ -0,0 +1,177 @@ + + + +SET_CELL + + + + + +

SET_CELL

+
+

+Description: +Set cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_VALUETypeSIMPLEYesNoCell Value
IP_FORMULATypeZEXCEL_CELL_FORMULAYesNoCell Formula
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
IP_HYPERLINKType Ref ToZCL_EXCEL_HYPERLINKYesNoHyperlink
IP_DATA_TYPETypeZEXCEL_CELL_DATA_TYPEYesNoCell data type
IP_ABAP_TYPETypeABAP_TYPEKINDYesNoABAP data type
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_CELL_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_CELL_STYLE.html new file mode 100644 index 0000000..15c65bf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_CELL_STYLE.html @@ -0,0 +1,136 @@ + + + +SET_CELL_STYLE + + + + + +

SET_CELL_STYLE

+
+

+Description: +Set cell style +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_DATA.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_DATA.html new file mode 100644 index 0000000..9d3cb84 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_DATA.html @@ -0,0 +1,114 @@ + + + +SET_DATA + + + + + +

SET_DATA

+
+

+Description: +Sets the reference to table data +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IR_DATATypeSTANDARD TABLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..f3e219f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,114 @@ + + + +SET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

SET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Sets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesNoDefault date format
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_ID.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_ID.html new file mode 100644 index 0000000..3d6a1c9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_ID.html @@ -0,0 +1,114 @@ + + + +SET_ID + + + + + +

SET_ID

+
+

+Description: +Sets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IV_IDTypeIYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_MERGE.html new file mode 100644 index 0000000..28ab5bc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_MERGE.html @@ -0,0 +1,141 @@ + + + +SET_MERGE + + + + + +

SET_MERGE

+
+

+Description: +Set the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMN_STARTTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column Start
IP_COLUMN_ENDTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column End
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_ROW_TOTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_PRINT_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_PRINT_GRIDLINES.html new file mode 100644 index 0000000..9bf6e56 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_PRINT_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_PRINT_GRIDLINES + + + + + +

SET_PRINT_GRIDLINES

+
+

+Description: +Set print gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_PRINT_GRIDLINESTypeZEXCEL_PRINT_GRIDLINESYesNoPrint Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_RANGE.html new file mode 100644 index 0000000..fe9f9b1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_RANGE.html @@ -0,0 +1,141 @@ + + + +SET_RANGE + + + + + +

SET_RANGE

+
+

+Description: +Set range used in conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_START_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_START_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_STOP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STOP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_SHOW_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_SHOW_GRIDLINES.html new file mode 100644 index 0000000..f42cb62 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_SHOW_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_GRIDLINES + + + + + +

SET_SHOW_GRIDLINES

+
+

+Description: +Set show gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_GRIDLINESTypeZEXCEL_SHOW_GRIDLINESYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_SHOW_ROWCOLHEADERS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_SHOW_ROWCOLHEADERS.html new file mode 100644 index 0000000..b365b86 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_SHOW_ROWCOLHEADERS.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_ROWCOLHEADERS + + + + + +

SET_SHOW_ROWCOLHEADERS

+
+

+Description: +Set show colum row headers +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_ROWCOLHEADERSTypeZEXCEL_SHOW_ROWCOLHEADERYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_TABLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_TABLE.html new file mode 100644 index 0000000..ef2d677 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_TABLE.html @@ -0,0 +1,159 @@ + + + +SET_TABLE + + + + + +

SET_TABLE

+
+

+Description: +Set cell value from a table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
IP_HDR_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_BODY_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_TABLE_TITLETypeSTRINGYesNo
IP_TOP_LEFT_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHA'B'YesNoCell Column
IP_TOP_LEFT_ROWTypeZEXCEL_CELL_ROW3YesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_TITLE.html new file mode 100644 index 0000000..fe9bc3e --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-SET_TITLE.html @@ -0,0 +1,114 @@ + + + +SET_TITLE + + + + + +

SET_TITLE

+
+

+Description: +Get WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TITLETypeZEXCEL_SHEET_TITLEYesNoTitle
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-UPDATE_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-UPDATE_DIMENSION_RANGE.html new file mode 100644 index 0000000..8b43dab --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-UPDATE_DIMENSION_RANGE.html @@ -0,0 +1,105 @@ + + + +UPDATE_DIMENSION_RANGE + + + + + +

UPDATE_DIMENSION_RANGE

+
+

+Description: +Update dimension range +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html new file mode 100644 index 0000000..792a359 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html @@ -0,0 +1,112 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE

+
+

+Description: +Set Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_STYLETypeZEXCEL_CELL_STYLEYesStyle identifier
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html new file mode 100644 index 0000000..23583c3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE

+
+

+Description: +Inizialize sheet properties +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html new file mode 100644 index 0000000..bf942bb --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE

+
+

+Description: +Get Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_STYLETypeZEXCEL_CELL_STYLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html new file mode 100644 index 0000000..c77e426 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE

+
+

+Description: +Initialize protection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html new file mode 100644 index 0000000..27f1c1d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAMETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html new file mode 100644 index 0000000..e1b86f9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAME_PRTypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET.html new file mode 100644 index 0000000..9d285be --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET.html @@ -0,0 +1,355 @@ + + + +ZCL_EXCEL_WORKSHEET + + + + + + +

ZCL_EXCEL_WORKSHEET

+
+Description: +Worksheet +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
ACTIVE_CELLInstance AttributePrivateNoTypeZEXCEL_S_CELL_DATAVersion Number Component
COLUMN_DIMENSIONSInstance AttributePrivateNoTypeZEXCEL_T_WORKSHEET_COLUMNDIMECollection of column dimensions
CONDITIONAL_STYLESInstance AttributePrivateNoType Ref ToZCL_EXCEL_STYLES_CONDITIONALStyles conditional collection
C_BREAK_COLUMNConstantPublicNoTypeZEXCEL_BREAKWorksheet Break2
C_BREAK_NONEConstantPublicNoTypeZEXCEL_BREAKWorksheet Break0
C_BREAK_ROWConstantPublicNoTypeZEXCEL_BREAKWorksheet Break1
C_SHEET_STATE_HIDDENConstantPublicNoTypeZEXCEL_SHEET_STATESheet state'hidden'
C_SHEET_STATE_VERYHIDDENConstantPublicNoTypeZEXCEL_SHEET_STATESheet state'veryHidden'
C_SHEET_STATE_VISIBLEConstantPublicNoTypeZEXCEL_SHEET_STATESheet state'visible'
DATA_VALIDATIONSInstance AttributePrivateNoType Ref ToZCL_EXCEL_DATA_VALIDATIONSData validations collection
DEFAULT_COLUMN_DIMENSIONInstance AttributePrivateNoType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEWorksheet ColumnDimension
DEFAULT_EXCEL_DATE_FORMATInstance AttributePrivateNoTypeZEXCEL_NUMBER_FORMATDate format used in case style is not provide for D fields
DEFAULT_ROW_DIMENSIONInstance AttributePrivateNoType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIWorksheet RowDimension
DRAWINGSInstance AttributePrivateNoType Ref ToZCL_EXCEL_DRAWINGSDrawings collection
EXCELInstance AttributePrivateNoType Ref ToZCL_EXCEL
FREEZE_PANE_CELL_COLUMNInstance AttributePrivateNoTypeZEXCEL_CELL_COLUMNCell Column
FREEZE_PANE_CELL_ROWInstance AttributePrivateNoTypeZEXCEL_CELL_ROWCell Row
GUIDInstance AttributePrivateNoTypeOLTPGUID16GUID in 'RAW' format
HYPERLINKSInstance AttributePrivateNoType Ref ToCL_OBJECT_COLLECTIONColletion of hyperlinks
LOWER_CELLInstance AttributePrivateNoTypeZEXCEL_S_CELL_DATABottom right range cell
PRINT_GRIDLINESInstance AttributePublicYesTypeZEXCEL_PRINT_GRIDLINESPrint GridlinesABAP_FALSE
ROW_DIMENSIONSInstance AttributePrivateNoTypeZEXCEL_T_WORKSHEET_ROWDIMENSIOCollection of row dimensions
SHEET_CONTENTInstance AttributePublicNoTypeZEXCEL_T_CELL_DATAExcel worksheet content
SHEET_CONTENT_MERGEInstance AttributePublicNoTypeZEXCEL_T_CELL_DATA_UNSORTEDExcel worksheet content
SHEET_SETUPInstance AttributePublicNoType Ref ToZCL_EXCEL_SHEET_SETUPSheet setup
SHEET_STATEInstance AttributePublicNoTypeZEXCEL_SHEET_STATESheet state
SHOW_GRIDLINESInstance AttributePublicYesTypeZEXCEL_SHOW_GRIDLINESShow GridlinesABAP_TRUE
SHOW_ROWCOLHEADERSInstance AttributePublicYesTypeZEXCEL_SHOW_GRIDLINESShow GridlinesABAP_TRUE
STYLESInstance AttributePublicNoTypeZEXCEL_T_SHEET_STYLESheet style table type
TABLESInstance AttributePrivateNoType Ref ToCL_OBJECT_COLLECTIONColletion of tables
TITLEInstance AttributePrivateNoTypeZEXCEL_SHEET_TITLETitle'Worksheet'
UPPER_CELLInstance AttributePrivateNoTypeZEXCEL_S_CELL_DATATop left range cell
+

Events:

+
+ + diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ADD.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ADD.html new file mode 100644 index 0000000..95b5747 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ADD.html @@ -0,0 +1,114 @@ + + + +ADD + + + + + +

ADD

+
+

+Description: +Adds an Element to the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ADD_DRAWING.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ADD_DRAWING.html new file mode 100644 index 0000000..b949f63 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ADD_DRAWING.html @@ -0,0 +1,114 @@ + + + +ADD_DRAWING + + + + + +

ADD_DRAWING

+
+

+Description: +Add drawing to the sheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_DRAWINGType Ref ToZCL_EXCEL_DRAWINGYesNoDrawing
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ADD_NEW_CONDITIONAL_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ADD_NEW_CONDITIONAL_STYLE.html new file mode 100644 index 0000000..7f3dd7d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ADD_NEW_CONDITIONAL_STYLE.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_CONDITIONAL_STYLE + + + + + +

ADD_NEW_CONDITIONAL_STYLE

+
+

+Description: +Creates a new conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_CONDITIONAL_STYLEType Ref ToZCL_EXCEL_STYLE_CONDITIONALYesFont Style
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ADD_NEW_DATA_VALIDATION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ADD_NEW_DATA_VALIDATION.html new file mode 100644 index 0000000..fd4c6ac --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ADD_NEW_DATA_VALIDATION.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_DATA_VALIDATION + + + + + +

ADD_NEW_DATA_VALIDATION

+
+

+Description: +Creates a new data validation +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_DATA_VALIDATIONType Ref ToZCL_EXCEL_DATA_VALIDATIONYesData validation
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-BIND_ALV.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-BIND_ALV.html new file mode 100644 index 0000000..6ff57fb --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-BIND_ALV.html @@ -0,0 +1,241 @@ + + + +BIND_ALV + + + + + +

BIND_ALV

+
+

+Description: +Set cell value from ALV object +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_DOCUMENT_URLTypeCHAR255SPACEYesNoURL of file, must start with
I_XLSTypeCSPACEYesNoExport to .xls file?
I_SAVE_PATHTypeSTRINGYesNoLocal file path
IO_ALVType Ref ToCL_GUI_ALV_GRIDYesNoALV List Viewer
IT_LISTHEADERTypeSLIS_T_LISTHEADERYesNoTop-of-page
I_TOPTypeI1YesNoTop edge of data block
I_LEFTTypeI1YesNoLeft-hand edge of data block
I_COLUMNS_HEADERTypeC'X'YesNoExport columns header?
I_COLUMNS_AUTOFITTypeC'X'YesNoAutofit columns width?
I_FORMAT_COL_HEADERTypeSOI_FORMAT_ITEMYesNoColumn header format
I_FORMAT_SUBTOTALTypeSOI_FORMAT_ITEMYesNoSubtotal lines format
I_FORMAT_TOTALTypeSOI_FORMAT_ITEMYesNoTotal line format
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExceptionShort Text
MISS_GUIDEWindows guide is missing
EX_TRANSFER_KKBLO_ERRORTransfer to KKBLO struct error
FATAL_ERROR
INV_DATA_RANGE
DIM_MISMATCH_VKEY
DIM_MISMATCH_SEMA
ERROR_IN_SEMAUn-know columns Ops, columns Typ
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-BIND_TABLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-BIND_TABLE.html new file mode 100644 index 0000000..f760734 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-BIND_TABLE.html @@ -0,0 +1,139 @@ + + + +BIND_TABLE + + + + + +

BIND_TABLE

+
+

+Description: +Set cell value from a table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
IT_FIELD_CATALOGTypeZEXCEL_T_FIELDCATALOGYesNoTable binding field catalog
IS_TABLE_SETTINGSTypeZEXCEL_S_TABLE_SETTINGSYesNoExcel table binding settings
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
ES_TABLE_SETTINGSTypeZEXCEL_S_TABLE_SETTINGSNoExcel table binding settings
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CALCULATE_COLUMN_WIDTHS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CALCULATE_COLUMN_WIDTHS.html new file mode 100644 index 0000000..c59f060 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CALCULATE_COLUMN_WIDTHS.html @@ -0,0 +1,105 @@ + + + +CALCULATE_COLUMN_WIDTHS + + + + + +

CALCULATE_COLUMN_WIDTHS

+
+

+Description: +Calculate widths for auto-size columns +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CALCULATE_TEXT_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CALCULATE_TEXT_WIDTH.html new file mode 100644 index 0000000..736c4dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CALCULATE_TEXT_WIDTH.html @@ -0,0 +1,121 @@ + + + +CALCULATE_TEXT_WIDTH + + + + + +

CALCULATE_TEXT_WIDTH

+
+

+Description: +Calculate text width based on font size +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_TEXTTypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeIYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CLEAR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CLEAR.html new file mode 100644 index 0000000..5653d6c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CLEAR.html @@ -0,0 +1,105 @@ + + + +CLEAR + + + + + +

CLEAR

+
+

+Description: +Initializes the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CONSTRUCTOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CONSTRUCTOR.html new file mode 100644 index 0000000..ffab25c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CONSTRUCTOR.html @@ -0,0 +1,105 @@ + + + +CONSTRUCTOR + + + + + +

CONSTRUCTOR

+
+

+Description: +CONSTRUCTOR +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
ConstructorInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CREATE_NEW_ARGB.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CREATE_NEW_ARGB.html new file mode 100644 index 0000000..7c423b3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-CREATE_NEW_ARGB.html @@ -0,0 +1,139 @@ + + + +CREATE_NEW_ARGB + + + + + +

CREATE_NEW_ARGB

+
+

+Description: +Create a custom ARGB color from RGB +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_REDTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_GREENTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_BLUTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLOR_ARGBTypeZEXCEL_STYLE_COLOR_ARGBYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-DELETE_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-DELETE_MERGE.html new file mode 100644 index 0000000..43df7e0 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-DELETE_MERGE.html @@ -0,0 +1,105 @@ + + + +DELETE_MERGE + + + + + +

DELETE_MERGE

+
+

+Description: +Delete the used merges +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-FREEZE_PANES.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-FREEZE_PANES.html new file mode 100644 index 0000000..2d6d702 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-FREEZE_PANES.html @@ -0,0 +1,127 @@ + + + +FREEZE_PANES + + + + + +

FREEZE_PANES

+
+

+Description: +Freeze panes for supplied number of rows and/or columns +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_NUM_COLUMNSTypeIYesNoNumber of columns to freeze (starting from left-most)
IP_NUM_ROWSTypeIYesNoNumber of rows to freeze (starting from top-most)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET.html new file mode 100644 index 0000000..a3e1019 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET.html @@ -0,0 +1,121 @@ + + + +GET + + + + + +

GET

+
+

+Description: +Gets Element +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeZEXCEL_ACTIVE_WORKSHEETYesNoActive Worksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesWorksheet
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ACTIVE_CELL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ACTIVE_CELL.html new file mode 100644 index 0000000..bb7c123 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ACTIVE_CELL.html @@ -0,0 +1,112 @@ + + + +GET_ACTIVE_CELL + + + + + +

GET_ACTIVE_CELL

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ACTIVE_CELLTypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_CELL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_CELL.html new file mode 100644 index 0000000..f4c3126 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_CELL.html @@ -0,0 +1,144 @@ + + + +GET_CELL + + + + + +

GET_CELL

+
+

+Description: +Get cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeZEXCEL_CELL_VALUENoCell Value
EP_RCTypeSYSUBRCNoReturn Value of ABAP Statements
EP_STYLEType Ref ToZCL_EXCEL_STYLENoStyle
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COLORS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COLUMN_DIMENSION.html new file mode 100644 index 0000000..6db5e93 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COLUMN_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_COLUMN_DIMENSION + + + + + +

GET_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COLUMN_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COLUMN_DIMENSIONS.html new file mode 100644 index 0000000..60b59e7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COLUMN_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_COLUMN_DIMENSIONS + + + + + +

GET_COLUMN_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONTypeZEXCEL_T_WORKSHEET_COLUMNDIMEYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COND_STYLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COND_STYLES_ITERATOR.html new file mode 100644 index 0000000..dc493ea --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_COND_STYLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_COND_STYLES_ITERATOR + + + + + +

GET_COND_STYLES_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DATA_VALIDATIONS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DATA_VALIDATIONS_ITERATOR.html new file mode 100644 index 0000000..94858f6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DATA_VALIDATIONS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_ITERATOR + + + + + +

GET_DATA_VALIDATIONS_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DATA_VALIDATIONS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DATA_VALIDATIONS_SIZE.html new file mode 100644 index 0000000..a67368c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DATA_VALIDATIONS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_SIZE + + + + + +

GET_DATA_VALIDATIONS_SIZE

+
+

+Description: +Get the number of data validation objects +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DEFAULT_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DEFAULT_COLUMN_DIMENSION.html new file mode 100644 index 0000000..46ee9cf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DEFAULT_COLUMN_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_COLUMN_DIMENSION + + + + + +

GET_DEFAULT_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..d51aab7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

GET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Gets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesDefault date format
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DEFAULT_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DEFAULT_ROW_DIMENSION.html new file mode 100644 index 0000000..40813a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DEFAULT_ROW_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_ROW_DIMENSION + + + + + +

GET_DEFAULT_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DIMENSION_RANGE.html new file mode 100644 index 0000000..9edc420 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DIMENSION_RANGE.html @@ -0,0 +1,112 @@ + + + +GET_DIMENSION_RANGE + + + + + +

GET_DIMENSION_RANGE

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DIMENSION_RANGETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DRAWINGS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DRAWINGS.html new file mode 100644 index 0000000..7e27efa --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DRAWINGS.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS + + + + + +

GET_DRAWINGS

+
+

+Description: +Gets drawing attached to the sheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_DRAWINGSType Ref ToZCL_EXCEL_DRAWINGSYesDrawings collection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DRAWINGS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DRAWINGS_ITERATOR.html new file mode 100644 index 0000000..cb9da9c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_DRAWINGS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS_ITERATOR + + + + + +

GET_DRAWINGS_ITERATOR

+
+

+Description: +Get iterator for drawings collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_FREEZE_CELL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_FREEZE_CELL.html new file mode 100644 index 0000000..9d16d96 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_FREEZE_CELL.html @@ -0,0 +1,119 @@ + + + +GET_FREEZE_CELL + + + + + +

GET_FREEZE_CELL

+
+

+Description: +Gets the coordinates of cell determining freeze panes +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ROWTypeZEXCEL_CELL_ROWNoCell Row
EP_COLUMNTypeZEXCEL_CELL_COLUMNNoCell Column
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_GUID.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_GUID.html new file mode 100644 index 0000000..5e9b3c7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_GUID.html @@ -0,0 +1,112 @@ + + + +GET_GUID + + + + + +

GET_GUID

+
+

+Description: +Get sheet guid +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_GUIDTypeOLTPGUID16YesGUID in 'RAW' format
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_HIGHEST_COLUMN.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_HIGHEST_COLUMN.html new file mode 100644 index 0000000..1288247 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_HIGHEST_COLUMN.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_COLUMN + + + + + +

GET_HIGHEST_COLUMN

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_COLUMNTypeZEXCEL_CELL_COLUMNYesCell Column
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_HIGHEST_ROW.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_HIGHEST_ROW.html new file mode 100644 index 0000000..5c87508 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_HIGHEST_ROW.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_ROW + + + + + +

GET_HIGHEST_ROW

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_ROWTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_HYPERLINKS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_HYPERLINKS_ITERATOR.html new file mode 100644 index 0000000..b800a69 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_HYPERLINKS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_ITERATOR + + + + + +

GET_HYPERLINKS_ITERATOR

+
+

+Description: +Get iterator for links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_HYPERLINKS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_HYPERLINKS_SIZE.html new file mode 100644 index 0000000..dd81de8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_HYPERLINKS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_SIZE + + + + + +

GET_HYPERLINKS_SIZE

+
+

+Description: +Gets the size of links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ID.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ID.html new file mode 100644 index 0000000..bc94249 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ID.html @@ -0,0 +1,112 @@ + + + +GET_ID + + + + + +

GET_ID

+
+

+Description: +Gets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_IDTypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ITERATOR.html new file mode 100644 index 0000000..d97edb4 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_ITERATOR + + + + + +

GET_ITERATOR

+
+

+Description: +Returns an iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_MERGE.html new file mode 100644 index 0000000..98a3674 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_MERGE.html @@ -0,0 +1,112 @@ + + + +GET_MERGE + + + + + +

GET_MERGE

+
+

+Description: +Get the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
MERGE_RANGETypeSTRING_TABLEYesTable of Strings
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_NAME.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_NAME.html new file mode 100644 index 0000000..b08b859 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_NAME.html @@ -0,0 +1,112 @@ + + + +GET_NAME + + + + + +

GET_NAME

+
+

+Description: +Gets the name +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_NAMETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_REFERENCE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_REFERENCE.html new file mode 100644 index 0000000..0489503 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_REFERENCE.html @@ -0,0 +1,121 @@ + + + +GET_REFERENCE + + + + + +

GET_REFERENCE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INCLUDE_TOTALS_ROWTypeABAP_BOOLABAP_TRUEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_REFERENCETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ROW_DIMENSION.html new file mode 100644 index 0000000..6690595 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ROW_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_ROW_DIMENSION + + + + + +

GET_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ROWTypeINT4YesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ROW_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ROW_DIMENSIONS.html new file mode 100644 index 0000000..ae6b7a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_ROW_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_ROW_DIMENSIONS + + + + + +

GET_ROW_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONTypeZEXCEL_T_WORKSHEET_ROWDIMENSIOYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_STRUCTURE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_STRUCTURE.html new file mode 100644 index 0000000..e612904 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_STRUCTURE.html @@ -0,0 +1,112 @@ + + + +GET_STRUCTURE + + + + + +

GET_STRUCTURE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_PROTECTIONTypeZEXCEL_S_STYLE_PROTECTIONYesProtection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_TABLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_TABLES_ITERATOR.html new file mode 100644 index 0000000..007bde7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_TABLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_ITERATOR + + + + + +

GET_TABLES_ITERATOR

+
+

+Description: +Get iterator for tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_TABLES_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_TABLES_SIZE.html new file mode 100644 index 0000000..a402427 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_TABLES_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_SIZE + + + + + +

GET_TABLES_SIZE

+
+

+Description: +Gets the size of tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYesSize
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_TITLE.html new file mode 100644 index 0000000..4126af5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_TITLE.html @@ -0,0 +1,121 @@ + + + +GET_TITLE + + + + + +

GET_TITLE

+
+

+Description: +Set WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ESCAPEDTypeFLAG''YesNoReturn escaped?
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_TITLETypeZEXCEL_SHEET_TITLEYesTitle
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_TOTALS_FORMULA.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_TOTALS_FORMULA.html new file mode 100644 index 0000000..fbd6259 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-GET_TOTALS_FORMULA.html @@ -0,0 +1,130 @@ + + + +GET_TOTALS_FORMULA + + + + + +

GET_TOTALS_FORMULA

+
+

+Description: +Returns formula for totals row based on column name and fun +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeCLIKEYesNo
IP_FUNCTIONTypeZEXCEL_TABLE_TOTALS_FUNCTIONYesNoTotals function for table column (xml ST_TotalsRowFunction)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FORMULATypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-HAS_TOTALS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-HAS_TOTALS.html new file mode 100644 index 0000000..a5b0a92 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-HAS_TOTALS.html @@ -0,0 +1,112 @@ + + + +HAS_TOTALS + + + + + +

HAS_TOTALS

+
+

+Description: +Determines if any column has totals function +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_RESULTTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-IS_EMPTY.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-IS_EMPTY.html new file mode 100644 index 0000000..2a57772 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-IS_EMPTY.html @@ -0,0 +1,112 @@ + + + +IS_EMPTY + + + + + +

IS_EMPTY

+
+

+Description: +Checks whether elements are contained +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
IS_EMPTYTypeFLAGYesGeneral Flag
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-IS_MODIFIED.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-LOAD_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-LOAD_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-REMOVE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-REMOVE.html new file mode 100644 index 0000000..e48e778 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-REMOVE.html @@ -0,0 +1,114 @@ + + + +REMOVE + + + + + +

REMOVE

+
+

+Description: +Deletes an Element from the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_CELL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_CELL.html new file mode 100644 index 0000000..09f16c5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_CELL.html @@ -0,0 +1,177 @@ + + + +SET_CELL + + + + + +

SET_CELL

+
+

+Description: +Set cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_VALUETypeSIMPLEYesNoCell Value
IP_FORMULATypeZEXCEL_CELL_FORMULAYesNoCell Formula
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
IP_HYPERLINKType Ref ToZCL_EXCEL_HYPERLINKYesNoHyperlink
IP_DATA_TYPETypeZEXCEL_CELL_DATA_TYPEYesNoCell data type
IP_ABAP_TYPETypeABAP_TYPEKINDYesNoABAP data type
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_CELL_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_CELL_STYLE.html new file mode 100644 index 0000000..15c65bf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_CELL_STYLE.html @@ -0,0 +1,136 @@ + + + +SET_CELL_STYLE + + + + + +

SET_CELL_STYLE

+
+

+Description: +Set cell style +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_DATA.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_DATA.html new file mode 100644 index 0000000..9d3cb84 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_DATA.html @@ -0,0 +1,114 @@ + + + +SET_DATA + + + + + +

SET_DATA

+
+

+Description: +Sets the reference to table data +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IR_DATATypeSTANDARD TABLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..f3e219f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,114 @@ + + + +SET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

SET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Sets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesNoDefault date format
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_ID.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_ID.html new file mode 100644 index 0000000..3d6a1c9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_ID.html @@ -0,0 +1,114 @@ + + + +SET_ID + + + + + +

SET_ID

+
+

+Description: +Sets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IV_IDTypeIYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_MERGE.html new file mode 100644 index 0000000..28ab5bc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_MERGE.html @@ -0,0 +1,141 @@ + + + +SET_MERGE + + + + + +

SET_MERGE

+
+

+Description: +Set the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMN_STARTTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column Start
IP_COLUMN_ENDTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column End
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_ROW_TOTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_PRINT_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_PRINT_GRIDLINES.html new file mode 100644 index 0000000..9bf6e56 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_PRINT_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_PRINT_GRIDLINES + + + + + +

SET_PRINT_GRIDLINES

+
+

+Description: +Set print gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_PRINT_GRIDLINESTypeZEXCEL_PRINT_GRIDLINESYesNoPrint Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_RANGE.html new file mode 100644 index 0000000..fe9f9b1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_RANGE.html @@ -0,0 +1,141 @@ + + + +SET_RANGE + + + + + +

SET_RANGE

+
+

+Description: +Set range used in conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_START_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_START_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_STOP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STOP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_SHOW_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_SHOW_GRIDLINES.html new file mode 100644 index 0000000..f42cb62 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_SHOW_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_GRIDLINES + + + + + +

SET_SHOW_GRIDLINES

+
+

+Description: +Set show gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_GRIDLINESTypeZEXCEL_SHOW_GRIDLINESYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_SHOW_ROWCOLHEADERS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_SHOW_ROWCOLHEADERS.html new file mode 100644 index 0000000..b365b86 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_SHOW_ROWCOLHEADERS.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_ROWCOLHEADERS + + + + + +

SET_SHOW_ROWCOLHEADERS

+
+

+Description: +Set show colum row headers +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_ROWCOLHEADERSTypeZEXCEL_SHOW_ROWCOLHEADERYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_TABLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_TABLE.html new file mode 100644 index 0000000..ef2d677 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_TABLE.html @@ -0,0 +1,159 @@ + + + +SET_TABLE + + + + + +

SET_TABLE

+
+

+Description: +Set cell value from a table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
IP_HDR_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_BODY_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_TABLE_TITLETypeSTRINGYesNo
IP_TOP_LEFT_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHA'B'YesNoCell Column
IP_TOP_LEFT_ROWTypeZEXCEL_CELL_ROW3YesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_TITLE.html new file mode 100644 index 0000000..fe9bc3e --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SET_TITLE.html @@ -0,0 +1,114 @@ + + + +SET_TITLE + + + + + +

SET_TITLE

+
+

+Description: +Get WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TITLETypeZEXCEL_SHEET_TITLEYesNoTitle
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SIZE.html new file mode 100644 index 0000000..3b298dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-SIZE.html @@ -0,0 +1,112 @@ + + + +SIZE + + + + + +

SIZE

+
+

+Description: +Specifies number of contained elements +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-UPDATE_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-UPDATE_DIMENSION_RANGE.html new file mode 100644 index 0000000..8b43dab --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-UPDATE_DIMENSION_RANGE.html @@ -0,0 +1,105 @@ + + + +UPDATE_DIMENSION_RANGE + + + + + +

UPDATE_DIMENSION_RANGE

+
+

+Description: +Update dimension range +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html new file mode 100644 index 0000000..792a359 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html @@ -0,0 +1,112 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE

+
+

+Description: +Set Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_STYLETypeZEXCEL_CELL_STYLEYesStyle identifier
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html new file mode 100644 index 0000000..23583c3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE

+
+

+Description: +Inizialize sheet properties +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html new file mode 100644 index 0000000..bf942bb --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE

+
+

+Description: +Get Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_STYLETypeZEXCEL_CELL_STYLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html new file mode 100644 index 0000000..c77e426 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE

+
+

+Description: +Initialize protection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html new file mode 100644 index 0000000..27f1c1d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAMETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html new file mode 100644 index 0000000..e1b86f9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAME_PRTypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEETS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS.html new file mode 100644 index 0000000..be297df --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEETS.html @@ -0,0 +1,65 @@ + + + +ZCL_EXCEL_WORKSHEETS + + + + + + +

ZCL_EXCEL_WORKSHEETS

+
+Description: +Worksheets collection +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
ACTIVE_WORKSHEETInstance AttributePublicNoTypeZEXCEL_ACTIVE_WORKSHEETActive Worksheet1
NAMEInstance AttributePublicNoTypeZEXCEL_WORKSHEETS_NAMEWorksheets name'Worksheets'
WORKSHEETSInstance AttributePrivateNoType Ref ToCL_OBJECT_COLLECTION
+

Events:

+
+ + diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ADD.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ADD.html new file mode 100644 index 0000000..95b5747 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ADD.html @@ -0,0 +1,114 @@ + + + +ADD + + + + + +

ADD

+
+

+Description: +Adds an Element to the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ADD_DRAWING.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ADD_DRAWING.html new file mode 100644 index 0000000..b949f63 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ADD_DRAWING.html @@ -0,0 +1,114 @@ + + + +ADD_DRAWING + + + + + +

ADD_DRAWING

+
+

+Description: +Add drawing to the sheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_DRAWINGType Ref ToZCL_EXCEL_DRAWINGYesNoDrawing
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ADD_NEW_CONDITIONAL_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ADD_NEW_CONDITIONAL_STYLE.html new file mode 100644 index 0000000..7f3dd7d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ADD_NEW_CONDITIONAL_STYLE.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_CONDITIONAL_STYLE + + + + + +

ADD_NEW_CONDITIONAL_STYLE

+
+

+Description: +Creates a new conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_CONDITIONAL_STYLEType Ref ToZCL_EXCEL_STYLE_CONDITIONALYesFont Style
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ADD_NEW_DATA_VALIDATION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ADD_NEW_DATA_VALIDATION.html new file mode 100644 index 0000000..fd4c6ac --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ADD_NEW_DATA_VALIDATION.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_DATA_VALIDATION + + + + + +

ADD_NEW_DATA_VALIDATION

+
+

+Description: +Creates a new data validation +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_DATA_VALIDATIONType Ref ToZCL_EXCEL_DATA_VALIDATIONYesData validation
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-BIND_ALV.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-BIND_ALV.html new file mode 100644 index 0000000..6ff57fb --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-BIND_ALV.html @@ -0,0 +1,241 @@ + + + +BIND_ALV + + + + + +

BIND_ALV

+
+

+Description: +Set cell value from ALV object +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_DOCUMENT_URLTypeCHAR255SPACEYesNoURL of file, must start with
I_XLSTypeCSPACEYesNoExport to .xls file?
I_SAVE_PATHTypeSTRINGYesNoLocal file path
IO_ALVType Ref ToCL_GUI_ALV_GRIDYesNoALV List Viewer
IT_LISTHEADERTypeSLIS_T_LISTHEADERYesNoTop-of-page
I_TOPTypeI1YesNoTop edge of data block
I_LEFTTypeI1YesNoLeft-hand edge of data block
I_COLUMNS_HEADERTypeC'X'YesNoExport columns header?
I_COLUMNS_AUTOFITTypeC'X'YesNoAutofit columns width?
I_FORMAT_COL_HEADERTypeSOI_FORMAT_ITEMYesNoColumn header format
I_FORMAT_SUBTOTALTypeSOI_FORMAT_ITEMYesNoSubtotal lines format
I_FORMAT_TOTALTypeSOI_FORMAT_ITEMYesNoTotal line format
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExceptionShort Text
MISS_GUIDEWindows guide is missing
EX_TRANSFER_KKBLO_ERRORTransfer to KKBLO struct error
FATAL_ERROR
INV_DATA_RANGE
DIM_MISMATCH_VKEY
DIM_MISMATCH_SEMA
ERROR_IN_SEMAUn-know columns Ops, columns Typ
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-BIND_TABLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-BIND_TABLE.html new file mode 100644 index 0000000..f760734 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-BIND_TABLE.html @@ -0,0 +1,139 @@ + + + +BIND_TABLE + + + + + +

BIND_TABLE

+
+

+Description: +Set cell value from a table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
IT_FIELD_CATALOGTypeZEXCEL_T_FIELDCATALOGYesNoTable binding field catalog
IS_TABLE_SETTINGSTypeZEXCEL_S_TABLE_SETTINGSYesNoExcel table binding settings
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
ES_TABLE_SETTINGSTypeZEXCEL_S_TABLE_SETTINGSNoExcel table binding settings
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CALCULATE_COLUMN_WIDTHS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CALCULATE_COLUMN_WIDTHS.html new file mode 100644 index 0000000..c59f060 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CALCULATE_COLUMN_WIDTHS.html @@ -0,0 +1,105 @@ + + + +CALCULATE_COLUMN_WIDTHS + + + + + +

CALCULATE_COLUMN_WIDTHS

+
+

+Description: +Calculate widths for auto-size columns +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CALCULATE_TEXT_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CALCULATE_TEXT_WIDTH.html new file mode 100644 index 0000000..736c4dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CALCULATE_TEXT_WIDTH.html @@ -0,0 +1,121 @@ + + + +CALCULATE_TEXT_WIDTH + + + + + +

CALCULATE_TEXT_WIDTH

+
+

+Description: +Calculate text width based on font size +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_TEXTTypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeIYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CLEAR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CLEAR.html new file mode 100644 index 0000000..5653d6c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CLEAR.html @@ -0,0 +1,105 @@ + + + +CLEAR + + + + + +

CLEAR

+
+

+Description: +Initializes the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CONSTRUCTOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CONSTRUCTOR.html new file mode 100644 index 0000000..856c085 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CONSTRUCTOR.html @@ -0,0 +1,114 @@ + + + +CONSTRUCTOR + + + + + +

CONSTRUCTOR

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
ConstructorInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CREATE_NEW_ARGB.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CREATE_NEW_ARGB.html new file mode 100644 index 0000000..7c423b3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-CREATE_NEW_ARGB.html @@ -0,0 +1,139 @@ + + + +CREATE_NEW_ARGB + + + + + +

CREATE_NEW_ARGB

+
+

+Description: +Create a custom ARGB color from RGB +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_REDTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_GREENTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_BLUTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLOR_ARGBTypeZEXCEL_STYLE_COLOR_ARGBYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-DELETE_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-DELETE_MERGE.html new file mode 100644 index 0000000..43df7e0 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-DELETE_MERGE.html @@ -0,0 +1,105 @@ + + + +DELETE_MERGE + + + + + +

DELETE_MERGE

+
+

+Description: +Delete the used merges +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-FREEZE_PANES.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-FREEZE_PANES.html new file mode 100644 index 0000000..2d6d702 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-FREEZE_PANES.html @@ -0,0 +1,127 @@ + + + +FREEZE_PANES + + + + + +

FREEZE_PANES

+
+

+Description: +Freeze panes for supplied number of rows and/or columns +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_NUM_COLUMNSTypeIYesNoNumber of columns to freeze (starting from left-most)
IP_NUM_ROWSTypeIYesNoNumber of rows to freeze (starting from top-most)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET.html new file mode 100644 index 0000000..a3e1019 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET.html @@ -0,0 +1,121 @@ + + + +GET + + + + + +

GET

+
+

+Description: +Gets Element +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeZEXCEL_ACTIVE_WORKSHEETYesNoActive Worksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesWorksheet
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ACTIVE_CELL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ACTIVE_CELL.html new file mode 100644 index 0000000..bb7c123 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ACTIVE_CELL.html @@ -0,0 +1,112 @@ + + + +GET_ACTIVE_CELL + + + + + +

GET_ACTIVE_CELL

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ACTIVE_CELLTypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_AUTO_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_AUTO_SIZE.html new file mode 100644 index 0000000..3e73703 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_AUTO_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_AUTO_SIZE + + + + + +

GET_AUTO_SIZE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_AUTO_SIZETypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_CELL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_CELL.html new file mode 100644 index 0000000..f4c3126 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_CELL.html @@ -0,0 +1,144 @@ + + + +GET_CELL + + + + + +

GET_CELL

+
+

+Description: +Get cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeZEXCEL_CELL_VALUENoCell Value
EP_RCTypeSYSUBRCNoReturn Value of ABAP Statements
EP_STYLEType Ref ToZCL_EXCEL_STYLENoStyle
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLLAPSED.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLLAPSED.html new file mode 100644 index 0000000..b81aae2 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLLAPSED.html @@ -0,0 +1,112 @@ + + + +GET_COLLAPSED + + + + + +

GET_COLLAPSED

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLLAPSEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLORS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLUMN_DIMENSION.html new file mode 100644 index 0000000..6db5e93 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLUMN_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_COLUMN_DIMENSION + + + + + +

GET_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLUMN_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLUMN_DIMENSIONS.html new file mode 100644 index 0000000..60b59e7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLUMN_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_COLUMN_DIMENSIONS + + + + + +

GET_COLUMN_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONTypeZEXCEL_T_WORKSHEET_COLUMNDIMEYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLUMN_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLUMN_INDEX.html new file mode 100644 index 0000000..f42996f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COLUMN_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_COLUMN_INDEX + + + + + +

GET_COLUMN_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COND_STYLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COND_STYLES_ITERATOR.html new file mode 100644 index 0000000..dc493ea --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_COND_STYLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_COND_STYLES_ITERATOR + + + + + +

GET_COND_STYLES_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DATA_VALIDATIONS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DATA_VALIDATIONS_ITERATOR.html new file mode 100644 index 0000000..94858f6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DATA_VALIDATIONS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_ITERATOR + + + + + +

GET_DATA_VALIDATIONS_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DATA_VALIDATIONS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DATA_VALIDATIONS_SIZE.html new file mode 100644 index 0000000..a67368c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DATA_VALIDATIONS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_SIZE + + + + + +

GET_DATA_VALIDATIONS_SIZE

+
+

+Description: +Get the number of data validation objects +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DEFAULT_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DEFAULT_COLUMN_DIMENSION.html new file mode 100644 index 0000000..46ee9cf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DEFAULT_COLUMN_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_COLUMN_DIMENSION + + + + + +

GET_DEFAULT_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..d51aab7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

GET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Gets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesDefault date format
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DEFAULT_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DEFAULT_ROW_DIMENSION.html new file mode 100644 index 0000000..40813a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DEFAULT_ROW_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_ROW_DIMENSION + + + + + +

GET_DEFAULT_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DIMENSION_RANGE.html new file mode 100644 index 0000000..9edc420 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DIMENSION_RANGE.html @@ -0,0 +1,112 @@ + + + +GET_DIMENSION_RANGE + + + + + +

GET_DIMENSION_RANGE

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DIMENSION_RANGETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DRAWINGS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DRAWINGS.html new file mode 100644 index 0000000..7e27efa --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DRAWINGS.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS + + + + + +

GET_DRAWINGS

+
+

+Description: +Gets drawing attached to the sheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_DRAWINGSType Ref ToZCL_EXCEL_DRAWINGSYesDrawings collection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DRAWINGS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DRAWINGS_ITERATOR.html new file mode 100644 index 0000000..cb9da9c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_DRAWINGS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS_ITERATOR + + + + + +

GET_DRAWINGS_ITERATOR

+
+

+Description: +Get iterator for drawings collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_FREEZE_CELL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_FREEZE_CELL.html new file mode 100644 index 0000000..9d16d96 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_FREEZE_CELL.html @@ -0,0 +1,119 @@ + + + +GET_FREEZE_CELL + + + + + +

GET_FREEZE_CELL

+
+

+Description: +Gets the coordinates of cell determining freeze panes +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ROWTypeZEXCEL_CELL_ROWNoCell Row
EP_COLUMNTypeZEXCEL_CELL_COLUMNNoCell Column
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_GUID.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_GUID.html new file mode 100644 index 0000000..5e9b3c7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_GUID.html @@ -0,0 +1,112 @@ + + + +GET_GUID + + + + + +

GET_GUID

+
+

+Description: +Get sheet guid +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_GUIDTypeOLTPGUID16YesGUID in 'RAW' format
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_HIGHEST_COLUMN.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_HIGHEST_COLUMN.html new file mode 100644 index 0000000..1288247 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_HIGHEST_COLUMN.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_COLUMN + + + + + +

GET_HIGHEST_COLUMN

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_COLUMNTypeZEXCEL_CELL_COLUMNYesCell Column
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_HIGHEST_ROW.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_HIGHEST_ROW.html new file mode 100644 index 0000000..5c87508 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_HIGHEST_ROW.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_ROW + + + + + +

GET_HIGHEST_ROW

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_ROWTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_HYPERLINKS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_HYPERLINKS_ITERATOR.html new file mode 100644 index 0000000..b800a69 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_HYPERLINKS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_ITERATOR + + + + + +

GET_HYPERLINKS_ITERATOR

+
+

+Description: +Get iterator for links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_HYPERLINKS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_HYPERLINKS_SIZE.html new file mode 100644 index 0000000..dd81de8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_HYPERLINKS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_SIZE + + + + + +

GET_HYPERLINKS_SIZE

+
+

+Description: +Gets the size of links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ID.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ID.html new file mode 100644 index 0000000..bc94249 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ID.html @@ -0,0 +1,112 @@ + + + +GET_ID + + + + + +

GET_ID

+
+

+Description: +Gets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_IDTypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ITERATOR.html new file mode 100644 index 0000000..d97edb4 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_ITERATOR + + + + + +

GET_ITERATOR

+
+

+Description: +Returns an iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_MERGE.html new file mode 100644 index 0000000..98a3674 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_MERGE.html @@ -0,0 +1,112 @@ + + + +GET_MERGE + + + + + +

GET_MERGE

+
+

+Description: +Get the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
MERGE_RANGETypeSTRING_TABLEYesTable of Strings
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_NAME.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_NAME.html new file mode 100644 index 0000000..b08b859 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_NAME.html @@ -0,0 +1,112 @@ + + + +GET_NAME + + + + + +

GET_NAME

+
+

+Description: +Gets the name +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_NAMETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_OUTLINE_LEVEL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_OUTLINE_LEVEL.html new file mode 100644 index 0000000..73f899f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_OUTLINE_LEVEL.html @@ -0,0 +1,112 @@ + + + +GET_OUTLINE_LEVEL + + + + + +

GET_OUTLINE_LEVEL

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_OUTLINE_LEVELTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_REFERENCE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_REFERENCE.html new file mode 100644 index 0000000..0489503 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_REFERENCE.html @@ -0,0 +1,121 @@ + + + +GET_REFERENCE + + + + + +

GET_REFERENCE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INCLUDE_TOTALS_ROWTypeABAP_BOOLABAP_TRUEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_REFERENCETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ROW_DIMENSION.html new file mode 100644 index 0000000..6690595 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ROW_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_ROW_DIMENSION + + + + + +

GET_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ROWTypeINT4YesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ROW_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ROW_DIMENSIONS.html new file mode 100644 index 0000000..ae6b7a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_ROW_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_ROW_DIMENSIONS + + + + + +

GET_ROW_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONTypeZEXCEL_T_WORKSHEET_ROWDIMENSIOYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_STRUCTURE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_STRUCTURE.html new file mode 100644 index 0000000..e612904 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_STRUCTURE.html @@ -0,0 +1,112 @@ + + + +GET_STRUCTURE + + + + + +

GET_STRUCTURE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_PROTECTIONTypeZEXCEL_S_STYLE_PROTECTIONYesProtection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_TABLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_TABLES_ITERATOR.html new file mode 100644 index 0000000..007bde7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_TABLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_ITERATOR + + + + + +

GET_TABLES_ITERATOR

+
+

+Description: +Get iterator for tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_TABLES_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_TABLES_SIZE.html new file mode 100644 index 0000000..a402427 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_TABLES_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_SIZE + + + + + +

GET_TABLES_SIZE

+
+

+Description: +Gets the size of tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYesSize
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_TITLE.html new file mode 100644 index 0000000..4126af5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_TITLE.html @@ -0,0 +1,121 @@ + + + +GET_TITLE + + + + + +

GET_TITLE

+
+

+Description: +Set WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ESCAPEDTypeFLAG''YesNoReturn escaped?
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_TITLETypeZEXCEL_SHEET_TITLEYesTitle
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_TOTALS_FORMULA.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_TOTALS_FORMULA.html new file mode 100644 index 0000000..fbd6259 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_TOTALS_FORMULA.html @@ -0,0 +1,130 @@ + + + +GET_TOTALS_FORMULA + + + + + +

GET_TOTALS_FORMULA

+
+

+Description: +Returns formula for totals row based on column name and fun +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeCLIKEYesNo
IP_FUNCTIONTypeZEXCEL_TABLE_TOTALS_FUNCTIONYesNoTotals function for table column (xml ST_TotalsRowFunction)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FORMULATypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_VISIBLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_VISIBLE.html new file mode 100644 index 0000000..7197b7e --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_VISIBLE.html @@ -0,0 +1,112 @@ + + + +GET_VISIBLE + + + + + +

GET_VISIBLE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_VISIBLETypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_WIDTH.html new file mode 100644 index 0000000..d3da96b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_WIDTH.html @@ -0,0 +1,112 @@ + + + +GET_WIDTH + + + + + +

GET_WIDTH

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeFLOATYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_XF_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_XF_INDEX.html new file mode 100644 index 0000000..f327f59 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-GET_XF_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_XF_INDEX + + + + + +

GET_XF_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_XF_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-HAS_TOTALS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-HAS_TOTALS.html new file mode 100644 index 0000000..a5b0a92 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-HAS_TOTALS.html @@ -0,0 +1,112 @@ + + + +HAS_TOTALS + + + + + +

HAS_TOTALS

+
+

+Description: +Determines if any column has totals function +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_RESULTTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-IS_EMPTY.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-IS_EMPTY.html new file mode 100644 index 0000000..2a57772 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-IS_EMPTY.html @@ -0,0 +1,112 @@ + + + +IS_EMPTY + + + + + +

IS_EMPTY

+
+

+Description: +Checks whether elements are contained +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
IS_EMPTYTypeFLAGYesGeneral Flag
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-IS_MODIFIED.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-LOAD_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-LOAD_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-REMOVE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-REMOVE.html new file mode 100644 index 0000000..e48e778 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-REMOVE.html @@ -0,0 +1,114 @@ + + + +REMOVE + + + + + +

REMOVE

+
+

+Description: +Deletes an Element from the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_AUTO_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_AUTO_SIZE.html new file mode 100644 index 0000000..c5ade56 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_AUTO_SIZE.html @@ -0,0 +1,121 @@ + + + +SET_AUTO_SIZE + + + + + +

SET_AUTO_SIZE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_AUTO_SIZETypeABAP_BOOLYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_CELL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_CELL.html new file mode 100644 index 0000000..09f16c5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_CELL.html @@ -0,0 +1,177 @@ + + + +SET_CELL + + + + + +

SET_CELL

+
+

+Description: +Set cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_VALUETypeSIMPLEYesNoCell Value
IP_FORMULATypeZEXCEL_CELL_FORMULAYesNoCell Formula
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
IP_HYPERLINKType Ref ToZCL_EXCEL_HYPERLINKYesNoHyperlink
IP_DATA_TYPETypeZEXCEL_CELL_DATA_TYPEYesNoCell data type
IP_ABAP_TYPETypeABAP_TYPEKINDYesNoABAP data type
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_CELL_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_CELL_STYLE.html new file mode 100644 index 0000000..15c65bf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_CELL_STYLE.html @@ -0,0 +1,136 @@ + + + +SET_CELL_STYLE + + + + + +

SET_CELL_STYLE

+
+

+Description: +Set cell style +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_COLLAPSED.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_COLLAPSED.html new file mode 100644 index 0000000..3c13625 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_COLLAPSED.html @@ -0,0 +1,121 @@ + + + +SET_COLLAPSED + + + + + +

SET_COLLAPSED

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLLAPSEDTypeABAP_BOOLYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_COLUMN_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_COLUMN_INDEX.html new file mode 100644 index 0000000..35b09fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_COLUMN_INDEX.html @@ -0,0 +1,121 @@ + + + +SET_COLUMN_INDEX + + + + + +

SET_COLUMN_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_DATA.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_DATA.html new file mode 100644 index 0000000..9d3cb84 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_DATA.html @@ -0,0 +1,114 @@ + + + +SET_DATA + + + + + +

SET_DATA

+
+

+Description: +Sets the reference to table data +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IR_DATATypeSTANDARD TABLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..f3e219f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,114 @@ + + + +SET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

SET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Sets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesNoDefault date format
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_ID.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_ID.html new file mode 100644 index 0000000..3d6a1c9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_ID.html @@ -0,0 +1,114 @@ + + + +SET_ID + + + + + +

SET_ID

+
+

+Description: +Sets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IV_IDTypeIYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_MERGE.html new file mode 100644 index 0000000..28ab5bc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_MERGE.html @@ -0,0 +1,141 @@ + + + +SET_MERGE + + + + + +

SET_MERGE

+
+

+Description: +Set the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMN_STARTTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column Start
IP_COLUMN_ENDTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column End
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_ROW_TOTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_OUTLINE_LEVEL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_OUTLINE_LEVEL.html new file mode 100644 index 0000000..56f6ab2 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_OUTLINE_LEVEL.html @@ -0,0 +1,114 @@ + + + +SET_OUTLINE_LEVEL + + + + + +

SET_OUTLINE_LEVEL

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_OUTLINE_LEVELTypeINT4YesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_PRINT_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_PRINT_GRIDLINES.html new file mode 100644 index 0000000..9bf6e56 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_PRINT_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_PRINT_GRIDLINES + + + + + +

SET_PRINT_GRIDLINES

+
+

+Description: +Set print gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_PRINT_GRIDLINESTypeZEXCEL_PRINT_GRIDLINESYesNoPrint Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_RANGE.html new file mode 100644 index 0000000..fe9f9b1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_RANGE.html @@ -0,0 +1,141 @@ + + + +SET_RANGE + + + + + +

SET_RANGE

+
+

+Description: +Set range used in conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_START_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_START_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_STOP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STOP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_SHOW_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_SHOW_GRIDLINES.html new file mode 100644 index 0000000..f42cb62 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_SHOW_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_GRIDLINES + + + + + +

SET_SHOW_GRIDLINES

+
+

+Description: +Set show gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_GRIDLINESTypeZEXCEL_SHOW_GRIDLINESYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_SHOW_ROWCOLHEADERS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_SHOW_ROWCOLHEADERS.html new file mode 100644 index 0000000..b365b86 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_SHOW_ROWCOLHEADERS.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_ROWCOLHEADERS + + + + + +

SET_SHOW_ROWCOLHEADERS

+
+

+Description: +Set show colum row headers +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_ROWCOLHEADERSTypeZEXCEL_SHOW_ROWCOLHEADERYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_TABLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_TABLE.html new file mode 100644 index 0000000..ef2d677 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_TABLE.html @@ -0,0 +1,159 @@ + + + +SET_TABLE + + + + + +

SET_TABLE

+
+

+Description: +Set cell value from a table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
IP_HDR_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_BODY_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_TABLE_TITLETypeSTRINGYesNo
IP_TOP_LEFT_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHA'B'YesNoCell Column
IP_TOP_LEFT_ROWTypeZEXCEL_CELL_ROW3YesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_TITLE.html new file mode 100644 index 0000000..fe9bc3e --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_TITLE.html @@ -0,0 +1,114 @@ + + + +SET_TITLE + + + + + +

SET_TITLE

+
+

+Description: +Get WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TITLETypeZEXCEL_SHEET_TITLEYesNoTitle
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_VISIBLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_VISIBLE.html new file mode 100644 index 0000000..b837f39 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_VISIBLE.html @@ -0,0 +1,121 @@ + + + +SET_VISIBLE + + + + + +

SET_VISIBLE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VISIBLETypeABAP_BOOLYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_WIDTH.html new file mode 100644 index 0000000..af242fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_WIDTH.html @@ -0,0 +1,121 @@ + + + +SET_WIDTH + + + + + +

SET_WIDTH

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WIDTHTypeFLOATYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_XF_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_XF_INDEX.html new file mode 100644 index 0000000..1e9f7d5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SET_XF_INDEX.html @@ -0,0 +1,121 @@ + + + +SET_XF_INDEX + + + + + +

SET_XF_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XF_INDEXTypeINT4YesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SIZE.html new file mode 100644 index 0000000..3b298dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-SIZE.html @@ -0,0 +1,112 @@ + + + +SIZE + + + + + +

SIZE

+
+

+Description: +Specifies number of contained elements +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-UPDATE_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-UPDATE_DIMENSION_RANGE.html new file mode 100644 index 0000000..8b43dab --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-UPDATE_DIMENSION_RANGE.html @@ -0,0 +1,105 @@ + + + +UPDATE_DIMENSION_RANGE + + + + + +

UPDATE_DIMENSION_RANGE

+
+

+Description: +Update dimension range +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html new file mode 100644 index 0000000..792a359 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html @@ -0,0 +1,112 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE

+
+

+Description: +Set Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_STYLETypeZEXCEL_CELL_STYLEYesStyle identifier
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html new file mode 100644 index 0000000..23583c3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE

+
+

+Description: +Inizialize sheet properties +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html new file mode 100644 index 0000000..bf942bb --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE

+
+

+Description: +Get Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_STYLETypeZEXCEL_CELL_STYLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html new file mode 100644 index 0000000..c77e426 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE

+
+

+Description: +Initialize protection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html new file mode 100644 index 0000000..27f1c1d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAMETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html new file mode 100644 index 0000000..e1b86f9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAME_PRTypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME.html new file mode 100644 index 0000000..b8a6434 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_COLUMNDIME.html @@ -0,0 +1,105 @@ + + + +ZCL_EXCEL_WORKSHEET_COLUMNDIME + + + + + + +

ZCL_EXCEL_WORKSHEET_COLUMNDIME

+
+Description: +Worksheet ColumnDimension +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
COLUMN_INDEXInstance AttributePrivateNoTypeINT4Column index
WIDTHInstance AttributePrivateNoTypeFLOATColumn width
AUTO_SIZEInstance AttributePrivateNoTypeABAP_BOOLAuto size?
VISIBLEInstance AttributePrivateNoTypeABAP_BOOLVisible?
OUTLINE_LEVELInstance AttributePrivateNoTypeINT4Outline level
COLLAPSEDInstance AttributePrivateNoTypeABAP_BOOLCollapsed?
XF_INDEXInstance AttributePrivateNoTypeINT4Index to cellXf
+

Events:

+
+ + diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ADD.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ADD.html new file mode 100644 index 0000000..95b5747 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ADD.html @@ -0,0 +1,114 @@ + + + +ADD + + + + + +

ADD

+
+

+Description: +Adds an Element to the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ADD_DRAWING.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ADD_DRAWING.html new file mode 100644 index 0000000..b949f63 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ADD_DRAWING.html @@ -0,0 +1,114 @@ + + + +ADD_DRAWING + + + + + +

ADD_DRAWING

+
+

+Description: +Add drawing to the sheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_DRAWINGType Ref ToZCL_EXCEL_DRAWINGYesNoDrawing
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ADD_NEW_CONDITIONAL_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ADD_NEW_CONDITIONAL_STYLE.html new file mode 100644 index 0000000..7f3dd7d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ADD_NEW_CONDITIONAL_STYLE.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_CONDITIONAL_STYLE + + + + + +

ADD_NEW_CONDITIONAL_STYLE

+
+

+Description: +Creates a new conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_CONDITIONAL_STYLEType Ref ToZCL_EXCEL_STYLE_CONDITIONALYesFont Style
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ADD_NEW_DATA_VALIDATION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ADD_NEW_DATA_VALIDATION.html new file mode 100644 index 0000000..fd4c6ac --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ADD_NEW_DATA_VALIDATION.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_DATA_VALIDATION + + + + + +

ADD_NEW_DATA_VALIDATION

+
+

+Description: +Creates a new data validation +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_DATA_VALIDATIONType Ref ToZCL_EXCEL_DATA_VALIDATIONYesData validation
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-BIND_ALV.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-BIND_ALV.html new file mode 100644 index 0000000..6ff57fb --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-BIND_ALV.html @@ -0,0 +1,241 @@ + + + +BIND_ALV + + + + + +

BIND_ALV

+
+

+Description: +Set cell value from ALV object +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_DOCUMENT_URLTypeCHAR255SPACEYesNoURL of file, must start with
I_XLSTypeCSPACEYesNoExport to .xls file?
I_SAVE_PATHTypeSTRINGYesNoLocal file path
IO_ALVType Ref ToCL_GUI_ALV_GRIDYesNoALV List Viewer
IT_LISTHEADERTypeSLIS_T_LISTHEADERYesNoTop-of-page
I_TOPTypeI1YesNoTop edge of data block
I_LEFTTypeI1YesNoLeft-hand edge of data block
I_COLUMNS_HEADERTypeC'X'YesNoExport columns header?
I_COLUMNS_AUTOFITTypeC'X'YesNoAutofit columns width?
I_FORMAT_COL_HEADERTypeSOI_FORMAT_ITEMYesNoColumn header format
I_FORMAT_SUBTOTALTypeSOI_FORMAT_ITEMYesNoSubtotal lines format
I_FORMAT_TOTALTypeSOI_FORMAT_ITEMYesNoTotal line format
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExceptionShort Text
MISS_GUIDEWindows guide is missing
EX_TRANSFER_KKBLO_ERRORTransfer to KKBLO struct error
FATAL_ERROR
INV_DATA_RANGE
DIM_MISMATCH_VKEY
DIM_MISMATCH_SEMA
ERROR_IN_SEMAUn-know columns Ops, columns Typ
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-BIND_TABLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-BIND_TABLE.html new file mode 100644 index 0000000..f760734 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-BIND_TABLE.html @@ -0,0 +1,139 @@ + + + +BIND_TABLE + + + + + +

BIND_TABLE

+
+

+Description: +Set cell value from a table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
IT_FIELD_CATALOGTypeZEXCEL_T_FIELDCATALOGYesNoTable binding field catalog
IS_TABLE_SETTINGSTypeZEXCEL_S_TABLE_SETTINGSYesNoExcel table binding settings
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
ES_TABLE_SETTINGSTypeZEXCEL_S_TABLE_SETTINGSNoExcel table binding settings
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CALCULATE_COLUMN_WIDTHS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CALCULATE_COLUMN_WIDTHS.html new file mode 100644 index 0000000..c59f060 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CALCULATE_COLUMN_WIDTHS.html @@ -0,0 +1,105 @@ + + + +CALCULATE_COLUMN_WIDTHS + + + + + +

CALCULATE_COLUMN_WIDTHS

+
+

+Description: +Calculate widths for auto-size columns +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CALCULATE_TEXT_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CALCULATE_TEXT_WIDTH.html new file mode 100644 index 0000000..736c4dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CALCULATE_TEXT_WIDTH.html @@ -0,0 +1,121 @@ + + + +CALCULATE_TEXT_WIDTH + + + + + +

CALCULATE_TEXT_WIDTH

+
+

+Description: +Calculate text width based on font size +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_TEXTTypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeIYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CLEAR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CLEAR.html new file mode 100644 index 0000000..5653d6c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CLEAR.html @@ -0,0 +1,105 @@ + + + +CLEAR + + + + + +

CLEAR

+
+

+Description: +Initializes the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CONSTRUCTOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CONSTRUCTOR.html new file mode 100644 index 0000000..e2f63f1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CONSTRUCTOR.html @@ -0,0 +1,114 @@ + + + +CONSTRUCTOR + + + + + +

CONSTRUCTOR

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
ConstructorInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeINT40YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CREATE_NEW_ARGB.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CREATE_NEW_ARGB.html new file mode 100644 index 0000000..7c423b3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-CREATE_NEW_ARGB.html @@ -0,0 +1,139 @@ + + + +CREATE_NEW_ARGB + + + + + +

CREATE_NEW_ARGB

+
+

+Description: +Create a custom ARGB color from RGB +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_REDTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_GREENTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_BLUTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLOR_ARGBTypeZEXCEL_STYLE_COLOR_ARGBYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-DELETE_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-DELETE_MERGE.html new file mode 100644 index 0000000..43df7e0 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-DELETE_MERGE.html @@ -0,0 +1,105 @@ + + + +DELETE_MERGE + + + + + +

DELETE_MERGE

+
+

+Description: +Delete the used merges +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-FREEZE_PANES.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-FREEZE_PANES.html new file mode 100644 index 0000000..2d6d702 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-FREEZE_PANES.html @@ -0,0 +1,127 @@ + + + +FREEZE_PANES + + + + + +

FREEZE_PANES

+
+

+Description: +Freeze panes for supplied number of rows and/or columns +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_NUM_COLUMNSTypeIYesNoNumber of columns to freeze (starting from left-most)
IP_NUM_ROWSTypeIYesNoNumber of rows to freeze (starting from top-most)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET.html new file mode 100644 index 0000000..a3e1019 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET.html @@ -0,0 +1,121 @@ + + + +GET + + + + + +

GET

+
+

+Description: +Gets Element +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeZEXCEL_ACTIVE_WORKSHEETYesNoActive Worksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesWorksheet
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ACTIVE_CELL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ACTIVE_CELL.html new file mode 100644 index 0000000..bb7c123 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ACTIVE_CELL.html @@ -0,0 +1,112 @@ + + + +GET_ACTIVE_CELL + + + + + +

GET_ACTIVE_CELL

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ACTIVE_CELLTypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_AUTO_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_AUTO_SIZE.html new file mode 100644 index 0000000..3e73703 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_AUTO_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_AUTO_SIZE + + + + + +

GET_AUTO_SIZE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_AUTO_SIZETypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_CELL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_CELL.html new file mode 100644 index 0000000..f4c3126 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_CELL.html @@ -0,0 +1,144 @@ + + + +GET_CELL + + + + + +

GET_CELL

+
+

+Description: +Get cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeZEXCEL_CELL_VALUENoCell Value
EP_RCTypeSYSUBRCNoReturn Value of ABAP Statements
EP_STYLEType Ref ToZCL_EXCEL_STYLENoStyle
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLLAPSED.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLLAPSED.html new file mode 100644 index 0000000..74a9257 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLLAPSED.html @@ -0,0 +1,112 @@ + + + +GET_COLLAPSED + + + + + +

GET_COLLAPSED

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLLAPSEDTypeBOOLEANYesBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLORS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLUMN_DIMENSION.html new file mode 100644 index 0000000..6db5e93 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLUMN_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_COLUMN_DIMENSION + + + + + +

GET_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLUMN_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLUMN_DIMENSIONS.html new file mode 100644 index 0000000..60b59e7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLUMN_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_COLUMN_DIMENSIONS + + + + + +

GET_COLUMN_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONTypeZEXCEL_T_WORKSHEET_COLUMNDIMEYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLUMN_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLUMN_INDEX.html new file mode 100644 index 0000000..f42996f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COLUMN_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_COLUMN_INDEX + + + + + +

GET_COLUMN_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COND_STYLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COND_STYLES_ITERATOR.html new file mode 100644 index 0000000..dc493ea --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_COND_STYLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_COND_STYLES_ITERATOR + + + + + +

GET_COND_STYLES_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DATA_VALIDATIONS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DATA_VALIDATIONS_ITERATOR.html new file mode 100644 index 0000000..94858f6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DATA_VALIDATIONS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_ITERATOR + + + + + +

GET_DATA_VALIDATIONS_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DATA_VALIDATIONS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DATA_VALIDATIONS_SIZE.html new file mode 100644 index 0000000..a67368c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DATA_VALIDATIONS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_SIZE + + + + + +

GET_DATA_VALIDATIONS_SIZE

+
+

+Description: +Get the number of data validation objects +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DEFAULT_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DEFAULT_COLUMN_DIMENSION.html new file mode 100644 index 0000000..46ee9cf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DEFAULT_COLUMN_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_COLUMN_DIMENSION + + + + + +

GET_DEFAULT_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..d51aab7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

GET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Gets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesDefault date format
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DEFAULT_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DEFAULT_ROW_DIMENSION.html new file mode 100644 index 0000000..40813a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DEFAULT_ROW_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_ROW_DIMENSION + + + + + +

GET_DEFAULT_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DIMENSION_RANGE.html new file mode 100644 index 0000000..9edc420 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DIMENSION_RANGE.html @@ -0,0 +1,112 @@ + + + +GET_DIMENSION_RANGE + + + + + +

GET_DIMENSION_RANGE

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DIMENSION_RANGETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DRAWINGS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DRAWINGS.html new file mode 100644 index 0000000..7e27efa --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DRAWINGS.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS + + + + + +

GET_DRAWINGS

+
+

+Description: +Gets drawing attached to the sheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_DRAWINGSType Ref ToZCL_EXCEL_DRAWINGSYesDrawings collection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DRAWINGS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DRAWINGS_ITERATOR.html new file mode 100644 index 0000000..cb9da9c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_DRAWINGS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS_ITERATOR + + + + + +

GET_DRAWINGS_ITERATOR

+
+

+Description: +Get iterator for drawings collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_FREEZE_CELL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_FREEZE_CELL.html new file mode 100644 index 0000000..9d16d96 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_FREEZE_CELL.html @@ -0,0 +1,119 @@ + + + +GET_FREEZE_CELL + + + + + +

GET_FREEZE_CELL

+
+

+Description: +Gets the coordinates of cell determining freeze panes +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ROWTypeZEXCEL_CELL_ROWNoCell Row
EP_COLUMNTypeZEXCEL_CELL_COLUMNNoCell Column
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_GUID.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_GUID.html new file mode 100644 index 0000000..5e9b3c7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_GUID.html @@ -0,0 +1,112 @@ + + + +GET_GUID + + + + + +

GET_GUID

+
+

+Description: +Get sheet guid +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_GUIDTypeOLTPGUID16YesGUID in 'RAW' format
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_HIGHEST_COLUMN.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_HIGHEST_COLUMN.html new file mode 100644 index 0000000..1288247 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_HIGHEST_COLUMN.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_COLUMN + + + + + +

GET_HIGHEST_COLUMN

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_COLUMNTypeZEXCEL_CELL_COLUMNYesCell Column
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_HIGHEST_ROW.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_HIGHEST_ROW.html new file mode 100644 index 0000000..5c87508 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_HIGHEST_ROW.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_ROW + + + + + +

GET_HIGHEST_ROW

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_ROWTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_HYPERLINKS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_HYPERLINKS_ITERATOR.html new file mode 100644 index 0000000..b800a69 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_HYPERLINKS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_ITERATOR + + + + + +

GET_HYPERLINKS_ITERATOR

+
+

+Description: +Get iterator for links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_HYPERLINKS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_HYPERLINKS_SIZE.html new file mode 100644 index 0000000..dd81de8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_HYPERLINKS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_SIZE + + + + + +

GET_HYPERLINKS_SIZE

+
+

+Description: +Gets the size of links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ID.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ID.html new file mode 100644 index 0000000..bc94249 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ID.html @@ -0,0 +1,112 @@ + + + +GET_ID + + + + + +

GET_ID

+
+

+Description: +Gets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_IDTypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ITERATOR.html new file mode 100644 index 0000000..d97edb4 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_ITERATOR + + + + + +

GET_ITERATOR

+
+

+Description: +Returns an iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_MERGE.html new file mode 100644 index 0000000..98a3674 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_MERGE.html @@ -0,0 +1,112 @@ + + + +GET_MERGE + + + + + +

GET_MERGE

+
+

+Description: +Get the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
MERGE_RANGETypeSTRING_TABLEYesTable of Strings
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_NAME.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_NAME.html new file mode 100644 index 0000000..b08b859 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_NAME.html @@ -0,0 +1,112 @@ + + + +GET_NAME + + + + + +

GET_NAME

+
+

+Description: +Gets the name +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_NAMETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_OUTLINE_LEVEL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_OUTLINE_LEVEL.html new file mode 100644 index 0000000..73f899f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_OUTLINE_LEVEL.html @@ -0,0 +1,112 @@ + + + +GET_OUTLINE_LEVEL + + + + + +

GET_OUTLINE_LEVEL

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_OUTLINE_LEVELTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_REFERENCE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_REFERENCE.html new file mode 100644 index 0000000..0489503 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_REFERENCE.html @@ -0,0 +1,121 @@ + + + +GET_REFERENCE + + + + + +

GET_REFERENCE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INCLUDE_TOTALS_ROWTypeABAP_BOOLABAP_TRUEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_REFERENCETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ROW_DIMENSION.html new file mode 100644 index 0000000..6690595 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ROW_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_ROW_DIMENSION + + + + + +

GET_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ROWTypeINT4YesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ROW_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ROW_DIMENSIONS.html new file mode 100644 index 0000000..ae6b7a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ROW_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_ROW_DIMENSIONS + + + + + +

GET_ROW_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONTypeZEXCEL_T_WORKSHEET_ROWDIMENSIOYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ROW_HEIGHT.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ROW_HEIGHT.html new file mode 100644 index 0000000..9d64f54 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ROW_HEIGHT.html @@ -0,0 +1,112 @@ + + + +GET_ROW_HEIGHT + + + + + +

GET_ROW_HEIGHT

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_HEIGHTTypeFLOATYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ROW_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ROW_INDEX.html new file mode 100644 index 0000000..2bc2217 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_ROW_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_ROW_INDEX + + + + + +

GET_ROW_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_STRUCTURE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_STRUCTURE.html new file mode 100644 index 0000000..e612904 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_STRUCTURE.html @@ -0,0 +1,112 @@ + + + +GET_STRUCTURE + + + + + +

GET_STRUCTURE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_PROTECTIONTypeZEXCEL_S_STYLE_PROTECTIONYesProtection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_TABLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_TABLES_ITERATOR.html new file mode 100644 index 0000000..007bde7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_TABLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_ITERATOR + + + + + +

GET_TABLES_ITERATOR

+
+

+Description: +Get iterator for tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_TABLES_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_TABLES_SIZE.html new file mode 100644 index 0000000..a402427 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_TABLES_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_SIZE + + + + + +

GET_TABLES_SIZE

+
+

+Description: +Gets the size of tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYesSize
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_TITLE.html new file mode 100644 index 0000000..4126af5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_TITLE.html @@ -0,0 +1,121 @@ + + + +GET_TITLE + + + + + +

GET_TITLE

+
+

+Description: +Set WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ESCAPEDTypeFLAG''YesNoReturn escaped?
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_TITLETypeZEXCEL_SHEET_TITLEYesTitle
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_TOTALS_FORMULA.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_TOTALS_FORMULA.html new file mode 100644 index 0000000..fbd6259 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_TOTALS_FORMULA.html @@ -0,0 +1,130 @@ + + + +GET_TOTALS_FORMULA + + + + + +

GET_TOTALS_FORMULA

+
+

+Description: +Returns formula for totals row based on column name and fun +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeCLIKEYesNo
IP_FUNCTIONTypeZEXCEL_TABLE_TOTALS_FUNCTIONYesNoTotals function for table column (xml ST_TotalsRowFunction)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FORMULATypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_VISIBLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_VISIBLE.html new file mode 100644 index 0000000..f1c7546 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_VISIBLE.html @@ -0,0 +1,112 @@ + + + +GET_VISIBLE + + + + + +

GET_VISIBLE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_VISIBLETypeBOOLEANYesBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_WIDTH.html new file mode 100644 index 0000000..d3da96b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_WIDTH.html @@ -0,0 +1,112 @@ + + + +GET_WIDTH + + + + + +

GET_WIDTH

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeFLOATYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_XF_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_XF_INDEX.html new file mode 100644 index 0000000..f327f59 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-GET_XF_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_XF_INDEX + + + + + +

GET_XF_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_XF_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-HAS_TOTALS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-HAS_TOTALS.html new file mode 100644 index 0000000..a5b0a92 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-HAS_TOTALS.html @@ -0,0 +1,112 @@ + + + +HAS_TOTALS + + + + + +

HAS_TOTALS

+
+

+Description: +Determines if any column has totals function +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_RESULTTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-IS_EMPTY.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-IS_EMPTY.html new file mode 100644 index 0000000..2a57772 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-IS_EMPTY.html @@ -0,0 +1,112 @@ + + + +IS_EMPTY + + + + + +

IS_EMPTY

+
+

+Description: +Checks whether elements are contained +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
IS_EMPTYTypeFLAGYesGeneral Flag
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-IS_MODIFIED.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-LOAD_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-LOAD_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-REMOVE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-REMOVE.html new file mode 100644 index 0000000..e48e778 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-REMOVE.html @@ -0,0 +1,114 @@ + + + +REMOVE + + + + + +

REMOVE

+
+

+Description: +Deletes an Element from the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_AUTO_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_AUTO_SIZE.html new file mode 100644 index 0000000..c5ade56 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_AUTO_SIZE.html @@ -0,0 +1,121 @@ + + + +SET_AUTO_SIZE + + + + + +

SET_AUTO_SIZE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_AUTO_SIZETypeABAP_BOOLYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_CELL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_CELL.html new file mode 100644 index 0000000..09f16c5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_CELL.html @@ -0,0 +1,177 @@ + + + +SET_CELL + + + + + +

SET_CELL

+
+

+Description: +Set cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_VALUETypeSIMPLEYesNoCell Value
IP_FORMULATypeZEXCEL_CELL_FORMULAYesNoCell Formula
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
IP_HYPERLINKType Ref ToZCL_EXCEL_HYPERLINKYesNoHyperlink
IP_DATA_TYPETypeZEXCEL_CELL_DATA_TYPEYesNoCell data type
IP_ABAP_TYPETypeABAP_TYPEKINDYesNoABAP data type
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_CELL_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_CELL_STYLE.html new file mode 100644 index 0000000..15c65bf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_CELL_STYLE.html @@ -0,0 +1,136 @@ + + + +SET_CELL_STYLE + + + + + +

SET_CELL_STYLE

+
+

+Description: +Set cell style +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_COLLAPSED.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_COLLAPSED.html new file mode 100644 index 0000000..4ecdf10 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_COLLAPSED.html @@ -0,0 +1,114 @@ + + + +SET_COLLAPSED + + + + + +

SET_COLLAPSED

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLLAPSEDTypeBOOLEANYesNoBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_COLUMN_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_COLUMN_INDEX.html new file mode 100644 index 0000000..35b09fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_COLUMN_INDEX.html @@ -0,0 +1,121 @@ + + + +SET_COLUMN_INDEX + + + + + +

SET_COLUMN_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_DATA.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_DATA.html new file mode 100644 index 0000000..9d3cb84 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_DATA.html @@ -0,0 +1,114 @@ + + + +SET_DATA + + + + + +

SET_DATA

+
+

+Description: +Sets the reference to table data +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IR_DATATypeSTANDARD TABLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..f3e219f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,114 @@ + + + +SET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

SET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Sets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesNoDefault date format
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_ID.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_ID.html new file mode 100644 index 0000000..3d6a1c9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_ID.html @@ -0,0 +1,114 @@ + + + +SET_ID + + + + + +

SET_ID

+
+

+Description: +Sets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IV_IDTypeIYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_MERGE.html new file mode 100644 index 0000000..28ab5bc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_MERGE.html @@ -0,0 +1,141 @@ + + + +SET_MERGE + + + + + +

SET_MERGE

+
+

+Description: +Set the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMN_STARTTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column Start
IP_COLUMN_ENDTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column End
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_ROW_TOTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_OUTLINE_LEVEL.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_OUTLINE_LEVEL.html new file mode 100644 index 0000000..b5d09ad --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_OUTLINE_LEVEL.html @@ -0,0 +1,118 @@ + + + +SET_OUTLINE_LEVEL + + + + + +

SET_OUTLINE_LEVEL

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_OUTLINE_LEVELTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_PRINT_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_PRINT_GRIDLINES.html new file mode 100644 index 0000000..9bf6e56 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_PRINT_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_PRINT_GRIDLINES + + + + + +

SET_PRINT_GRIDLINES

+
+

+Description: +Set print gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_PRINT_GRIDLINESTypeZEXCEL_PRINT_GRIDLINESYesNoPrint Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_RANGE.html new file mode 100644 index 0000000..fe9f9b1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_RANGE.html @@ -0,0 +1,141 @@ + + + +SET_RANGE + + + + + +

SET_RANGE

+
+

+Description: +Set range used in conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_START_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_START_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_STOP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STOP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_ROW_HEIGHT.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_ROW_HEIGHT.html new file mode 100644 index 0000000..d1d84a9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_ROW_HEIGHT.html @@ -0,0 +1,114 @@ + + + +SET_ROW_HEIGHT + + + + + +

SET_ROW_HEIGHT

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ROW_HEIGHTTypeFLOATYesNoField of type FLTP
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_ROW_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_ROW_INDEX.html new file mode 100644 index 0000000..80c0ccd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_ROW_INDEX.html @@ -0,0 +1,114 @@ + + + +SET_ROW_INDEX + + + + + +

SET_ROW_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_SHOW_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_SHOW_GRIDLINES.html new file mode 100644 index 0000000..f42cb62 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_SHOW_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_GRIDLINES + + + + + +

SET_SHOW_GRIDLINES

+
+

+Description: +Set show gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_GRIDLINESTypeZEXCEL_SHOW_GRIDLINESYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_SHOW_ROWCOLHEADERS.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_SHOW_ROWCOLHEADERS.html new file mode 100644 index 0000000..b365b86 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_SHOW_ROWCOLHEADERS.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_ROWCOLHEADERS + + + + + +

SET_SHOW_ROWCOLHEADERS

+
+

+Description: +Set show colum row headers +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_ROWCOLHEADERSTypeZEXCEL_SHOW_ROWCOLHEADERYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_TABLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_TABLE.html new file mode 100644 index 0000000..ef2d677 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_TABLE.html @@ -0,0 +1,159 @@ + + + +SET_TABLE + + + + + +

SET_TABLE

+
+

+Description: +Set cell value from a table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
IP_HDR_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_BODY_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_TABLE_TITLETypeSTRINGYesNo
IP_TOP_LEFT_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHA'B'YesNoCell Column
IP_TOP_LEFT_ROWTypeZEXCEL_CELL_ROW3YesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_TITLE.html new file mode 100644 index 0000000..fe9bc3e --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_TITLE.html @@ -0,0 +1,114 @@ + + + +SET_TITLE + + + + + +

SET_TITLE

+
+

+Description: +Get WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TITLETypeZEXCEL_SHEET_TITLEYesNoTitle
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_VISIBLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_VISIBLE.html new file mode 100644 index 0000000..13e1bd6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_VISIBLE.html @@ -0,0 +1,114 @@ + + + +SET_VISIBLE + + + + + +

SET_VISIBLE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VISIBLETypeBOOLEANYesNoBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_WIDTH.html new file mode 100644 index 0000000..af242fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_WIDTH.html @@ -0,0 +1,121 @@ + + + +SET_WIDTH + + + + + +

SET_WIDTH

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WIDTHTypeFLOATYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_XF_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_XF_INDEX.html new file mode 100644 index 0000000..cb76611 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SET_XF_INDEX.html @@ -0,0 +1,114 @@ + + + +SET_XF_INDEX + + + + + +

SET_XF_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XF_INDEXTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SIZE.html new file mode 100644 index 0000000..3b298dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-SIZE.html @@ -0,0 +1,112 @@ + + + +SIZE + + + + + +

SIZE

+
+

+Description: +Specifies number of contained elements +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-UPDATE_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-UPDATE_DIMENSION_RANGE.html new file mode 100644 index 0000000..8b43dab --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-UPDATE_DIMENSION_RANGE.html @@ -0,0 +1,105 @@ + + + +UPDATE_DIMENSION_RANGE + + + + + +

UPDATE_DIMENSION_RANGE

+
+

+Description: +Update dimension range +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html new file mode 100644 index 0000000..792a359 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html @@ -0,0 +1,112 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE

+
+

+Description: +Set Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_STYLETypeZEXCEL_CELL_STYLEYesStyle identifier
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html new file mode 100644 index 0000000..23583c3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE

+
+

+Description: +Inizialize sheet properties +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html new file mode 100644 index 0000000..bf942bb --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE

+
+

+Description: +Get Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_STYLETypeZEXCEL_CELL_STYLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html new file mode 100644 index 0000000..c77e426 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE

+
+

+Description: +Initialize protection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html new file mode 100644 index 0000000..27f1c1d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAMETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html new file mode 100644 index 0000000..e1b86f9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAME_PRTypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI.html b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI.html new file mode 100644 index 0000000..9c6cb08 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WORKSHEET_ROWDIMENSI.html @@ -0,0 +1,95 @@ + + + +ZCL_EXCEL_WORKSHEET_ROWDIMENSI + + + + + + +

ZCL_EXCEL_WORKSHEET_ROWDIMENSI

+
+Description: +Worksheet RowDimension +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
ROW_INDEXInstance AttributePrivateNoTypeINT4Natural number
ROW_HEIGHTInstance AttributePrivateNoTypeFLOATField of type FLTP
VISIBLEInstance AttributePrivateNoTypeBOOLEANBoolean Variable (X=True, -=False, Space=Unknown)
OUTLINE_LEVELInstance AttributePrivateNoTypeINT4Natural number0
COLLAPSEDInstance AttributePrivateNoTypeBOOLEANBoolean Variable (X=True, -=False, Space=Unknown)
XF_INDEXInstance AttributePrivateNoTypeINT4Natural number
+

Events:

+
+ + diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ADD.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ADD.html new file mode 100644 index 0000000..95b5747 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ADD.html @@ -0,0 +1,114 @@ + + + +ADD + + + + + +

ADD

+
+

+Description: +Adds an Element to the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ADD_DRAWING.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ADD_DRAWING.html new file mode 100644 index 0000000..b949f63 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ADD_DRAWING.html @@ -0,0 +1,114 @@ + + + +ADD_DRAWING + + + + + +

ADD_DRAWING

+
+

+Description: +Add drawing to the sheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_DRAWINGType Ref ToZCL_EXCEL_DRAWINGYesNoDrawing
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ADD_NEW_CONDITIONAL_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ADD_NEW_CONDITIONAL_STYLE.html new file mode 100644 index 0000000..7f3dd7d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ADD_NEW_CONDITIONAL_STYLE.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_CONDITIONAL_STYLE + + + + + +

ADD_NEW_CONDITIONAL_STYLE

+
+

+Description: +Creates a new conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_CONDITIONAL_STYLEType Ref ToZCL_EXCEL_STYLE_CONDITIONALYesFont Style
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ADD_NEW_DATA_VALIDATION.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ADD_NEW_DATA_VALIDATION.html new file mode 100644 index 0000000..fd4c6ac --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ADD_NEW_DATA_VALIDATION.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_DATA_VALIDATION + + + + + +

ADD_NEW_DATA_VALIDATION

+
+

+Description: +Creates a new data validation +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_DATA_VALIDATIONType Ref ToZCL_EXCEL_DATA_VALIDATIONYesData validation
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-BIND_ALV.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-BIND_ALV.html new file mode 100644 index 0000000..6ff57fb --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-BIND_ALV.html @@ -0,0 +1,241 @@ + + + +BIND_ALV + + + + + +

BIND_ALV

+
+

+Description: +Set cell value from ALV object +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_DOCUMENT_URLTypeCHAR255SPACEYesNoURL of file, must start with
I_XLSTypeCSPACEYesNoExport to .xls file?
I_SAVE_PATHTypeSTRINGYesNoLocal file path
IO_ALVType Ref ToCL_GUI_ALV_GRIDYesNoALV List Viewer
IT_LISTHEADERTypeSLIS_T_LISTHEADERYesNoTop-of-page
I_TOPTypeI1YesNoTop edge of data block
I_LEFTTypeI1YesNoLeft-hand edge of data block
I_COLUMNS_HEADERTypeC'X'YesNoExport columns header?
I_COLUMNS_AUTOFITTypeC'X'YesNoAutofit columns width?
I_FORMAT_COL_HEADERTypeSOI_FORMAT_ITEMYesNoColumn header format
I_FORMAT_SUBTOTALTypeSOI_FORMAT_ITEMYesNoSubtotal lines format
I_FORMAT_TOTALTypeSOI_FORMAT_ITEMYesNoTotal line format
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExceptionShort Text
MISS_GUIDEWindows guide is missing
EX_TRANSFER_KKBLO_ERRORTransfer to KKBLO struct error
FATAL_ERROR
INV_DATA_RANGE
DIM_MISMATCH_VKEY
DIM_MISMATCH_SEMA
ERROR_IN_SEMAUn-know columns Ops, columns Typ
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-BIND_TABLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-BIND_TABLE.html new file mode 100644 index 0000000..f760734 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-BIND_TABLE.html @@ -0,0 +1,139 @@ + + + +BIND_TABLE + + + + + +

BIND_TABLE

+
+

+Description: +Set cell value from a table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
IT_FIELD_CATALOGTypeZEXCEL_T_FIELDCATALOGYesNoTable binding field catalog
IS_TABLE_SETTINGSTypeZEXCEL_S_TABLE_SETTINGSYesNoExcel table binding settings
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
ES_TABLE_SETTINGSTypeZEXCEL_S_TABLE_SETTINGSNoExcel table binding settings
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CALCULATE_COLUMN_WIDTHS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CALCULATE_COLUMN_WIDTHS.html new file mode 100644 index 0000000..c59f060 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CALCULATE_COLUMN_WIDTHS.html @@ -0,0 +1,105 @@ + + + +CALCULATE_COLUMN_WIDTHS + + + + + +

CALCULATE_COLUMN_WIDTHS

+
+

+Description: +Calculate widths for auto-size columns +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CALCULATE_TEXT_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CALCULATE_TEXT_WIDTH.html new file mode 100644 index 0000000..736c4dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CALCULATE_TEXT_WIDTH.html @@ -0,0 +1,121 @@ + + + +CALCULATE_TEXT_WIDTH + + + + + +

CALCULATE_TEXT_WIDTH

+
+

+Description: +Calculate text width based on font size +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_TEXTTypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeIYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CLEAR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CLEAR.html new file mode 100644 index 0000000..5653d6c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CLEAR.html @@ -0,0 +1,105 @@ + + + +CLEAR + + + + + +

CLEAR

+
+

+Description: +Initializes the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CONSTRUCTOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CONSTRUCTOR.html new file mode 100644 index 0000000..e2f63f1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CONSTRUCTOR.html @@ -0,0 +1,114 @@ + + + +CONSTRUCTOR + + + + + +

CONSTRUCTOR

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
ConstructorInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeINT40YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE.html new file mode 100644 index 0000000..81e8582 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE.html @@ -0,0 +1,112 @@ + + + +CREATE + + + + + +

CREATE

+
+

+Description: +Create Excel +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_EXCELTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_CONTENT_TYPES.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_CONTENT_TYPES.html new file mode 100644 index 0000000..f075699 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_CONTENT_TYPES.html @@ -0,0 +1,112 @@ + + + +CREATE_CONTENT_TYPES + + + + + +

CREATE_CONTENT_TYPES

+
+

+Description: +Create '[Content_Types].xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_DOCPROPS_APP.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_DOCPROPS_APP.html new file mode 100644 index 0000000..db4a694 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_DOCPROPS_APP.html @@ -0,0 +1,112 @@ + + + +CREATE_DOCPROPS_APP + + + + + +

CREATE_DOCPROPS_APP

+
+

+Description: +Create 'docProps/app.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_DOCPROPS_CORE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_DOCPROPS_CORE.html new file mode 100644 index 0000000..213dc1c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_DOCPROPS_CORE.html @@ -0,0 +1,112 @@ + + + +CREATE_DOCPROPS_CORE + + + + + +

CREATE_DOCPROPS_CORE

+
+

+Description: +Create 'docProps/core.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_NEW_ARGB.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_NEW_ARGB.html new file mode 100644 index 0000000..7c423b3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_NEW_ARGB.html @@ -0,0 +1,139 @@ + + + +CREATE_NEW_ARGB + + + + + +

CREATE_NEW_ARGB

+
+

+Description: +Create a custom ARGB color from RGB +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_REDTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_GREENTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_BLUTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLOR_ARGBTypeZEXCEL_STYLE_COLOR_ARGBYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_RELATIONSHIPS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_RELATIONSHIPS.html new file mode 100644 index 0000000..5cd6227 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_RELATIONSHIPS.html @@ -0,0 +1,112 @@ + + + +CREATE_RELATIONSHIPS + + + + + +

CREATE_RELATIONSHIPS

+
+

+Description: +Create '_rels/.rels' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_DRAWINGS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_DRAWINGS.html new file mode 100644 index 0000000..5af19bc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_DRAWINGS.html @@ -0,0 +1,121 @@ + + + +CREATE_XL_DRAWINGS + + + + + +

CREATE_XL_DRAWINGS

+
+

+Description: +Create 'xl/drawings/drawing1.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_DRAWINGS_RELS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_DRAWINGS_RELS.html new file mode 100644 index 0000000..fa1a2c4 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_DRAWINGS_RELS.html @@ -0,0 +1,121 @@ + + + +CREATE_XL_DRAWINGS_RELS + + + + + +

CREATE_XL_DRAWINGS_RELS

+
+

+Description: +Create 'xl/drawings/_rels/drawing1.xml.rels' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_RELATIONSHIPS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_RELATIONSHIPS.html new file mode 100644 index 0000000..1a3dac6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_RELATIONSHIPS.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_RELATIONSHIPS + + + + + +

CREATE_XL_RELATIONSHIPS

+
+

+Description: +Create 'xl/_rels/workbook.xml.rels' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_SHAREDSTRINGS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_SHAREDSTRINGS.html new file mode 100644 index 0000000..e4be645 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_SHAREDSTRINGS.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_SHAREDSTRINGS + + + + + +

CREATE_XL_SHAREDSTRINGS

+
+

+Description: +Create 'xl/sharedStrings.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_SHEET.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_SHEET.html new file mode 100644 index 0000000..b1bc270 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_SHEET.html @@ -0,0 +1,130 @@ + + + +CREATE_XL_SHEET + + + + + +

CREATE_XL_SHEET

+
+

+Description: +Create 'xl/sheet.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
IV_ACTIVETypeFLAG''YesNoGeneral Flag
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_SHEET_RELS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_SHEET_RELS.html new file mode 100644 index 0000000..ea8fced --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_SHEET_RELS.html @@ -0,0 +1,130 @@ + + + +CREATE_XL_SHEET_RELS + + + + + +

CREATE_XL_SHEET_RELS

+
+

+Description: +Create 'xl/workbook/_rels/sheet.xml.rels' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNo
IV_DRAWING_INDEXTypeIYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_STYLES.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_STYLES.html new file mode 100644 index 0000000..6c30f6f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_STYLES.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_STYLES + + + + + +

CREATE_XL_STYLES

+
+

+Description: +Create 'xl/styles.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_STYLES_COLOR_NODE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_STYLES_COLOR_NODE.html new file mode 100644 index 0000000..fc6d9fd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_STYLES_COLOR_NODE.html @@ -0,0 +1,141 @@ + + + +CREATE_XL_STYLES_COLOR_NODE + + + + + +

CREATE_XL_STYLES_COLOR_NODE

+
+

+Description: +Create 'xl/styles.xml' color node +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_DOCUMENTType Ref ToIF_IXML_DOCUMENTYesNoIF_IXML_DOCUMENT
IO_PARENTType Ref ToIF_IXML_ELEMENTYesNoIF_IXML_ELEMENT
IV_COLOR_ELEM_NAMETypeSTRING'color'YesNo
IS_COLORTypeZEXCEL_S_STYLE_COLORYesNoColor
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_TABLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_TABLE.html new file mode 100644 index 0000000..5cead51 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_TABLE.html @@ -0,0 +1,121 @@ + + + +CREATE_XL_TABLE + + + + + +

CREATE_XL_TABLE

+
+

+Description: + +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_TABLEType Ref ToZCL_EXCEL_TABLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_THEME.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_THEME.html new file mode 100644 index 0000000..e653e75 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_THEME.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_THEME + + + + + +

CREATE_XL_THEME

+
+

+Description: +Create 'xl/theme/theme1.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_WORKBOOK.html new file mode 100644 index 0000000..a386291 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-CREATE_XL_WORKBOOK.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_WORKBOOK + + + + + +

CREATE_XL_WORKBOOK

+
+

+Description: +Create 'xl/workbook.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-DELETE_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-DELETE_MERGE.html new file mode 100644 index 0000000..43df7e0 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-DELETE_MERGE.html @@ -0,0 +1,105 @@ + + + +DELETE_MERGE + + + + + +

DELETE_MERGE

+
+

+Description: +Delete the used merges +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-FLAG2BOOL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-FLAG2BOOL.html new file mode 100644 index 0000000..acffa66 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-FLAG2BOOL.html @@ -0,0 +1,121 @@ + + + +FLAG2BOOL + + + + + +

FLAG2BOOL

+
+

+Description: +Convert a FLAG to BOOLEAN value +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_FLAGTypeFLAGYesNoGeneral Flag
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_BOOLEANTypeCHAR5YesBoolean value
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-FREEZE_PANES.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-FREEZE_PANES.html new file mode 100644 index 0000000..2d6d702 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-FREEZE_PANES.html @@ -0,0 +1,127 @@ + + + +FREEZE_PANES + + + + + +

FREEZE_PANES

+
+

+Description: +Freeze panes for supplied number of rows and/or columns +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_NUM_COLUMNSTypeIYesNoNumber of columns to freeze (starting from left-most)
IP_NUM_ROWSTypeIYesNoNumber of rows to freeze (starting from top-most)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET.html new file mode 100644 index 0000000..a3e1019 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET.html @@ -0,0 +1,121 @@ + + + +GET + + + + + +

GET

+
+

+Description: +Gets Element +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeZEXCEL_ACTIVE_WORKSHEETYesNoActive Worksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesWorksheet
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ACTIVE_CELL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ACTIVE_CELL.html new file mode 100644 index 0000000..bb7c123 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ACTIVE_CELL.html @@ -0,0 +1,112 @@ + + + +GET_ACTIVE_CELL + + + + + +

GET_ACTIVE_CELL

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ACTIVE_CELLTypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_AUTO_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_AUTO_SIZE.html new file mode 100644 index 0000000..3e73703 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_AUTO_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_AUTO_SIZE + + + + + +

GET_AUTO_SIZE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_AUTO_SIZETypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_CELL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_CELL.html new file mode 100644 index 0000000..f4c3126 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_CELL.html @@ -0,0 +1,144 @@ + + + +GET_CELL + + + + + +

GET_CELL

+
+

+Description: +Get cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeZEXCEL_CELL_VALUENoCell Value
EP_RCTypeSYSUBRCNoReturn Value of ABAP Statements
EP_STYLEType Ref ToZCL_EXCEL_STYLENoStyle
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLLAPSED.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLLAPSED.html new file mode 100644 index 0000000..74a9257 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLLAPSED.html @@ -0,0 +1,112 @@ + + + +GET_COLLAPSED + + + + + +

GET_COLLAPSED

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLLAPSEDTypeBOOLEANYesBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLORS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLUMN_DIMENSION.html new file mode 100644 index 0000000..6db5e93 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLUMN_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_COLUMN_DIMENSION + + + + + +

GET_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLUMN_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLUMN_DIMENSIONS.html new file mode 100644 index 0000000..60b59e7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLUMN_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_COLUMN_DIMENSIONS + + + + + +

GET_COLUMN_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONTypeZEXCEL_T_WORKSHEET_COLUMNDIMEYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLUMN_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLUMN_INDEX.html new file mode 100644 index 0000000..f42996f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COLUMN_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_COLUMN_INDEX + + + + + +

GET_COLUMN_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COND_STYLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COND_STYLES_ITERATOR.html new file mode 100644 index 0000000..dc493ea --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_COND_STYLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_COND_STYLES_ITERATOR + + + + + +

GET_COND_STYLES_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DATA_VALIDATIONS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DATA_VALIDATIONS_ITERATOR.html new file mode 100644 index 0000000..94858f6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DATA_VALIDATIONS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_ITERATOR + + + + + +

GET_DATA_VALIDATIONS_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DATA_VALIDATIONS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DATA_VALIDATIONS_SIZE.html new file mode 100644 index 0000000..a67368c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DATA_VALIDATIONS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_SIZE + + + + + +

GET_DATA_VALIDATIONS_SIZE

+
+

+Description: +Get the number of data validation objects +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DEFAULT_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DEFAULT_COLUMN_DIMENSION.html new file mode 100644 index 0000000..46ee9cf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DEFAULT_COLUMN_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_COLUMN_DIMENSION + + + + + +

GET_DEFAULT_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..d51aab7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

GET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Gets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesDefault date format
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DEFAULT_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DEFAULT_ROW_DIMENSION.html new file mode 100644 index 0000000..40813a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DEFAULT_ROW_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_ROW_DIMENSION + + + + + +

GET_DEFAULT_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DIMENSION_RANGE.html new file mode 100644 index 0000000..9edc420 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DIMENSION_RANGE.html @@ -0,0 +1,112 @@ + + + +GET_DIMENSION_RANGE + + + + + +

GET_DIMENSION_RANGE

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DIMENSION_RANGETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DRAWINGS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DRAWINGS.html new file mode 100644 index 0000000..7e27efa --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DRAWINGS.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS + + + + + +

GET_DRAWINGS

+
+

+Description: +Gets drawing attached to the sheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_DRAWINGSType Ref ToZCL_EXCEL_DRAWINGSYesDrawings collection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DRAWINGS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DRAWINGS_ITERATOR.html new file mode 100644 index 0000000..cb9da9c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_DRAWINGS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS_ITERATOR + + + + + +

GET_DRAWINGS_ITERATOR

+
+

+Description: +Get iterator for drawings collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_FREEZE_CELL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_FREEZE_CELL.html new file mode 100644 index 0000000..9d16d96 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_FREEZE_CELL.html @@ -0,0 +1,119 @@ + + + +GET_FREEZE_CELL + + + + + +

GET_FREEZE_CELL

+
+

+Description: +Gets the coordinates of cell determining freeze panes +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ROWTypeZEXCEL_CELL_ROWNoCell Row
EP_COLUMNTypeZEXCEL_CELL_COLUMNNoCell Column
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_GUID.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_GUID.html new file mode 100644 index 0000000..5e9b3c7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_GUID.html @@ -0,0 +1,112 @@ + + + +GET_GUID + + + + + +

GET_GUID

+
+

+Description: +Get sheet guid +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_GUIDTypeOLTPGUID16YesGUID in 'RAW' format
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_HIGHEST_COLUMN.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_HIGHEST_COLUMN.html new file mode 100644 index 0000000..1288247 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_HIGHEST_COLUMN.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_COLUMN + + + + + +

GET_HIGHEST_COLUMN

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_COLUMNTypeZEXCEL_CELL_COLUMNYesCell Column
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_HIGHEST_ROW.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_HIGHEST_ROW.html new file mode 100644 index 0000000..5c87508 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_HIGHEST_ROW.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_ROW + + + + + +

GET_HIGHEST_ROW

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_ROWTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_HYPERLINKS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_HYPERLINKS_ITERATOR.html new file mode 100644 index 0000000..b800a69 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_HYPERLINKS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_ITERATOR + + + + + +

GET_HYPERLINKS_ITERATOR

+
+

+Description: +Get iterator for links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_HYPERLINKS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_HYPERLINKS_SIZE.html new file mode 100644 index 0000000..dd81de8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_HYPERLINKS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_SIZE + + + + + +

GET_HYPERLINKS_SIZE

+
+

+Description: +Gets the size of links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ID.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ID.html new file mode 100644 index 0000000..bc94249 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ID.html @@ -0,0 +1,112 @@ + + + +GET_ID + + + + + +

GET_ID

+
+

+Description: +Gets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_IDTypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ITERATOR.html new file mode 100644 index 0000000..d97edb4 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_ITERATOR + + + + + +

GET_ITERATOR

+
+

+Description: +Returns an iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_MERGE.html new file mode 100644 index 0000000..98a3674 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_MERGE.html @@ -0,0 +1,112 @@ + + + +GET_MERGE + + + + + +

GET_MERGE

+
+

+Description: +Get the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
MERGE_RANGETypeSTRING_TABLEYesTable of Strings
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_NAME.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_NAME.html new file mode 100644 index 0000000..b08b859 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_NAME.html @@ -0,0 +1,112 @@ + + + +GET_NAME + + + + + +

GET_NAME

+
+

+Description: +Gets the name +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_NAMETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_OUTLINE_LEVEL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_OUTLINE_LEVEL.html new file mode 100644 index 0000000..73f899f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_OUTLINE_LEVEL.html @@ -0,0 +1,112 @@ + + + +GET_OUTLINE_LEVEL + + + + + +

GET_OUTLINE_LEVEL

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_OUTLINE_LEVELTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_REFERENCE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_REFERENCE.html new file mode 100644 index 0000000..0489503 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_REFERENCE.html @@ -0,0 +1,121 @@ + + + +GET_REFERENCE + + + + + +

GET_REFERENCE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INCLUDE_TOTALS_ROWTypeABAP_BOOLABAP_TRUEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_REFERENCETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ROW_DIMENSION.html new file mode 100644 index 0000000..6690595 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ROW_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_ROW_DIMENSION + + + + + +

GET_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ROWTypeINT4YesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ROW_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ROW_DIMENSIONS.html new file mode 100644 index 0000000..ae6b7a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ROW_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_ROW_DIMENSIONS + + + + + +

GET_ROW_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONTypeZEXCEL_T_WORKSHEET_ROWDIMENSIOYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ROW_HEIGHT.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ROW_HEIGHT.html new file mode 100644 index 0000000..9d64f54 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ROW_HEIGHT.html @@ -0,0 +1,112 @@ + + + +GET_ROW_HEIGHT + + + + + +

GET_ROW_HEIGHT

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_HEIGHTTypeFLOATYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ROW_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ROW_INDEX.html new file mode 100644 index 0000000..2bc2217 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_ROW_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_ROW_INDEX + + + + + +

GET_ROW_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_SHARED_STRING_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_SHARED_STRING_INDEX.html new file mode 100644 index 0000000..4a1f6fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_SHARED_STRING_INDEX.html @@ -0,0 +1,121 @@ + + + +GET_SHARED_STRING_INDEX + + + + + +

GET_SHARED_STRING_INDEX

+
+

+Description: +Get shared string index +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CELL_VALUETypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_INDEXTypeINT4YesNatural Number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_STRUCTURE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_STRUCTURE.html new file mode 100644 index 0000000..e612904 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_STRUCTURE.html @@ -0,0 +1,112 @@ + + + +GET_STRUCTURE + + + + + +

GET_STRUCTURE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_PROTECTIONTypeZEXCEL_S_STYLE_PROTECTIONYesProtection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_TABLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_TABLES_ITERATOR.html new file mode 100644 index 0000000..007bde7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_TABLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_ITERATOR + + + + + +

GET_TABLES_ITERATOR

+
+

+Description: +Get iterator for tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_TABLES_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_TABLES_SIZE.html new file mode 100644 index 0000000..a402427 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_TABLES_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_SIZE + + + + + +

GET_TABLES_SIZE

+
+

+Description: +Gets the size of tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYesSize
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_TITLE.html new file mode 100644 index 0000000..4126af5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_TITLE.html @@ -0,0 +1,121 @@ + + + +GET_TITLE + + + + + +

GET_TITLE

+
+

+Description: +Set WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ESCAPEDTypeFLAG''YesNoReturn escaped?
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_TITLETypeZEXCEL_SHEET_TITLEYesTitle
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_TOTALS_FORMULA.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_TOTALS_FORMULA.html new file mode 100644 index 0000000..fbd6259 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_TOTALS_FORMULA.html @@ -0,0 +1,130 @@ + + + +GET_TOTALS_FORMULA + + + + + +

GET_TOTALS_FORMULA

+
+

+Description: +Returns formula for totals row based on column name and fun +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeCLIKEYesNo
IP_FUNCTIONTypeZEXCEL_TABLE_TOTALS_FUNCTIONYesNoTotals function for table column (xml ST_TotalsRowFunction)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FORMULATypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_VISIBLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_VISIBLE.html new file mode 100644 index 0000000..f1c7546 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_VISIBLE.html @@ -0,0 +1,112 @@ + + + +GET_VISIBLE + + + + + +

GET_VISIBLE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_VISIBLETypeBOOLEANYesBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_WIDTH.html new file mode 100644 index 0000000..d3da96b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_WIDTH.html @@ -0,0 +1,112 @@ + + + +GET_WIDTH + + + + + +

GET_WIDTH

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeFLOATYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_XF_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_XF_INDEX.html new file mode 100644 index 0000000..f327f59 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-GET_XF_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_XF_INDEX + + + + + +

GET_XF_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_XF_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-HAS_TOTALS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-HAS_TOTALS.html new file mode 100644 index 0000000..a5b0a92 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-HAS_TOTALS.html @@ -0,0 +1,112 @@ + + + +HAS_TOTALS + + + + + +

HAS_TOTALS

+
+

+Description: +Determines if any column has totals function +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_RESULTTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-IS_EMPTY.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-IS_EMPTY.html new file mode 100644 index 0000000..2a57772 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-IS_EMPTY.html @@ -0,0 +1,112 @@ + + + +IS_EMPTY + + + + + +

IS_EMPTY

+
+

+Description: +Checks whether elements are contained +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
IS_EMPTYTypeFLAGYesGeneral Flag
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-IS_MODIFIED.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-LOAD_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-LOAD_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-REMOVE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-REMOVE.html new file mode 100644 index 0000000..e48e778 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-REMOVE.html @@ -0,0 +1,114 @@ + + + +REMOVE + + + + + +

REMOVE

+
+

+Description: +Deletes an Element from the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_AUTO_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_AUTO_SIZE.html new file mode 100644 index 0000000..c5ade56 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_AUTO_SIZE.html @@ -0,0 +1,121 @@ + + + +SET_AUTO_SIZE + + + + + +

SET_AUTO_SIZE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_AUTO_SIZETypeABAP_BOOLYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_CELL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_CELL.html new file mode 100644 index 0000000..09f16c5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_CELL.html @@ -0,0 +1,177 @@ + + + +SET_CELL + + + + + +

SET_CELL

+
+

+Description: +Set cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_VALUETypeSIMPLEYesNoCell Value
IP_FORMULATypeZEXCEL_CELL_FORMULAYesNoCell Formula
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
IP_HYPERLINKType Ref ToZCL_EXCEL_HYPERLINKYesNoHyperlink
IP_DATA_TYPETypeZEXCEL_CELL_DATA_TYPEYesNoCell data type
IP_ABAP_TYPETypeABAP_TYPEKINDYesNoABAP data type
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_CELL_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_CELL_STYLE.html new file mode 100644 index 0000000..15c65bf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_CELL_STYLE.html @@ -0,0 +1,136 @@ + + + +SET_CELL_STYLE + + + + + +

SET_CELL_STYLE

+
+

+Description: +Set cell style +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_COLLAPSED.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_COLLAPSED.html new file mode 100644 index 0000000..4ecdf10 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_COLLAPSED.html @@ -0,0 +1,114 @@ + + + +SET_COLLAPSED + + + + + +

SET_COLLAPSED

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLLAPSEDTypeBOOLEANYesNoBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_COLUMN_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_COLUMN_INDEX.html new file mode 100644 index 0000000..35b09fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_COLUMN_INDEX.html @@ -0,0 +1,121 @@ + + + +SET_COLUMN_INDEX + + + + + +

SET_COLUMN_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_DATA.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_DATA.html new file mode 100644 index 0000000..9d3cb84 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_DATA.html @@ -0,0 +1,114 @@ + + + +SET_DATA + + + + + +

SET_DATA

+
+

+Description: +Sets the reference to table data +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IR_DATATypeSTANDARD TABLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..f3e219f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,114 @@ + + + +SET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

SET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Sets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesNoDefault date format
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_ID.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_ID.html new file mode 100644 index 0000000..3d6a1c9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_ID.html @@ -0,0 +1,114 @@ + + + +SET_ID + + + + + +

SET_ID

+
+

+Description: +Sets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IV_IDTypeIYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_MERGE.html new file mode 100644 index 0000000..28ab5bc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_MERGE.html @@ -0,0 +1,141 @@ + + + +SET_MERGE + + + + + +

SET_MERGE

+
+

+Description: +Set the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMN_STARTTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column Start
IP_COLUMN_ENDTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column End
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_ROW_TOTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_OUTLINE_LEVEL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_OUTLINE_LEVEL.html new file mode 100644 index 0000000..b5d09ad --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_OUTLINE_LEVEL.html @@ -0,0 +1,118 @@ + + + +SET_OUTLINE_LEVEL + + + + + +

SET_OUTLINE_LEVEL

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_OUTLINE_LEVELTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_PRINT_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_PRINT_GRIDLINES.html new file mode 100644 index 0000000..9bf6e56 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_PRINT_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_PRINT_GRIDLINES + + + + + +

SET_PRINT_GRIDLINES

+
+

+Description: +Set print gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_PRINT_GRIDLINESTypeZEXCEL_PRINT_GRIDLINESYesNoPrint Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_RANGE.html new file mode 100644 index 0000000..fe9f9b1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_RANGE.html @@ -0,0 +1,141 @@ + + + +SET_RANGE + + + + + +

SET_RANGE

+
+

+Description: +Set range used in conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_START_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_START_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_STOP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STOP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_ROW_HEIGHT.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_ROW_HEIGHT.html new file mode 100644 index 0000000..d1d84a9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_ROW_HEIGHT.html @@ -0,0 +1,114 @@ + + + +SET_ROW_HEIGHT + + + + + +

SET_ROW_HEIGHT

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ROW_HEIGHTTypeFLOATYesNoField of type FLTP
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_ROW_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_ROW_INDEX.html new file mode 100644 index 0000000..80c0ccd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_ROW_INDEX.html @@ -0,0 +1,114 @@ + + + +SET_ROW_INDEX + + + + + +

SET_ROW_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_SHOW_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_SHOW_GRIDLINES.html new file mode 100644 index 0000000..f42cb62 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_SHOW_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_GRIDLINES + + + + + +

SET_SHOW_GRIDLINES

+
+

+Description: +Set show gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_GRIDLINESTypeZEXCEL_SHOW_GRIDLINESYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_SHOW_ROWCOLHEADERS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_SHOW_ROWCOLHEADERS.html new file mode 100644 index 0000000..b365b86 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_SHOW_ROWCOLHEADERS.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_ROWCOLHEADERS + + + + + +

SET_SHOW_ROWCOLHEADERS

+
+

+Description: +Set show colum row headers +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_ROWCOLHEADERSTypeZEXCEL_SHOW_ROWCOLHEADERYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_TABLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_TABLE.html new file mode 100644 index 0000000..ef2d677 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_TABLE.html @@ -0,0 +1,159 @@ + + + +SET_TABLE + + + + + +

SET_TABLE

+
+

+Description: +Set cell value from a table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
IP_HDR_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_BODY_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_TABLE_TITLETypeSTRINGYesNo
IP_TOP_LEFT_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHA'B'YesNoCell Column
IP_TOP_LEFT_ROWTypeZEXCEL_CELL_ROW3YesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_TITLE.html new file mode 100644 index 0000000..fe9bc3e --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_TITLE.html @@ -0,0 +1,114 @@ + + + +SET_TITLE + + + + + +

SET_TITLE

+
+

+Description: +Get WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TITLETypeZEXCEL_SHEET_TITLEYesNoTitle
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_VISIBLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_VISIBLE.html new file mode 100644 index 0000000..13e1bd6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_VISIBLE.html @@ -0,0 +1,114 @@ + + + +SET_VISIBLE + + + + + +

SET_VISIBLE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VISIBLETypeBOOLEANYesNoBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_WIDTH.html new file mode 100644 index 0000000..af242fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_WIDTH.html @@ -0,0 +1,121 @@ + + + +SET_WIDTH + + + + + +

SET_WIDTH

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WIDTHTypeFLOATYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_XF_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_XF_INDEX.html new file mode 100644 index 0000000..cb76611 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SET_XF_INDEX.html @@ -0,0 +1,114 @@ + + + +SET_XF_INDEX + + + + + +

SET_XF_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XF_INDEXTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SIZE.html new file mode 100644 index 0000000..3b298dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-SIZE.html @@ -0,0 +1,112 @@ + + + +SIZE + + + + + +

SIZE

+
+

+Description: +Specifies number of contained elements +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-UPDATE_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-UPDATE_DIMENSION_RANGE.html new file mode 100644 index 0000000..8b43dab --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-UPDATE_DIMENSION_RANGE.html @@ -0,0 +1,105 @@ + + + +UPDATE_DIMENSION_RANGE + + + + + +

UPDATE_DIMENSION_RANGE

+
+

+Description: +Update dimension range +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html new file mode 100644 index 0000000..792a359 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html @@ -0,0 +1,112 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE

+
+

+Description: +Set Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_STYLETypeZEXCEL_CELL_STYLEYesStyle identifier
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html new file mode 100644 index 0000000..23583c3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE

+
+

+Description: +Inizialize sheet properties +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html new file mode 100644 index 0000000..bf942bb --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE

+
+

+Description: +Get Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_STYLETypeZEXCEL_CELL_STYLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html new file mode 100644 index 0000000..c77e426 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE

+
+

+Description: +Initialize protection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html new file mode 100644 index 0000000..27f1c1d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAMETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html new file mode 100644 index 0000000..e1b86f9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAME_PRTypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_WRITER~WRITE_FILE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_WRITER~WRITE_FILE.html new file mode 100644 index 0000000..c483160 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007-ZIF_EXCEL_WRITER~WRITE_FILE.html @@ -0,0 +1,121 @@ + + + +ZIF_EXCEL_WRITER~WRITE_FILE + + + + + +

ZIF_EXCEL_WRITER~WRITE_FILE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FILETypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_2007.html b/tools/APIDoc/ZCL_EXCEL_WRITER_2007.html new file mode 100644 index 0000000..8298d7b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_2007.html @@ -0,0 +1,225 @@ + + + +ZCL_EXCEL_WRITER_2007 + + + + + + +

ZCL_EXCEL_WRITER_2007

+
+Description: +Excel writer 2007 +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
C_CONTENT_TYPESConstantProtectedNoTypeSTRINGContent Type XML File Name'[Content_Types].xml'
C_DOCPROPS_APPConstantProtectedNoTypeSTRINGApp XML File Name'docProps/app.xml'
C_DOCPROPS_COREConstantProtectedNoTypeSTRINGCore XML File Name'docProps/core.xml'
C_OFFConstantPrivateNoTypeSTRINGByte Value'0'
C_ONConstantPrivateNoTypeSTRINGByte Value'1'
C_RELATIONSHIPSConstantProtectedNoTypeSTRINGRels XML File Name'_rels/.rels'
C_XL_DRAWINGSConstantProtectedNoTypeSTRINGxlDrawings XML File Name'xl/drawings/drawing#.xml'
C_XL_DRAWINGS_RELSConstantProtectedNoTypeSTRINGxlDrawings XML File Name'xl/drawings/_rels/drawing#.xml.rels'
C_XL_RELATIONSHIPSConstantProtectedNoTypeSTRINGxlRels XML File Name'xl/_rels/workbook.xml.rels'
C_XL_SHAREDSTRINGSConstantProtectedNoTypeSTRINGxlSharedStrings XML File Name'xl/sharedStrings.xml'
C_XL_SHEETConstantProtectedNoTypeSTRINGxlSheet XML File Name Template'xl/worksheets/sheet#.xml'
C_XL_SHEET_RELSConstantProtectedNoTypeSTRINGxlSheetRels XML File Name Template'xl/worksheets/_rels/sheet#.xml.rels'
C_XL_STYLESConstantProtectedNoTypeSTRINGxlStyles XML File Name'xl/styles.xml'
C_XL_THEMEConstantProtectedNoTypeSTRINGxlTheme XML File Name'xl/theme/theme1.xml'
C_XL_WORKBOOKConstantProtectedNoTypeSTRINGxlWorkbook XML File Name'xl/workbook.xml'
EXCELInstance AttributeProtectedNoType Ref ToZCL_EXCELExcel creator
SHARED_STRINGSInstance AttributePrivateNoTypeZEXCEL_T_SHARED_STRINGShared Strings
STYLES_COND_MAPPINGInstance AttributePrivateNoTypeZEXCEL_T_STYLES_COND_MAPPINGStyles mapping
STYLES_MAPPINGInstance AttributePrivateNoTypeZEXCEL_T_STYLES_MAPPINGStyles mapping
+

Events:

+
+ + diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ADD.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ADD.html new file mode 100644 index 0000000..95b5747 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ADD.html @@ -0,0 +1,114 @@ + + + +ADD + + + + + +

ADD

+
+

+Description: +Adds an Element to the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ADD_DRAWING.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ADD_DRAWING.html new file mode 100644 index 0000000..b949f63 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ADD_DRAWING.html @@ -0,0 +1,114 @@ + + + +ADD_DRAWING + + + + + +

ADD_DRAWING

+
+

+Description: +Add drawing to the sheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_DRAWINGType Ref ToZCL_EXCEL_DRAWINGYesNoDrawing
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ADD_NEW_CONDITIONAL_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ADD_NEW_CONDITIONAL_STYLE.html new file mode 100644 index 0000000..7f3dd7d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ADD_NEW_CONDITIONAL_STYLE.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_CONDITIONAL_STYLE + + + + + +

ADD_NEW_CONDITIONAL_STYLE

+
+

+Description: +Creates a new conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_CONDITIONAL_STYLEType Ref ToZCL_EXCEL_STYLE_CONDITIONALYesFont Style
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ADD_NEW_DATA_VALIDATION.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ADD_NEW_DATA_VALIDATION.html new file mode 100644 index 0000000..fd4c6ac --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ADD_NEW_DATA_VALIDATION.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_DATA_VALIDATION + + + + + +

ADD_NEW_DATA_VALIDATION

+
+

+Description: +Creates a new data validation +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_DATA_VALIDATIONType Ref ToZCL_EXCEL_DATA_VALIDATIONYesData validation
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-BIND_ALV.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-BIND_ALV.html new file mode 100644 index 0000000..6ff57fb --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-BIND_ALV.html @@ -0,0 +1,241 @@ + + + +BIND_ALV + + + + + +

BIND_ALV

+
+

+Description: +Set cell value from ALV object +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_DOCUMENT_URLTypeCHAR255SPACEYesNoURL of file, must start with
I_XLSTypeCSPACEYesNoExport to .xls file?
I_SAVE_PATHTypeSTRINGYesNoLocal file path
IO_ALVType Ref ToCL_GUI_ALV_GRIDYesNoALV List Viewer
IT_LISTHEADERTypeSLIS_T_LISTHEADERYesNoTop-of-page
I_TOPTypeI1YesNoTop edge of data block
I_LEFTTypeI1YesNoLeft-hand edge of data block
I_COLUMNS_HEADERTypeC'X'YesNoExport columns header?
I_COLUMNS_AUTOFITTypeC'X'YesNoAutofit columns width?
I_FORMAT_COL_HEADERTypeSOI_FORMAT_ITEMYesNoColumn header format
I_FORMAT_SUBTOTALTypeSOI_FORMAT_ITEMYesNoSubtotal lines format
I_FORMAT_TOTALTypeSOI_FORMAT_ITEMYesNoTotal line format
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExceptionShort Text
MISS_GUIDEWindows guide is missing
EX_TRANSFER_KKBLO_ERRORTransfer to KKBLO struct error
FATAL_ERROR
INV_DATA_RANGE
DIM_MISMATCH_VKEY
DIM_MISMATCH_SEMA
ERROR_IN_SEMAUn-know columns Ops, columns Typ
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-BIND_TABLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-BIND_TABLE.html new file mode 100644 index 0000000..f760734 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-BIND_TABLE.html @@ -0,0 +1,139 @@ + + + +BIND_TABLE + + + + + +

BIND_TABLE

+
+

+Description: +Set cell value from a table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
IT_FIELD_CATALOGTypeZEXCEL_T_FIELDCATALOGYesNoTable binding field catalog
IS_TABLE_SETTINGSTypeZEXCEL_S_TABLE_SETTINGSYesNoExcel table binding settings
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
ES_TABLE_SETTINGSTypeZEXCEL_S_TABLE_SETTINGSNoExcel table binding settings
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CALCULATE_COLUMN_WIDTHS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CALCULATE_COLUMN_WIDTHS.html new file mode 100644 index 0000000..c59f060 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CALCULATE_COLUMN_WIDTHS.html @@ -0,0 +1,105 @@ + + + +CALCULATE_COLUMN_WIDTHS + + + + + +

CALCULATE_COLUMN_WIDTHS

+
+

+Description: +Calculate widths for auto-size columns +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CALCULATE_TEXT_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CALCULATE_TEXT_WIDTH.html new file mode 100644 index 0000000..736c4dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CALCULATE_TEXT_WIDTH.html @@ -0,0 +1,121 @@ + + + +CALCULATE_TEXT_WIDTH + + + + + +

CALCULATE_TEXT_WIDTH

+
+

+Description: +Calculate text width based on font size +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_TEXTTypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeIYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CLEAR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CLEAR.html new file mode 100644 index 0000000..5653d6c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CLEAR.html @@ -0,0 +1,105 @@ + + + +CLEAR + + + + + +

CLEAR

+
+

+Description: +Initializes the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CONSTRUCTOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CONSTRUCTOR.html new file mode 100644 index 0000000..e2f63f1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CONSTRUCTOR.html @@ -0,0 +1,114 @@ + + + +CONSTRUCTOR + + + + + +

CONSTRUCTOR

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
ConstructorInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeINT40YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE.html new file mode 100644 index 0000000..e6a9636 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE.html @@ -0,0 +1,112 @@ + + + +CREATE + + + + + +

CREATE

+
+

+Description: +Create +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_EXCELTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_CONTENT_TYPES.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_CONTENT_TYPES.html new file mode 100644 index 0000000..f075699 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_CONTENT_TYPES.html @@ -0,0 +1,112 @@ + + + +CREATE_CONTENT_TYPES + + + + + +

CREATE_CONTENT_TYPES

+
+

+Description: +Create '[Content_Types].xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_CSV.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_CSV.html new file mode 100644 index 0000000..16666aa --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_CSV.html @@ -0,0 +1,112 @@ + + + +CREATE_CSV + + + + + +

CREATE_CSV

+
+

+Description: +Create CSV ; Delimited format +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_DOCPROPS_APP.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_DOCPROPS_APP.html new file mode 100644 index 0000000..db4a694 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_DOCPROPS_APP.html @@ -0,0 +1,112 @@ + + + +CREATE_DOCPROPS_APP + + + + + +

CREATE_DOCPROPS_APP

+
+

+Description: +Create 'docProps/app.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_DOCPROPS_CORE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_DOCPROPS_CORE.html new file mode 100644 index 0000000..213dc1c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_DOCPROPS_CORE.html @@ -0,0 +1,112 @@ + + + +CREATE_DOCPROPS_CORE + + + + + +

CREATE_DOCPROPS_CORE

+
+

+Description: +Create 'docProps/core.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_NEW_ARGB.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_NEW_ARGB.html new file mode 100644 index 0000000..7c423b3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_NEW_ARGB.html @@ -0,0 +1,139 @@ + + + +CREATE_NEW_ARGB + + + + + +

CREATE_NEW_ARGB

+
+

+Description: +Create a custom ARGB color from RGB +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_REDTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_GREENTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_BLUTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLOR_ARGBTypeZEXCEL_STYLE_COLOR_ARGBYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_RELATIONSHIPS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_RELATIONSHIPS.html new file mode 100644 index 0000000..5cd6227 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_RELATIONSHIPS.html @@ -0,0 +1,112 @@ + + + +CREATE_RELATIONSHIPS + + + + + +

CREATE_RELATIONSHIPS

+
+

+Description: +Create '_rels/.rels' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_DRAWINGS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_DRAWINGS.html new file mode 100644 index 0000000..5af19bc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_DRAWINGS.html @@ -0,0 +1,121 @@ + + + +CREATE_XL_DRAWINGS + + + + + +

CREATE_XL_DRAWINGS

+
+

+Description: +Create 'xl/drawings/drawing1.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_DRAWINGS_RELS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_DRAWINGS_RELS.html new file mode 100644 index 0000000..fa1a2c4 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_DRAWINGS_RELS.html @@ -0,0 +1,121 @@ + + + +CREATE_XL_DRAWINGS_RELS + + + + + +

CREATE_XL_DRAWINGS_RELS

+
+

+Description: +Create 'xl/drawings/_rels/drawing1.xml.rels' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_RELATIONSHIPS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_RELATIONSHIPS.html new file mode 100644 index 0000000..1a3dac6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_RELATIONSHIPS.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_RELATIONSHIPS + + + + + +

CREATE_XL_RELATIONSHIPS

+
+

+Description: +Create 'xl/_rels/workbook.xml.rels' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_SHAREDSTRINGS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_SHAREDSTRINGS.html new file mode 100644 index 0000000..e4be645 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_SHAREDSTRINGS.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_SHAREDSTRINGS + + + + + +

CREATE_XL_SHAREDSTRINGS

+
+

+Description: +Create 'xl/sharedStrings.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_SHEET.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_SHEET.html new file mode 100644 index 0000000..b1bc270 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_SHEET.html @@ -0,0 +1,130 @@ + + + +CREATE_XL_SHEET + + + + + +

CREATE_XL_SHEET

+
+

+Description: +Create 'xl/sheet.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
IV_ACTIVETypeFLAG''YesNoGeneral Flag
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_SHEET_RELS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_SHEET_RELS.html new file mode 100644 index 0000000..ea8fced --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_SHEET_RELS.html @@ -0,0 +1,130 @@ + + + +CREATE_XL_SHEET_RELS + + + + + +

CREATE_XL_SHEET_RELS

+
+

+Description: +Create 'xl/workbook/_rels/sheet.xml.rels' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNo
IV_DRAWING_INDEXTypeIYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_STYLES.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_STYLES.html new file mode 100644 index 0000000..6c30f6f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_STYLES.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_STYLES + + + + + +

CREATE_XL_STYLES

+
+

+Description: +Create 'xl/styles.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_STYLES_COLOR_NODE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_STYLES_COLOR_NODE.html new file mode 100644 index 0000000..fc6d9fd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_STYLES_COLOR_NODE.html @@ -0,0 +1,141 @@ + + + +CREATE_XL_STYLES_COLOR_NODE + + + + + +

CREATE_XL_STYLES_COLOR_NODE

+
+

+Description: +Create 'xl/styles.xml' color node +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_DOCUMENTType Ref ToIF_IXML_DOCUMENTYesNoIF_IXML_DOCUMENT
IO_PARENTType Ref ToIF_IXML_ELEMENTYesNoIF_IXML_ELEMENT
IV_COLOR_ELEM_NAMETypeSTRING'color'YesNo
IS_COLORTypeZEXCEL_S_STYLE_COLORYesNoColor
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_TABLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_TABLE.html new file mode 100644 index 0000000..5cead51 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_TABLE.html @@ -0,0 +1,121 @@ + + + +CREATE_XL_TABLE + + + + + +

CREATE_XL_TABLE

+
+

+Description: + +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_TABLEType Ref ToZCL_EXCEL_TABLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_THEME.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_THEME.html new file mode 100644 index 0000000..e653e75 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_THEME.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_THEME + + + + + +

CREATE_XL_THEME

+
+

+Description: +Create 'xl/theme/theme1.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_WORKBOOK.html new file mode 100644 index 0000000..a386291 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-CREATE_XL_WORKBOOK.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_WORKBOOK + + + + + +

CREATE_XL_WORKBOOK

+
+

+Description: +Create 'xl/workbook.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-DELETE_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-DELETE_MERGE.html new file mode 100644 index 0000000..43df7e0 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-DELETE_MERGE.html @@ -0,0 +1,105 @@ + + + +DELETE_MERGE + + + + + +

DELETE_MERGE

+
+

+Description: +Delete the used merges +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-FLAG2BOOL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-FLAG2BOOL.html new file mode 100644 index 0000000..acffa66 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-FLAG2BOOL.html @@ -0,0 +1,121 @@ + + + +FLAG2BOOL + + + + + +

FLAG2BOOL

+
+

+Description: +Convert a FLAG to BOOLEAN value +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_FLAGTypeFLAGYesNoGeneral Flag
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_BOOLEANTypeCHAR5YesBoolean value
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-FREEZE_PANES.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-FREEZE_PANES.html new file mode 100644 index 0000000..2d6d702 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-FREEZE_PANES.html @@ -0,0 +1,127 @@ + + + +FREEZE_PANES + + + + + +

FREEZE_PANES

+
+

+Description: +Freeze panes for supplied number of rows and/or columns +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_NUM_COLUMNSTypeIYesNoNumber of columns to freeze (starting from left-most)
IP_NUM_ROWSTypeIYesNoNumber of rows to freeze (starting from top-most)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET.html new file mode 100644 index 0000000..a3e1019 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET.html @@ -0,0 +1,121 @@ + + + +GET + + + + + +

GET

+
+

+Description: +Gets Element +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeZEXCEL_ACTIVE_WORKSHEETYesNoActive Worksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesWorksheet
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ACTIVE_CELL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ACTIVE_CELL.html new file mode 100644 index 0000000..bb7c123 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ACTIVE_CELL.html @@ -0,0 +1,112 @@ + + + +GET_ACTIVE_CELL + + + + + +

GET_ACTIVE_CELL

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ACTIVE_CELLTypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_AUTO_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_AUTO_SIZE.html new file mode 100644 index 0000000..3e73703 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_AUTO_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_AUTO_SIZE + + + + + +

GET_AUTO_SIZE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_AUTO_SIZETypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_CELL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_CELL.html new file mode 100644 index 0000000..f4c3126 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_CELL.html @@ -0,0 +1,144 @@ + + + +GET_CELL + + + + + +

GET_CELL

+
+

+Description: +Get cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeZEXCEL_CELL_VALUENoCell Value
EP_RCTypeSYSUBRCNoReturn Value of ABAP Statements
EP_STYLEType Ref ToZCL_EXCEL_STYLENoStyle
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLLAPSED.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLLAPSED.html new file mode 100644 index 0000000..74a9257 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLLAPSED.html @@ -0,0 +1,112 @@ + + + +GET_COLLAPSED + + + + + +

GET_COLLAPSED

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLLAPSEDTypeBOOLEANYesBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLORS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLUMN_DIMENSION.html new file mode 100644 index 0000000..6db5e93 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLUMN_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_COLUMN_DIMENSION + + + + + +

GET_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLUMN_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLUMN_DIMENSIONS.html new file mode 100644 index 0000000..60b59e7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLUMN_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_COLUMN_DIMENSIONS + + + + + +

GET_COLUMN_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONTypeZEXCEL_T_WORKSHEET_COLUMNDIMEYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLUMN_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLUMN_INDEX.html new file mode 100644 index 0000000..f42996f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COLUMN_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_COLUMN_INDEX + + + + + +

GET_COLUMN_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COND_STYLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COND_STYLES_ITERATOR.html new file mode 100644 index 0000000..dc493ea --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_COND_STYLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_COND_STYLES_ITERATOR + + + + + +

GET_COND_STYLES_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DATA_VALIDATIONS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DATA_VALIDATIONS_ITERATOR.html new file mode 100644 index 0000000..94858f6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DATA_VALIDATIONS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_ITERATOR + + + + + +

GET_DATA_VALIDATIONS_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DATA_VALIDATIONS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DATA_VALIDATIONS_SIZE.html new file mode 100644 index 0000000..a67368c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DATA_VALIDATIONS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_SIZE + + + + + +

GET_DATA_VALIDATIONS_SIZE

+
+

+Description: +Get the number of data validation objects +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DEFAULT_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DEFAULT_COLUMN_DIMENSION.html new file mode 100644 index 0000000..46ee9cf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DEFAULT_COLUMN_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_COLUMN_DIMENSION + + + + + +

GET_DEFAULT_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..d51aab7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

GET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Gets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesDefault date format
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DEFAULT_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DEFAULT_ROW_DIMENSION.html new file mode 100644 index 0000000..40813a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DEFAULT_ROW_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_ROW_DIMENSION + + + + + +

GET_DEFAULT_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DIMENSION_RANGE.html new file mode 100644 index 0000000..9edc420 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DIMENSION_RANGE.html @@ -0,0 +1,112 @@ + + + +GET_DIMENSION_RANGE + + + + + +

GET_DIMENSION_RANGE

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DIMENSION_RANGETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DRAWINGS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DRAWINGS.html new file mode 100644 index 0000000..7e27efa --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DRAWINGS.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS + + + + + +

GET_DRAWINGS

+
+

+Description: +Gets drawing attached to the sheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_DRAWINGSType Ref ToZCL_EXCEL_DRAWINGSYesDrawings collection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DRAWINGS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DRAWINGS_ITERATOR.html new file mode 100644 index 0000000..cb9da9c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_DRAWINGS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS_ITERATOR + + + + + +

GET_DRAWINGS_ITERATOR

+
+

+Description: +Get iterator for drawings collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_FREEZE_CELL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_FREEZE_CELL.html new file mode 100644 index 0000000..9d16d96 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_FREEZE_CELL.html @@ -0,0 +1,119 @@ + + + +GET_FREEZE_CELL + + + + + +

GET_FREEZE_CELL

+
+

+Description: +Gets the coordinates of cell determining freeze panes +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ROWTypeZEXCEL_CELL_ROWNoCell Row
EP_COLUMNTypeZEXCEL_CELL_COLUMNNoCell Column
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_GUID.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_GUID.html new file mode 100644 index 0000000..5e9b3c7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_GUID.html @@ -0,0 +1,112 @@ + + + +GET_GUID + + + + + +

GET_GUID

+
+

+Description: +Get sheet guid +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_GUIDTypeOLTPGUID16YesGUID in 'RAW' format
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_HIGHEST_COLUMN.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_HIGHEST_COLUMN.html new file mode 100644 index 0000000..1288247 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_HIGHEST_COLUMN.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_COLUMN + + + + + +

GET_HIGHEST_COLUMN

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_COLUMNTypeZEXCEL_CELL_COLUMNYesCell Column
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_HIGHEST_ROW.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_HIGHEST_ROW.html new file mode 100644 index 0000000..5c87508 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_HIGHEST_ROW.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_ROW + + + + + +

GET_HIGHEST_ROW

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_ROWTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_HYPERLINKS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_HYPERLINKS_ITERATOR.html new file mode 100644 index 0000000..b800a69 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_HYPERLINKS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_ITERATOR + + + + + +

GET_HYPERLINKS_ITERATOR

+
+

+Description: +Get iterator for links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_HYPERLINKS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_HYPERLINKS_SIZE.html new file mode 100644 index 0000000..dd81de8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_HYPERLINKS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_SIZE + + + + + +

GET_HYPERLINKS_SIZE

+
+

+Description: +Gets the size of links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ID.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ID.html new file mode 100644 index 0000000..bc94249 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ID.html @@ -0,0 +1,112 @@ + + + +GET_ID + + + + + +

GET_ID

+
+

+Description: +Gets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_IDTypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ITERATOR.html new file mode 100644 index 0000000..d97edb4 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_ITERATOR + + + + + +

GET_ITERATOR

+
+

+Description: +Returns an iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_MERGE.html new file mode 100644 index 0000000..98a3674 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_MERGE.html @@ -0,0 +1,112 @@ + + + +GET_MERGE + + + + + +

GET_MERGE

+
+

+Description: +Get the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
MERGE_RANGETypeSTRING_TABLEYesTable of Strings
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_NAME.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_NAME.html new file mode 100644 index 0000000..b08b859 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_NAME.html @@ -0,0 +1,112 @@ + + + +GET_NAME + + + + + +

GET_NAME

+
+

+Description: +Gets the name +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_NAMETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_OUTLINE_LEVEL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_OUTLINE_LEVEL.html new file mode 100644 index 0000000..73f899f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_OUTLINE_LEVEL.html @@ -0,0 +1,112 @@ + + + +GET_OUTLINE_LEVEL + + + + + +

GET_OUTLINE_LEVEL

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_OUTLINE_LEVELTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_REFERENCE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_REFERENCE.html new file mode 100644 index 0000000..0489503 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_REFERENCE.html @@ -0,0 +1,121 @@ + + + +GET_REFERENCE + + + + + +

GET_REFERENCE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INCLUDE_TOTALS_ROWTypeABAP_BOOLABAP_TRUEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_REFERENCETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ROW_DIMENSION.html new file mode 100644 index 0000000..6690595 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ROW_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_ROW_DIMENSION + + + + + +

GET_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ROWTypeINT4YesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ROW_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ROW_DIMENSIONS.html new file mode 100644 index 0000000..ae6b7a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ROW_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_ROW_DIMENSIONS + + + + + +

GET_ROW_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONTypeZEXCEL_T_WORKSHEET_ROWDIMENSIOYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ROW_HEIGHT.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ROW_HEIGHT.html new file mode 100644 index 0000000..9d64f54 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ROW_HEIGHT.html @@ -0,0 +1,112 @@ + + + +GET_ROW_HEIGHT + + + + + +

GET_ROW_HEIGHT

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_HEIGHTTypeFLOATYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ROW_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ROW_INDEX.html new file mode 100644 index 0000000..2bc2217 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_ROW_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_ROW_INDEX + + + + + +

GET_ROW_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_SHARED_STRING_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_SHARED_STRING_INDEX.html new file mode 100644 index 0000000..4a1f6fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_SHARED_STRING_INDEX.html @@ -0,0 +1,121 @@ + + + +GET_SHARED_STRING_INDEX + + + + + +

GET_SHARED_STRING_INDEX

+
+

+Description: +Get shared string index +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CELL_VALUETypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_INDEXTypeINT4YesNatural Number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_STRUCTURE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_STRUCTURE.html new file mode 100644 index 0000000..e612904 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_STRUCTURE.html @@ -0,0 +1,112 @@ + + + +GET_STRUCTURE + + + + + +

GET_STRUCTURE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_PROTECTIONTypeZEXCEL_S_STYLE_PROTECTIONYesProtection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_TABLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_TABLES_ITERATOR.html new file mode 100644 index 0000000..007bde7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_TABLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_ITERATOR + + + + + +

GET_TABLES_ITERATOR

+
+

+Description: +Get iterator for tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_TABLES_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_TABLES_SIZE.html new file mode 100644 index 0000000..a402427 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_TABLES_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_SIZE + + + + + +

GET_TABLES_SIZE

+
+

+Description: +Gets the size of tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYesSize
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_TITLE.html new file mode 100644 index 0000000..4126af5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_TITLE.html @@ -0,0 +1,121 @@ + + + +GET_TITLE + + + + + +

GET_TITLE

+
+

+Description: +Set WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ESCAPEDTypeFLAG''YesNoReturn escaped?
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_TITLETypeZEXCEL_SHEET_TITLEYesTitle
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_TOTALS_FORMULA.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_TOTALS_FORMULA.html new file mode 100644 index 0000000..fbd6259 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_TOTALS_FORMULA.html @@ -0,0 +1,130 @@ + + + +GET_TOTALS_FORMULA + + + + + +

GET_TOTALS_FORMULA

+
+

+Description: +Returns formula for totals row based on column name and fun +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeCLIKEYesNo
IP_FUNCTIONTypeZEXCEL_TABLE_TOTALS_FUNCTIONYesNoTotals function for table column (xml ST_TotalsRowFunction)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FORMULATypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_VISIBLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_VISIBLE.html new file mode 100644 index 0000000..f1c7546 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_VISIBLE.html @@ -0,0 +1,112 @@ + + + +GET_VISIBLE + + + + + +

GET_VISIBLE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_VISIBLETypeBOOLEANYesBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_WIDTH.html new file mode 100644 index 0000000..d3da96b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_WIDTH.html @@ -0,0 +1,112 @@ + + + +GET_WIDTH + + + + + +

GET_WIDTH

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeFLOATYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_XF_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_XF_INDEX.html new file mode 100644 index 0000000..f327f59 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-GET_XF_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_XF_INDEX + + + + + +

GET_XF_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_XF_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-HAS_TOTALS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-HAS_TOTALS.html new file mode 100644 index 0000000..a5b0a92 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-HAS_TOTALS.html @@ -0,0 +1,112 @@ + + + +HAS_TOTALS + + + + + +

HAS_TOTALS

+
+

+Description: +Determines if any column has totals function +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_RESULTTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-IS_EMPTY.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-IS_EMPTY.html new file mode 100644 index 0000000..2a57772 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-IS_EMPTY.html @@ -0,0 +1,112 @@ + + + +IS_EMPTY + + + + + +

IS_EMPTY

+
+

+Description: +Checks whether elements are contained +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
IS_EMPTYTypeFLAGYesGeneral Flag
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-IS_MODIFIED.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-LOAD_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-LOAD_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-REMOVE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-REMOVE.html new file mode 100644 index 0000000..e48e778 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-REMOVE.html @@ -0,0 +1,114 @@ + + + +REMOVE + + + + + +

REMOVE

+
+

+Description: +Deletes an Element from the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ACTIVE_SHEET_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ACTIVE_SHEET_INDEX.html new file mode 100644 index 0000000..e30201d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ACTIVE_SHEET_INDEX.html @@ -0,0 +1,114 @@ + + + +SET_ACTIVE_SHEET_INDEX + + + + + +

SET_ACTIVE_SHEET_INDEX

+
+

+Description: +Activate worksheet by index before the CSV file creation +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_ACTIVE_WORKSHEETTypeZEXCEL_ACTIVE_WORKSHEETYesNoActive Worksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ACTIVE_SHEET_INDEX_BY_NAME.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ACTIVE_SHEET_INDEX_BY_NAME.html new file mode 100644 index 0000000..de7b761 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ACTIVE_SHEET_INDEX_BY_NAME.html @@ -0,0 +1,114 @@ + + + +SET_ACTIVE_SHEET_INDEX_BY_NAME + + + + + +

SET_ACTIVE_SHEET_INDEX_BY_NAME

+
+

+Description: +Activate worksheet by name before the CSV file creation +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_WORKSHEET_NAMETypeZEXCEL_WORKSHEETS_NAMEYesNoWorksheets name
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_AUTO_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_AUTO_SIZE.html new file mode 100644 index 0000000..c5ade56 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_AUTO_SIZE.html @@ -0,0 +1,121 @@ + + + +SET_AUTO_SIZE + + + + + +

SET_AUTO_SIZE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_AUTO_SIZETypeABAP_BOOLYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_CELL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_CELL.html new file mode 100644 index 0000000..09f16c5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_CELL.html @@ -0,0 +1,177 @@ + + + +SET_CELL + + + + + +

SET_CELL

+
+

+Description: +Set cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_VALUETypeSIMPLEYesNoCell Value
IP_FORMULATypeZEXCEL_CELL_FORMULAYesNoCell Formula
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
IP_HYPERLINKType Ref ToZCL_EXCEL_HYPERLINKYesNoHyperlink
IP_DATA_TYPETypeZEXCEL_CELL_DATA_TYPEYesNoCell data type
IP_ABAP_TYPETypeABAP_TYPEKINDYesNoABAP data type
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_CELL_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_CELL_STYLE.html new file mode 100644 index 0000000..15c65bf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_CELL_STYLE.html @@ -0,0 +1,136 @@ + + + +SET_CELL_STYLE + + + + + +

SET_CELL_STYLE

+
+

+Description: +Set cell style +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_COLLAPSED.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_COLLAPSED.html new file mode 100644 index 0000000..4ecdf10 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_COLLAPSED.html @@ -0,0 +1,114 @@ + + + +SET_COLLAPSED + + + + + +

SET_COLLAPSED

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLLAPSEDTypeBOOLEANYesNoBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_COLUMN_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_COLUMN_INDEX.html new file mode 100644 index 0000000..35b09fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_COLUMN_INDEX.html @@ -0,0 +1,121 @@ + + + +SET_COLUMN_INDEX + + + + + +

SET_COLUMN_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_DATA.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_DATA.html new file mode 100644 index 0000000..9d3cb84 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_DATA.html @@ -0,0 +1,114 @@ + + + +SET_DATA + + + + + +

SET_DATA

+
+

+Description: +Sets the reference to table data +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IR_DATATypeSTANDARD TABLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..f3e219f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,114 @@ + + + +SET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

SET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Sets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesNoDefault date format
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_DELIMITER.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_DELIMITER.html new file mode 100644 index 0000000..7b145da --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_DELIMITER.html @@ -0,0 +1,114 @@ + + + +SET_DELIMITER + + + + + +

SET_DELIMITER

+
+

+Description: +Set Delimiter value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeCHAR01';'YesYesDelimiter Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ENCLOSURE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ENCLOSURE.html new file mode 100644 index 0000000..3f1ef98 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ENCLOSURE.html @@ -0,0 +1,114 @@ + + + +SET_ENCLOSURE + + + + + +

SET_ENCLOSURE

+
+

+Description: +Set Enclosure character +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeCHAR01'"'YesYesText field enclosure character
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ENDOFLINE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ENDOFLINE.html new file mode 100644 index 0000000..7ea5f54 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ENDOFLINE.html @@ -0,0 +1,114 @@ + + + +SET_ENDOFLINE + + + + + +

SET_ENDOFLINE

+
+

+Description: +Set End Of Line character +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeANYCL_ABAP_CHAR_UTILITIES=>CR_LFYesYesEnd Of Line Character
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ID.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ID.html new file mode 100644 index 0000000..3d6a1c9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ID.html @@ -0,0 +1,114 @@ + + + +SET_ID + + + + + +

SET_ID

+
+

+Description: +Sets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IV_IDTypeIYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_MERGE.html new file mode 100644 index 0000000..28ab5bc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_MERGE.html @@ -0,0 +1,141 @@ + + + +SET_MERGE + + + + + +

SET_MERGE

+
+

+Description: +Set the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMN_STARTTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column Start
IP_COLUMN_ENDTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column End
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_ROW_TOTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_OUTLINE_LEVEL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_OUTLINE_LEVEL.html new file mode 100644 index 0000000..b5d09ad --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_OUTLINE_LEVEL.html @@ -0,0 +1,118 @@ + + + +SET_OUTLINE_LEVEL + + + + + +

SET_OUTLINE_LEVEL

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_OUTLINE_LEVELTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_PRINT_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_PRINT_GRIDLINES.html new file mode 100644 index 0000000..9bf6e56 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_PRINT_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_PRINT_GRIDLINES + + + + + +

SET_PRINT_GRIDLINES

+
+

+Description: +Set print gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_PRINT_GRIDLINESTypeZEXCEL_PRINT_GRIDLINESYesNoPrint Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_RANGE.html new file mode 100644 index 0000000..fe9f9b1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_RANGE.html @@ -0,0 +1,141 @@ + + + +SET_RANGE + + + + + +

SET_RANGE

+
+

+Description: +Set range used in conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_START_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_START_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_STOP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STOP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ROW_HEIGHT.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ROW_HEIGHT.html new file mode 100644 index 0000000..d1d84a9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ROW_HEIGHT.html @@ -0,0 +1,114 @@ + + + +SET_ROW_HEIGHT + + + + + +

SET_ROW_HEIGHT

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ROW_HEIGHTTypeFLOATYesNoField of type FLTP
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ROW_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ROW_INDEX.html new file mode 100644 index 0000000..80c0ccd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_ROW_INDEX.html @@ -0,0 +1,114 @@ + + + +SET_ROW_INDEX + + + + + +

SET_ROW_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_SHOW_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_SHOW_GRIDLINES.html new file mode 100644 index 0000000..f42cb62 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_SHOW_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_GRIDLINES + + + + + +

SET_SHOW_GRIDLINES

+
+

+Description: +Set show gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_GRIDLINESTypeZEXCEL_SHOW_GRIDLINESYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_SHOW_ROWCOLHEADERS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_SHOW_ROWCOLHEADERS.html new file mode 100644 index 0000000..b365b86 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_SHOW_ROWCOLHEADERS.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_ROWCOLHEADERS + + + + + +

SET_SHOW_ROWCOLHEADERS

+
+

+Description: +Set show colum row headers +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_ROWCOLHEADERSTypeZEXCEL_SHOW_ROWCOLHEADERYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_TABLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_TABLE.html new file mode 100644 index 0000000..ef2d677 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_TABLE.html @@ -0,0 +1,159 @@ + + + +SET_TABLE + + + + + +

SET_TABLE

+
+

+Description: +Set cell value from a table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
IP_HDR_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_BODY_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_TABLE_TITLETypeSTRINGYesNo
IP_TOP_LEFT_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHA'B'YesNoCell Column
IP_TOP_LEFT_ROWTypeZEXCEL_CELL_ROW3YesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_TITLE.html new file mode 100644 index 0000000..fe9bc3e --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_TITLE.html @@ -0,0 +1,114 @@ + + + +SET_TITLE + + + + + +

SET_TITLE

+
+

+Description: +Get WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TITLETypeZEXCEL_SHEET_TITLEYesNoTitle
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_VISIBLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_VISIBLE.html new file mode 100644 index 0000000..13e1bd6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_VISIBLE.html @@ -0,0 +1,114 @@ + + + +SET_VISIBLE + + + + + +

SET_VISIBLE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VISIBLETypeBOOLEANYesNoBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_WIDTH.html new file mode 100644 index 0000000..af242fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_WIDTH.html @@ -0,0 +1,121 @@ + + + +SET_WIDTH + + + + + +

SET_WIDTH

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WIDTHTypeFLOATYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_XF_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_XF_INDEX.html new file mode 100644 index 0000000..cb76611 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SET_XF_INDEX.html @@ -0,0 +1,114 @@ + + + +SET_XF_INDEX + + + + + +

SET_XF_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XF_INDEXTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SIZE.html new file mode 100644 index 0000000..3b298dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-SIZE.html @@ -0,0 +1,112 @@ + + + +SIZE + + + + + +

SIZE

+
+

+Description: +Specifies number of contained elements +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-UPDATE_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-UPDATE_DIMENSION_RANGE.html new file mode 100644 index 0000000..8b43dab --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-UPDATE_DIMENSION_RANGE.html @@ -0,0 +1,105 @@ + + + +UPDATE_DIMENSION_RANGE + + + + + +

UPDATE_DIMENSION_RANGE

+
+

+Description: +Update dimension range +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html new file mode 100644 index 0000000..792a359 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html @@ -0,0 +1,112 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE

+
+

+Description: +Set Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_STYLETypeZEXCEL_CELL_STYLEYesStyle identifier
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html new file mode 100644 index 0000000..23583c3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE

+
+

+Description: +Inizialize sheet properties +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html new file mode 100644 index 0000000..bf942bb --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE

+
+

+Description: +Get Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_STYLETypeZEXCEL_CELL_STYLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html new file mode 100644 index 0000000..c77e426 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE

+
+

+Description: +Initialize protection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html new file mode 100644 index 0000000..27f1c1d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAMETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html new file mode 100644 index 0000000..e1b86f9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAME_PRTypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_WRITER~WRITE_FILE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_WRITER~WRITE_FILE.html new file mode 100644 index 0000000..c483160 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV-ZIF_EXCEL_WRITER~WRITE_FILE.html @@ -0,0 +1,121 @@ + + + +ZIF_EXCEL_WRITER~WRITE_FILE + + + + + +

ZIF_EXCEL_WRITER~WRITE_FILE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FILETypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_CSV.html b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV.html new file mode 100644 index 0000000..85dd044 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_CSV.html @@ -0,0 +1,95 @@ + + + +ZCL_EXCEL_WRITER_CSV + + + + + + +

ZCL_EXCEL_WRITER_CSV

+
+Description: +Excel writer 2007 +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
EXCELInstance AttributePrivateNoType Ref ToZCL_EXCELExcel creator
DELIMITERStatic AttributePrivateNoTypeCHAR01Delimiter';'
ENCLOSUREStatic AttributePrivateNoTypeCHAR01Text inclusure character'"'
EOLStatic AttributePrivateNoTypeCHAR01End Of lineCL_ABAP_CHAR_UTILITIES=>CR_LF
WORKSHEET_NAMEStatic AttributePrivateNoTypeZEXCEL_WORKSHEETS_NAMEWorksheets name
WORKSHEET_INDEXStatic AttributePrivateNoTypeZEXCEL_ACTIVE_WORKSHEETActive Worksheet
+

Events:

+
+ + diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD.html new file mode 100644 index 0000000..7e24994 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD.html @@ -0,0 +1,114 @@ + + + +ADD + + + + + +

ADD

+
+

+Description: +Adds an Element to the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_STYLE_CONDITIONALType Ref ToZCL_EXCEL_STYLE_CONDITIONALYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_DRAWING.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_DRAWING.html new file mode 100644 index 0000000..b949f63 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_DRAWING.html @@ -0,0 +1,114 @@ + + + +ADD_DRAWING + + + + + +

ADD_DRAWING

+
+

+Description: +Add drawing to the sheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_DRAWINGType Ref ToZCL_EXCEL_DRAWINGYesNoDrawing
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_CONDITIONAL_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_CONDITIONAL_STYLE.html new file mode 100644 index 0000000..7f3dd7d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_CONDITIONAL_STYLE.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_CONDITIONAL_STYLE + + + + + +

ADD_NEW_CONDITIONAL_STYLE

+
+

+Description: +Creates a new conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_CONDITIONAL_STYLEType Ref ToZCL_EXCEL_STYLE_CONDITIONALYesFont Style
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_DATA_VALIDATION.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_DATA_VALIDATION.html new file mode 100644 index 0000000..fd4c6ac --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_DATA_VALIDATION.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_DATA_VALIDATION + + + + + +

ADD_NEW_DATA_VALIDATION

+
+

+Description: +Creates a new data validation +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_DATA_VALIDATIONType Ref ToZCL_EXCEL_DATA_VALIDATIONYesData validation
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_DRAWING.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_DRAWING.html new file mode 100644 index 0000000..2ac4986 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_DRAWING.html @@ -0,0 +1,121 @@ + + + +ADD_NEW_DRAWING + + + + + +

ADD_NEW_DRAWING

+
+

+Description: +Create a new drawing +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TITLETypeZEXCEL_SHEET_TITLEYesNoTitle
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_DRAWINGType Ref ToZCL_EXCEL_DRAWINGYesDrawing
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_RANGE.html new file mode 100644 index 0000000..3dd0ed9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_RANGE.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_RANGE + + + + + +

ADD_NEW_RANGE

+
+

+Description: +Create a new range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_RANGEType Ref ToZCL_EXCEL_RANGEYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_STYLE.html new file mode 100644 index 0000000..ebbdbf5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_STYLE.html @@ -0,0 +1,112 @@ + + + +ADD_NEW_STYLE + + + + + +

ADD_NEW_STYLE

+
+

+Description: +Create a new style +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_STYLEType Ref ToZCL_EXCEL_STYLEYesStyle
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_WORKSHEET.html new file mode 100644 index 0000000..366cecf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ADD_NEW_WORKSHEET.html @@ -0,0 +1,121 @@ + + + +ADD_NEW_WORKSHEET + + + + + +

ADD_NEW_WORKSHEET

+
+

+Description: +Create a new worksheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TITLETypeZEXCEL_SHEET_TITLEYesNoTitle
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesWorksheet
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-BIND_ALV.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-BIND_ALV.html new file mode 100644 index 0000000..6ff57fb --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-BIND_ALV.html @@ -0,0 +1,241 @@ + + + +BIND_ALV + + + + + +

BIND_ALV

+
+

+Description: +Set cell value from ALV object +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_DOCUMENT_URLTypeCHAR255SPACEYesNoURL of file, must start with
I_XLSTypeCSPACEYesNoExport to .xls file?
I_SAVE_PATHTypeSTRINGYesNoLocal file path
IO_ALVType Ref ToCL_GUI_ALV_GRIDYesNoALV List Viewer
IT_LISTHEADERTypeSLIS_T_LISTHEADERYesNoTop-of-page
I_TOPTypeI1YesNoTop edge of data block
I_LEFTTypeI1YesNoLeft-hand edge of data block
I_COLUMNS_HEADERTypeC'X'YesNoExport columns header?
I_COLUMNS_AUTOFITTypeC'X'YesNoAutofit columns width?
I_FORMAT_COL_HEADERTypeSOI_FORMAT_ITEMYesNoColumn header format
I_FORMAT_SUBTOTALTypeSOI_FORMAT_ITEMYesNoSubtotal lines format
I_FORMAT_TOTALTypeSOI_FORMAT_ITEMYesNoTotal line format
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
ExceptionShort Text
MISS_GUIDEWindows guide is missing
EX_TRANSFER_KKBLO_ERRORTransfer to KKBLO struct error
FATAL_ERROR
INV_DATA_RANGE
DIM_MISMATCH_VKEY
DIM_MISMATCH_SEMA
ERROR_IN_SEMAUn-know columns Ops, columns Typ
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-BIND_TABLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-BIND_TABLE.html new file mode 100644 index 0000000..f760734 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-BIND_TABLE.html @@ -0,0 +1,139 @@ + + + +BIND_TABLE + + + + + +

BIND_TABLE

+
+

+Description: +Set cell value from a table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
IT_FIELD_CATALOGTypeZEXCEL_T_FIELDCATALOGYesNoTable binding field catalog
IS_TABLE_SETTINGSTypeZEXCEL_S_TABLE_SETTINGSYesNoExcel table binding settings
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
ES_TABLE_SETTINGSTypeZEXCEL_S_TABLE_SETTINGSNoExcel table binding settings
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CALCULATE_COLUMN_WIDTHS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CALCULATE_COLUMN_WIDTHS.html new file mode 100644 index 0000000..c59f060 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CALCULATE_COLUMN_WIDTHS.html @@ -0,0 +1,105 @@ + + + +CALCULATE_COLUMN_WIDTHS + + + + + +

CALCULATE_COLUMN_WIDTHS

+
+

+Description: +Calculate widths for auto-size columns +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CALCULATE_TEXT_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CALCULATE_TEXT_WIDTH.html new file mode 100644 index 0000000..736c4dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CALCULATE_TEXT_WIDTH.html @@ -0,0 +1,121 @@ + + + +CALCULATE_TEXT_WIDTH + + + + + +

CALCULATE_TEXT_WIDTH

+
+

+Description: +Calculate text width based on font size +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_TEXTTypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeIYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CHAR2HEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CHAR2HEX.html new file mode 100644 index 0000000..c8a893e --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CHAR2HEX.html @@ -0,0 +1,121 @@ + + + +CHAR2HEX + + + + + +

CHAR2HEX

+
+

+Description: +Character to Hexadecimal +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_CHARTypeCHAR1YesNoSingle-Character Indicator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HEXTypeZEXCEL_PWD_HASHYesPassword hash
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CLEAR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CLEAR.html new file mode 100644 index 0000000..5653d6c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CLEAR.html @@ -0,0 +1,105 @@ + + + +CLEAR + + + + + +

CLEAR

+
+

+Description: +Initializes the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONSTRUCTOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONSTRUCTOR.html new file mode 100644 index 0000000..ffab25c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONSTRUCTOR.html @@ -0,0 +1,105 @@ + + + +CONSTRUCTOR + + + + + +

CONSTRUCTOR

+
+

+Description: +CONSTRUCTOR +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
ConstructorInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONVERT_COLUMN2ALPHA.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONVERT_COLUMN2ALPHA.html new file mode 100644 index 0000000..b42afbd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONVERT_COLUMN2ALPHA.html @@ -0,0 +1,121 @@ + + + +CONVERT_COLUMN2ALPHA + + + + + +

CONVERT_COLUMN2ALPHA

+
+

+Description: +Convert column indicator to Alpha +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMNYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesCell Column
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONVERT_COLUMN2INT.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONVERT_COLUMN2INT.html new file mode 100644 index 0000000..bb68bf0 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONVERT_COLUMN2INT.html @@ -0,0 +1,121 @@ + + + +CONVERT_COLUMN2INT + + + + + +

CONVERT_COLUMN2INT

+
+

+Description: +Convert column indicator to Integer +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLUMNTypeZEXCEL_CELL_COLUMNYesCell Column
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONVERT_COLUMNROW2COLUMN_A_ROW.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONVERT_COLUMNROW2COLUMN_A_ROW.html new file mode 100644 index 0000000..81b153a --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONVERT_COLUMNROW2COLUMN_A_ROW.html @@ -0,0 +1,128 @@ + + + +CONVERT_COLUMNROW2COLUMN_A_ROW + + + + + +

CONVERT_COLUMNROW2COLUMN_A_ROW

+
+

+Description: +Convert ColumnRow i.e. AB34 to AB and 34 +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_COLUMNROWTypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
E_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHANoCell Column
E_ROWTypeZEXCEL_CELL_ROWNoNatural number
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONVERT_RANGE2COLUMN_A_ROW.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONVERT_RANGE2COLUMN_A_ROW.html new file mode 100644 index 0000000..8233c87 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CONVERT_RANGE2COLUMN_A_ROW.html @@ -0,0 +1,149 @@ + + + +CONVERT_RANGE2COLUMN_A_ROW + + + + + +

CONVERT_RANGE2COLUMN_A_ROW

+
+

+Description: +Converts Sheet1!AB34:CD56 to Sheet1, AB, 34, CD, 56 +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_RANGETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
E_COLUMN_STARTTypeZEXCEL_CELL_COLUMN_ALPHANoCell Column Start
E_COLUMN_ENDTypeZEXCEL_CELL_COLUMN_ALPHANoCell Column End
E_ROW_STARTTypeZEXCEL_CELL_ROWNoCell Row
E_ROW_ENDTypeZEXCEL_CELL_ROWNoCell Row
E_SHEETTypeZEXCEL_SHEET_TITLENoTitle
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE.html new file mode 100644 index 0000000..81e8582 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE.html @@ -0,0 +1,112 @@ + + + +CREATE + + + + + +

CREATE

+
+

+Description: +Create Excel +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_EXCELTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_CONTENT_TYPES.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_CONTENT_TYPES.html new file mode 100644 index 0000000..f075699 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_CONTENT_TYPES.html @@ -0,0 +1,112 @@ + + + +CREATE_CONTENT_TYPES + + + + + +

CREATE_CONTENT_TYPES

+
+

+Description: +Create '[Content_Types].xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_CSV.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_CSV.html new file mode 100644 index 0000000..16666aa --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_CSV.html @@ -0,0 +1,112 @@ + + + +CREATE_CSV + + + + + +

CREATE_CSV

+
+

+Description: +Create CSV ; Delimited format +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_DOCPROPS_APP.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_DOCPROPS_APP.html new file mode 100644 index 0000000..db4a694 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_DOCPROPS_APP.html @@ -0,0 +1,112 @@ + + + +CREATE_DOCPROPS_APP + + + + + +

CREATE_DOCPROPS_APP

+
+

+Description: +Create 'docProps/app.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_DOCPROPS_CORE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_DOCPROPS_CORE.html new file mode 100644 index 0000000..213dc1c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_DOCPROPS_CORE.html @@ -0,0 +1,112 @@ + + + +CREATE_DOCPROPS_CORE + + + + + +

CREATE_DOCPROPS_CORE

+
+

+Description: +Create 'docProps/core.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_EXTERNAL_LINK.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_EXTERNAL_LINK.html new file mode 100644 index 0000000..f7c9e20 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_EXTERNAL_LINK.html @@ -0,0 +1,121 @@ + + + +CREATE_EXTERNAL_LINK + + + + + +

CREATE_EXTERNAL_LINK

+
+

+Description: +Creates new instance of external link (URL) +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IV_URLTypeSTRINGYesNoURL location
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_LINKType Ref ToZCL_EXCEL_HYPERLINKYesHyperlink
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_INTERNAL_LINK.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_INTERNAL_LINK.html new file mode 100644 index 0000000..14dc86a --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_INTERNAL_LINK.html @@ -0,0 +1,121 @@ + + + +CREATE_INTERNAL_LINK + + + + + +

CREATE_INTERNAL_LINK

+
+

+Description: +Creates new instance of internal link +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IV_LOCATIONTypeSTRINGYesNoLocation in current spraedsheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_LINKType Ref ToZCL_EXCEL_HYPERLINKYesHyperlink
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_MEDIA_NAME.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_MEDIA_NAME.html new file mode 100644 index 0000000..ae1298e --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_MEDIA_NAME.html @@ -0,0 +1,114 @@ + + + +CREATE_MEDIA_NAME + + + + + +

CREATE_MEDIA_NAME

+
+

+Description: +Generate media name image#.ext +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_NEW_ARGB.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_NEW_ARGB.html new file mode 100644 index 0000000..7c423b3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_NEW_ARGB.html @@ -0,0 +1,139 @@ + + + +CREATE_NEW_ARGB + + + + + +

CREATE_NEW_ARGB

+
+

+Description: +Create a custom ARGB color from RGB +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_REDTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_GREENTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
IP_BLUTypeZEXCEL_STYLE_COLOR_COMPONENTYesNoColor Component
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLOR_ARGBTypeZEXCEL_STYLE_COLOR_ARGBYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_RELATIONSHIPS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_RELATIONSHIPS.html new file mode 100644 index 0000000..5cd6227 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_RELATIONSHIPS.html @@ -0,0 +1,112 @@ + + + +CREATE_RELATIONSHIPS + + + + + +

CREATE_RELATIONSHIPS

+
+

+Description: +Create '_rels/.rels' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_DRAWINGS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_DRAWINGS.html new file mode 100644 index 0000000..5af19bc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_DRAWINGS.html @@ -0,0 +1,121 @@ + + + +CREATE_XL_DRAWINGS + + + + + +

CREATE_XL_DRAWINGS

+
+

+Description: +Create 'xl/drawings/drawing1.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_DRAWINGS_RELS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_DRAWINGS_RELS.html new file mode 100644 index 0000000..fa1a2c4 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_DRAWINGS_RELS.html @@ -0,0 +1,121 @@ + + + +CREATE_XL_DRAWINGS_RELS + + + + + +

CREATE_XL_DRAWINGS_RELS

+
+

+Description: +Create 'xl/drawings/_rels/drawing1.xml.rels' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_RELATIONSHIPS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_RELATIONSHIPS.html new file mode 100644 index 0000000..1a3dac6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_RELATIONSHIPS.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_RELATIONSHIPS + + + + + +

CREATE_XL_RELATIONSHIPS

+
+

+Description: +Create 'xl/_rels/workbook.xml.rels' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_SHAREDSTRINGS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_SHAREDSTRINGS.html new file mode 100644 index 0000000..e4be645 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_SHAREDSTRINGS.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_SHAREDSTRINGS + + + + + +

CREATE_XL_SHAREDSTRINGS

+
+

+Description: +Create 'xl/sharedStrings.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_SHEET.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_SHEET.html new file mode 100644 index 0000000..b1bc270 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_SHEET.html @@ -0,0 +1,130 @@ + + + +CREATE_XL_SHEET + + + + + +

CREATE_XL_SHEET

+
+

+Description: +Create 'xl/sheet.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoWorksheet
IV_ACTIVETypeFLAG''YesNoGeneral Flag
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_SHEET_RELS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_SHEET_RELS.html new file mode 100644 index 0000000..ea8fced --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_SHEET_RELS.html @@ -0,0 +1,130 @@ + + + +CREATE_XL_SHEET_RELS + + + + + +

CREATE_XL_SHEET_RELS

+
+

+Description: +Create 'xl/workbook/_rels/sheet.xml.rels' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNo
IV_DRAWING_INDEXTypeIYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_STYLES.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_STYLES.html new file mode 100644 index 0000000..6c30f6f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_STYLES.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_STYLES + + + + + +

CREATE_XL_STYLES

+
+

+Description: +Create 'xl/styles.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_STYLES_COLOR_NODE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_STYLES_COLOR_NODE.html new file mode 100644 index 0000000..fc6d9fd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_STYLES_COLOR_NODE.html @@ -0,0 +1,141 @@ + + + +CREATE_XL_STYLES_COLOR_NODE + + + + + +

CREATE_XL_STYLES_COLOR_NODE

+
+

+Description: +Create 'xl/styles.xml' color node +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_DOCUMENTType Ref ToIF_IXML_DOCUMENTYesNoIF_IXML_DOCUMENT
IO_PARENTType Ref ToIF_IXML_ELEMENTYesNoIF_IXML_ELEMENT
IV_COLOR_ELEM_NAMETypeSTRING'color'YesNo
IS_COLORTypeZEXCEL_S_STYLE_COLORYesNoColor
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_TABLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_TABLE.html new file mode 100644 index 0000000..5cead51 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_TABLE.html @@ -0,0 +1,121 @@ + + + +CREATE_XL_TABLE + + + + + +

CREATE_XL_TABLE

+
+

+Description: + +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_TABLEType Ref ToZCL_EXCEL_TABLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_THEME.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_THEME.html new file mode 100644 index 0000000..e653e75 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_THEME.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_THEME + + + + + +

CREATE_XL_THEME

+
+

+Description: +Create 'xl/theme/theme1.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_WORKBOOK.html new file mode 100644 index 0000000..a386291 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-CREATE_XL_WORKBOOK.html @@ -0,0 +1,112 @@ + + + +CREATE_XL_WORKBOOK + + + + + +

CREATE_XL_WORKBOOK

+
+

+Description: +Create 'xl/workbook.xml' +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-DATE_TO_EXCEL_STRING.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-DATE_TO_EXCEL_STRING.html new file mode 100644 index 0000000..4aa2bbf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-DATE_TO_EXCEL_STRING.html @@ -0,0 +1,121 @@ + + + +DATE_TO_EXCEL_STRING + + + + + +

DATE_TO_EXCEL_STRING

+
+

+Description: +Convert date from SAP format to Excel +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeDYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeZEXCEL_CELL_VALUEYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-DELETE_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-DELETE_MERGE.html new file mode 100644 index 0000000..43df7e0 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-DELETE_MERGE.html @@ -0,0 +1,105 @@ + + + +DELETE_MERGE + + + + + +

DELETE_MERGE

+
+

+Description: +Delete the used merges +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ENCRYPT_PASSWORD.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ENCRYPT_PASSWORD.html new file mode 100644 index 0000000..f8b04c9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ENCRYPT_PASSWORD.html @@ -0,0 +1,121 @@ + + + +ENCRYPT_PASSWORD + + + + + +

ENCRYPT_PASSWORD

+
+

+Description: +Encrypt password +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_PWDTypeZEXCEL_AES_PASSWORDYesNoAES Password
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ENCRYPTED_PWDTypeZEXCEL_AES_PASSWORDYesAES Password
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ESCAPE_STRING.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ESCAPE_STRING.html new file mode 100644 index 0000000..f01cd5f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ESCAPE_STRING.html @@ -0,0 +1,121 @@ + + + +ESCAPE_STRING + + + + + +

ESCAPE_STRING

+
+

+Description: +Escape a string +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ESCAPED_VALUETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-EXCEL_STRING_TO_DATE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-EXCEL_STRING_TO_DATE.html new file mode 100644 index 0000000..75d55db --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-EXCEL_STRING_TO_DATE.html @@ -0,0 +1,121 @@ + + + +EXCEL_STRING_TO_DATE + + + + + +

EXCEL_STRING_TO_DATE

+
+

+Description: +Convert date from Excel format to SAP +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeDYesDate
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-EXCEL_STRING_TO_TIME.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-EXCEL_STRING_TO_TIME.html new file mode 100644 index 0000000..b7b4fc8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-EXCEL_STRING_TO_TIME.html @@ -0,0 +1,121 @@ + + + +EXCEL_STRING_TO_TIME + + + + + +

EXCEL_STRING_TO_TIME

+
+

+Description: +Convert time from Excel format to SAP +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeTYesTime
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-FILL_STRUCT_FROM_ATTRIBUTES.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-FILL_STRUCT_FROM_ATTRIBUTES.html new file mode 100644 index 0000000..392dbb7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-FILL_STRUCT_FROM_ATTRIBUTES.html @@ -0,0 +1,123 @@ + + + +FILL_STRUCT_FROM_ATTRIBUTES + + + + + +

FILL_STRUCT_FROM_ATTRIBUTES

+
+

+Description: +Fills structure fields based on XML node attributes +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ELEMENTType Ref ToIF_IXML_ELEMENTYesNoIF_IXML_ELEMENT
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
CP_STRUCTURETypeANYYesNo
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-FLAG2BOOL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-FLAG2BOOL.html new file mode 100644 index 0000000..acffa66 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-FLAG2BOOL.html @@ -0,0 +1,121 @@ + + + +FLAG2BOOL + + + + + +

FLAG2BOOL

+
+

+Description: +Convert a FLAG to BOOLEAN value +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_FLAGTypeFLAGYesNoGeneral Flag
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_BOOLEANTypeCHAR5YesBoolean value
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-FREEZE_PANES.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-FREEZE_PANES.html new file mode 100644 index 0000000..2d6d702 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-FREEZE_PANES.html @@ -0,0 +1,127 @@ + + + +FREEZE_PANES + + + + + +

FREEZE_PANES

+
+

+Description: +Freeze panes for supplied number of rows and/or columns +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_NUM_COLUMNSTypeIYesNoNumber of columns to freeze (starting from left-most)
IP_NUM_ROWSTypeIYesNoNumber of rows to freeze (starting from top-most)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET.html new file mode 100644 index 0000000..19ef0be --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET.html @@ -0,0 +1,121 @@ + + + +GET + + + + + +

GET

+
+

+Description: +Gets Element +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeZEXCEL_ACTIVE_WORKSHEETYesNoActive Worksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_STYLE_CONDITIONALType Ref ToZCL_EXCEL_STYLE_CONDITIONALYesFont Style
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ACTIVE_CELL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ACTIVE_CELL.html new file mode 100644 index 0000000..bb7c123 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ACTIVE_CELL.html @@ -0,0 +1,112 @@ + + + +GET_ACTIVE_CELL + + + + + +

GET_ACTIVE_CELL

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ACTIVE_CELLTypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ACTIVE_SHEET_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ACTIVE_SHEET_INDEX.html new file mode 100644 index 0000000..4c69bf6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ACTIVE_SHEET_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_ACTIVE_SHEET_INDEX + + + + + +

GET_ACTIVE_SHEET_INDEX

+
+

+Description: +Get active worksheet index +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ACTIVE_WORKSHEETTypeZEXCEL_ACTIVE_WORKSHEETYesActive Worksheet
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ACTIVE_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ACTIVE_WORKSHEET.html new file mode 100644 index 0000000..7fa1a2d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ACTIVE_WORKSHEET.html @@ -0,0 +1,112 @@ + + + +GET_ACTIVE_WORKSHEET + + + + + +

GET_ACTIVE_WORKSHEET

+
+

+Description: +Get active worksheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesWorksheet
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_AUTO_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_AUTO_SIZE.html new file mode 100644 index 0000000..3e73703 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_AUTO_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_AUTO_SIZE + + + + + +

GET_AUTO_SIZE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_AUTO_SIZETypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_CELL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_CELL.html new file mode 100644 index 0000000..f4c3126 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_CELL.html @@ -0,0 +1,144 @@ + + + +GET_CELL + + + + + +

GET_CELL

+
+

+Description: +Get cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeZEXCEL_CELL_VALUENoCell Value
EP_RCTypeSYSUBRCNoReturn Value of ABAP Statements
EP_STYLEType Ref ToZCL_EXCEL_STYLENoStyle
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLLAPSED.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLLAPSED.html new file mode 100644 index 0000000..74a9257 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLLAPSED.html @@ -0,0 +1,112 @@ + + + +GET_COLLAPSED + + + + + +

GET_COLLAPSED

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLLAPSEDTypeBOOLEANYesBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLORS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLUMN_DIMENSION.html new file mode 100644 index 0000000..6db5e93 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLUMN_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_COLUMN_DIMENSION + + + + + +

GET_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLUMN_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLUMN_DIMENSIONS.html new file mode 100644 index 0000000..60b59e7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLUMN_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_COLUMN_DIMENSIONS + + + + + +

GET_COLUMN_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONTypeZEXCEL_T_WORKSHEET_COLUMNDIMEYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLUMN_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLUMN_INDEX.html new file mode 100644 index 0000000..f42996f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COLUMN_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_COLUMN_INDEX + + + + + +

GET_COLUMN_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COND_STYLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COND_STYLES_ITERATOR.html new file mode 100644 index 0000000..dc493ea --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_COND_STYLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_COND_STYLES_ITERATOR + + + + + +

GET_COND_STYLES_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DATA_VALIDATIONS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DATA_VALIDATIONS_ITERATOR.html new file mode 100644 index 0000000..94858f6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DATA_VALIDATIONS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_ITERATOR + + + + + +

GET_DATA_VALIDATIONS_ITERATOR

+
+

+Description: +Get conditional styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DATA_VALIDATIONS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DATA_VALIDATIONS_SIZE.html new file mode 100644 index 0000000..a67368c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DATA_VALIDATIONS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_DATA_VALIDATIONS_SIZE + + + + + +

GET_DATA_VALIDATIONS_SIZE

+
+

+Description: +Get the number of data validation objects +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DEFAULT_COLUMN_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DEFAULT_COLUMN_DIMENSION.html new file mode 100644 index 0000000..46ee9cf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DEFAULT_COLUMN_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_COLUMN_DIMENSION + + + + + +

GET_DEFAULT_COLUMN_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_COLUMN_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..d51aab7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

GET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Gets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesDefault date format
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DEFAULT_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DEFAULT_ROW_DIMENSION.html new file mode 100644 index 0000000..40813a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DEFAULT_ROW_DIMENSION.html @@ -0,0 +1,112 @@ + + + +GET_DEFAULT_ROW_DIMENSION + + + + + +

GET_DEFAULT_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DIMENSION_RANGE.html new file mode 100644 index 0000000..9edc420 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DIMENSION_RANGE.html @@ -0,0 +1,112 @@ + + + +GET_DIMENSION_RANGE + + + + + +

GET_DIMENSION_RANGE

+
+

+Description: +Get used range dimension +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_DIMENSION_RANGETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DRAWINGS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DRAWINGS.html new file mode 100644 index 0000000..7e27efa --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DRAWINGS.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS + + + + + +

GET_DRAWINGS

+
+

+Description: +Gets drawing attached to the sheet +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_DRAWINGSType Ref ToZCL_EXCEL_DRAWINGSYesDrawings collection
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DRAWINGS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DRAWINGS_ITERATOR.html new file mode 100644 index 0000000..2f60e7a --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_DRAWINGS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_DRAWINGS_ITERATOR + + + + + +

GET_DRAWINGS_ITERATOR

+
+

+Description: +Get drawing iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FIELDCATALOG.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FIELDCATALOG.html new file mode 100644 index 0000000..45cae9d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FIELDCATALOG.html @@ -0,0 +1,121 @@ + + + +GET_FIELDCATALOG + + + + + +

GET_FIELDCATALOG

+
+

+Description: +Creates field catalog for BIND_TABLE based on internal table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FIELDCATALOGTypeZEXCEL_T_FIELDCATALOGYesTable binding field catalog
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FREEZE_CELL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FREEZE_CELL.html new file mode 100644 index 0000000..9d16d96 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FREEZE_CELL.html @@ -0,0 +1,119 @@ + + + +GET_FREEZE_CELL + + + + + +

GET_FREEZE_CELL

+
+

+Description: +Gets the coordinates of cell determining freeze panes +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_ROWTypeZEXCEL_CELL_ROWNoCell Row
EP_COLUMNTypeZEXCEL_CELL_COLUMNNoCell Column
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FROM_COL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FROM_COL.html new file mode 100644 index 0000000..9b81620 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FROM_COL.html @@ -0,0 +1,112 @@ + + + +GET_FROM_COL + + + + + +

GET_FROM_COL

+
+

+Description: +From col +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_FROM_COLTypeZEXCEL_CELL_COLUMNYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FROM_ROW.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FROM_ROW.html new file mode 100644 index 0000000..5e6817d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FROM_ROW.html @@ -0,0 +1,112 @@ + + + +GET_FROM_ROW + + + + + +

GET_FROM_ROW

+
+

+Description: +From row +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_FROM_ROWTypeZEXCEL_CELL_ROWYesCell Row
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FROM_ZIP_ARCHIVE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FROM_ZIP_ARCHIVE.html new file mode 100644 index 0000000..38cddf2 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_FROM_ZIP_ARCHIVE.html @@ -0,0 +1,125 @@ + + + +GET_FROM_ZIP_ARCHIVE + + + + + +

GET_FROM_ZIP_ARCHIVE

+
+

+Description: +Read file from ZIP Archive +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_FILENAMETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_CONTENTTypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_GUID.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_GUID.html new file mode 100644 index 0000000..0917593 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_GUID.html @@ -0,0 +1,112 @@ + + + +GET_GUID + + + + + +

GET_GUID

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_GUIDTypeZEXCEL_CELL_STYLEYesGeneric Data Element for GUID Fields (X16)
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HEIGHT_EMU_STR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HEIGHT_EMU_STR.html new file mode 100644 index 0000000..cd8198f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HEIGHT_EMU_STR.html @@ -0,0 +1,112 @@ + + + +GET_HEIGHT_EMU_STR + + + + + +

GET_HEIGHT_EMU_STR

+
+

+Description: +Height of bitmap in EMU as string +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HEIGHTTypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HIGHEST_COLUMN.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HIGHEST_COLUMN.html new file mode 100644 index 0000000..1288247 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HIGHEST_COLUMN.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_COLUMN + + + + + +

GET_HIGHEST_COLUMN

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_COLUMNTypeZEXCEL_CELL_COLUMNYesCell Column
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HIGHEST_ROW.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HIGHEST_ROW.html new file mode 100644 index 0000000..5c87508 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HIGHEST_ROW.html @@ -0,0 +1,112 @@ + + + +GET_HIGHEST_ROW + + + + + +

GET_HIGHEST_ROW

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_HIGHEST_ROWTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HYPERLINKS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HYPERLINKS_ITERATOR.html new file mode 100644 index 0000000..b800a69 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HYPERLINKS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_ITERATOR + + + + + +

GET_HYPERLINKS_ITERATOR

+
+

+Description: +Get iterator for links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HYPERLINKS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HYPERLINKS_SIZE.html new file mode 100644 index 0000000..dd81de8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_HYPERLINKS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_HYPERLINKS_SIZE + + + + + +

GET_HYPERLINKS_SIZE

+
+

+Description: +Gets the size of links collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ID.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ID.html new file mode 100644 index 0000000..bc94249 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ID.html @@ -0,0 +1,112 @@ + + + +GET_ID + + + + + +

GET_ID

+
+

+Description: +Gets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_IDTypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ITERATOR.html new file mode 100644 index 0000000..d97edb4 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_ITERATOR + + + + + +

GET_ITERATOR

+
+

+Description: +Returns an iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_IXML_FROM_ZIP_ARCHIVE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_IXML_FROM_ZIP_ARCHIVE.html new file mode 100644 index 0000000..4586120 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_IXML_FROM_ZIP_ARCHIVE.html @@ -0,0 +1,125 @@ + + + +GET_IXML_FROM_ZIP_ARCHIVE + + + + + +

GET_IXML_FROM_ZIP_ARCHIVE

+
+

+Description: +Read file from ZIP Archive +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_FILENAMETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_IXMLType Ref ToIF_IXML_DOCUMENTYesIF_IXML_DOCUMENT
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_MEDIA.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_MEDIA.html new file mode 100644 index 0000000..0cb826e --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_MEDIA.html @@ -0,0 +1,112 @@ + + + +GET_MEDIA + + + + + +

GET_MEDIA

+
+

+Description: +Returns media as XSTRING +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_MEDIATypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_MEDIA_NAME.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_MEDIA_NAME.html new file mode 100644 index 0000000..1f0cf5a --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_MEDIA_NAME.html @@ -0,0 +1,112 @@ + + + +GET_MEDIA_NAME + + + + + +

GET_MEDIA_NAME

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_NAMETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_MEDIA_TYPE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_MEDIA_TYPE.html new file mode 100644 index 0000000..c36c0dc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_MEDIA_TYPE.html @@ -0,0 +1,112 @@ + + + +GET_MEDIA_TYPE + + + + + +

GET_MEDIA_TYPE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_TYPETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_MERGE.html new file mode 100644 index 0000000..98a3674 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_MERGE.html @@ -0,0 +1,112 @@ + + + +GET_MERGE + + + + + +

GET_MERGE

+
+

+Description: +Get the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
MERGE_RANGETypeSTRING_TABLEYesTable of Strings
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_NAME.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_NAME.html new file mode 100644 index 0000000..dd3da1f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_NAME.html @@ -0,0 +1,112 @@ + + + +GET_NAME + + + + + +

GET_NAME

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_NAMETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_NEXT_TABLE_ID.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_NEXT_TABLE_ID.html new file mode 100644 index 0000000..05985fc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_NEXT_TABLE_ID.html @@ -0,0 +1,112 @@ + + + +GET_NEXT_TABLE_ID + + + + + +

GET_NEXT_TABLE_ID

+
+

+Description: +Get table ID unique across sheets +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_IDTypeIYesID
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_OUTLINE_LEVEL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_OUTLINE_LEVEL.html new file mode 100644 index 0000000..73f899f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_OUTLINE_LEVEL.html @@ -0,0 +1,112 @@ + + + +GET_OUTLINE_LEVEL + + + + + +

GET_OUTLINE_LEVEL

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_OUTLINE_LEVELTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_RANGES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_RANGES_ITERATOR.html new file mode 100644 index 0000000..3b5b903 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_RANGES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_RANGES_ITERATOR + + + + + +

GET_RANGES_ITERATOR

+
+

+Description: +Get ranges iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_REF.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_REF.html new file mode 100644 index 0000000..6afe4d6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_REF.html @@ -0,0 +1,112 @@ + + + +GET_REF + + + + + +

GET_REF

+
+

+Description: +Gets the reference string +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EV_REFTypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_REFERENCE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_REFERENCE.html new file mode 100644 index 0000000..0489503 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_REFERENCE.html @@ -0,0 +1,121 @@ + + + +GET_REFERENCE + + + + + +

GET_REFERENCE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INCLUDE_TOTALS_ROWTypeABAP_BOOLABAP_TRUEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
OV_REFERENCETypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ROW_DIMENSION.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ROW_DIMENSION.html new file mode 100644 index 0000000..6690595 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ROW_DIMENSION.html @@ -0,0 +1,121 @@ + + + +GET_ROW_DIMENSION + + + + + +

GET_ROW_DIMENSION

+
+

+Description: +Get column dimension at a specific column +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ROWTypeINT4YesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONType Ref ToZCL_EXCEL_WORKSHEET_ROWDIMENSIYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ROW_DIMENSIONS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ROW_DIMENSIONS.html new file mode 100644 index 0000000..ae6b7a8 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ROW_DIMENSIONS.html @@ -0,0 +1,112 @@ + + + +GET_ROW_DIMENSIONS + + + + + +

GET_ROW_DIMENSIONS

+
+

+Description: +Get column dimensions +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_DIMENSIONTypeZEXCEL_T_WORKSHEET_ROWDIMENSIOYesCollection of column dimensions
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ROW_HEIGHT.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ROW_HEIGHT.html new file mode 100644 index 0000000..9d64f54 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ROW_HEIGHT.html @@ -0,0 +1,112 @@ + + + +GET_ROW_HEIGHT + + + + + +

GET_ROW_HEIGHT

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_HEIGHTTypeFLOATYesField of type FLTP
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ROW_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ROW_INDEX.html new file mode 100644 index 0000000..2bc2217 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_ROW_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_ROW_INDEX + + + + + +

GET_ROW_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_ROW_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_SHARED_STRING_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_SHARED_STRING_INDEX.html new file mode 100644 index 0000000..4a1f6fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_SHARED_STRING_INDEX.html @@ -0,0 +1,121 @@ + + + +GET_SHARED_STRING_INDEX + + + + + +

GET_SHARED_STRING_INDEX

+
+

+Description: +Get shared string index +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CELL_VALUETypeZEXCEL_CELL_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_INDEXTypeINT4YesNatural Number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_STRUCTURE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_STRUCTURE.html new file mode 100644 index 0000000..7392c5b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_STRUCTURE.html @@ -0,0 +1,112 @@ + + + +GET_STRUCTURE + + + + + +

GET_STRUCTURE

+
+

+Description: +Get class as a structure +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
ES_ALIGNMENTTypeZEXCEL_S_STYLE_ALIGNMENTYesCell alignment
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_STYLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_STYLES_ITERATOR.html new file mode 100644 index 0000000..a77a016 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_STYLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_STYLES_ITERATOR + + + + + +

GET_STYLES_ITERATOR

+
+

+Description: +Get styles iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TABLES_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TABLES_ITERATOR.html new file mode 100644 index 0000000..007bde7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TABLES_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_ITERATOR + + + + + +

GET_TABLES_ITERATOR

+
+

+Description: +Get iterator for tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TABLES_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TABLES_SIZE.html new file mode 100644 index 0000000..a402427 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TABLES_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_TABLES_SIZE + + + + + +

GET_TABLES_SIZE

+
+

+Description: +Gets the size of tables collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYesSize
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TITLE.html new file mode 100644 index 0000000..4126af5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TITLE.html @@ -0,0 +1,121 @@ + + + +GET_TITLE + + + + + +

GET_TITLE

+
+

+Description: +Set WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ESCAPEDTypeFLAG''YesNoReturn escaped?
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_TITLETypeZEXCEL_SHEET_TITLEYesTitle
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TOTALS_FORMULA.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TOTALS_FORMULA.html new file mode 100644 index 0000000..fbd6259 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TOTALS_FORMULA.html @@ -0,0 +1,130 @@ + + + +GET_TOTALS_FORMULA + + + + + +

GET_TOTALS_FORMULA

+
+

+Description: +Returns formula for totals row based on column name and fun +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeCLIKEYesNo
IP_FUNCTIONTypeZEXCEL_TABLE_TOTALS_FUNCTIONYesNoTotals function for table column (xml ST_TotalsRowFunction)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FORMULATypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TO_COL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TO_COL.html new file mode 100644 index 0000000..71e6caa --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TO_COL.html @@ -0,0 +1,112 @@ + + + +GET_TO_COL + + + + + +

GET_TO_COL

+
+

+Description: +To col +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_TO_COLTypeZEXCEL_CELL_COLUMNYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TO_ROW.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TO_ROW.html new file mode 100644 index 0000000..3986b4f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_TO_ROW.html @@ -0,0 +1,112 @@ + + + +GET_TO_ROW + + + + + +

GET_TO_ROW

+
+

+Description: +To row +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_TO_ROWTypeZEXCEL_CELL_ROWYesCell Row
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_URL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_URL.html new file mode 100644 index 0000000..bb4e7f9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_URL.html @@ -0,0 +1,112 @@ + + + +GET_URL + + + + + +

GET_URL

+
+

+Description: +Gets the urls of the link +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EV_URLTypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_VALUE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_VALUE.html new file mode 100644 index 0000000..f5d62da --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_VALUE.html @@ -0,0 +1,112 @@ + + + +GET_VALUE + + + + + +

GET_VALUE

+
+

+Description: +Get value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeZEXCEL_RANGE_VALUEYesCell Value
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_VISIBLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_VISIBLE.html new file mode 100644 index 0000000..f1c7546 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_VISIBLE.html @@ -0,0 +1,112 @@ + + + +GET_VISIBLE + + + + + +

GET_VISIBLE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_VISIBLETypeBOOLEANYesBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WIDTH.html new file mode 100644 index 0000000..d3da96b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WIDTH.html @@ -0,0 +1,112 @@ + + + +GET_WIDTH + + + + + +

GET_WIDTH

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeFLOATYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WIDTH_EMU_STR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WIDTH_EMU_STR.html new file mode 100644 index 0000000..90ae64c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WIDTH_EMU_STR.html @@ -0,0 +1,112 @@ + + + +GET_WIDTH_EMU_STR + + + + + +

GET_WIDTH_EMU_STR

+
+

+Description: +Width of bitmap in EMU as string +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WIDTHTypeSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WORKSHEETS_ITERATOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WORKSHEETS_ITERATOR.html new file mode 100644 index 0000000..78914cd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WORKSHEETS_ITERATOR.html @@ -0,0 +1,112 @@ + + + +GET_WORKSHEETS_ITERATOR + + + + + +

GET_WORKSHEETS_ITERATOR

+
+

+Description: +Get worksheets iterator +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EO_ITERATORType Ref ToCL_OBJECT_COLLECTION_ITERATORYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WORKSHEETS_NAME.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WORKSHEETS_NAME.html new file mode 100644 index 0000000..5a20e24 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WORKSHEETS_NAME.html @@ -0,0 +1,112 @@ + + + +GET_WORKSHEETS_NAME + + + + + +

GET_WORKSHEETS_NAME

+
+

+Description: +Returns the name of worksheets +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_NAMETypeZEXCEL_WORKSHEETS_NAMEYesWorksheets name
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WORKSHEETS_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WORKSHEETS_SIZE.html new file mode 100644 index 0000000..96ffee0 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_WORKSHEETS_SIZE.html @@ -0,0 +1,112 @@ + + + +GET_WORKSHEETS_SIZE + + + + + +

GET_WORKSHEETS_SIZE

+
+

+Description: +Returns the number of worksheets +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_XF_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_XF_INDEX.html new file mode 100644 index 0000000..f327f59 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-GET_XF_INDEX.html @@ -0,0 +1,112 @@ + + + +GET_XF_INDEX + + + + + +

GET_XF_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_XF_INDEXTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-HAS_TOTALS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-HAS_TOTALS.html new file mode 100644 index 0000000..a5b0a92 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-HAS_TOTALS.html @@ -0,0 +1,112 @@ + + + +HAS_TOTALS + + + + + +

HAS_TOTALS

+
+

+Description: +Determines if any column has totals function +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_RESULTTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-IS_EMPTY.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-IS_EMPTY.html new file mode 100644 index 0000000..2a57772 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-IS_EMPTY.html @@ -0,0 +1,112 @@ + + + +IS_EMPTY + + + + + +

IS_EMPTY

+
+

+Description: +Checks whether elements are contained +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
IS_EMPTYTypeFLAGYesGeneral Flag
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-IS_INTERNAL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-IS_INTERNAL.html new file mode 100644 index 0000000..e0a248b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-IS_INTERNAL.html @@ -0,0 +1,112 @@ + + + +IS_INTERNAL + + + + + +

IS_INTERNAL

+
+

+Description: +Checks if link is pointing to internall location +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EV_RETTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-IS_MODIFIED.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-IS_SECURITY_ENABLED.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-IS_SECURITY_ENABLED.html new file mode 100644 index 0000000..0c6f69c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-IS_SECURITY_ENABLED.html @@ -0,0 +1,112 @@ + + + +IS_SECURITY_ENABLED + + + + + +

IS_SECURITY_ENABLED

+
+

+Description: +Is some sort of dcument security enabled? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SECURITY_ENABLEDTypeFLAGYesGeneral Flag
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_SHARED_STRINGS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_SHARED_STRINGS.html new file mode 100644 index 0000000..e071fcf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_SHARED_STRINGS.html @@ -0,0 +1,114 @@ + + + +LOAD_SHARED_STRINGS + + + + + +

LOAD_SHARED_STRINGS

+
+

+Description: +Loads shared strings table +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLES.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLES.html new file mode 100644 index 0000000..b944209 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLES.html @@ -0,0 +1,123 @@ + + + +LOAD_STYLES + + + + + +

LOAD_STYLES

+
+

+Description: +Loads styles +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLE_BORDERS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLE_BORDERS.html new file mode 100644 index 0000000..86006ba --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLE_BORDERS.html @@ -0,0 +1,121 @@ + + + +LOAD_STYLE_BORDERS + + + + + +

LOAD_STYLE_BORDERS

+
+

+Description: +Loads 'borders' part of styles +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XMLType Ref ToIF_IXML_DOCUMENTYesNoIF_IXML_DOCUMENT
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_BORDERSTypeT_BORDERSYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLE_FILLS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLE_FILLS.html new file mode 100644 index 0000000..3594575 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLE_FILLS.html @@ -0,0 +1,121 @@ + + + +LOAD_STYLE_FILLS + + + + + +

LOAD_STYLE_FILLS

+
+

+Description: +Loads 'fills' part of styles +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XMLType Ref ToIF_IXML_DOCUMENTYesNoIF_IXML_DOCUMENT
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FILLSTypeT_FILLSYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLE_FONTS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLE_FONTS.html new file mode 100644 index 0000000..6658ea5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLE_FONTS.html @@ -0,0 +1,121 @@ + + + +LOAD_STYLE_FONTS + + + + + +

LOAD_STYLE_FONTS

+
+

+Description: +Loads 'fonts' part of styles +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XMLType Ref ToIF_IXML_DOCUMENTYesNoIF_IXML_DOCUMENT
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FONTSTypeT_FONTSYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLE_NUM_FORMATS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLE_NUM_FORMATS.html new file mode 100644 index 0000000..9f6930b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_STYLE_NUM_FORMATS.html @@ -0,0 +1,121 @@ + + + +LOAD_STYLE_NUM_FORMATS + + + + + +

LOAD_STYLE_NUM_FORMATS

+
+

+Description: +Loads 'number format' part of styles +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XMLType Ref ToIF_IXML_DOCUMENTYesNoIF_IXML_DOCUMENT
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_NUM_FORMATSTypeT_NUM_FORMATSYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_WORKBOOK.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_WORKSHEET.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-NUMBER_TO_EXCEL_STRING.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-NUMBER_TO_EXCEL_STRING.html new file mode 100644 index 0000000..660f51a --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-NUMBER_TO_EXCEL_STRING.html @@ -0,0 +1,121 @@ + + + +NUMBER_TO_EXCEL_STRING + + + + + +

NUMBER_TO_EXCEL_STRING

+
+

+Description: +Converts number to string representation in Excel format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeNUMERICYesYes
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeZEXCEL_CELL_VALUEYesCell Value
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-PIXEL2EMU.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-PIXEL2EMU.html new file mode 100644 index 0000000..356de09 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-PIXEL2EMU.html @@ -0,0 +1,130 @@ + + + +PIXEL2EMU + + + + + +

PIXEL2EMU

+
+

+Description: +Convert pixel to EMU +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PIXELTypeINT4YesNoNatural number
IP_DPITypeINT2YesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_EMUTypeINT4YesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-REGISTER_NEW_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-REGISTER_NEW_STYLE.html new file mode 100644 index 0000000..2430610 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-REGISTER_NEW_STYLE.html @@ -0,0 +1,121 @@ + + + +REGISTER_NEW_STYLE + + + + + +

REGISTER_NEW_STYLE

+
+

+Description: +Register a new style +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_STYLEType Ref ToZCL_EXCEL_STYLEYesNoStyle
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_STYLE_CODETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-REMOVE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-REMOVE.html new file mode 100644 index 0000000..76d4791 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-REMOVE.html @@ -0,0 +1,114 @@ + + + +REMOVE + + + + + +

REMOVE

+
+

+Description: +Deletes an Element from the Collection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_STYLE_CONDITIONALType Ref ToZCL_EXCEL_STYLE_CONDITIONALYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ACTIVE_SHEET_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ACTIVE_SHEET_INDEX.html new file mode 100644 index 0000000..fbc2dbc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ACTIVE_SHEET_INDEX.html @@ -0,0 +1,114 @@ + + + +SET_ACTIVE_SHEET_INDEX + + + + + +

SET_ACTIVE_SHEET_INDEX

+
+

+Description: +Set active worksheet index +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_ACTIVE_WORKSHEETTypeZEXCEL_ACTIVE_WORKSHEETYesNoActive Worksheet
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ACTIVE_SHEET_INDEX_BY_NAME.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ACTIVE_SHEET_INDEX_BY_NAME.html new file mode 100644 index 0000000..97778a7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ACTIVE_SHEET_INDEX_BY_NAME.html @@ -0,0 +1,114 @@ + + + +SET_ACTIVE_SHEET_INDEX_BY_NAME + + + + + +

SET_ACTIVE_SHEET_INDEX_BY_NAME

+
+

+Description: +Set active worksheet index by name +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_WORKSHEET_NAMETypeZEXCEL_WORKSHEETS_NAMEYesNoWorksheets name
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_AUTO_SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_AUTO_SIZE.html new file mode 100644 index 0000000..c5ade56 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_AUTO_SIZE.html @@ -0,0 +1,121 @@ + + + +SET_AUTO_SIZE + + + + + +

SET_AUTO_SIZE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_AUTO_SIZETypeABAP_BOOLYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesWorksheet ColumnDimension
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_CELL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_CELL.html new file mode 100644 index 0000000..09f16c5 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_CELL.html @@ -0,0 +1,177 @@ + + + +SET_CELL + + + + + +

SET_CELL

+
+

+Description: +Set cell value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_VALUETypeSIMPLEYesNoCell Value
IP_FORMULATypeZEXCEL_CELL_FORMULAYesNoCell Formula
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
IP_HYPERLINKType Ref ToZCL_EXCEL_HYPERLINKYesNoHyperlink
IP_DATA_TYPETypeZEXCEL_CELL_DATA_TYPEYesNoCell data type
IP_ABAP_TYPETypeABAP_TYPEKINDYesNoABAP data type
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_CELL_REFERENCE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_CELL_REFERENCE.html new file mode 100644 index 0000000..641eb7b --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_CELL_REFERENCE.html @@ -0,0 +1,123 @@ + + + +SET_CELL_REFERENCE + + + + + +

SET_CELL_REFERENCE

+
+

+Description: +Sets reference to the cell +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_CELL_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_CELL_STYLE.html new file mode 100644 index 0000000..15c65bf --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_CELL_STYLE.html @@ -0,0 +1,136 @@ + + + +SET_CELL_STYLE + + + + + +

SET_CELL_STYLE

+
+

+Description: +Set cell style +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STYLETypeZEXCEL_CELL_STYLEYesNoSingle-Character Indicator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_COLLAPSED.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_COLLAPSED.html new file mode 100644 index 0000000..4ecdf10 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_COLLAPSED.html @@ -0,0 +1,114 @@ + + + +SET_COLLAPSED + + + + + +

SET_COLLAPSED

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLLAPSEDTypeBOOLEANYesNoBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_COLOR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_COLUMN_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_COLUMN_INDEX.html new file mode 100644 index 0000000..35b09fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_COLUMN_INDEX.html @@ -0,0 +1,121 @@ + + + +SET_COLUMN_INDEX + + + + + +

SET_COLUMN_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_DATA.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_DATA.html new file mode 100644 index 0000000..9d3cb84 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_DATA.html @@ -0,0 +1,114 @@ + + + +SET_DATA + + + + + +

SET_DATA

+
+

+Description: +Sets the reference to table data +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IR_DATATypeSTANDARD TABLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_DEFAULT_EXCEL_DATE_FORMAT.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_DEFAULT_EXCEL_DATE_FORMAT.html new file mode 100644 index 0000000..f3e219f --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_DEFAULT_EXCEL_DATE_FORMAT.html @@ -0,0 +1,114 @@ + + + +SET_DEFAULT_EXCEL_DATE_FORMAT + + + + + +

SET_DEFAULT_EXCEL_DATE_FORMAT

+
+

+Description: +Sets default date format +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_DEFAULT_EXCEL_DATE_FORMATTypeZEXCEL_NUMBER_FORMATYesNoDefault date format
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_DELIMITER.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_DELIMITER.html new file mode 100644 index 0000000..7b145da --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_DELIMITER.html @@ -0,0 +1,114 @@ + + + +SET_DELIMITER + + + + + +

SET_DELIMITER

+
+

+Description: +Set Delimiter value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeCHAR01';'YesYesDelimiter Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ENCLOSURE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ENCLOSURE.html new file mode 100644 index 0000000..3f1ef98 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ENCLOSURE.html @@ -0,0 +1,114 @@ + + + +SET_ENCLOSURE + + + + + +

SET_ENCLOSURE

+
+

+Description: +Set Enclosure character +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeCHAR01'"'YesYesText field enclosure character
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ENDOFLINE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ENDOFLINE.html new file mode 100644 index 0000000..7ea5f54 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ENDOFLINE.html @@ -0,0 +1,114 @@ + + + +SET_ENDOFLINE + + + + + +

SET_ENDOFLINE

+
+

+Description: +Set End Of Line character +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeANYCL_ABAP_CHAR_UTILITIES=>CR_LFYesYesEnd Of Line Character
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ID.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ID.html new file mode 100644 index 0000000..3d6a1c9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ID.html @@ -0,0 +1,114 @@ + + + +SET_ID + + + + + +

SET_ID

+
+

+Description: +Sets the ID +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IV_IDTypeIYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_MEDIA.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_MEDIA.html new file mode 100644 index 0000000..9d09ff0 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_MEDIA.html @@ -0,0 +1,141 @@ + + + +SET_MEDIA + + + + + +

SET_MEDIA

+
+

+Description: +Add media to drawing as XSTRING +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_MEDIATypeXSTRINGYesNo
IP_MEDIA_TYPETypeSTRINGYesNo
IP_WIDTHTypeINT4YesNoNatural number
IP_HEIGHTTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_MEDIA_MIME.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_MEDIA_MIME.html new file mode 100644 index 0000000..498f28e --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_MEDIA_MIME.html @@ -0,0 +1,132 @@ + + + +SET_MEDIA_MIME + + + + + +

SET_MEDIA_MIME

+
+

+Description: +Add media from mime repository +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_IOTypeSKWF_IOYesNoKW Framework: Object Key
IP_WIDTHTypeINT4YesNoNatural Number
IP_HEIGHTTypeINT4YesNoNatural Number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_MEDIA_WWW.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_MEDIA_WWW.html new file mode 100644 index 0000000..bcd2c52 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_MEDIA_WWW.html @@ -0,0 +1,132 @@ + + + +SET_MEDIA_WWW + + + + + +

SET_MEDIA_WWW

+
+

+Description: +Add media from www repository SMW0 +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_KEYTypeWWWDATATABYesNoContents of table WWWDATA
IP_WIDTHTypeINT4YesNoNatural number
IP_HEIGHTTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_MERGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_MERGE.html new file mode 100644 index 0000000..28ab5bc --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_MERGE.html @@ -0,0 +1,141 @@ + + + +SET_MERGE + + + + + +

SET_MERGE

+
+

+Description: +Set the merge range +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_COLUMN_STARTTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column Start
IP_COLUMN_ENDTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column End
IP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_ROW_TOTypeZEXCEL_CELL_ROWYesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_OUTLINE_LEVEL.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_OUTLINE_LEVEL.html new file mode 100644 index 0000000..b5d09ad --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_OUTLINE_LEVEL.html @@ -0,0 +1,118 @@ + + + +SET_OUTLINE_LEVEL + + + + + +

SET_OUTLINE_LEVEL

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_OUTLINE_LEVELTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_PAGE_MARGINS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_PAGE_MARGINS.html new file mode 100644 index 0000000..2cc3734 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_PAGE_MARGINS.html @@ -0,0 +1,168 @@ + + + +SET_PAGE_MARGINS + + + + + +

SET_PAGE_MARGINS

+
+

+Description: +Set page margins +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_BOTTOMTypeFLOATYesNoMargin bottom
IP_FOOTERTypeFLOATYesNoMargin footer
IP_HEADERTypeFLOATYesNoMargin header
IP_LEFTTypeFLOATYesNoMargin left
IP_RIGHTTypeFLOATYesNoMargin right
IP_TOPTypeFLOATYesNoMargin top
IP_UNITTypeCSEQUENCE'in'YesNoin, cm
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_POSITION.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_POSITION.html new file mode 100644 index 0000000..d1b28b7 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_POSITION.html @@ -0,0 +1,123 @@ + + + +SET_POSITION + + + + + +

SET_POSITION

+
+

+Description: +Set position of drawing +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_FROM_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_FROM_COLTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_PRINT_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_PRINT_GRIDLINES.html new file mode 100644 index 0000000..9bf6e56 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_PRINT_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_PRINT_GRIDLINES + + + + + +

SET_PRINT_GRIDLINES

+
+

+Description: +Set print gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_PRINT_GRIDLINESTypeZEXCEL_PRINT_GRIDLINESYesNoPrint Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_RANGE.html new file mode 100644 index 0000000..fe9f9b1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_RANGE.html @@ -0,0 +1,141 @@ + + + +SET_RANGE + + + + + +

SET_RANGE

+
+

+Description: +Set range used in conditional formatting +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_START_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_START_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_STOP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STOP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_RANGE_VALUE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_RANGE_VALUE.html new file mode 100644 index 0000000..058ca82 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_RANGE_VALUE.html @@ -0,0 +1,114 @@ + + + +SET_RANGE_VALUE + + + + + +

SET_RANGE_VALUE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeZEXCEL_RANGE_VALUEYesNoCell Value
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ROW_HEIGHT.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ROW_HEIGHT.html new file mode 100644 index 0000000..d1d84a9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ROW_HEIGHT.html @@ -0,0 +1,114 @@ + + + +SET_ROW_HEIGHT + + + + + +

SET_ROW_HEIGHT

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_ROW_HEIGHTTypeFLOATYesNoField of type FLTP
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ROW_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ROW_INDEX.html new file mode 100644 index 0000000..80c0ccd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_ROW_INDEX.html @@ -0,0 +1,114 @@ + + + +SET_ROW_INDEX + + + + + +

SET_ROW_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_SHOW_GRIDLINES.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_SHOW_GRIDLINES.html new file mode 100644 index 0000000..f42cb62 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_SHOW_GRIDLINES.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_GRIDLINES + + + + + +

SET_SHOW_GRIDLINES

+
+

+Description: +Set show gridlines +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_GRIDLINESTypeZEXCEL_SHOW_GRIDLINESYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_SHOW_ROWCOLHEADERS.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_SHOW_ROWCOLHEADERS.html new file mode 100644 index 0000000..b365b86 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_SHOW_ROWCOLHEADERS.html @@ -0,0 +1,114 @@ + + + +SET_SHOW_ROWCOLHEADERS + + + + + +

SET_SHOW_ROWCOLHEADERS

+
+

+Description: +Set show colum row headers +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_SHOW_ROWCOLHEADERSTypeZEXCEL_SHOW_ROWCOLHEADERYesNoShow Gridlines
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_TABLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_TABLE.html new file mode 100644 index 0000000..ef2d677 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_TABLE.html @@ -0,0 +1,159 @@ + + + +SET_TABLE + + + + + +

SET_TABLE

+
+

+Description: +Set cell value from a table +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TABLETypeSTANDARD TABLEYesNo
IP_HDR_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_BODY_STYLETypeZEXCEL_CELL_STYLEYesNoStyle identifier
IP_TABLE_TITLETypeSTRINGYesNo
IP_TOP_LEFT_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHA'B'YesNoCell Column
IP_TOP_LEFT_ROWTypeZEXCEL_CELL_ROW3YesNoCell Row
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_TITLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_TITLE.html new file mode 100644 index 0000000..fe9bc3e --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_TITLE.html @@ -0,0 +1,114 @@ + + + +SET_TITLE + + + + + +

SET_TITLE

+
+

+Description: +Get WorkSheet Title +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_TITLETypeZEXCEL_SHEET_TITLEYesNoTitle
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_VALUE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_VALUE.html new file mode 100644 index 0000000..2ae46ff --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_VALUE.html @@ -0,0 +1,150 @@ + + + +SET_VALUE + + + + + +

SET_VALUE

+
+

+Description: +Set Range value +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_SHEET_NAMETypeZEXCEL_SHEET_TITLEYesNoTitle
IP_START_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_START_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
IP_STOP_ROWTypeZEXCEL_CELL_ROWYesNoCell Row
IP_STOP_COLUMNTypeZEXCEL_CELL_COLUMN_ALPHAYesNoCell Column
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_VISIBLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_VISIBLE.html new file mode 100644 index 0000000..13e1bd6 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_VISIBLE.html @@ -0,0 +1,114 @@ + + + +SET_VISIBLE + + + + + +

SET_VISIBLE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VISIBLETypeBOOLEANYesNoBoolean Variable (X=True, -=False, Space=Unknown)
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_WIDTH.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_WIDTH.html new file mode 100644 index 0000000..af242fe --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_WIDTH.html @@ -0,0 +1,121 @@ + + + +SET_WIDTH + + + + + +

SET_WIDTH

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_WIDTHTypeFLOATYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_WORKSHEET_COLUMNDIMEType Ref ToZCL_EXCEL_WORKSHEET_COLUMNDIMEYesNatural number
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_XF_INDEX.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_XF_INDEX.html new file mode 100644 index 0000000..cb76611 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SET_XF_INDEX.html @@ -0,0 +1,114 @@ + + + +SET_XF_INDEX + + + + + +

SET_XF_INDEX

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_XF_INDEXTypeINT4YesNoNatural number
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SHL01.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SHL01.html new file mode 100644 index 0000000..db803a1 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SHL01.html @@ -0,0 +1,121 @@ + + + +SHL01 + + + + + +

SHL01

+
+

+Description: + +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_PWD_HASHTypeZEXCEL_PWD_HASHYesNoPassword hash
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_PWD_HASHTypeZEXCEL_PWD_HASHYesPassword hash
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SHR14.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SHR14.html new file mode 100644 index 0000000..a34f7d4 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SHR14.html @@ -0,0 +1,121 @@ + + + +SHR14 + + + + + +

SHR14

+
+

+Description: + +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_PWD_HASHTypeZEXCEL_PWD_HASHYesNoPassword hash
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_PWD_HASHTypeZEXCEL_PWD_HASHYesPassword hash
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SIZE.html new file mode 100644 index 0000000..3b298dd --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-SIZE.html @@ -0,0 +1,112 @@ + + + +SIZE + + + + + +

SIZE

+
+

+Description: +Specifies number of contained elements +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_SIZETypeIYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-TIME_TO_EXCEL_STRING.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-TIME_TO_EXCEL_STRING.html new file mode 100644 index 0000000..19c9211 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-TIME_TO_EXCEL_STRING.html @@ -0,0 +1,121 @@ + + + +TIME_TO_EXCEL_STRING + + + + + +

TIME_TO_EXCEL_STRING

+
+

+Description: +Convert time from SAP format to Excel +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodStatic MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VALUETypeTYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_VALUETypeZEXCEL_CELL_VALUEYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-UPDATE_DIMENSION_RANGE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-UPDATE_DIMENSION_RANGE.html new file mode 100644 index 0000000..8b43dab --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-UPDATE_DIMENSION_RANGE.html @@ -0,0 +1,105 @@ + + + +UPDATE_DIMENSION_RANGE + + + + + +

UPDATE_DIMENSION_RANGE

+
+

+Description: +Update dimension range +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE.html new file mode 100644 index 0000000..addd5a2 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE + + + + + +

ZIF_EXCEL_BOOK_PROPERTIES~INITIALIZE

+
+

+Description: +Inizialize book properties +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE.html new file mode 100644 index 0000000..5e3629a --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE + + + + + +

ZIF_EXCEL_BOOK_PROTECTION~INITIALIZE

+
+

+Description: +Initialize protection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME.html new file mode 100644 index 0000000..049e5da --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME + + + + + +

ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAMETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR.html new file mode 100644 index 0000000..c863308 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR + + + + + +

ZIF_EXCEL_BOOK_VBA_PROJECT~SET_CODENAME_PR

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAME_PRTypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT.html new file mode 100644 index 0000000..d8e347d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT + + + + + +

ZIF_EXCEL_BOOK_VBA_PROJECT~SET_VBAPROJECT

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_VBAPROJECTTypeXSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_READER~LOAD.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_READER~LOAD.html new file mode 100644 index 0000000..4c6a065 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_READER~LOAD.html @@ -0,0 +1,125 @@ + + + +ZIF_EXCEL_READER~LOAD + + + + + +

ZIF_EXCEL_READER~LOAD

+
+

+Description: +Loads ZCL_EXCEL from provided xstring +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_EXCEL2007TypeXSTRINGYesNoExcel 2007 data
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_EXCELType Ref ToZCL_EXCELYesExcel creator
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_READER~LOAD_FILE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_READER~LOAD_FILE.html new file mode 100644 index 0000000..1779c08 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_READER~LOAD_FILE.html @@ -0,0 +1,125 @@ + + + +ZIF_EXCEL_READER~LOAD_FILE + + + + + +

ZIF_EXCEL_READER~LOAD_FILE

+
+

+Description: +Loads ZCL_EXCEL from file +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
I_FILENAMETypeSTRINGYesNoFilename
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
R_EXCELType Ref ToZCL_EXCELYesExcel creator
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html new file mode 100644 index 0000000..792a359 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE.html @@ -0,0 +1,112 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~GET_STYLE

+
+

+Description: +Set Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_STYLETypeZEXCEL_CELL_STYLEYesStyle identifier
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html new file mode 100644 index 0000000..23583c3 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~INITIALIZE

+
+

+Description: +Inizialize sheet properties +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html new file mode 100644 index 0000000..bf942bb --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE + + + + + +

ZIF_EXCEL_SHEET_PROPERTIES~SET_STYLE

+
+

+Description: +Get Style Property +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_STYLETypeZEXCEL_CELL_STYLEYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html new file mode 100644 index 0000000..c77e426 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE.html @@ -0,0 +1,105 @@ + + + +ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE + + + + + +

ZIF_EXCEL_SHEET_PROTECTION~INITIALIZE

+
+

+Description: +Initialize protection +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html new file mode 100644 index 0000000..27f1c1d --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAMETypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html new file mode 100644 index 0000000..e1b86f9 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR.html @@ -0,0 +1,114 @@ + + + +ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR + + + + + +

ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_CODENAME_PRTypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_WRITER~WRITE_FILE.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_WRITER~WRITE_FILE.html new file mode 100644 index 0000000..c483160 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM-ZIF_EXCEL_WRITER~WRITE_FILE.html @@ -0,0 +1,121 @@ + + + +ZIF_EXCEL_WRITER~WRITE_FILE + + + + + +

ZIF_EXCEL_WRITER~WRITE_FILE

+
+

+Description: + +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IO_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_FILETypeXSTRINGYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM.html b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM.html new file mode 100644 index 0000000..08cdc34 --- /dev/null +++ b/tools/APIDoc/ZCL_EXCEL_WRITER_XLSM.html @@ -0,0 +1,45 @@ + + + +ZCL_EXCEL_WRITER_XLSM + + + + + + +

ZCL_EXCEL_WRITER_XLSM

+
+Description: +Excel with macro writer +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
C_XL_VBAPROJECTConstantProtectedNoTypeSTRING'xl/vbaProject.bin'
+

Events:

+
+ + diff --git a/tools/APIDoc/ZCX_EXCEL-CONSTRUCTOR.html b/tools/APIDoc/ZCX_EXCEL-CONSTRUCTOR.html new file mode 100644 index 0000000..2747eac --- /dev/null +++ b/tools/APIDoc/ZCX_EXCEL-CONSTRUCTOR.html @@ -0,0 +1,132 @@ + + + +CONSTRUCTOR + + + + + +

CONSTRUCTOR

+
+

+Description: +CONSTRUCTOR +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
ConstructorInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
TEXTIDlIKETEXTIDYesNo
PREVIOUSlIKEPREVIOUSYesNo
ERRORTypeSTRINGYesNo
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCX_EXCEL-GET_COLOR.html b/tools/APIDoc/ZCX_EXCEL-GET_COLOR.html new file mode 100644 index 0000000..a759c6d --- /dev/null +++ b/tools/APIDoc/ZCX_EXCEL-GET_COLOR.html @@ -0,0 +1,125 @@ + + + +GET_COLOR + + + + + +

GET_COLOR

+
+

+Description: +Get color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesColor ARGB
+
+
+

Exceptiopns

+
+ + + + + + + + + +
ExceptionShort Text
ZCX_EXCELExceptions for ABAP2XLSX
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCX_EXCEL-GET_COLORS.html b/tools/APIDoc/ZCX_EXCEL-GET_COLORS.html new file mode 100644 index 0000000..25208f7 --- /dev/null +++ b/tools/APIDoc/ZCX_EXCEL-GET_COLORS.html @@ -0,0 +1,112 @@ + + + +GET_COLORS + + + + + +

GET_COLORS

+
+

+Description: +Get all colors +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_COLORSTypeZEXCEL_T_STYLE_COLOR_ARGBYesTable of RGB colors
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCX_EXCEL-IS_MODIFIED.html b/tools/APIDoc/ZCX_EXCEL-IS_MODIFIED.html new file mode 100644 index 0000000..154a62b --- /dev/null +++ b/tools/APIDoc/ZCX_EXCEL-IS_MODIFIED.html @@ -0,0 +1,112 @@ + + + +IS_MODIFIED + + + + + +

IS_MODIFIED

+
+

+Description: +Is the palette modified from standard? +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
EP_MODIFIEDTypeABAP_BOOLYes
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCX_EXCEL-LOAD_VBAPROJECT.html b/tools/APIDoc/ZCX_EXCEL-LOAD_VBAPROJECT.html new file mode 100644 index 0000000..592b830 --- /dev/null +++ b/tools/APIDoc/ZCX_EXCEL-LOAD_VBAPROJECT.html @@ -0,0 +1,123 @@ + + + +LOAD_VBAPROJECT + + + + + +

LOAD_VBAPROJECT

+
+

+Description: +Load VBA binary +
+Visibility: +Private +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCX_EXCEL-LOAD_WORKBOOK.html b/tools/APIDoc/ZCX_EXCEL-LOAD_WORKBOOK.html new file mode 100644 index 0000000..b3367ef --- /dev/null +++ b/tools/APIDoc/ZCX_EXCEL-LOAD_WORKBOOK.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKBOOK + + + + + +

LOAD_WORKBOOK

+
+

+Description: +Loads workbook +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IP_EXCELType Ref ToZCL_EXCELYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCX_EXCEL-LOAD_WORKSHEET.html b/tools/APIDoc/ZCX_EXCEL-LOAD_WORKSHEET.html new file mode 100644 index 0000000..d14f890 --- /dev/null +++ b/tools/APIDoc/ZCX_EXCEL-LOAD_WORKSHEET.html @@ -0,0 +1,123 @@ + + + +LOAD_WORKSHEET + + + + + +

LOAD_WORKSHEET

+
+

+Description: +Loads worksheet +
+Visibility: +Protected +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_PATHTypeSTRINGYesNo
IO_WORKSHEETType Ref ToZCL_EXCEL_WORKSHEETYesNoExcel creator
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCX_EXCEL-SET_COLOR.html b/tools/APIDoc/ZCX_EXCEL-SET_COLOR.html new file mode 100644 index 0000000..00f0c3c --- /dev/null +++ b/tools/APIDoc/ZCX_EXCEL-SET_COLOR.html @@ -0,0 +1,123 @@ + + + +SET_COLOR + + + + + +

SET_COLOR

+
+

+Description: +Set (replace) color +
+Visibility: +Public +
+Other Properties: +

+
+
+ + + + + + + + + + + + + + + +
CategoryDeclaration LevelAbstractFinalLocked
MethodInstance MethodYesYesYes
+
+

Importing Parameters

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault valueOptionalPass ValueShort text
IP_INDEXTypeIYesNo0 - based index
IP_COLORTypeZEXCEL_STYLE_COLOR_ARGBYesNoColor ARGB
+
+
+

Exporting Parameters

+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Changing Parameters

+ + + + + + + + + + +
Parameter NameTypingAssociated TypeDefault ValueOptionalPass ValueShort text
+
+
+

Returning Parameters

+
+ + + + + + + + +
Parameter NameTypingAssociated TypePass ValueShort text
+
+
+

Exceptiopns

+
+ + + + + +
ExceptionShort Text
+
+
+

Method Coment Header

+
+ diff --git a/tools/APIDoc/ZCX_EXCEL.html b/tools/APIDoc/ZCX_EXCEL.html new file mode 100644 index 0000000..b3317de --- /dev/null +++ b/tools/APIDoc/ZCX_EXCEL.html @@ -0,0 +1,55 @@ + + + +ZCX_EXCEL + + + + + + +

ZCX_EXCEL

+
+Description: +Exceptions for ABAP2XLSX +
+Visibility: +Public +
+

Attributes:

+ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + +
NameLevelVisibilityRead-OnlyTypingAssociated TypeDescriptionInitial Value
ZCX_EXCELConstantPublicNoTypeSOTR_CONC'0202322174CD1EE0A2A8A2DE457E4CC5'
ERRORInstance AttributePublicNoTypeSTRING
+

Events:

+
+ + diff --git a/tools/APIDoc/css/style_class.css b/tools/APIDoc/css/style_class.css new file mode 100644 index 0000000..e591659 --- /dev/null +++ b/tools/APIDoc/css/style_class.css @@ -0,0 +1,40 @@ +/* + + + + + +*/ + +body +{ +font-family: arial, sans-serif; +font-size: 9pt +} + +table +{ +border-collapse: collapse; +} +td, th +{ +border: 1px solid #CCCCCC; +font-family: arial, sans-serif; +font-size: 9pt; +} + +tr.top +{ +background-color: #EAFDFF; +} + + +h1 +{ +align:center; +} + +h2 +{ +align:right; +} diff --git a/tools/APIDoc/css/style_function_groups.css b/tools/APIDoc/css/style_function_groups.css new file mode 100644 index 0000000..f08f4ec --- /dev/null +++ b/tools/APIDoc/css/style_function_groups.css @@ -0,0 +1,25 @@ + + + + +body +{ +font-family: arial, sans-serif; +font-size: 12pt +} + +table +{ +border-collapse: collapse; +} +td, th +{ +border: 1px solid #BBCCBB; +font-family: arial, sans-serif; +font-size: 9pt; +} + +tr.top +{ +background-color: #BEAFAA; +} \ No newline at end of file diff --git a/tools/APIDoc/css/style_object_list.css b/tools/APIDoc/css/style_object_list.css new file mode 100644 index 0000000..739c448 --- /dev/null +++ b/tools/APIDoc/css/style_object_list.css @@ -0,0 +1,4 @@ + \ No newline at end of file diff --git a/tools/OpenXMLValidator/Binaries/OpenXMLValidator.exe b/tools/OpenXMLValidator/Binaries/OpenXMLValidator.exe new file mode 100644 index 0000000000000000000000000000000000000000..54baeb857d4189fe3d11c6152c1a4b10763b42b5 GIT binary patch literal 11264 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 + + diff --git a/tools/OpenXMLValidator/Binaries/OpenXMLValidator.pdb b/tools/OpenXMLValidator/Binaries/OpenXMLValidator.pdb new file mode 100644 index 0000000000000000000000000000000000000000..cfdf49d8d18c4715931a39b44cce160ec458c820 GIT binary patch literal 19968 zcmeI3dvMg%702%;7!8=nB5y6O6f}rz9wIN5S3(d-3X0g+W(rHPgh-Ob-3`^z&a4hP zW3?lH;8Z&>wNv|=+7|1hovNMKu}-T_Ym05;qpfYRqfRSGt>dfM&-ecB-TV?zqJj_D z182YYaqd0$o_l}iK7PM6wzs5Hnbf*$thTat>eN`{%KF&McvV%|(D8LE4OC?Ro6`y2 zuQ>GS01CfHfCYNqF3{0zfmzJqJx8+vj`F?_d!#y|Ibeo62BPNew}*hmIerRsL|dTv zi0)mXa|g4))_8TKynK5@1i>%Q8NYPHi^G=PHlla*s~dK9`LfCr7wE{dz=8a~mc+3C zS6n?Gh)13^j=mnfw)TQ~4dn8b&(1yT!63Ep z`*F9xp&I|5hwo|LzU#T(@okUYcgxv(W_;ZHU1(omfkQR^*FQc#`Ip@0NB?|HZ|98H zN1Ru%?Gl9~3lu4Fpik};-bPILEQwQcm;QfRxpvtv_U+kOe@ytdYmw!_r5+Eiy}qN}x` zy(_sO-Ih_m4pX;U0!iVVVHZs{9$tk zlkpkS>cJGKxj8~})6ua$P{2cCfs_7T73rm>YybN5Yo;_m8j-!<3+eu-1Xj6|T|tdk z1!2`a>!xSh7BUsF@U9wepHgHrZ*) z`@-=h%k>Vi#LP8AhWvWoix1y*$sd>8Ke@E%zVF|?hT^8t)R`J^2y;XA>P%Uz7mv`8 zqA_ZN^p~g(-`0vC+l;Xdv!bR9nJWTWV^$>68773pI~CP4^(6OF3q(o zCsj?Vf{<7KG2nsnt4UYA&w_iXbM%0ENe-1`q3cekSw>kPf^xHv{})^Y=a2=cFBTQ{ z=`#jDZ}n^><9T==`I|%XGC^3rwLNX?(KFdUUGb8B96#7tpl=8)+iMP}e2tqYTcj8| zH30itj?5P1`EShPWcD-3%Wa1TrzaR=uV*h+oDT={Dq`oDs@2>$R{`imOeeoH3e*6O z22TdZfTgso%v8cNO{p1bRNrwlEExMpe$I>}{ViB@66Msbmv-;VX^mlC=d?DR0)7kR zopVWTyet&1bZKkNeA9r$+`K(x$6&l7 z`Ek^|(cBj;Lho_lVvshOrD_-Y%kj2lW{P=*H03`7i^jq+cskqwuYoUzx55Sb_*y{E zl=rDyTr=;4cp1?7hM$4(rI4^utXU(Rs-ct}bhYser-e@)38!Zu6&sO|2^cBhld9-OZJ>!R0H z<$SXr7uAQ2OXh=CSLTE3^6S7YP8U8nPsgBZvDc-3t;#Sg@2^kt+uk2VXua=~)J}35 zW5!%9yH3PEmEsM(zt{Q^jC&+Me>B(R_e5N0j-QY(Yj_StYejxZ^-*z zJDy0f2HCw^57-O81&<`N3O*lhg|C9Q!UIV*@z4JqZaim)ZIR>zBW-y(6hizaI^kwU;3Efq=$j zI&!Zu9$K#-bYtfCmEm%7GV*J_jC_Wkv$3GYS?$pHhRe8i_AA$lyq>cbS5CV0EQZUq z6Zby!z3u-4Z#i)P@BLh_8VD^=gB`Jsl)UKLV%)??%0A?)uRF-QopLJUZ@7BYKRuiM>Iu~`xHU02 zugGUf=Nz~GZd0cq+1C?;T{0DAvaQZ5&hG?nhY6#0K12R`%Bq}~)%d9l$>I5uKR2o$ zs1;nE>Gxb8SjNGXGTG_C!YWd^)44nW#B>4tAal zFMyZA7r_ne=Que-<4iq#9$Y~kvX;g=M&0MaSK4?~Gts7>Z1-Dh2nWw~B<~wE9v8u) z&9qZK={iu)#r5D~@CJ~vGG75d3*H2lG0!xYM$x`e%!N_R#!)7l->c~v7HPkD2jL#L z7uLPh@kKmC@JB)Vre}O<<;y!z-b5Sz2ht={&5uy?O~{y8{I5&@fk&5qs>25zPNObF zOqoN!A4$4$2`6{6i{I?xPdfaPOK)`XQ7*p3;gb%5ccsXXe0E47)+C>DxGDAl6~wS^m<~3cVcBq4Yo?y9NpKY`|9C#U z2F736yQt0J7I+){UHERe2Yw9hg?GVPXWoL37Mftnqw4Dk?1y*(yu5Mh>P21I^cAaD zq}sLdTviLGVo+~q5{S0g{9UBCCg3A&wAEY~Z9C3IoicN4B_p-7{vG4!7zV_(MQ#{}> zD*gTyZ@T|f|0T?+Ylkb1n?=GK`C>QPm_|9D!*DoYF2CN|bIb!09NZhk}Gk;VO+ zos5}XTVHq9jD3tr~B5*%vxB#aA8gDLNo1W@s}g^O+(+iHQq)AmGc|nY$@Zh<#3eo0rC>I zBpW$LoXj0XI8VpsiBXDBkAp}gSEM0d0zHU%F(P580=J*v@}T z>V`ok4M;{0Xs8{CAnbDs_z_y*-TwYh?+hz>dADIn*SeIc>`HXqfd7tO(CuztoKZNaGy6)`B-p1a&@pg>Z!2W z#(M_6V=ysz7_7UQGFa_Xo7FD0ll_M79qjiXYR3rpM0g~uwMcu7F|gXFJ;%xLN$_~s guSWz6^Z_iOc~hW*1qv1@SfF5mf&~f|IJzwGe^UMF_W%F@ literal 0 HcmV?d00001 diff --git a/tools/OpenXMLValidator/src/CommandLineArgs.cs b/tools/OpenXMLValidator/src/CommandLineArgs.cs new file mode 100644 index 0000000..43cbd68 --- /dev/null +++ b/tools/OpenXMLValidator/src/CommandLineArgs.cs @@ -0,0 +1,77 @@ +namespace Abap2Xlsx.OpenXMLValidator +{ + using System; + using System.IO; + + /// + /// Command line arguments for validator + /// + public class CommandLineArgs + { + + private const string DefaultDirectory = "."; + private const string DefaultSearchPattern = "*.xlsx|*.docx|*.pptx"; + + public string Directory { get; private set; } + public string SearchPattern { get; private set; } + public bool ShowUsage { get; private set; } + + public CommandLineArgs() + { + this.Directory = DefaultDirectory; + this.SearchPattern = DefaultSearchPattern; + } + + public void Parse(string[] args) + { + for (int currentArg = 0; currentArg < args.Length; currentArg++) + { + string arg = args[currentArg]; + + switch (arg) + { + case "-d": + case "/d": + string dir = GetNextArg(args, currentArg); + + DirectoryInfo di = new DirectoryInfo(dir); + if (!di.Exists) + { + throw new ArgumentException(string.Format("Unknown directory: {0}", dir)); + } + + this.Directory = dir; + currentArg++; + + break; + + case "-p": + case "/p": + this.SearchPattern = GetNextArg(args, currentArg); + currentArg++; + + break; + + case "-?": + case "/?": + this.ShowUsage = true; + + break; + + default: + throw new ArgumentException(string.Format("Unknown argument: {0}", arg)); + } + } + } + + private string GetNextArg(string[] args, int currentArg) + { + if (currentArg >= args.Length - 1) + { + throw new ArgumentException(string.Format("Missing value for argument: {0}", args[currentArg])); + } + + return args[currentArg + 1]; + } + } +} diff --git a/tools/OpenXMLValidator/src/OpenXMLValidator.csproj b/tools/OpenXMLValidator/src/OpenXMLValidator.csproj new file mode 100644 index 0000000..e4faee7 --- /dev/null +++ b/tools/OpenXMLValidator/src/OpenXMLValidator.csproj @@ -0,0 +1,74 @@ + + + + Debug + x86 + 8.0.30703 + 2.0 + {99967614-17D7-4521-BE36-1540B6D5CD89} + Exe + Properties + OpenXMLValidator + OpenXMLValidator + v3.5 + Client + 512 + + + x86 + true + full + false + bin\Debug\ + DEBUG;TRACE + prompt + 4 + + + x86 + pdbonly + true + bin\Release\ + TRACE + prompt + 4 + + + + + + + + + + + + + + True + True + Resources.resx + + + + + ResXFileCodeGenerator + Resources.Designer.cs + + + + + + + + + + + + \ No newline at end of file diff --git a/tools/OpenXMLValidator/src/Program.cs b/tools/OpenXMLValidator/src/Program.cs new file mode 100644 index 0000000..3da6f2d --- /dev/null +++ b/tools/OpenXMLValidator/src/Program.cs @@ -0,0 +1,148 @@ +namespace Abap2Xlsx.OpenXMLValidator +{ + using System; + using System.Linq; + using System.IO; + using DocumentFormat.OpenXml.Packaging; + using DocumentFormat.OpenXml.Validation; + using System.Collections.Generic; + + /// + /// Simple command line wrapper around OpenXMLValidator. + /// See CommandLineArgs for possible options. + /// + class Program + { + /// + /// Entry point + /// + /// The arguments + static void Main(string[] args) + { + CommandLineArgs arguments = new CommandLineArgs(); + try + { + arguments.Parse(args); + } + catch (ArgumentException e) + { + Console.WriteLine(e.Message); + Console.WriteLine(Resources.Usage); + Environment.Exit(1); + } + + if (arguments.ShowUsage) + { + Console.WriteLine(Resources.Usage); + Environment.Exit(0); + } + + string[] patterns = arguments.SearchPattern.Split('|'); + List files = new List(); + foreach (string pattern in patterns) + { + files.AddRange(Directory.GetFiles(arguments.Directory, pattern)); + } + + if (!files.Any()) + { + Console.WriteLine("No matching files found"); + Environment.Exit(1); + } + + int validFiles = 0; + for (int i = 1; i <= files.Count; i++) + { + Console.WriteLine("Validating file {0} from {1}", i, files.Count); + if (ValidateFile(files[i - 1])) + { + validFiles++; + } + } + + Console.WriteLine("Files checked - {0}", files.Count); + Console.WriteLine("Valid files - {0}", validFiles); + Console.WriteLine("Invalid files - {0}", files.Count - validFiles); + } + + /// + /// Validates the file and prints result to console + /// + /// Path to the file + private static bool ValidateFile(string file) + { + ConsoleColor color = Console.ForegroundColor; + bool isValid = false; + + try + { + Console.WriteLine("File name: {0}", file); + + OpenXmlValidator validator = new OpenXmlValidator(); + + using (var doc = GetOpenXmlPackage(file)) + { + var errors = validator.Validate(doc); + if (errors.Any()) + { + Console.ForegroundColor = ConsoleColor.Red; + Console.WriteLine("Found {0} validation errors: ", errors.Count()); + + int count = 0; + foreach (ValidationErrorInfo error in errors) + { + count++; + Console.WriteLine("Error " + count); + Console.WriteLine("Part: " + error.Part.Uri); + Console.WriteLine("Description: " + error.Description); + Console.WriteLine("Path: " + error.Path.XPath); + } + } + else + { + Console.ForegroundColor = ConsoleColor.Green; + Console.WriteLine("Document valid"); + isValid = true; + } + + Console.WriteLine(); + } + } + catch (Exception e) + { + Console.ForegroundColor = ConsoleColor.Red; + Console.WriteLine("Exception occured while validating file: {0} - {1}",e.GetType().ToString() ,e.Message); + } + finally + { + Console.ForegroundColor = color; + } + + return isValid; + } + + /// + /// Returns OpenXmlPackage instance for a file. + /// .docx, .xlsx and .pptx files are supported + /// + /// Path to file + /// OpenXmlPackage instance + private static OpenXmlPackage GetOpenXmlPackage(string file) + { + FileInfo fi = new FileInfo(file); + + switch (fi.Extension.ToLowerInvariant()) + { + case ".xlsx": + return SpreadsheetDocument.Open(file, true); + case ".docx": + return WordprocessingDocument.Open(file, true); + case ".pptx": + return PresentationDocument.Open(file, true); + default: + throw new ArgumentException(string.Format("Unknown file extension {0}", fi.Extension), "file"); + } + + } + } +} diff --git a/tools/OpenXMLValidator/src/Properties/AssemblyInfo.cs b/tools/OpenXMLValidator/src/Properties/AssemblyInfo.cs new file mode 100644 index 0000000..30c53ad --- /dev/null +++ b/tools/OpenXMLValidator/src/Properties/AssemblyInfo.cs @@ -0,0 +1,36 @@ +using System.Reflection; +using System.Runtime.CompilerServices; +using System.Runtime.InteropServices; + +// General Information about an assembly is controlled through the following +// set of attributes. Change these attribute values to modify the information +// associated with an assembly. +[assembly: AssemblyTitle("OpenXMLValidator")] +[assembly: AssemblyDescription("")] +[assembly: AssemblyConfiguration("")] +[assembly: AssemblyCompany("")] +[assembly: AssemblyProduct("OpenXMLValidator")] +[assembly: AssemblyCopyright("Copyright © 2010")] +[assembly: AssemblyTrademark("")] +[assembly: AssemblyCulture("")] + +// Setting ComVisible to false makes the types in this assembly not visible +// to COM components. If you need to access a type in this assembly from +// COM, set the ComVisible attribute to true on that type. +[assembly: ComVisible(false)] + +// The following GUID is for the ID of the typelib if this project is exposed to COM +[assembly: Guid("ab032f8b-6f76-4bfc-8f1c-3a96d328f670")] + +// Version information for an assembly consists of the following four values: +// +// Major Version +// Minor Version +// Build Number +// Revision +// +// You can specify all the values or you can default the Build and Revision Numbers +// by using the '*' as shown below: +// [assembly: AssemblyVersion("1.0.*")] +[assembly: AssemblyVersion("1.0.0.0")] +[assembly: AssemblyFileVersion("1.0.0.0")] diff --git a/tools/OpenXMLValidator/src/Resources.Designer.cs b/tools/OpenXMLValidator/src/Resources.Designer.cs new file mode 100644 index 0000000..2acec77 --- /dev/null +++ b/tools/OpenXMLValidator/src/Resources.Designer.cs @@ -0,0 +1,89 @@ +//------------------------------------------------------------------------------ +// +// This code was generated by a tool. +// Runtime Version:4.0.30319.1 +// +// Changes to this file may cause incorrect behavior and will be lost if +// the code is regenerated. +// +//------------------------------------------------------------------------------ + +namespace Abap2Xlsx.OpenXMLValidator +{ + using System; + + + /// + /// A strongly-typed resource class, for looking up localized strings, etc. + /// + // This class was auto-generated by the StronglyTypedResourceBuilder + // class via a tool like ResGen or Visual Studio. + // To add or remove a member, edit your .ResX file then rerun ResGen + // with the /str option, or rebuild your VS project. + [global::System.CodeDom.Compiler.GeneratedCodeAttribute("System.Resources.Tools.StronglyTypedResourceBuilder", "4.0.0.0")] + [global::System.Diagnostics.DebuggerNonUserCodeAttribute()] + [global::System.Runtime.CompilerServices.CompilerGeneratedAttribute()] + internal class Resources { + + private static global::System.Resources.ResourceManager resourceMan; + + private static global::System.Globalization.CultureInfo resourceCulture; + + [global::System.Diagnostics.CodeAnalysis.SuppressMessageAttribute("Microsoft.Performance", "CA1811:AvoidUncalledPrivateCode")] + internal Resources() { + } + + /// + /// Returns the cached ResourceManager instance used by this class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Resources.ResourceManager ResourceManager { + get { + if (object.ReferenceEquals(resourceMan, null)) { + global::System.Resources.ResourceManager temp = new global::System.Resources.ResourceManager("OpenXMLValidator.Resources", typeof(Resources).Assembly); + resourceMan = temp; + } + return resourceMan; + } + } + + /// + /// Overrides the current thread's CurrentUICulture property for all + /// resource lookups using this strongly typed resource class. + /// + [global::System.ComponentModel.EditorBrowsableAttribute(global::System.ComponentModel.EditorBrowsableState.Advanced)] + internal static global::System.Globalization.CultureInfo Culture { + get { + return resourceCulture; + } + set { + resourceCulture = value; + } + } + + /// + /// Looks up a localized string similar to USAGE: + /// OpenXMLValidator.exe [-d direcory] [-p pattern] + /// + ///OPTIONS: + /// -d + /// Directory with files for validation (default value if not specified - current directory) + /// -p + /// Search pattern used for finding files. * and ? allowed as wildcards (default value if not specified - *.xlsx) + /// -? + /// Show this help + /// + ///EXAMPLES: + /// OpenXMLValidator.exe + /// validate all xlsx files in current directory + /// OpenXMLValidator.exe -d c:\temp + /// validate all xlsx files in c:\temp directory + /// OpenXMLValidator.exe -d c:\ [rest of string was truncated]";. + /// + internal static string Usage { + get { + return ResourceManager.GetString("Usage", resourceCulture); + } + } + } +} diff --git a/tools/OpenXMLValidator/src/Resources.resx b/tools/OpenXMLValidator/src/Resources.resx new file mode 100644 index 0000000..fa612ce --- /dev/null +++ b/tools/OpenXMLValidator/src/Resources.resx @@ -0,0 +1,124 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + text/microsoft-resx + + + 2.0 + + + System.Resources.ResXResourceReader, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + System.Resources.ResXResourceWriter, System.Windows.Forms, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089 + + + + Resources\usage.txt;System.String, mscorlib, Version=4.0.0.0, Culture=neutral, PublicKeyToken=b77a5c561934e089;windows-1250 + + \ No newline at end of file diff --git a/tools/OpenXMLValidator/src/Resources/usage.txt b/tools/OpenXMLValidator/src/Resources/usage.txt new file mode 100644 index 0000000..1235e0a --- /dev/null +++ b/tools/OpenXMLValidator/src/Resources/usage.txt @@ -0,0 +1,20 @@ +USAGE: + OpenXMLValidator.exe [-d direcory] [-p pattern] + +OPTIONS: + -d + Directory with files for validation (default value if not specified - current directory) + -p + Search pattern used for finding files. * and ? allowed as wildcards + Multiple patterns can be combined using '|' separator + (default value if not specified - *.xlsx|*.docx|*.pptx) + -? + Show this help + +EXAMPLES: + OpenXMLValidator.exe + validate all xlsx,docx,pptx files in current directory + OpenXMLValidator.exe -d c:\temp + validate all xlsx,docx,pptx files in c:\temp directory + OpenXMLValidator.exe -d c:\temp -p demo*.xlsx + validate all xlsx files in c:\temp directory starting with 'demo' \ No newline at end of file diff --git a/tools/OpenXMLValidator/src/app.config b/tools/OpenXMLValidator/src/app.config new file mode 100644 index 0000000..e91dbe0 --- /dev/null +++ b/tools/OpenXMLValidator/src/app.config @@ -0,0 +1,3 @@ + + + diff --git a/tools/OpenXMLValidator/src/readme.txt b/tools/OpenXMLValidator/src/readme.txt new file mode 100644 index 0000000..1fa40a0 --- /dev/null +++ b/tools/OpenXMLValidator/src/readme.txt @@ -0,0 +1,2 @@ +To build and run you need OpenXMl SDK installed. +It can be downloaded from http://www.microsoft.com/downloads/details.aspx?FamilyID=c6e744e5-36e9-45f5-8d8c-331df206e0d0&displaylang=en \ No newline at end of file

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

oL92wwlvIIq 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­$5KxeVJay@i31$ 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�eNt~l|gqr1UxPN_O^m(T1AxzYPqA|pquOf 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�XFSxMy`z8;%wacP_^6F14f} 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�O=APK#= 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

{~YxsK@5@GX`fz_vcH@!<+j%?TcAy^+1M#|(gZ{ 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ΜdGU>nXUcS}_Rf%fh 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