From 67ce66dc7a4e92896ce5d70d9c0ade127388f859 Mon Sep 17 00:00:00 2001 From: Ivan Femia Date: Tue, 21 Sep 2010 22:30:29 +0000 Subject: [PATCH] Page margins and page setup, worksheet protection, minor code fix git-svn-id: https://subversion.assembla.com/svn/abap2xlsx/trunk@13 b7d68dce-7c3c-4a99-8ce0-9ea847f5d049 --- ZA2X/CLAS/ZCL_EXCEL_SHEET_SETUP.slnk | 402 +++++++++++++------- ZA2X/CLAS/ZCL_EXCEL_STYLE.slnk | 4 +- ZA2X/CLAS/ZCL_EXCEL_WORKSHEET.slnk | 330 ++++++++-------- ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk | 442 ++++++++++++++++------ ZA2X/DOMA/ZEXCEL_CELL_PROTECTION.slnk | 5 + ZA2X/DOMA/ZEXCEL_DEC_8_2.slnk | 2 + ZA2X/DTEL/ZEXCEL_DEC_8_2.slnk | 4 + ZA2X/DTEL/ZEXCEL_HIDDEN.slnk | 4 + ZA2X/DTEL/ZEXCEL_LOCKED.slnk | 4 + ZA2X/DTEL/ZEXCEL_PROTECTION.slnk | 2 +- ZA2X/INTF/ZIF_EXCEL_SHEET_PROTECTION.slnk | 8 + ZA2X/PROG/ZDEMO_EXCEL.slnk | 4 +- ZA2X/PROG/ZDEMO_EXCEL17.slnk | 64 ++++ ZA2X/PROG/ZDEMO_EXCEL4.slnk | 18 +- ZA2X/TABL/ZEXCEL_S_CELLXFS.slnk | 14 +- ZA2X/TABL/ZEXCEL_S_STYLE_PROTECTION.slnk | 6 + ZA2X/TTYP/ZEXCEL_T_CELLXFS.slnk | 14 +- ZA2X/TTYP/ZEXCEL_T_STYLE_PROTECTION.slnk | 5 + 18 files changed, 908 insertions(+), 424 deletions(-) create mode 100644 ZA2X/DOMA/ZEXCEL_CELL_PROTECTION.slnk create mode 100644 ZA2X/DOMA/ZEXCEL_DEC_8_2.slnk create mode 100644 ZA2X/DTEL/ZEXCEL_DEC_8_2.slnk create mode 100644 ZA2X/DTEL/ZEXCEL_HIDDEN.slnk create mode 100644 ZA2X/DTEL/ZEXCEL_LOCKED.slnk create mode 100644 ZA2X/INTF/ZIF_EXCEL_SHEET_PROTECTION.slnk create mode 100644 ZA2X/PROG/ZDEMO_EXCEL17.slnk create mode 100644 ZA2X/TABL/ZEXCEL_S_STYLE_PROTECTION.slnk create mode 100644 ZA2X/TTYP/ZEXCEL_T_STYLE_PROTECTION.slnk diff --git a/ZA2X/CLAS/ZCL_EXCEL_SHEET_SETUP.slnk b/ZA2X/CLAS/ZCL_EXCEL_SHEET_SETUP.slnk index 6be6f5c..5d53d51 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_SHEET_SETUP.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_SHEET_SETUP.slnk @@ -1,5 +1,5 @@ - + class ZCL_EXCEL_SHEET_SETUP definition public final @@ -10,78 +10,123 @@ 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_BREAK_COLUMN type ZEXCEL_BREAK value 2. "#EC NOTEXT + constants C_BREAK_NONE type ZEXCEL_BREAK value 0. "#EC NOTEXT + constants C_BREAK_ROW type ZEXCEL_BREAK value 1. "#EC NOTEXT + constants C_CC_AS_DISPLAYED type STRING value 'asDisplayed'. "#EC NOTEXT + constants C_CC_AT_END type STRING value 'atEnd'. "#EC NOTEXT + constants C_CC_NONE type STRING value 'none'. "#EC NOTEXT + constants C_ORD_DOWNTHENOVER type STRING value 'downThenOver'. "#EC NOTEXT + constants C_ORD_OVERTHENDOWN type STRING value 'overThenDown'. "#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 + constants C_PAPERSIZE_6_3_4_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 38. "#EC NOTEXT + constants C_PAPERSIZE_A2_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 64. "#EC NOTEXT + constants C_PAPERSIZE_A3 type ZEXCEL_SHEET_PAPER_SIZE value 8. "#EC NOTEXT + constants C_PAPERSIZE_A3_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 61. "#EC NOTEXT + constants C_PAPERSIZE_A3_EXTRA_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 66. "#EC NOTEXT + constants C_PAPERSIZE_A3_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 65. "#EC NOTEXT + constants C_PAPERSIZE_A4 type ZEXCEL_SHEET_PAPER_SIZE value 9. "#EC NOTEXT + constants C_PAPERSIZE_A4_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 51. "#EC NOTEXT + constants C_PAPERSIZE_A4_PLUS_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 58. "#EC NOTEXT + constants C_PAPERSIZE_A4_SMALL type ZEXCEL_SHEET_PAPER_SIZE value 10. "#EC NOTEXT + constants C_PAPERSIZE_A4_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 53. "#EC NOTEXT + constants C_PAPERSIZE_A5 type ZEXCEL_SHEET_PAPER_SIZE value 11. "#EC NOTEXT + constants C_PAPERSIZE_A5_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 62. "#EC NOTEXT + constants C_PAPERSIZE_A5_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 59. "#EC NOTEXT + constants C_PAPERSIZE_B4 type ZEXCEL_SHEET_PAPER_SIZE value 12. "#EC NOTEXT + constants C_PAPERSIZE_B4_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 33. "#EC NOTEXT + constants C_PAPERSIZE_B5 type ZEXCEL_SHEET_PAPER_SIZE value 13. "#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_C type ZEXCEL_SHEET_PAPER_SIZE value 24. "#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_C5_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 28. "#EC NOTEXT + constants C_PAPERSIZE_C65_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 32. "#EC NOTEXT + constants C_PAPERSIZE_C6_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 31. "#EC NOTEXT + constants C_PAPERSIZE_D type ZEXCEL_SHEET_PAPER_SIZE value 25. "#EC NOTEXT + constants C_PAPERSIZE_DE_LEG_FANFOLD type ZEXCEL_SHEET_PAPER_SIZE value 41. "#EC NOTEXT + constants C_PAPERSIZE_DE_STD_FANFOLD type ZEXCEL_SHEET_PAPER_SIZE value 40. "#EC NOTEXT + constants C_PAPERSIZE_DL_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 27. "#EC NOTEXT + constants C_PAPERSIZE_E type ZEXCEL_SHEET_PAPER_SIZE value 26. "#EC NOTEXT + constants C_PAPERSIZE_EXECUTIVE type ZEXCEL_SHEET_PAPER_SIZE value 7. "#EC NOTEXT + constants C_PAPERSIZE_FOLIO type ZEXCEL_SHEET_PAPER_SIZE value 14. "#EC NOTEXT + constants C_PAPERSIZE_INVITE_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 47. "#EC NOTEXT + constants C_PAPERSIZE_ISO_B4 type ZEXCEL_SHEET_PAPER_SIZE value 42. "#EC NOTEXT + constants C_PAPERSIZE_ISO_B5_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 63. "#EC NOTEXT + constants C_PAPERSIZE_ITALY_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 36. "#EC NOTEXT + constants C_PAPERSIZE_JIS_B5_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 60. "#EC NOTEXT + constants C_PAPERSIZE_JPN_DBL_POSTCARD type ZEXCEL_SHEET_PAPER_SIZE value 43. "#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_LEGAL_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 49. "#EC NOTEXT + constants C_PAPERSIZE_LETTER type ZEXCEL_SHEET_PAPER_SIZE value 1. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 48. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_EXTV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 54. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_PLUS_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 57. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_SMALL type ZEXCEL_SHEET_PAPER_SIZE value 2. "#EC NOTEXT + constants C_PAPERSIZE_LETTER_TV_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 52. "#EC NOTEXT + constants C_PAPERSIZE_MONARCH_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 37. "#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_NO9_ENVELOPE type ZEXCEL_SHEET_PAPER_SIZE value 19. "#EC NOTEXT + constants C_PAPERSIZE_NOTE type ZEXCEL_SHEET_PAPER_SIZE value 18. "#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_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_STATEMENT type ZEXCEL_SHEET_PAPER_SIZE value 6. "#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 + constants C_PAPERSIZE_TABLOID type ZEXCEL_SHEET_PAPER_SIZE value 3. "#EC NOTEXT + constants C_PAPERSIZE_TABL_EXTRA_PAPER type ZEXCEL_SHEET_PAPER_SIZE value 50. "#EC NOTEXT + constants C_PAPERSIZE_US_STD_FANFOLD type ZEXCEL_SHEET_PAPER_SIZE value 39. "#EC NOTEXT + constants C_PE_BLANK type STRING value 'blank'. "#EC NOTEXT + constants C_PE_DASH type STRING value 'dash'. "#EC NOTEXT + constants C_PE_DISPLAYED type STRING value 'displayed'. "#EC NOTEXT + constants C_PE_NA type STRING value 'NA'. "#EC NOTEXT + data BLACK_AND_WHITE type FLAG . + data CELL_COMMENTS type STRINGVAL . + data COPIES type INT2 . + data DRAFT type FLAG . + data ERRORS type STRINGVAL . + data FIRST_PAGE_NUMBER type INT2 . + data FIT_TO_HEIGHT type INT2 . + data FIT_TO_PAGE type FLAG . + data FIT_TO_WIDTH type INT2 . + data HORIZONTAL_DPI type INT2 . + data MARGIN_BOTTOM type ZEXCEL_DEC_8_2 . + data MARGIN_FOOTER type ZEXCEL_DEC_8_2 . + data MARGIN_HEADER type ZEXCEL_DEC_8_2 . + data MARGIN_LEFT type ZEXCEL_DEC_8_2 . + data MARGIN_RIGHT type ZEXCEL_DEC_8_2 . + data MARGIN_TOP type ZEXCEL_DEC_8_2 . data ORIENTATION type ZEXCEL_SHEET_ORIENATATION . + data PAGE_ORDER type STRING . + data PAPER_HEIGHT type STRING . + data PAPER_SIZE type INT2 . + data PAPER_WIDTH type STRING . + data SCALE type INT2 . + data USE_FIRST_PAGE_NUM type FLAG . + data USE_PRINTER_DEFAULTS type FLAG . + data VERTICAL_DPI type INT2 . - methods CONSTRUCTOR . + methods CONSTRUCTOR . + methods SET_PAGE_MARGINS + importing + !IP_BOTTOM type FLOAT optional + !IP_FOOTER type FLOAT optional + !IP_HEADER type FLOAT optional + !IP_LEFT type FLOAT optional + !IP_RIGHT type FLOAT optional + !IP_TOP type FLOAT optional + !IP_UNIT type CSEQUENCE default 'in' . *"* protected components of class ZABAP_EXCEL_STYLE *"* do not include other source files here!!! protected section. @@ -98,79 +143,174 @@ private section. *"* 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 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. diff --git a/ZA2X/CLAS/ZCL_EXCEL_STYLE.slnk b/ZA2X/CLAS/ZCL_EXCEL_STYLE.slnk index 952f625..19f8f44 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_STYLE.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_STYLE.slnk @@ -14,6 +14,7 @@ public section. data BORDERS type ref to ZCL_EXCEL_STYLE_BORDERS . data ALIGNMENT type ref to ZCL_EXCEL_STYLE_ALIGNMENT . data NUMBER_FORMAT type ref to ZCL_EXCEL_STYLE_NUMBER_FORMAT . + data PROTECTION type ref to ZCL_EXCEL_STYLE_PROTECTION . methods CONSTRUCTOR . methods GET_GUID @@ -26,7 +27,6 @@ protected section. *"* do not include other source files here!!! private section. - 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 @@ -42,7 +42,7 @@ private section. - + method CONSTRUCTOR. diff --git a/ZA2X/CLAS/ZCL_EXCEL_WORKSHEET.slnk b/ZA2X/CLAS/ZCL_EXCEL_WORKSHEET.slnk index c5fcb9f..2a13192 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_WORKSHEET.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_WORKSHEET.slnk @@ -1,5 +1,6 @@ - + + class ZCL_EXCEL_WORKSHEET definition public final @@ -10,22 +11,23 @@ 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 . + interfaces ZIF_EXCEL_SHEET_PROTECTION . + + constants C_BREAK_COLUMN type ZEXCEL_BREAK value 2. "#EC NOTEXT + constants C_BREAK_NONE type ZEXCEL_BREAK value 0. "#EC NOTEXT + constants C_BREAK_ROW type ZEXCEL_BREAK value 1. "#EC NOTEXT + constants C_SHEET_STATE_HIDDEN type ZEXCEL_SHEET_STATE value 'hidden'. "#EC NOTEXT + constants C_SHEET_STATE_VERYHIDDEN type ZEXCEL_SHEET_STATE value 'veryHidden'. "#EC NOTEXT + constants C_SHEET_STATE_VISIBLE type ZEXCEL_SHEET_STATE value 'visible'. "#EC NOTEXT data SHEET_CONTENT type ZEXCEL_T_CELL_DATA . data SHEET_CONTENT_MERGE 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 GET_FREEZE_CELL - exporting - !EP_ROW type ZEXCEL_CELL_ROW - !EP_COLUMN type ZEXCEL_CELL_COLUMN . + methods ADD_DRAWING + importing + !IP_DRAWING type ref to ZCL_EXCEL_DRAWING . methods ADD_NEW_CONDITIONAL_STYLE returning value(EO_CONDITIONAL_STYLE) type ref to ZCL_EXCEL_STYLE_CONDITIONAL . @@ -42,6 +44,12 @@ public section. !IP_EXCEL type ref to ZCL_EXCEL !IP_TITLE type ZEXCEL_SHEET_TITLE optional . methods DELETE_MERGE . + methods FREEZE_PANES + importing + !IP_NUM_COLUMNS type I optional + !IP_NUM_ROWS type I optional + raising + ZCX_EXCEL . methods GET_ACTIVE_CELL returning value(EP_ACTIVE_CELL) type STRING . @@ -78,6 +86,16 @@ public section. methods GET_DIMENSION_RANGE returning value(EP_DIMENSION_RANGE) type STRING . + methods GET_DRAWINGS + returning + value(R_DRAWINGS) type ref to ZCL_EXCEL_DRAWINGS . + methods GET_DRAWINGS_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods GET_FREEZE_CELL + exporting + !EP_ROW type ZEXCEL_CELL_ROW + !EP_COLUMN type ZEXCEL_CELL_COLUMN . methods GET_GUID returning value(EP_GUID) type OLTPGUID16 . @@ -98,6 +116,12 @@ public section. methods GET_ROW_DIMENSIONS returning value(R_ROW_DIMENSION) type ZEXCEL_T_WORKSHEET_ROWDIMENSIO . + methods GET_TABLES_ITERATOR + returning + value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . + methods GET_TABLES_SIZE + returning + value(EP_SIZE) type I . methods SET_CELL importing !IP_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA @@ -117,9 +141,6 @@ public section. !IP_COLUMN_START type ZEXCEL_CELL_COLUMN_ALPHA optional !IP_COLUMN_END type ZEXCEL_CELL_COLUMN_ALPHA optional !IP_ROW type ZEXCEL_CELL_ROW optional . - methods GET_TABLES_SIZE - returning - value(EP_SIZE) type I . methods SET_TABLE importing !IP_TABLE type STANDARD TABLE @@ -127,25 +148,7 @@ public section. !IP_BODY_STYLE type ZEXCEL_CELL_STYLE optional !IP_TABLE_TITLE type STRING !IP_TOP_LEFT_COLUMN type ZEXCEL_CELL_COLUMN_ALPHA default 'B' - !IP_TOP_LEFT_ROW type ZEXCEL_CELL_ROW default 3 . - methods GET_TABLES_ITERATOR - returning - value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . - methods FREEZE_PANES - importing - !IP_NUM_COLUMNS type I optional - !IP_NUM_ROWS type I optional - raising - ZCX_EXCEL . - methods GET_DRAWINGS - returning - value(R_DRAWINGS) type ref to ZCL_EXCEL_DRAWINGS . - methods GET_DRAWINGS_ITERATOR - returning - value(EO_ITERATOR) type ref to CL_OBJECT_COLLECTION_ITERATOR . - methods ADD_DRAWING - importing - !IP_DRAWING type ref to ZCL_EXCEL_DRAWING . + !IP_TOP_LEFT_ROW type ZEXCEL_CELL_ROW default 3 . *"* protected components of class ZCL_EXCEL_WORKSHEET *"* do not include other source files here!!! protected section. @@ -154,20 +157,20 @@ protected section. private section. data ACTIVE_CELL type ZEXCEL_S_CELL_DATA . + data COLUMN_DIMENSIONS type ZEXCEL_T_WORKSHEET_COLUMNDIME . 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 FREEZE_PANE_CELL_COLUMN type ZEXCEL_CELL_COLUMN . - data FREEZE_PANE_CELL_ROW type ZEXCEL_CELL_ROW . - data UPPER_CELL type ZEXCEL_S_CELL_DATA . - data COLUMN_DIMENSIONS type ZEXCEL_T_WORKSHEET_COLUMNDIME . - data ROW_DIMENSIONS type ZEXCEL_T_WORKSHEET_ROWDIMENSIO . data DEFAULT_COLUMN_DIMENSION type ref to ZCL_EXCEL_WORKSHEET_COLUMNDIME . data DEFAULT_ROW_DIMENSION type ref to ZCL_EXCEL_WORKSHEET_ROWDIMENSI . - data TABLES type ref to CL_OBJECT_COLLECTION . - data EXCEL type ref to ZCL_EXCEL . data DRAWINGS type ref to ZCL_EXCEL_DRAWINGS . + data EXCEL type ref to ZCL_EXCEL . + data FREEZE_PANE_CELL_COLUMN type ZEXCEL_CELL_COLUMN . + data FREEZE_PANE_CELL_ROW type ZEXCEL_CELL_ROW . + data GUID type OLTPGUID16 . + data LOWER_CELL type ZEXCEL_S_CELL_DATA . + data ROW_DIMENSIONS type ZEXCEL_T_WORKSHEET_ROWDIMENSIO . + data TABLES type ref to CL_OBJECT_COLLECTION . + data UPPER_CELL type ZEXCEL_S_CELL_DATA . methods UPDATE_DIMENSION_RANGE . *"* local class implementation for public class @@ -180,58 +183,66 @@ private section. *"* in the implementation part of the class ABAP - - - - - - - - - - - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + + + + + + + + + + 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. + +ENDMETHOD. + + + method ADD_DRAWING. drawings->add( ip_drawing ). 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 BIND_TABLE. DATA: @@ -354,10 +365,10 @@ endmethod. endmethod. - - - - method CONSTRUCTOR. + + + + METHOD constructor. me->excel = ip_excel. @@ -378,6 +389,7 @@ endmethod. CREATE OBJECT data_validations. CREATE OBJECT tables. CREATE OBJECT drawings. + me->zif_excel_sheet_protection~initialize( ). * initialize active cell coordinates active_cell-cell_row = 1. @@ -388,9 +400,9 @@ endmethod. lower_cell-cell_column = 1. upper_cell-cell_row = 1. upper_cell-cell_column = 1. -endmethod. +ENDMETHOD. - + method DELETE_MERGE. DELETE sheet_content_merge INDEX 1. @@ -398,10 +410,10 @@ endmethod. endmethod. - - - - + + + + method FREEZE_PANES. data: lv_xsplit type i, lv_ysplit type i. @@ -428,8 +440,8 @@ endmethod. freeze_pane_cell_row = ip_num_rows + 1. endmethod. - - + + method GET_ACTIVE_CELL. DATA: lv_active_column TYPE zexcel_cell_column_alpha, @@ -443,11 +455,11 @@ endmethod. endmethod. - - - - - + + + + + method GET_CELL. DATA: lv_column TYPE zexcel_cell_column, @@ -464,9 +476,9 @@ endmethod. ep_value = ls_sheet_content-cell_value. endmethod. - - - + + + method GET_COLUMN_DIMENSION. FIELD-SYMBOLS: <fs_column_dimension> LIKE LINE OF column_dimensions. @@ -486,46 +498,46 @@ endmethod. 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. r_column_dimension = me->default_column_dimension. endmethod. - - + + method GET_DEFAULT_ROW_DIMENSION. r_row_dimension = me->default_row_dimension. endmethod. - - + + method GET_DIMENSION_RANGE. me->update_dimension_range( ). @@ -537,50 +549,50 @@ endmethod. endmethod. - - + + method GET_DRAWINGS. r_drawings = drawings. endmethod. - - + + method GET_DRAWINGS_ITERATOR. eo_iterator = drawings->get_iterator( ). 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_MERGE. DATA: lv_column_start TYPE string, @@ -651,9 +663,9 @@ endmethod. endmethod. - - - + + + method GET_ROW_DIMENSION. FIELD-SYMBOLS: <fs_row_dimension> LIKE LINE OF row_dimensions. @@ -673,30 +685,30 @@ endmethod. endmethod. - - + + method GET_ROW_DIMENSIONS. r_row_dimension[] = me->row_dimensions[]. 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 SET_CELL. DATA: lv_column TYPE zexcel_cell_column, @@ -783,11 +795,11 @@ endmethod. endmethod. - - - - - + + + + + method SET_CELL_STYLE. DATA: lv_column TYPE zexcel_cell_column, @@ -815,10 +827,10 @@ endmethod. endmethod. - - - - + + + + method SET_MERGE. DATA: lv_column_start TYPE zexcel_cell_column, @@ -849,13 +861,13 @@ endmethod. endmethod. - - - - - - - + + + + + + + method SET_TABLE. DATA: lo_tabdescr TYPE REF TO cl_abap_structdescr, @@ -912,7 +924,7 @@ endmethod. endmethod. - + method UPDATE_DIMENSION_RANGE. DATA: ls_sheet_content TYPE zexcel_s_cell_data, diff --git a/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk b/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk index 1928237..8cc6c23 100644 --- a/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk +++ b/ZA2X/CLAS/ZCL_EXCEL_WRITER_2007.slnk @@ -1,6 +1,6 @@ - - + + class ZCL_EXCEL_WRITER_2007 definition public final @@ -34,6 +34,8 @@ private section. data EXCEL type ref to ZCL_EXCEL . data SHARED_STRINGS type ZEXCEL_T_SHARED_STRING . data STYLES_MAPPING type ZEXCEL_T_STYLES_MAPPING . + constants C_ON type STRING value '1'. "#EC NOTEXT + constants C_OFF type STRING value '0'. "#EC NOTEXT methods CREATE returning @@ -110,30 +112,32 @@ private section. *"* 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. @@ -229,7 +233,7 @@ endmethod. IF lo_active_worksheet->get_guid( ) EQ lo_worksheet->get_guid( ). lv_active = abap_true. ELSE. - lv_active = abap_true. + lv_active = abap_false. ENDIF. lv_content = me->create_xl_sheet( io_worksheet = lo_worksheet @@ -303,8 +307,8 @@ endmethod. endmethod. - - + + method CREATE_CONTENT_TYPES. @@ -557,8 +561,8 @@ endmethod. endmethod. - - + + method CREATE_DOCPROPS_APP. @@ -778,8 +782,8 @@ endmethod. endmethod. - - + + method CREATE_DOCPROPS_CORE. @@ -894,8 +898,8 @@ endmethod. endmethod. - - + + method CREATE_RELATIONSHIPS. @@ -993,9 +997,9 @@ endmethod. endmethod. - - - + + + method CREATE_XL_DRAWINGS. @@ -1027,6 +1031,7 @@ endmethod. 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'. @@ -1115,7 +1120,7 @@ endmethod. lo_element = lo_document->create_simple_element( name = lc_xml_node_rowoff parent = lo_document ). - lo_element->set_value( value = `0` ). + lo_element->set_value( value = `1` ). lo_element_from->append_child( new_child = lo_element ). * ext ****************************** @@ -1176,6 +1181,11 @@ endmethod. lo_element2->set_attribute_ns( name = 'r:embed' value = lv_value ). lo_element->append_child( new_child = lo_element2 ). + + lo_element2 = lo_document->create_simple_element( name = lc_xml_node_astretch + parent = lo_document ). + lo_element->append_child( new_child = lo_element2 ). + lo_element_pic->append_child( new_child = lo_element ). * spPr @@ -1217,9 +1227,9 @@ endmethod. endmethod. - - - + + + method CREATE_XL_DRAWINGS_RELS. ** Constant node name @@ -1303,8 +1313,8 @@ endmethod. endmethod. - - + + method CREATE_XL_RELATIONSHIPS. @@ -1451,8 +1461,8 @@ endmethod. endmethod. - - + + method CREATE_XL_SHAREDSTRINGS. @@ -1568,39 +1578,11 @@ endmethod. endmethod. - - - - - method CREATE_XL_SHEET. -********************************************************************** -* abap2xlsx -* -* Copyright (c) 2010 - 2011 Plinky.it -* -* This library is free software. you can redistribute it and/or -* modify it under the terms of the GNU Lesser General Public -* License as published by the Free Software Foundation. either -* version 2.1 of the License, or (at your option) any later version. -* -* This library is distributed in the hope that it will be useful, -* but WITHOUT ANY WARRANTY. without even the implied warranty of -* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU -* Lesser General Public License for more details. -* -* You should have received a copy of the GNU Lesser General Public -* License along with this library. if not, write to the Free Software -* Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA -* -* @category ABAP xlsx Creator -* @package ZA2E -* @author Ivan Femia -* @company Techedge SpA -* @homepage http://www.plinky.it/software -* @copyright Copyright (c) 2010 - 2011 http://www.plinky.it -* @license http://www.gnu.org/licenses/old-licenses/lgpl-2.1.txt LGPL -* @version 1.0, 2010-06-30 -********************************************************************** + + + + + METHOD create_xl_sheet. ** Constant node name DATA: lc_xml_node_worksheet TYPE string VALUE 'worksheet', @@ -1619,7 +1601,10 @@ endmethod. 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_iconset TYPE string VALUE 'iconSet', @@ -1661,6 +1646,10 @@ endmethod. 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_left TYPE string VALUE 'left', lc_xml_attr_right TYPE string VALUE 'right', lc_xml_attr_top TYPE string VALUE 'top', @@ -1677,6 +1666,26 @@ endmethod. lc_xml_attr_showinputmessage TYPE string VALUE 'showInputMessage', lc_xml_attr_showerrormessage TYPE string VALUE 'showErrorMessage', 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', + " 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', @@ -1775,9 +1784,17 @@ endmethod. value = '1' ). lo_element->append_child( new_child = lo_element_2 ). - " TODO pageSetUpPr + + 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 ). @@ -1795,6 +1812,9 @@ endmethod. IF iv_active 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. lo_element_2->set_attribute_ns( name = lc_xml_attr_workbookviewid value = '0' ). @@ -2267,23 +2287,173 @@ endmethod. ENDLOOP. ENDIF. + IF io_worksheet->zif_excel_sheet_protection~protected EQ abap_true. + " pageMargins 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 = c_on. + CONDENSE lv_value NO-GAPS. + lo_element->set_attribute_ns( name = lc_xml_attr_sheet + value = lv_value ). + lo_element->set_attribute_ns( name = lc_xml_attr_objects + value = lv_value ). + lo_element->set_attribute_ns( name = lc_xml_attr_scenarios + value = lv_value ). + 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 = '0.7' ). " @TODO <***************************** + 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 = '0.7' ). " @TODO <***************************** + 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 = '0.75' ). " @TODO <***************************** + 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 = '0.75' ). " @TODO <***************************** + 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 = '0.3' ). " @TODO <***************************** + 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 = '0.3' ). " @TODO <***************************** - lo_element_root->append_child( new_child = lo_element ). " sheetFormatPr node + 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 * tables DATA lv_table_count TYPE i. @@ -2337,12 +2507,12 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). -endmethod. +ENDMETHOD. - - - - + + + + method CREATE_XL_SHEET_RELS. @@ -2451,9 +2621,9 @@ endmethod. endmethod. - - - method CREATE_XL_STYLES. + + + METHOD create_xl_styles. ** Constant node name @@ -2500,7 +2670,10 @@ endmethod. " Colors lc_xml_node_colors TYPE string VALUE 'colors', 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', @@ -2517,6 +2690,7 @@ endmethod. 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', @@ -2532,12 +2706,11 @@ endmethod. 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', " Node namespace lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/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, @@ -2569,6 +2742,8 @@ endmethod. 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, @@ -2630,6 +2805,7 @@ endmethod. 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. @@ -2675,6 +2851,20 @@ endmethod. 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. + * Compress number formats IF ls_numfmt IS NOT INITIAL. READ TABLE lt_numfmts FROM ls_numfmt TRANSPORTING NO FIELDS. @@ -2995,13 +3185,13 @@ endmethod. parent = lo_document ). lo_sub_element->set_attribute_ns( name = lc_xml_attr_numfmtid - value = lc_off ). + value = c_off ). lo_sub_element->set_attribute_ns( name = lc_xml_attr_fontid - value = lc_off ). + value = c_off ). lo_sub_element->set_attribute_ns( name = lc_xml_attr_fillid - value = lc_off ). + value = c_off ). lo_sub_element->set_attribute_ns( name = lc_xml_attr_borderid - value = lc_off ). + value = c_off ). lo_element->append_child( new_child = lo_sub_element ). lo_element_root->append_child( new_child = lo_element ). @@ -3062,6 +3252,30 @@ endmethod. lo_element->set_attribute_ns( name = lc_xml_attr_applyborder value = lv_value ). 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. 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. @@ -3085,7 +3299,7 @@ endmethod. ENDIF. IF ls_alignment-wraptext EQ abap_true. lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_wraptext - value = lc_on ). + value = c_on ). ENDIF. IF ls_alignment-textrotation IS NOT INITIAL. MOVE ls_alignment-textrotation TO lv_value. @@ -3096,7 +3310,7 @@ endmethod. ENDIF. IF ls_alignment-shrinktofit EQ abap_true. lo_sub_element_2->set_attribute_ns( name = lc_xml_attr_shrinktofit - value = lc_on ). + value = c_on ). ENDIF. IF ls_alignment-indent IS NOT INITIAL. MOVE ls_alignment-indent TO lv_value. @@ -3124,9 +3338,9 @@ endmethod. 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 = lc_off ). + value = c_off ). lo_sub_element->set_attribute_ns( name = lc_xml_attr_builtinid - value = lc_off ). + value = c_off ). lo_element->append_child( new_child = lo_sub_element ). lo_element_root->append_child( new_child = lo_element ). @@ -3179,11 +3393,11 @@ endmethod. lo_renderer = lo_ixml->create_renderer( ostream = lo_ostream document = lo_document ). lo_renderer->render( ). -endmethod. +ENDMETHOD. - - - + + + method CREATE_XL_TABLE. DATA: lc_xml_node_table TYPE string VALUE 'table', @@ -3352,8 +3566,8 @@ endmethod. endmethod. - - + + method CREATE_XL_THEME. @@ -3441,8 +3655,8 @@ endmethod. endmethod. - - + + method CREATE_XL_WORKBOOK. @@ -3619,9 +3833,9 @@ endmethod. endmethod. - - - + + + method FLAG2BOOL. @@ -3632,9 +3846,9 @@ endmethod. ENDIF. endmethod. - - - + + + method GET_SHARED_STRING_INDEX. diff --git a/ZA2X/DOMA/ZEXCEL_CELL_PROTECTION.slnk b/ZA2X/DOMA/ZEXCEL_CELL_PROTECTION.slnk new file mode 100644 index 0000000..61dbf25 --- /dev/null +++ b/ZA2X/DOMA/ZEXCEL_CELL_PROTECTION.slnk @@ -0,0 +1,5 @@ + + + + + diff --git a/ZA2X/DOMA/ZEXCEL_DEC_8_2.slnk b/ZA2X/DOMA/ZEXCEL_DEC_8_2.slnk new file mode 100644 index 0000000..b1c8508 --- /dev/null +++ b/ZA2X/DOMA/ZEXCEL_DEC_8_2.slnk @@ -0,0 +1,2 @@ + + diff --git a/ZA2X/DTEL/ZEXCEL_DEC_8_2.slnk b/ZA2X/DTEL/ZEXCEL_DEC_8_2.slnk new file mode 100644 index 0000000..0e850a4 --- /dev/null +++ b/ZA2X/DTEL/ZEXCEL_DEC_8_2.slnk @@ -0,0 +1,4 @@ + + + + diff --git a/ZA2X/DTEL/ZEXCEL_HIDDEN.slnk b/ZA2X/DTEL/ZEXCEL_HIDDEN.slnk new file mode 100644 index 0000000..42e9197 --- /dev/null +++ b/ZA2X/DTEL/ZEXCEL_HIDDEN.slnk @@ -0,0 +1,4 @@ + + + + diff --git a/ZA2X/DTEL/ZEXCEL_LOCKED.slnk b/ZA2X/DTEL/ZEXCEL_LOCKED.slnk new file mode 100644 index 0000000..a6c3f24 --- /dev/null +++ b/ZA2X/DTEL/ZEXCEL_LOCKED.slnk @@ -0,0 +1,4 @@ + + + + diff --git a/ZA2X/DTEL/ZEXCEL_PROTECTION.slnk b/ZA2X/DTEL/ZEXCEL_PROTECTION.slnk index 04fcb7a..cd947e2 100644 --- a/ZA2X/DTEL/ZEXCEL_PROTECTION.slnk +++ b/ZA2X/DTEL/ZEXCEL_PROTECTION.slnk @@ -1,4 +1,4 @@ - + diff --git a/ZA2X/INTF/ZIF_EXCEL_SHEET_PROTECTION.slnk b/ZA2X/INTF/ZIF_EXCEL_SHEET_PROTECTION.slnk new file mode 100644 index 0000000..8620b16 --- /dev/null +++ b/ZA2X/INTF/ZIF_EXCEL_SHEET_PROTECTION.slnk @@ -0,0 +1,8 @@ + + + + + + + + diff --git a/ZA2X/PROG/ZDEMO_EXCEL.slnk b/ZA2X/PROG/ZDEMO_EXCEL.slnk index e84fc3d..d215316 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL.slnk @@ -1,5 +1,5 @@ - + @@ -18,7 +18,7 @@ REPORT zdemo_excel. SUBMIT zdemo_excel1 AND RETURN. " Hello world SUBMIT zdemo_excel2 AND RETURN. " Styles SUBMIT zdemo_excel3 AND RETURN. " iTab binding -SUBMIT zdemo_excel4 AND RETURN. " Multi sheets +SUBMIT zdemo_excel4 AND RETURN. " Multi sheets and page setup SUBMIT zdemo_excel5 AND RETURN. " Conditional formatting SUBMIT zdemo_excel6 AND RETURN. " Formulas SUBMIT zdemo_excel7 AND RETURN. " Conditional formatting diff --git a/ZA2X/PROG/ZDEMO_EXCEL17.slnk b/ZA2X/PROG/ZDEMO_EXCEL17.slnk new file mode 100644 index 0000000..558d4a3 --- /dev/null +++ b/ZA2X/PROG/ZDEMO_EXCEL17.slnk @@ -0,0 +1,64 @@ + + + + + + + + *&---------------------------------------------------------------------* +*& Report ZIFE_TEST_EXCEL +*& +*&---------------------------------------------------------------------* +*& +*& +*&---------------------------------------------------------------------* + +REPORT zdemo_excel17. + +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_protection TYPE REF TO zcl_excel_style, + lv_style_protection_guid TYPE zexcel_cell_style, + lv_file TYPE xstring, + 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->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" + +"Center +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( ). + +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 OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. +lv_file = lo_excel_writer->write_file( lo_excel ). + +"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:\Protection.xlsx' + filetype = 'BIN' + TABLES + data_tab = lt_file_tab. + diff --git a/ZA2X/PROG/ZDEMO_EXCEL4.slnk b/ZA2X/PROG/ZDEMO_EXCEL4.slnk index ece3e3c..3468364 100644 --- a/ZA2X/PROG/ZDEMO_EXCEL4.slnk +++ b/ZA2X/PROG/ZDEMO_EXCEL4.slnk @@ -1,5 +1,5 @@ - + @@ -16,7 +16,7 @@ REPORT zdemo_excel4. DATA: lo_excel TYPE REF TO zcl_excel, - lo_excel_writer type ref to zif_excel_writer, + lo_excel_writer TYPE REF TO zif_excel_writer, lo_worksheet TYPE REF TO zcl_excel_worksheet. DATA: lv_file TYPE xstring, @@ -31,11 +31,23 @@ 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->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 + + + 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' ). -create object lo_excel_writer type zcl_excel_writer_2007. +CREATE OBJECT lo_excel_writer TYPE zcl_excel_writer_2007. lv_file = lo_excel_writer->write_file( lo_excel ). " Convert to binary diff --git a/ZA2X/TABL/ZEXCEL_S_CELLXFS.slnk b/ZA2X/TABL/ZEXCEL_S_CELLXFS.slnk index 39f9110..0c56845 100644 --- a/ZA2X/TABL/ZEXCEL_S_CELLXFS.slnk +++ b/ZA2X/TABL/ZEXCEL_S_CELLXFS.slnk @@ -1,5 +1,5 @@ - + @@ -7,9 +7,11 @@ - - - - - + + + + + + + diff --git a/ZA2X/TABL/ZEXCEL_S_STYLE_PROTECTION.slnk b/ZA2X/TABL/ZEXCEL_S_STYLE_PROTECTION.slnk new file mode 100644 index 0000000..060b32c --- /dev/null +++ b/ZA2X/TABL/ZEXCEL_S_STYLE_PROTECTION.slnk @@ -0,0 +1,6 @@ + + + + + + diff --git a/ZA2X/TTYP/ZEXCEL_T_CELLXFS.slnk b/ZA2X/TTYP/ZEXCEL_T_CELLXFS.slnk index fd9a169..29409f1 100644 --- a/ZA2X/TTYP/ZEXCEL_T_CELLXFS.slnk +++ b/ZA2X/TTYP/ZEXCEL_T_CELLXFS.slnk @@ -1,14 +1,16 @@ - + - - - - - + + + + + + + diff --git a/ZA2X/TTYP/ZEXCEL_T_STYLE_PROTECTION.slnk b/ZA2X/TTYP/ZEXCEL_T_STYLE_PROTECTION.slnk new file mode 100644 index 0000000..6ebfad2 --- /dev/null +++ b/ZA2X/TTYP/ZEXCEL_T_STYLE_PROTECTION.slnk @@ -0,0 +1,5 @@ + + + + +