diff --git a/src/not_cloud/zcl_excel_converter.clas.xml b/src/not_cloud/zcl_excel_converter.clas.xml
index 20f0a49..ece3ede 100644
--- a/src/not_cloud/zcl_excel_converter.clas.xml
+++ b/src/not_cloud/zcl_excel_converter.clas.xml
@@ -67,531 +67,266 @@
E
Ask for user option data
-
- ASK_OPTION
- I
- Ask for user option data
-
BIND_CELLS
E
Create table with set cell method
-
- BIND_CELLS
- I
- Create table with set cell method
-
BIND_TABLE
E
Create table with bind table method
-
- BIND_TABLE
- I
- Create table with bind table method
-
CLASS_CONSTRUCTOR
E
CLASS_CONSTRUCTOR
-
- CLASS_CONSTRUCTOR
- I
- CLASS_CONSTRUCTOR
-
CLEAN_FIELDCATALOG
E
Sort and check on fieldcatalog
-
- CLEAN_FIELDCATALOG
- I
- Sort and check on fieldcatalog
-
CONVERT
E
Convert
-
- CONVERT
- I
- Convert
-
CREATE_COLOR_STYLE
E
Create new color style based on cell style
-
- CREATE_COLOR_STYLE
- I
- Create new color style based on cell style
-
CREATE_FORMULAR_SUBTOTAL
E
Create formular for subtotal
-
- CREATE_FORMULAR_SUBTOTAL
- I
- Create formular for subtotal
-
CREATE_FORMULAR_TOTAL
E
Create formular for column total
-
- CREATE_FORMULAR_TOTAL
- I
- Create formular for column total
-
CREATE_PATH
E
Create file path for download
-
- CREATE_PATH
- I
- Create file path for download
-
CREATE_STYLE_HDR
E
Create header style
-
- CREATE_STYLE_HDR
- I
- Create header style
-
CREATE_STYLE_NORMAL
E
Create line style for stripped
-
- CREATE_STYLE_NORMAL
- I
- Create line style for stripped
-
CREATE_STYLE_STRIPPED
E
Create line style for stripped
-
- CREATE_STYLE_STRIPPED
- I
- Create line style for stripped
-
CREATE_STYLE_SUBTOTAL
E
Create subtotals style
-
- CREATE_STYLE_SUBTOTAL
- I
- Create subtotals style
-
CREATE_STYLE_TOTAL
E
Create totals style
-
- CREATE_STYLE_TOTAL
- I
- Create totals style
-
CREATE_TABLE
E
Create table based on fieldcatalog
-
- CREATE_TABLE
- I
- Create table based on fieldcatalog
-
CREATE_TEXT_SUBTOTAL
E
Create subtoal text for column
-
- CREATE_TEXT_SUBTOTAL
- I
- Create subtoal text for column
-
CREATE_WORKSHEET
E
Create table in worksheet
-
- CREATE_WORKSHEET
- I
- Create table in worksheet
-
C_TYPE_HDR
E
Single-Character Indicator
-
- C_TYPE_HDR
- I
- Single-Character Indicator
-
C_TYPE_NOR
E
Single-Character Indicator
-
- C_TYPE_NOR
- I
- Single-Character Indicator
-
C_TYPE_STR
E
Single-Character Indicator
-
- C_TYPE_STR
- I
- Single-Character Indicator
-
C_TYPE_SUB
E
Single-Character Indicator
-
- C_TYPE_SUB
- I
- Single-Character Indicator
-
C_TYPE_TOT
E
Single-Character Indicator
-
- C_TYPE_TOT
- I
- Single-Character Indicator
-
EXECUTE_CONVERTER
E
Execute the converter based on object provided
-
- EXECUTE_CONVERTER
- I
- Execute the converter based on object provided
-
GET_COLOR_STYLE
E
Look up color style and create if needed
-
- GET_COLOR_STYLE
- I
- Look up color style and create if needed
-
GET_FILE
E
Create excel file
-
- GET_FILE
- I
- Create excel file
-
GET_FUNCTION_NUMBER
E
Convert function name into internal number
-
- GET_FUNCTION_NUMBER
- I
- Convert function name into internal number
-
GET_OPTION
E
Get user option data
-
- GET_OPTION
- I
- Get user option data
-
GET_STYLE
E
Get style for cell
-
- GET_STYLE
- I
- Get style for cell
-
INIT_OPTION
E
Init option structure
-
- INIT_OPTION
- I
- Init option structure
-
LOOP_NORMAL
E
Bind cells with normal loop
-
- LOOP_NORMAL
- I
- Bind cells with normal loop
-
LOOP_SUBTOTAL
E
Bind cells with subtotal loop
-
- LOOP_SUBTOTAL
- I
- Bind cells with subtotal loop
-
OPEN_FILE
E
Open excel file
-
- OPEN_FILE
- I
- Open excel file
-
SET_AUTOFILTER_AREA
E
Create autofilter
-
- SET_AUTOFILTER_AREA
- I
- Create autofilter
-
SET_CELL_FORMAT
E
SET CELL FORMAT
-
- SET_CELL_FORMAT
- I
- SET CELL FORMAT
-
SET_FIELDCATALOG
E
Set fieldcatalog from table
-
- SET_FIELDCATALOG
- I
- Set fieldcatalog from table
-
SET_OPTION
E
Set user option data
-
- SET_OPTION
- I
- Set user option data
-
WO_AUTOFILTER
E
Autofilter
-
- WO_AUTOFILTER
- I
- Autofilter
-
WO_DATA
E
Excel data without unwanted columns
-
- WO_DATA
- I
- Excel data without unwanted columns
-
WO_EXCEL
E
Excel creator
-
- WO_EXCEL
- I
- Excel creator
-
WO_TABLE
E
Table sorted but not reduced
-
- WO_TABLE
- I
- Table sorted but not reduced
-
WO_WORKSHEET
E
Worksheet
-
- WO_WORKSHEET
- I
- Worksheet
-
WRITE_FILE
E
Write excel file
-
- WRITE_FILE
- I
- Write excel file
-
WS_INDX
E
System Table INDX
-
- WS_INDX
- I
- System Table INDX
-
WS_LAYOUT
E
Converter settings for table
-
- WS_LAYOUT
- I
- Converter settings for table
-
WS_OPTION
E
Converter options for grid configuration
-
- WS_OPTION
- I
- Converter options for grid configuration
-
WT_COLORS
E
Table type for color information of cells for converter
-
- WT_COLORS
- I
- Table type for color information of cells for converter
-
WT_FIELDCATALOG
E
Conter table for tabel fields
-
- WT_FIELDCATALOG
- I
- Conter table for tabel fields
-
WT_FILTER
E
Table type for filter information of cells for converter
-
- WT_FILTER
- I
- Table type for filter information of cells for converter
-
WT_OBJECTS
E
ALV object list
-
- WT_OBJECTS
- I
- ALV object list
-
W_COL_INT
E
Cell Column
-
- W_COL_INT
- I
- Cell Column
-
W_FCOUNT
E
Three digit number
-
- W_FCOUNT
- I
- Three digit number
-
W_ROW_INT
E
Cell Row
-
- W_ROW_INT
- I
- Cell Row
-
diff --git a/src/zcl_excel.clas.xml b/src/zcl_excel.clas.xml
index 0f41934..9cbf55e 100644
--- a/src/zcl_excel.clas.xml
+++ b/src/zcl_excel.clas.xml
@@ -32,101 +32,51 @@
E
Create a new autofilter
-
- ADD_NEW_AUTOFILTER
- I
- Create a new autofilter
-
ADD_NEW_DRAWING
E
Create a new drawing
-
- ADD_NEW_DRAWING
- I
- Create a new drawing
-
ADD_NEW_RANGE
E
Create a new range
-
- ADD_NEW_RANGE
- I
- Create a new range
-
ADD_NEW_STYLE
E
Create a new style
-
- ADD_NEW_STYLE
- I
- Create a new style
-
ADD_NEW_WORKSHEET
E
Create a new worksheet
-
- ADD_NEW_WORKSHEET
- I
- Create a new worksheet
-
ADD_STATIC_STYLES
E
Add static styles to styles iterator
-
- ADD_STATIC_STYLES
- I
- Add static styles to styles iterator
-
AUTOFILTERS
E
Autofilters collection
-
- AUTOFILTERS
- I
- Autofilters collection
-
CHARTS
E
Charts collection
-
- CHARTS
- I
- Charts collection
-
CONSTRUCTOR
E
CONSTRUCTOR
-
- CONSTRUCTOR
- I
- CONSTRUCTOR
-
DEFAULT_STYLE
E
Style identifier
-
- DEFAULT_STYLE
- I
- Style identifier
-
DELETE_WORKSHEET
E
@@ -147,101 +97,51 @@
E
Drawings collection
-
- DRAWINGS
- I
- Worksheets collection
-
GET_ACTIVE_SHEET_INDEX
E
Get active worksheet index
-
- GET_ACTIVE_SHEET_INDEX
- I
- Get active worksheet index
-
GET_ACTIVE_WORKSHEET
E
Get active worksheet
-
- GET_ACTIVE_WORKSHEET
- I
- Get active worksheet
-
GET_AUTOFILTERS_REFERENCE
E
Get filter reference
-
- GET_AUTOFILTERS_REFERENCE
- I
- Get filter reference
-
GET_DEFAULT_STYLE
E
Get default style
-
- GET_DEFAULT_STYLE
- I
- Get default style
-
GET_DRAWINGS_ITERATOR
E
Get drawing iterator
-
- GET_DRAWINGS_ITERATOR
- I
- Get drawing iterator
-
GET_NEXT_TABLE_ID
E
Get table ID unique across sheets
-
- GET_NEXT_TABLE_ID
- I
- Get table ID unique across sheets
-
GET_RANGES_ITERATOR
E
Get ranges iterator
-
- GET_RANGES_ITERATOR
- I
- Get ranges iterator
-
GET_STATIC_CELLSTYLE_GUID
E
Get GUID for static cellstyle
-
- GET_STATIC_CELLSTYLE_GUID
- I
- Get GUID for static cellstyle
-
GET_STYLES_ITERATOR
E
Get styles iterator
-
- GET_STYLES_ITERATOR
- I
- Get styles iterator
-
GET_STYLE_FROM_GUID
E
@@ -252,21 +152,11 @@
E
Get index of style in styles
-
- GET_STYLE_INDEX_IN_STYLES
- I
- Get index of style in styles
-
GET_STYLE_TO_GUID
E
Get style(structure) for guid
-
- GET_STYLE_TO_GUID
- I
- Get style(structure) for guid
-
GET_THEME
E
@@ -277,31 +167,16 @@
E
Get worksheets iterator
-
- GET_WORKSHEETS_ITERATOR
- I
- Get worksheets iterator
-
GET_WORKSHEETS_NAME
E
Returns the name of worksheets
-
- GET_WORKSHEETS_NAME
- I
- Returns the name of worksheets
-
GET_WORKSHEETS_SIZE
E
Returns the number of worksheets
-
- GET_WORKSHEETS_SIZE
- I
- Returns the number of worksheets
-
GET_WORKSHEET_BY_INDEX
E
@@ -312,61 +187,31 @@
E
Get worksheet by name
-
- GET_WORKSHEET_BY_NAME
- I
- Get worksheet by name
-
RANGES
E
Ranges collection
-
- RANGES
- I
- Ranges collection
-
SECURITY
E
Security
-
- SECURITY
- I
- Security
-
SET_ACTIVE_SHEET_INDEX
E
Set active worksheet index
-
- SET_ACTIVE_SHEET_INDEX
- I
- Set active worksheet index
-
SET_ACTIVE_SHEET_INDEX_BY_NAME
E
Set active worksheet index by name
-
- SET_ACTIVE_SHEET_INDEX_BY_NAME
- I
- Set active worksheet index by name
-
SET_DEFAULT_STYLE
E
Set default style
-
- SET_DEFAULT_STYLE
- I
- Set default style
-
SET_THEME
E
@@ -377,21 +222,11 @@
E
Convert dynamic style to static styleentry
-
- STYLEMAPPING_DYNAMIC_STYLE
- I
- Convert dynamic style to static stlyeentry
-
STYLES
E
Styles collection
-
- STYLES
- I
- Styles collection
-
THEME
E
@@ -402,31 +237,16 @@
E
Stylemapping: Values -> GUID
-
- T_STYLEMAPPING1
- I
- Stylemapping: Values -> GUID
-
T_STYLEMAPPING2
E
Stylemapping: GUID -> Values
-
- T_STYLEMAPPING2
- I
- Stylemapping: GUID -> Values
-
USE_TEMPLATE
E
Checkbox
-
- USE_TEMPLATE
- I
- Checkbox
-
VERSION
E
@@ -437,11 +257,6 @@
E
Worksheets collection
-
- WORKSHEETS
- I
- Worksheets collection
-
diff --git a/src/zcl_excel_autofilter.clas.xml b/src/zcl_excel_autofilter.clas.xml
index ee7edb6..b2f3516 100644
--- a/src/zcl_excel_autofilter.clas.xml
+++ b/src/zcl_excel_autofilter.clas.xml
@@ -17,21 +17,11 @@
E
CONSTRUCTOR
-
- CONSTRUCTOR
- I
- CONSTRUCTOR
-
FILTER_AREA
E
Autofilter area ( rows and columns )
-
- FILTER_AREA
- I
- Autofilter area ( rows and columns )
-
GET_COLUMN_FILTER
E
@@ -42,41 +32,21 @@
E
Get filter area for filter
-
- GET_FILTER_AREA
- I
- Get filter area for filter
-
GET_FILTER_RANGE
E
Get Filter range for filter
-
- GET_FILTER_RANGE
- I
- Get Filter range for filter
-
GET_FILTER_REFERENCE
E
Get filter reference for filter
-
- GET_FILTER_REFERENCE
- I
- Get filter reference for filter
-
GET_VALUES
E
Get filter values table
-
- GET_VALUES
- I
- Get filter values table
-
IS_ROW_HIDDEN
E
@@ -127,11 +97,6 @@
E
Set filter area for filter
-
- SET_FILTER_AREA
- I
- Set filter area for filter
-
SET_TEXT_FILTER
E
@@ -142,21 +107,11 @@
E
Set Filter value
-
- SET_VALUE
- I
- Set Filter value
-
SET_VALUES
E
Set Filter values with table
-
- SET_VALUES
- I
- Set Filter values with table
-
TS_FILTER
E
@@ -182,21 +137,11 @@
E
Validates filter area
-
- VALIDATE_AREA
- I
- Validates filter area
-
WORKSHEET
E
Worksheet
-
- WORKSHEET
- I
- Worksheet
-
diff --git a/src/zcl_excel_comment.clas.abap b/src/zcl_excel_comment.clas.abap
index f9ad9e0..3336c20 100644
--- a/src/zcl_excel_comment.clas.abap
+++ b/src/zcl_excel_comment.clas.abap
@@ -5,9 +5,42 @@ CLASS zcl_excel_comment DEFINITION
PUBLIC SECTION.
- CONSTANTS default_right_column TYPE i VALUE 4. "#EC NOTEXT
- CONSTANTS default_bottom_row TYPE i VALUE 15. "#EC NOTEXT
+ TYPES:
+ BEGIN OF ty_rtf_fragment.
+ INCLUDE TYPE zexcel_s_style_font AS rtf.
+ TYPES:
+ text TYPE string,
+ END OF ty_rtf_fragment .
+ TYPES:
+ ty_rtf_fragments TYPE STANDARD TABLE OF ty_rtf_fragment
+ WITH NON-UNIQUE DEFAULT KEY .
+ TYPES:
+ BEGIN OF ty_box,
+ left_column TYPE i,
+ left_offset TYPE i,
+ top_row TYPE i,
+ top_offset TYPE i,
+ right_column TYPE i,
+ right_offset TYPE i,
+ bottom_row TYPE i,
+ bottom_offset TYPE i,
+ END OF ty_box .
+ CONSTANTS:
+ BEGIN OF gc_default_box,
+ left_column TYPE i VALUE 2,
+ left_offset TYPE i VALUE 15,
+ top_row TYPE i VALUE 11,
+ top_offset TYPE i VALUE 10,
+ right_column TYPE i VALUE 4,
+ right_offset TYPE i VALUE 31,
+ bottom_row TYPE i VALUE 15,
+ bottom_offset TYPE i VALUE 9,
+ END OF gc_default_box .
+
+ CLASS-METHODS get_default_style
+ RETURNING
+ VALUE(es_default) TYPE zexcel_s_style_font .
METHODS constructor .
METHODS get_bottom_offset
RETURNING
@@ -45,38 +78,47 @@ CLASS zcl_excel_comment DEFINITION
METHODS get_top_row
RETURNING
VALUE(rp_result) TYPE i .
+ METHODS set_box
+ IMPORTING
+ !is_box TYPE ty_box .
METHODS set_text
IMPORTING
- !ip_text TYPE string
+ !ip_text TYPE string OPTIONAL
+ !is_style TYPE zexcel_s_style_font OPTIONAL
!ip_ref TYPE string OPTIONAL
- !ip_left_column TYPE i DEFAULT 2
- !ip_left_offset TYPE i DEFAULT 15
- !ip_top_row TYPE i DEFAULT 11
- !ip_top_offset TYPE i DEFAULT 10
- !ip_right_column TYPE i DEFAULT default_right_column
- !ip_right_offset TYPE i DEFAULT 31
- !ip_bottom_row TYPE i DEFAULT default_bottom_row
- !ip_bottom_offset TYPE i DEFAULT 9.
-
+ !ip_left_column TYPE i DEFAULT gc_default_box-left_column
+ !ip_left_offset TYPE i DEFAULT gc_default_box-left_offset
+ !ip_top_row TYPE i DEFAULT gc_default_box-top_row
+ !ip_top_offset TYPE i DEFAULT gc_default_box-top_offset
+ !ip_right_column TYPE i DEFAULT gc_default_box-right_column
+ !ip_right_offset TYPE i DEFAULT gc_default_box-right_offset
+ !ip_bottom_row TYPE i DEFAULT gc_default_box-bottom_row
+ !ip_bottom_offset TYPE i DEFAULT gc_default_box-bottom_offset .
+ METHODS get_text_rtf
+ RETURNING
+ VALUE(et_rtf) TYPE ty_rtf_fragments .
+ METHODS set_text_rtf
+ IMPORTING
+ !it_rtf TYPE ty_rtf_fragments OPTIONAL
+ !ip_ref TYPE string OPTIONAL
+ !is_box TYPE ty_box OPTIONAL .
PROTECTED SECTION.
- PRIVATE SECTION.
+PRIVATE SECTION.
- DATA bottom_offset TYPE i .
- DATA bottom_row TYPE i .
- DATA index TYPE string .
- DATA ref TYPE string .
- DATA left_column TYPE i .
- DATA left_offset TYPE i .
- DATA right_column TYPE i .
- DATA right_offset TYPE i .
- DATA text TYPE string .
- DATA top_offset TYPE i .
- DATA top_row TYPE i .
+ DATA index TYPE string .
+ DATA ref TYPE string .
+ DATA gt_rtf TYPE ty_rtf_fragments .
+ DATA gs_box TYPE ty_box .
+
+ METHODS add_text
+ IMPORTING
+ !ip_text TYPE string
+ !is_style TYPE zexcel_s_style_font .
ENDCLASS.
-CLASS zcl_excel_comment IMPLEMENTATION.
+CLASS ZCL_EXCEL_COMMENT IMPLEMENTATION.
METHOD constructor.
@@ -85,12 +127,12 @@ CLASS zcl_excel_comment IMPLEMENTATION.
METHOD get_bottom_offset.
- rp_result = bottom_offset.
+ rp_result = gs_box-bottom_offset.
ENDMETHOD.
METHOD get_bottom_row.
- rp_result = bottom_row.
+ rp_result = gs_box-bottom_row.
ENDMETHOD.
@@ -100,12 +142,12 @@ CLASS zcl_excel_comment IMPLEMENTATION.
METHOD get_left_column.
- rp_result = left_column.
+ rp_result = gs_box-left_column.
ENDMETHOD.
METHOD get_left_offset.
- rp_result = left_offset.
+ rp_result = gs_box-left_offset.
ENDMETHOD.
@@ -120,56 +162,112 @@ CLASS zcl_excel_comment IMPLEMENTATION.
METHOD get_right_column.
- rp_result = right_column.
+ rp_result = gs_box-right_column.
ENDMETHOD.
METHOD get_right_offset.
- rp_result = right_offset.
+ rp_result = gs_box-right_offset.
ENDMETHOD.
METHOD get_text.
- rp_text = me->text.
+ FIELD-SYMBOLS: LIKE LINE OF gt_rtf.
+ LOOP AT gt_rtf ASSIGNING .
+ CONCATENATE rp_text -text INTO rp_text.
+ ENDLOOP.
ENDMETHOD.
METHOD get_top_offset.
- rp_result = top_offset.
+ rp_result = gs_box-top_offset.
ENDMETHOD.
METHOD get_top_row.
- rp_result = top_row.
+ rp_result = gs_box-top_row.
ENDMETHOD.
METHOD set_text.
- me->text = ip_text.
IF ip_ref IS SUPPLIED.
- me->ref = ip_ref.
+ ref = ip_ref.
ENDIF.
- me->left_column = ip_left_column.
- me->left_offset = ip_left_offset.
-
- me->top_row = ip_top_row.
- me->top_offset = ip_top_offset.
-
- IF ip_right_column IS NOT INITIAL.
- me->right_column = ip_right_column.
- ELSE.
- me->right_column = default_right_column.
+* Add a simple text with parameter IP_TEXT and style IS_STYLE
+ IF ip_text IS NOT INITIAL.
+ add_text(
+ ip_text = ip_text
+ is_style = is_style ).
ENDIF.
- me->right_offset = ip_right_offset.
- IF ip_bottom_row IS NOT INITIAL.
- me->bottom_row = ip_bottom_row.
- ELSE.
- me->bottom_row = default_bottom_row.
- ENDIF.
- me->bottom_offset = ip_bottom_offset.
+* Parameters of the containing box
+ DATA ls_box TYPE ty_box.
+ ls_box-left_column = ip_left_column.
+ ls_box-left_offset = ip_left_offset.
+ ls_box-top_row = ip_top_row.
+ ls_box-top_offset = ip_top_offset.
+ ls_box-right_column = ip_right_column.
+ ls_box-right_offset = ip_right_offset.
+ ls_box-bottom_row = ip_bottom_row.
+ ls_box-bottom_offset = ip_bottom_offset.
+ set_box( ls_box ).
+
ENDMETHOD.
+
+ METHOD set_box.
+
+ gs_box = is_box.
+
+ ENDMETHOD.
+
+
+ METHOD add_text.
+
+ DATA ls_rtf LIKE LINE OF gt_rtf.
+ ls_rtf-text = ip_text.
+ IF is_style IS INITIAL.
+ ls_rtf-rtf = get_default_style( ).
+ ELSE.
+ ls_rtf-rtf = is_style.
+ ENDIF.
+ APPEND ls_rtf TO gt_rtf.
+
+ ENDMETHOD.
+
+
+ METHOD get_default_style.
+
+ es_default-bold = abap_true.
+ es_default-size = 9.
+ es_default-color-indexed = 81.
+ es_default-color-theme = zcl_excel_style_color=>c_theme_not_set.
+ es_default-name = `Tahoma`.
+ es_default-family = 2.
+
+ ENDMETHOD.
+
+
+ method GET_TEXT_RTF.
+ et_rtf = gt_rtf.
+ endmethod.
+
+
+ METHOD set_text_rtf.
+
+* Set a text, consisting of differently styled parts
+ gt_rtf = it_rtf.
+
+ IF ip_ref IS SUPPLIED.
+ ref = ip_ref.
+ ENDIF.
+
+* Parameters of the containing box
+ IF is_box IS SUPPLIED.
+ set_box( is_box ).
+ ENDIF.
+
+ ENDMETHOD.
ENDCLASS.
diff --git a/src/zcl_excel_comment.clas.xml b/src/zcl_excel_comment.clas.xml
index b7ce4e4..c154612 100644
--- a/src/zcl_excel_comment.clas.xml
+++ b/src/zcl_excel_comment.clas.xml
@@ -17,21 +17,31 @@
E
CONSTRUCTOR
+
+ GET_DEFAULT_STYLE
+ E
+ Default style for formatted parts of comment
+
GET_INDEX
E
- Get index
+ Get index (in commentlist zcl_excel_comments)
GET_REF
E
- Get reference
+ Get cell reference
GET_TEXT
E
Get text
+
+ GET_TEXT_RTF
+ E
+ Get text consisting of styled parts
+
INDEX
E
@@ -42,17 +52,72 @@
E
Reference to cell (eg. 'B13')
+
+ SET_BOX
+ E
+ Set box for display
+
SET_TEXT
E
Set text
- TEXT
+ SET_TEXT_RTF
E
- Comment
+ Set text consisting of styled parts
+
+
+ ADD_TEXT
+ IS_STYLE
+ E
+ Style
+
+
+ GET_DEFAULT_STYLE
+ ES_DEFAULT
+ E
+ Cell Font
+
+
+ SET_TEXT
+ IP_REF
+ E
+ Cell reference (e.g. 'A1')
+
+
+ SET_TEXT
+ IP_TEXT
+ E
+ Text as string
+
+
+ SET_TEXT
+ IS_STYLE
+ E
+ Style (for richt text comment)
+
+
+ SET_TEXT_RTF
+ IP_REF
+ E
+ Cell reference (e.g. 'A1')
+
+
+ SET_TEXT_RTF
+ IS_BOX
+ E
+ Bounding box (optional)
+
+
+ SET_TEXT_RTF
+ IT_RTF
+ E
+ Comment with differently styled parts
+
+
diff --git a/src/zcl_excel_comments.clas.abap b/src/zcl_excel_comments.clas.abap
index b0b897e..83740fe 100644
--- a/src/zcl_excel_comments.clas.abap
+++ b/src/zcl_excel_comments.clas.abap
@@ -5,6 +5,12 @@ CLASS zcl_excel_comments DEFINITION
PUBLIC SECTION.
+ TYPES:
+ ty_boxes TYPE STANDARD TABLE OF zcl_excel_comment=>ty_box
+ WITH NON-UNIQUE DEFAULT KEY .
+
+ DATA gv_full_vml TYPE string READ-ONLY .
+
METHODS add
IMPORTING
!ip_comment TYPE REF TO zcl_excel_comment .
@@ -12,7 +18,9 @@ CLASS zcl_excel_comments DEFINITION
IMPORTING
!ip_comment TYPE REF TO zcl_excel_comment .
METHODS clear .
- METHODS constructor .
+ METHODS constructor
+ IMPORTING
+ !io_from TYPE REF TO zcl_excel_comments OPTIONAL .
METHODS get
IMPORTING
!ip_index TYPE zexcel_active_worksheet
@@ -30,15 +38,20 @@ CLASS zcl_excel_comments DEFINITION
METHODS size
RETURNING
VALUE(ep_size) TYPE i .
+ METHODS set_boxes
+ IMPORTING
+ !it_boxes TYPE ty_boxes OPTIONAL
+ !iv_full_vml TYPE string OPTIONAL .
PROTECTED SECTION.
- PRIVATE SECTION.
+PRIVATE SECTION.
- DATA comments TYPE REF TO zcl_excel_collection .
+ DATA comments TYPE REF TO zcl_excel_collection .
+ DATA gt_boxes TYPE ty_boxes .
ENDCLASS.
-CLASS zcl_excel_comments IMPLEMENTATION.
+CLASS ZCL_EXCEL_COMMENTS IMPLEMENTATION.
METHOD add.
@@ -57,7 +70,15 @@ CLASS zcl_excel_comments IMPLEMENTATION.
METHOD constructor.
- CREATE OBJECT comments.
+
+ IF io_from IS INITIAL.
+ CREATE OBJECT comments.
+ ELSE.
+* Copy constructor: copy attributes from original
+ comments = io_from->comments.
+ gt_boxes = io_from->gt_boxes.
+ gv_full_vml = io_from->gv_full_vml.
+ ENDIF.
ENDMETHOD.
@@ -97,4 +118,37 @@ CLASS zcl_excel_comments IMPLEMENTATION.
ep_size = comments->size( ).
ENDMETHOD.
+
+
+ METHOD set_boxes.
+
+ DATA:
+ lo_comments TYPE REF TO zcl_excel_collection_iterator,
+ lo_comment TYPE REF TO zcl_excel_comment.
+
+ FIELD-SYMBOLS:
+ TYPE zcl_excel_comment=>ty_box.
+
+ IF it_boxes IS NOT INITIAL.
+ gt_boxes = it_boxes.
+ ENDIF.
+
+ IF iv_full_vml IS NOT INITIAL.
+ gv_full_vml = iv_full_vml.
+ ENDIF.
+
+ IF gt_boxes IS NOT INITIAL.
+
+ lo_comments = comments->get_iterator( ).
+ WHILE lo_comments->has_next( ) EQ abap_true.
+ READ TABLE gt_boxes INDEX 1 ASSIGNING .
+ CHECK sy-subrc EQ 0.
+ lo_comment ?= lo_comments->get_next( ).
+ lo_comment->set_box( ).
+ DELETE gt_boxes INDEX 1.
+ ENDWHILE.
+
+ ENDIF.
+
+ ENDMETHOD.
ENDCLASS.
diff --git a/src/zcl_excel_comments.clas.xml b/src/zcl_excel_comments.clas.xml
index 0e69781..e10f0d2 100644
--- a/src/zcl_excel_comments.clas.xml
+++ b/src/zcl_excel_comments.clas.xml
@@ -37,6 +37,11 @@
E
Returns an iterator
+
+ GV_FULL_VML
+ E
+ Full VML with graphics information for the comment boxes
+
INCLUDE
E
@@ -52,12 +57,25 @@
E
Deletes an Element from the Collection
+
+ SET_BOXES
+ E
+ Propagate dimensions of the info boxes to the comments
+
SIZE
E
Specifies number of contained elements
+
+
+ CONSTRUCTOR
+ IO_FROM
+ E
+ Create new instance from this original
+
+
diff --git a/src/zcl_excel_common.clas.xml b/src/zcl_excel_common.clas.xml
index a648e43..ed0a8b2 100644
--- a/src/zcl_excel_common.clas.xml
+++ b/src/zcl_excel_common.clas.xml
@@ -50,21 +50,11 @@
E
Give distance between two cells
-
- CALCULATE_CELL_DISTANCE
- I
- Give distance between two cells
-
CHAR2HEX
E
Character to Hexadecimal
-
- CHAR2HEX
- I
- Character to Hexadecimal
-
CLASS_CONSTRUCTOR
E
@@ -75,91 +65,46 @@
E
Convert column indicator to Alpha
-
- CONVERT_COLUMN2ALPHA
- I
- Convert column indicator to Alpha
-
CONVERT_COLUMN2INT
E
Convert column indicator to Integer
-
- CONVERT_COLUMN2INT
- I
- Convert column indicator to Integer
-
CONVERT_COLUMNROW2COLUMN_A_ROW
E
Convert ColumnRow i.e. AB34 to AB and 34
-
- CONVERT_COLUMNROW2COLUMN_A_ROW
- I
- Convert ColumnRow i.e. AB34 to AB and 34
-
CONVERT_RANGE2COLUMN_A_ROW
E
Converts Sheet1!AB34:CD56 to Sheet1, AB, 34, CD, 56
-
- CONVERT_RANGE2COLUMN_A_ROW
- I
- Converts Sheet1!AB34:CD56 to Sheet1, AB, 34, CD, 56
-
C_EXCEL_1900_LEAP_YEAR
E
Excel baseline date
-
- C_EXCEL_1900_LEAP_YEAR
- I
- Excel baseline date
-
C_EXCEL_BASELINE_DATE
E
Excel baseline date
-
- C_EXCEL_BASELINE_DATE
- I
- Excel baseline date
-
C_EXCEL_COL_MODULE
E
2 byte integer (signed)
-
- C_EXCEL_COL_MODULE
- I
- 2 byte integer (signed)
-
C_EXCEL_NUMFMT_OFFSET
E
2 byte integer (signed)
-
- C_EXCEL_NUMFMT_OFFSET
- I
- 2 byte integer (signed)
-
C_EXCEL_SHEET_MAX_COL
E
2 byte integer (signed)
-
- C_EXCEL_SHEET_MAX_COL
- I
- 2 byte integer (signed)
-
C_EXCEL_SHEET_MAX_ROW
E
@@ -170,11 +115,6 @@
E
2 byte integer (signed)
-
- C_EXCEL_SHEET_MIN_COL
- I
- 2 byte integer (signed)
-
C_EXCEL_SHEET_MIN_ROW
E
@@ -185,81 +125,41 @@
E
Language Key
-
- C_SPRAS_EN
- I
- Language Key
-
C_XLSX_FILE_FILTER
E
File filter
-
- C_XLSX_FILE_FILTER
- I
- File filter
-
DATE_TO_EXCEL_STRING
E
Convert date from SAP format to Excel
-
- DATE_TO_EXCEL_STRING
- I
- Convert date from SAP format to Excel
-
DESCRIBE_STRUCTURE
E
Describe database info of structure
-
- DESCRIBE_STRUCTURE
- I
- Describe database info of structure
-
DETERMINE_RESULTING_FORMULA
E
Determine formula if copied to another cell
-
- DETERMINE_RESULTING_FORMULA
- I
- Determine formula if copied to another cell
-
ENCRYPT_PASSWORD
E
Encrypt password
-
- ENCRYPT_PASSWORD
- I
- Encrypt password
-
ESCAPE_STRING
E
Escape a string
-
- ESCAPE_STRING
- I
- Escape a string
-
EXCEL_STRING_TO_DATE
E
Convert date from Excel format to SAP
-
- EXCEL_STRING_TO_DATE
- I
- Convert date from Excel format to SAP
-
EXCEL_STRING_TO_NUMBER
E
@@ -270,21 +170,11 @@
E
Convert time from Excel format to SAP
-
- EXCEL_STRING_TO_TIME
- I
- Convert time from Excel format to SAP
-
GET_FIELDCATALOG
E
Creates field catalog for BIND_TABLE based on internal table
-
- GET_FIELDCATALOG
- I
- Creates field catalog for BIND_TABLE based on internal table
-
IS_CELL_IN_RANGE
E
@@ -295,51 +185,26 @@
E
Converts number to string representation in Excel format
-
- NUMBER_TO_EXCEL_STRING
- I
- Converts number to string representation in Excel format
-
O_CONV
E
Code Page and Endian Conversion (System Format -> External)
-
- O_CONV
- I
- Code Page and Endian Conversion (System Format -> External)
-
RECURSIVE_CLASS_TO_STRUCT
E
Move class to structure
-
- RECURSIVE_CLASS_TO_STRUCT
- I
- Move class to structure
-
RECURSIVE_STRUCT_TO_CLASS
E
Move structure to class
-
- RECURSIVE_STRUCT_TO_CLASS
- I
- Move structure to class
-
SHIFT_FORMULA
E
Shift formula from one cell to another
-
- SHIFT_FORMULA
- I
- Shift formula from one cell to another
-
SHL01
E
@@ -355,51 +220,26 @@
E
File & Extension disconnect (clone of FM CV120_SPLIT_FILE)
-
- SPLIT_FILE
- I
- File & Extension disconnect (clone of FM CV120_SPLIT_FILE)
-
STRUCTURE_CASE
E
Case stement for recursive
-
- STRUCTURE_CASE
- I
- Case stement for recursive
-
STRUCTURE_RECURSIVE
E
Get structure details
-
- STRUCTURE_RECURSIVE
- I
- Get structure details
-
TIME_TO_EXCEL_STRING
E
Convert time from SAP format to Excel
-
- TIME_TO_EXCEL_STRING
- I
- Convert time from SAP format to Excel
-
UNESCAPE_STRING
E
Unescape
-
- UNESCAPE_STRING
- I
- Unescape
-
diff --git a/src/zcl_excel_reader_2007.clas.abap b/src/zcl_excel_reader_2007.clas.abap
index 0c7c40f..e6cf8eb 100644
--- a/src/zcl_excel_reader_2007.clas.abap
+++ b/src/zcl_excel_reader_2007.clas.abap
@@ -13,361 +13,371 @@ CLASS zcl_excel_reader_2007 DEFINITION
!ip_element TYPE REF TO if_ixml_element
CHANGING
!cp_structure TYPE any .
- PROTECTED SECTION.
+PROTECTED SECTION.
- TYPES:
+ TYPES:
*"* protected components of class ZCL_EXCEL_READER_2007
*"* do not include other source files here!!!
- BEGIN OF t_relationship,
- id TYPE string,
- type TYPE string,
- target TYPE string,
- targetmode TYPE string,
- worksheet TYPE REF TO zcl_excel_worksheet,
- sheetid TYPE string, "ins #235 - repeat rows/cols - needed to identify correct sheet
- localsheetid TYPE string,
- END OF t_relationship .
- TYPES:
- BEGIN OF t_fileversion,
- appname TYPE string,
- lastedited TYPE string,
- lowestedited TYPE string,
- rupbuild TYPE string,
- codename TYPE string,
- END OF t_fileversion .
- TYPES:
- BEGIN OF t_sheet,
- name TYPE string,
- sheetid TYPE string,
- id TYPE string,
- state TYPE string,
- END OF t_sheet .
- TYPES:
- BEGIN OF t_workbookpr,
- codename TYPE string,
- defaultthemeversion TYPE string,
- END OF t_workbookpr .
- TYPES:
- BEGIN OF t_sheetpr,
- codename TYPE string,
- END OF t_sheetpr .
- TYPES:
- BEGIN OF t_range,
- name TYPE string,
- hidden TYPE string, "inserted with issue #235 because Autofilters didn't passthrough
- localsheetid TYPE string, " issue #163
- END OF t_range .
- TYPES:
- t_fills TYPE STANDARD TABLE OF REF TO zcl_excel_style_fill WITH NON-UNIQUE DEFAULT KEY .
- TYPES:
- t_borders TYPE STANDARD TABLE OF REF TO zcl_excel_style_borders WITH NON-UNIQUE DEFAULT KEY .
- TYPES:
- t_fonts TYPE STANDARD TABLE OF REF TO zcl_excel_style_font WITH NON-UNIQUE DEFAULT KEY .
- TYPES:
- t_style_refs TYPE STANDARD TABLE OF REF TO zcl_excel_style WITH NON-UNIQUE DEFAULT KEY .
- TYPES:
- BEGIN OF t_color,
- indexed TYPE string,
- rgb TYPE string,
- theme TYPE string,
- tint TYPE string,
- END OF t_color .
- TYPES:
- BEGIN OF t_rel_drawing,
- id TYPE string,
- content TYPE xstring,
- file_ext TYPE string,
- content_xml TYPE REF TO if_ixml_document,
- END OF t_rel_drawing .
- TYPES:
- t_rel_drawings TYPE STANDARD TABLE OF t_rel_drawing WITH NON-UNIQUE DEFAULT KEY .
- TYPES:
- BEGIN OF gts_external_hyperlink,
- id TYPE string,
- target TYPE string,
- END OF gts_external_hyperlink .
- TYPES:
- gtt_external_hyperlinks TYPE HASHED TABLE OF gts_external_hyperlink WITH UNIQUE KEY id .
- TYPES:
- BEGIN OF ty_ref_formulae,
- sheet TYPE REF TO zcl_excel_worksheet,
- row TYPE i,
- column TYPE i,
- si TYPE i,
- ref TYPE string,
- formula TYPE string,
- END OF ty_ref_formulae .
- TYPES:
- tyt_ref_formulae TYPE HASHED TABLE OF ty_ref_formulae WITH UNIQUE KEY sheet row column .
- TYPES:
- BEGIN OF t_shared_string,
- value TYPE string,
- rtf TYPE zexcel_t_rtf,
- END OF t_shared_string .
- TYPES:
- t_shared_strings TYPE STANDARD TABLE OF t_shared_string WITH DEFAULT KEY .
- TYPES:
- BEGIN OF t_table,
- id TYPE string,
- target TYPE string,
- END OF t_table .
- TYPES:
- t_tables TYPE HASHED TABLE OF t_table WITH UNIQUE KEY id .
+ BEGIN OF t_relationship,
+ id TYPE string,
+ type TYPE string,
+ target TYPE string,
+ targetmode TYPE string,
+ worksheet TYPE REF TO zcl_excel_worksheet,
+ sheetid TYPE string, "ins #235 - repeat rows/cols - needed to identify correct sheet
+ localsheetid TYPE string,
+ END OF t_relationship .
+ TYPES:
+ BEGIN OF t_fileversion,
+ appname TYPE string,
+ lastedited TYPE string,
+ lowestedited TYPE string,
+ rupbuild TYPE string,
+ codename TYPE string,
+ END OF t_fileversion .
+ TYPES:
+ BEGIN OF t_sheet,
+ name TYPE string,
+ sheetid TYPE string,
+ id TYPE string,
+ state TYPE string,
+ END OF t_sheet .
+ TYPES:
+ BEGIN OF t_workbookpr,
+ codename TYPE string,
+ defaultthemeversion TYPE string,
+ END OF t_workbookpr .
+ TYPES:
+ BEGIN OF t_sheetpr,
+ codename TYPE string,
+ END OF t_sheetpr .
+ TYPES:
+ BEGIN OF t_range,
+ name TYPE string,
+ hidden TYPE string, "inserted with issue #235 because Autofilters didn't passthrough
+ localsheetid TYPE string, " issue #163
+ END OF t_range .
+ TYPES:
+ t_fills TYPE STANDARD TABLE OF REF TO zcl_excel_style_fill WITH NON-UNIQUE DEFAULT KEY .
+ TYPES:
+ t_borders TYPE STANDARD TABLE OF REF TO zcl_excel_style_borders WITH NON-UNIQUE DEFAULT KEY .
+ TYPES:
+ t_fonts TYPE STANDARD TABLE OF REF TO zcl_excel_style_font WITH NON-UNIQUE DEFAULT KEY .
+ TYPES:
+ t_style_refs TYPE STANDARD TABLE OF REF TO zcl_excel_style WITH NON-UNIQUE DEFAULT KEY .
+ TYPES:
+ BEGIN OF t_color,
+ indexed TYPE string,
+ rgb TYPE string,
+ theme TYPE string,
+ tint TYPE string,
+ END OF t_color .
+ TYPES:
+ BEGIN OF t_rel_drawing,
+ id TYPE string,
+ content TYPE xstring,
+ file_ext TYPE string,
+ content_xml TYPE REF TO if_ixml_document,
+ END OF t_rel_drawing .
+ TYPES:
+ t_rel_drawings TYPE STANDARD TABLE OF t_rel_drawing WITH NON-UNIQUE DEFAULT KEY .
+ TYPES:
+ BEGIN OF gts_external_hyperlink,
+ id TYPE string,
+ target TYPE string,
+ END OF gts_external_hyperlink .
+ TYPES:
+ gtt_external_hyperlinks TYPE HASHED TABLE OF gts_external_hyperlink WITH UNIQUE KEY id .
+ TYPES:
+ BEGIN OF ty_ref_formulae,
+ sheet TYPE REF TO zcl_excel_worksheet,
+ row TYPE i,
+ column TYPE i,
+ si TYPE i,
+ ref TYPE string,
+ formula TYPE string,
+ END OF ty_ref_formulae .
+ TYPES:
+ tyt_ref_formulae TYPE HASHED TABLE OF ty_ref_formulae WITH UNIQUE KEY sheet row column .
+ TYPES:
+ BEGIN OF t_shared_string,
+ value TYPE string,
+ rtf TYPE zexcel_t_rtf,
+ END OF t_shared_string .
+ TYPES:
+ t_shared_strings TYPE STANDARD TABLE OF t_shared_string WITH DEFAULT KEY .
+ TYPES:
+ BEGIN OF t_table,
+ id TYPE string,
+ target TYPE string,
+ END OF t_table .
+ TYPES:
+ t_tables TYPE HASHED TABLE OF t_table WITH UNIQUE KEY id .
- DATA shared_strings TYPE t_shared_strings .
- DATA styles TYPE t_style_refs .
- DATA mt_ref_formulae TYPE tyt_ref_formulae .
- DATA mt_dxf_styles TYPE zexcel_t_styles_cond_mapping .
+ DATA shared_strings TYPE t_shared_strings .
+ DATA styles TYPE t_style_refs .
+ DATA mt_ref_formulae TYPE tyt_ref_formulae .
+ DATA mt_dxf_styles TYPE zexcel_t_styles_cond_mapping .
+ CONSTANTS:
+ BEGIN OF namespace,
+ x14ac TYPE string VALUE 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac',
+ vba_project TYPE string VALUE 'http://schemas.microsoft.com/office/2006/relationships/vbaProject', "#EC NEEDED for future incorporation of XLSM-reader
+ c TYPE string VALUE 'http://schemas.openxmlformats.org/drawingml/2006/chart',
+ a TYPE string VALUE 'http://schemas.openxmlformats.org/drawingml/2006/main',
+ xdr TYPE string VALUE 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing',
+ mc TYPE string VALUE 'http://schemas.openxmlformats.org/markup-compatibility/2006',
+ r TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',
+ chart TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart',
+ drawing TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing',
+ hyperlink TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink',
+ image TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',
+ office_document TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument',
+ printer_settings TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings',
+ shared_strings TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings',
+ styles TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles',
+ theme TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme',
+ worksheet TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet',
+ relationships TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships',
+ core_properties TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties',
+ main TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',
+ END OF namespace .
- METHODS fill_row_outlines
- IMPORTING
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- RAISING
- zcx_excel .
- METHODS get_from_zip_archive
- IMPORTING
- !i_filename TYPE string
- RETURNING
- VALUE(r_content) TYPE xstring
- RAISING
- zcx_excel .
- METHODS get_ixml_from_zip_archive
- IMPORTING
- !i_filename TYPE string
- !is_normalizing TYPE abap_bool DEFAULT 'X'
- RETURNING
- VALUE(r_ixml) TYPE REF TO if_ixml_document
- RAISING
- zcx_excel .
- METHODS load_drawing_anchor
- IMPORTING
- !io_anchor_element TYPE REF TO if_ixml_element
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- !it_related_drawings TYPE t_rel_drawings .
- METHODS load_shared_strings
- IMPORTING
- !ip_path TYPE string
- RAISING
- zcx_excel .
- METHODS load_styles
- IMPORTING
- !ip_path TYPE string
- !ip_excel TYPE REF TO zcl_excel
- RAISING
- zcx_excel .
- METHODS load_dxf_styles
- IMPORTING
- !iv_path TYPE string
- !io_excel TYPE REF TO zcl_excel
- RAISING
- zcx_excel .
- METHODS load_style_borders
- IMPORTING
- !ip_xml TYPE REF TO if_ixml_document
- RETURNING
- VALUE(ep_borders) TYPE t_borders .
- METHODS load_style_fills
- IMPORTING
- !ip_xml TYPE REF TO if_ixml_document
- RETURNING
- VALUE(ep_fills) TYPE t_fills .
- METHODS load_style_font
- IMPORTING
- !io_xml_element TYPE REF TO if_ixml_element
- RETURNING
- VALUE(ro_font) TYPE REF TO zcl_excel_style_font .
- METHODS load_style_fonts
- IMPORTING
- !ip_xml TYPE REF TO if_ixml_document
- RETURNING
- VALUE(ep_fonts) TYPE t_fonts .
- METHODS load_style_num_formats
- IMPORTING
- !ip_xml TYPE REF TO if_ixml_document
- RETURNING
- VALUE(ep_num_formats) TYPE zcl_excel_style_number_format=>t_num_formats .
- METHODS load_workbook
- IMPORTING
- !iv_workbook_full_filename TYPE string
- !io_excel TYPE REF TO zcl_excel
- RAISING
- zcx_excel .
- METHODS load_worksheet
- IMPORTING
- !ip_path TYPE string
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- RAISING
- zcx_excel .
- METHODS load_worksheet_cond_format
- IMPORTING
- !io_ixml_worksheet TYPE REF TO if_ixml_document
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- RAISING
- zcx_excel .
- METHODS load_worksheet_cond_format_aa
- IMPORTING
- !io_ixml_rule TYPE REF TO if_ixml_element
- !io_style_cond TYPE REF TO zcl_excel_style_cond.
- METHODS load_worksheet_cond_format_ci
- IMPORTING
- !io_ixml_rule TYPE REF TO if_ixml_element
- !io_style_cond TYPE REF TO zcl_excel_style_cond .
- METHODS load_worksheet_cond_format_cs
- IMPORTING
- !io_ixml_rule TYPE REF TO if_ixml_element
- !io_style_cond TYPE REF TO zcl_excel_style_cond .
- METHODS load_worksheet_cond_format_ex
- IMPORTING
- !io_ixml_rule TYPE REF TO if_ixml_element
- !io_style_cond TYPE REF TO zcl_excel_style_cond .
- METHODS load_worksheet_cond_format_is
- IMPORTING
- !io_ixml_rule TYPE REF TO if_ixml_element
- !io_style_cond TYPE REF TO zcl_excel_style_cond .
- METHODS load_worksheet_cond_format_db
- IMPORTING
- !io_ixml_rule TYPE REF TO if_ixml_element
- !io_style_cond TYPE REF TO zcl_excel_style_cond .
- METHODS load_worksheet_cond_format_t10
- IMPORTING
- !io_ixml_rule TYPE REF TO if_ixml_element
- !io_style_cond TYPE REF TO zcl_excel_style_cond .
- METHODS load_worksheet_drawing
- IMPORTING
- !ip_path TYPE string
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- RAISING
- zcx_excel .
- METHODS load_comments
- IMPORTING
- ip_path TYPE string
- io_worksheet TYPE REF TO zcl_excel_worksheet
- RAISING
- zcx_excel .
- METHODS load_worksheet_hyperlinks
- IMPORTING
- !io_ixml_worksheet TYPE REF TO if_ixml_document
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- !it_external_hyperlinks TYPE gtt_external_hyperlinks
- RAISING
- zcx_excel .
- METHODS load_worksheet_ignored_errors
- IMPORTING
- !io_ixml_worksheet TYPE REF TO if_ixml_document
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- RAISING
- zcx_excel .
- METHODS load_worksheet_pagebreaks
- IMPORTING
- !io_ixml_worksheet TYPE REF TO if_ixml_document
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- RAISING
- zcx_excel .
- METHODS load_worksheet_autofilter
- IMPORTING
- io_ixml_worksheet TYPE REF TO if_ixml_document
- io_worksheet TYPE REF TO zcl_excel_worksheet
- RAISING
- zcx_excel.
- METHODS load_worksheet_pagemargins
- IMPORTING
- !io_ixml_worksheet TYPE REF TO if_ixml_document
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- RAISING
- zcx_excel .
- "! Load worksheet tables
- METHODS load_worksheet_tables
- IMPORTING
- io_ixml_worksheet TYPE REF TO if_ixml_document
- io_worksheet TYPE REF TO zcl_excel_worksheet
- iv_dirname TYPE string
- it_tables TYPE t_tables
- RAISING
- zcx_excel .
- CLASS-METHODS resolve_path
- IMPORTING
- !ip_path TYPE string
- RETURNING
- VALUE(rp_result) TYPE string .
- METHODS resolve_referenced_formulae .
- METHODS unescape_string_value
- IMPORTING
- i_value TYPE string
- RETURNING
- VALUE(result) TYPE string.
- METHODS get_dxf_style_guid
- IMPORTING
- !io_ixml_dxf TYPE REF TO if_ixml_element
- !io_excel TYPE REF TO zcl_excel
- RETURNING
- VALUE(rv_style_guid) TYPE zexcel_cell_style .
- METHODS load_theme
- IMPORTING
- iv_path TYPE string
- !ip_excel TYPE REF TO zcl_excel
- RAISING
- zcx_excel.
- METHODS provided_string_is_escaped
- IMPORTING
- !value TYPE string
- RETURNING
- VALUE(is_escaped) TYPE abap_bool.
+ METHODS fill_row_outlines
+ IMPORTING
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RAISING
+ zcx_excel .
+ METHODS get_from_zip_archive
+ IMPORTING
+ !i_filename TYPE string
+ RETURNING
+ VALUE(r_content) TYPE xstring
+ RAISING
+ zcx_excel .
+ METHODS get_ixml_from_zip_archive
+ IMPORTING
+ !i_filename TYPE string
+ !is_normalizing TYPE abap_bool DEFAULT 'X'
+ RETURNING
+ VALUE(r_ixml) TYPE REF TO if_ixml_document
+ RAISING
+ zcx_excel .
+ METHODS load_drawing_anchor
+ IMPORTING
+ !io_anchor_element TYPE REF TO if_ixml_element
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ !it_related_drawings TYPE t_rel_drawings .
+ METHODS load_shared_strings
+ IMPORTING
+ !ip_path TYPE string
+ RAISING
+ zcx_excel .
+ METHODS load_styles
+ IMPORTING
+ !ip_path TYPE string
+ !ip_excel TYPE REF TO zcl_excel
+ RAISING
+ zcx_excel .
+ METHODS load_dxf_styles
+ IMPORTING
+ !iv_path TYPE string
+ !io_excel TYPE REF TO zcl_excel
+ RAISING
+ zcx_excel .
+ METHODS load_style_borders
+ IMPORTING
+ !ip_xml TYPE REF TO if_ixml_document
+ RETURNING
+ VALUE(ep_borders) TYPE t_borders .
+ METHODS load_style_fills
+ IMPORTING
+ !ip_xml TYPE REF TO if_ixml_document
+ RETURNING
+ VALUE(ep_fills) TYPE t_fills .
+ METHODS load_style_font
+ IMPORTING
+ !io_xml_element TYPE REF TO if_ixml_element
+ RETURNING
+ VALUE(ro_font) TYPE REF TO zcl_excel_style_font .
+ METHODS load_style_fonts
+ IMPORTING
+ !ip_xml TYPE REF TO if_ixml_document
+ RETURNING
+ VALUE(ep_fonts) TYPE t_fonts .
+ METHODS load_style_num_formats
+ IMPORTING
+ !ip_xml TYPE REF TO if_ixml_document
+ RETURNING
+ VALUE(ep_num_formats) TYPE zcl_excel_style_number_format=>t_num_formats .
+ METHODS load_workbook
+ IMPORTING
+ !iv_workbook_full_filename TYPE string
+ !io_excel TYPE REF TO zcl_excel
+ RAISING
+ zcx_excel .
+ METHODS load_worksheet
+ IMPORTING
+ !ip_path TYPE string
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RAISING
+ zcx_excel .
+ METHODS load_worksheet_cond_format
+ IMPORTING
+ !io_ixml_worksheet TYPE REF TO if_ixml_document
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RAISING
+ zcx_excel .
+ METHODS load_worksheet_cond_format_aa
+ IMPORTING
+ !io_ixml_rule TYPE REF TO if_ixml_element
+ !io_style_cond TYPE REF TO zcl_excel_style_cond .
+ METHODS load_worksheet_cond_format_ci
+ IMPORTING
+ !io_ixml_rule TYPE REF TO if_ixml_element
+ !io_style_cond TYPE REF TO zcl_excel_style_cond .
+ METHODS load_worksheet_cond_format_cs
+ IMPORTING
+ !io_ixml_rule TYPE REF TO if_ixml_element
+ !io_style_cond TYPE REF TO zcl_excel_style_cond .
+ METHODS load_worksheet_cond_format_ex
+ IMPORTING
+ !io_ixml_rule TYPE REF TO if_ixml_element
+ !io_style_cond TYPE REF TO zcl_excel_style_cond .
+ METHODS load_worksheet_cond_format_is
+ IMPORTING
+ !io_ixml_rule TYPE REF TO if_ixml_element
+ !io_style_cond TYPE REF TO zcl_excel_style_cond .
+ METHODS load_worksheet_cond_format_db
+ IMPORTING
+ !io_ixml_rule TYPE REF TO if_ixml_element
+ !io_style_cond TYPE REF TO zcl_excel_style_cond .
+ METHODS load_worksheet_cond_format_t10
+ IMPORTING
+ !io_ixml_rule TYPE REF TO if_ixml_element
+ !io_style_cond TYPE REF TO zcl_excel_style_cond .
+ METHODS load_worksheet_drawing
+ IMPORTING
+ !ip_path TYPE string
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RAISING
+ zcx_excel .
+ METHODS load_comments
+ IMPORTING
+ !ip_path TYPE string
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RAISING
+ zcx_excel .
+ METHODS load_worksheet_hyperlinks
+ IMPORTING
+ !io_ixml_worksheet TYPE REF TO if_ixml_document
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ !it_external_hyperlinks TYPE gtt_external_hyperlinks
+ RAISING
+ zcx_excel .
+ METHODS load_worksheet_ignored_errors
+ IMPORTING
+ !io_ixml_worksheet TYPE REF TO if_ixml_document
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RAISING
+ zcx_excel .
+ METHODS load_worksheet_pagebreaks
+ IMPORTING
+ !io_ixml_worksheet TYPE REF TO if_ixml_document
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RAISING
+ zcx_excel .
+ METHODS load_worksheet_autofilter
+ IMPORTING
+ !io_ixml_worksheet TYPE REF TO if_ixml_document
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RAISING
+ zcx_excel .
+ METHODS load_worksheet_pagemargins
+ IMPORTING
+ !io_ixml_worksheet TYPE REF TO if_ixml_document
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RAISING
+ zcx_excel .
+ "! Load worksheet tables
+ METHODS load_worksheet_tables
+ IMPORTING
+ !io_ixml_worksheet TYPE REF TO if_ixml_document
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ !iv_dirname TYPE string
+ !it_tables TYPE t_tables
+ RAISING
+ zcx_excel .
+ CLASS-METHODS resolve_path
+ IMPORTING
+ !ip_path TYPE string
+ RETURNING
+ VALUE(rp_result) TYPE string .
+ METHODS resolve_referenced_formulae .
+ METHODS unescape_string_value
+ IMPORTING
+ !i_value TYPE string
+ RETURNING
+ VALUE(result) TYPE string .
+ METHODS get_dxf_style_guid
+ IMPORTING
+ !io_ixml_dxf TYPE REF TO if_ixml_element
+ !io_excel TYPE REF TO zcl_excel
+ RETURNING
+ VALUE(rv_style_guid) TYPE zexcel_cell_style .
+ METHODS load_theme
+ IMPORTING
+ !iv_path TYPE string
+ !ip_excel TYPE REF TO zcl_excel
+ RAISING
+ zcx_excel .
+ METHODS provided_string_is_escaped
+ IMPORTING
+ !value TYPE string
+ RETURNING
+ VALUE(is_escaped) TYPE abap_bool .
+ METHODS load_comment_boxes
+ IMPORTING
+ !ip_path TYPE string
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RAISING
+ zcx_excel .
+PRIVATE SECTION.
- CONSTANTS: BEGIN OF namespace,
- x14ac TYPE string VALUE 'http://schemas.microsoft.com/office/spreadsheetml/2009/9/ac',
- vba_project TYPE string VALUE 'http://schemas.microsoft.com/office/2006/relationships/vbaProject', "#EC NEEDED for future incorporation of XLSM-reader
- c TYPE string VALUE 'http://schemas.openxmlformats.org/drawingml/2006/chart',
- a TYPE string VALUE 'http://schemas.openxmlformats.org/drawingml/2006/main',
- xdr TYPE string VALUE 'http://schemas.openxmlformats.org/drawingml/2006/spreadsheetDrawing',
- mc TYPE string VALUE 'http://schemas.openxmlformats.org/markup-compatibility/2006',
- r TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships',
- chart TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/chart',
- drawing TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/drawing',
- hyperlink TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink',
- image TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/image',
- office_document TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/officeDocument',
- printer_settings TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings',
- shared_strings TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/sharedStrings',
- styles TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/styles',
- theme TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/theme',
- worksheet TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/worksheet',
- relationships TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships',
- core_properties TYPE string VALUE 'http://schemas.openxmlformats.org/package/2006/relationships/metadata/core-properties',
- main TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',
- END OF namespace.
+ DATA zip TYPE REF TO lcl_zip_archive .
+ DATA gid TYPE i .
- PRIVATE SECTION.
-
- DATA zip TYPE REF TO lcl_zip_archive .
- DATA: gid TYPE i.
-
- METHODS create_zip_archive
- IMPORTING
- !i_xlsx_binary TYPE xstring
- !i_use_alternate_zip TYPE seoclsname OPTIONAL
- RETURNING
- VALUE(e_zip) TYPE REF TO lcl_zip_archive
- RAISING
- zcx_excel .
- METHODS read_from_applserver
- IMPORTING
- !i_filename TYPE csequence
- RETURNING
- VALUE(r_excel_data) TYPE xstring
- RAISING
- zcx_excel.
- METHODS read_from_local_file
- IMPORTING
- !i_filename TYPE csequence
- RETURNING
- VALUE(r_excel_data) TYPE xstring
- RAISING
- zcx_excel .
+ METHODS load_single_comment
+ IMPORTING
+ !io_node_comment TYPE REF TO if_ixml_element
+ RETURNING
+ VALUE(eo_comment) TYPE REF TO zcl_excel_comment .
+ METHODS create_zip_archive
+ IMPORTING
+ !i_xlsx_binary TYPE xstring
+ !i_use_alternate_zip TYPE seoclsname OPTIONAL
+ RETURNING
+ VALUE(e_zip) TYPE REF TO lcl_zip_archive
+ RAISING
+ zcx_excel .
+ METHODS read_from_applserver
+ IMPORTING
+ !i_filename TYPE csequence
+ RETURNING
+ VALUE(r_excel_data) TYPE xstring
+ RAISING
+ zcx_excel .
+ METHODS read_from_local_file
+ IMPORTING
+ !i_filename TYPE csequence
+ RETURNING
+ VALUE(r_excel_data) TYPE xstring
+ RAISING
+ zcx_excel .
ENDCLASS.
-CLASS zcl_excel_reader_2007 IMPLEMENTATION.
+CLASS ZCL_EXCEL_READER_2007 IMPLEMENTATION.
METHOD create_zip_archive.
@@ -2267,7 +2277,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
workbookviewid TYPE string,
showrowcolheaders TYPE string,
righttoleft TYPE string,
- topleftcell TYPE string,
+ topleftcell TYPE string,
END OF lty_sheetview.
TYPES: BEGIN OF lty_mergecell,
@@ -2338,13 +2348,14 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
- 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_hyperlink TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink',
- lc_rel_comments TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments',
- lc_rel_printer TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings'.
- CONSTANTS lc_rel_table TYPE string VALUE 'http://schemas.openxmlformats.org/officeDocument/2006/relationships/table'.
+ 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_vmldrawing TYPE string VALUE `http://schemas.openxmlformats.org/officeDocument/2006/relationships/vmlDrawing`,
+ lc_rel_hyperlink TYPE string VALUE `http://schemas.openxmlformats.org/officeDocument/2006/relationships/hyperlink`,
+ lc_rel_comments TYPE string VALUE `http://schemas.openxmlformats.org/officeDocument/2006/relationships/comments`,
+ lc_rel_printer TYPE string VALUE `http://schemas.openxmlformats.org/officeDocument/2006/relationships/printerSettings`.
+ CONSTANTS lc_rel_table TYPE string VALUE `http://schemas.openxmlformats.org/officeDocument/2006/relationships/table`.
DATA: lo_ixml_worksheet TYPE REF TO if_ixml_document,
lo_ixml_cells TYPE REF TO if_ixml_node_collection,
@@ -2493,10 +2504,19 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
* in the "load_worksheet_drawing" shouldn't lead to an abortion of the reading
TRY.
me->load_worksheet_drawing( ip_path = lv_path
- io_worksheet = io_worksheet ).
+ io_worksheet = io_worksheet ).
CATCH zcx_excel. "--> then ignore it
ENDTRY.
+ WHEN lc_rel_vmldrawing.
+* This file contains the dimensions of the boxes in which comments are displayed
+ TRY.
+ me->load_comment_boxes( ip_path = lv_path
+ io_worksheet = io_worksheet ).
+ CATCH zcx_excel. "--> then ignore it (boxes will get default values)
+ ENDTRY.
+
+
WHEN lc_rel_printer.
" Read Printer settings
@@ -3669,48 +3689,31 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
ENDMETHOD.
+
METHOD load_comments.
- DATA: lo_comments_xml TYPE REF TO if_ixml_document,
- lo_node_comment TYPE REF TO if_ixml_element,
- lo_node_comment_child TYPE REF TO if_ixml_element,
- lo_node_r_child_t TYPE REF TO if_ixml_element,
- lo_attr TYPE REF TO if_ixml_attribute,
- lo_comment TYPE REF TO zcl_excel_comment,
- lv_comment_text TYPE string,
- lv_node_value TYPE string,
- lv_attr_value TYPE string.
- lo_comments_xml = me->get_ixml_from_zip_archive( ip_path ).
+ DATA:
+ lo_comments_xml TYPE REF TO if_ixml_document,
+ lo_node_comment TYPE REF TO if_ixml_element,
+ lo_comment TYPE REF TO zcl_excel_comment.
- lo_node_comment ?= lo_comments_xml->find_from_name_ns( name = 'comment' uri = namespace-main ).
+ lo_comments_xml = get_ixml_from_zip_archive( i_filename = ip_path is_normalizing = abap_false ).
+ lo_node_comment = lo_comments_xml->find_from_name_ns( name = 'comment' uri = namespace-main ).
WHILE lo_node_comment IS BOUND.
- CLEAR lv_comment_text.
- lo_attr = lo_node_comment->get_attribute_node_ns( name = 'ref' ).
- lv_attr_value = lo_attr->get_value( ).
-
- lo_node_comment_child ?= lo_node_comment->get_first_child( ).
- WHILE lo_node_comment_child IS BOUND.
- " There will be rPr nodes here, but we do not support them
- " in comments right now; see 'load_shared_strings' for handling.
- " Extract the ... part of each -tag
- lo_node_r_child_t ?= lo_node_comment_child->find_from_name_ns( name = 't' uri = namespace-main ).
- IF lo_node_r_child_t IS BOUND.
- lv_node_value = lo_node_r_child_t->get_value( ).
- CONCATENATE lv_comment_text lv_node_value INTO lv_comment_text RESPECTING BLANKS.
- ENDIF.
- lo_node_comment_child ?= lo_node_comment_child->get_next( ).
- ENDWHILE.
-
- CREATE OBJECT lo_comment.
- lo_comment->set_text( ip_ref = lv_attr_value ip_text = lv_comment_text ).
+ lo_comment = load_single_comment( lo_node_comment ).
io_worksheet->add_comment( lo_comment ).
lo_node_comment ?= lo_node_comment->get_next( ).
ENDWHILE.
+* If the comment boxes had been loaded before the comments themselves,
+* the box dimensions have to be propagated now into the individual comments
+ io_worksheet->set_comment_boxes( ).
+
ENDMETHOD.
+
METHOD load_worksheet_hyperlinks.
DATA: lo_ixml_hyperlinks TYPE REF TO if_ixml_node_collection,
@@ -4459,6 +4462,8 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
iv_zcl_excel_classname = iv_zcl_excel_classname ).
ENDMETHOD.
+
+
METHOD provided_string_is_escaped.
"Check if passed value is really an escaped Character
@@ -4474,4 +4479,147 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
ENDIF.
ENDMETHOD.
+
+ METHOD load_comment_boxes.
+
+ CONSTANTS:
+ BEGIN OF lc_namespace,
+ vml TYPE string VALUE `urn:schemas-microsoft-com:vml`,
+ excel TYPE string VALUE `urn:schemas-microsoft-com:office:excel`,
+ END OF lc_namespace.
+
+ DATA:
+ lo_anchor TYPE REF TO if_ixml_element,
+ lo_shape TYPE REF TO if_ixml_element,
+ lo_shapes TYPE REF TO if_ixml_node_collection,
+ lo_vml TYPE REF TO if_ixml_document,
+ lv_vml TYPE string,
+ ls_box TYPE zcl_excel_comment=>ty_box,
+ lt_boxes TYPE zcl_excel_comments=>ty_boxes,
+ lt_dims TYPE stringtab,
+ lv_dims TYPE string,
+ lv_dim TYPE string,
+ lv_shape_index TYPE i,
+ lv_total_shapes TYPE i,
+ lo_xml TYPE REF TO if_ixml,
+ lo_stream_factory TYPE REF TO if_ixml_stream_factory,
+ lo_stream type ref to if_ixml_ostream.
+
+ FIELD-SYMBOLS:
+ TYPE i.
+
+ lo_vml = get_ixml_from_zip_archive( ip_path ).
+
+ lo_shapes = lo_vml->get_elements_by_tag_name_ns(
+ name = `shape`
+ uri = lc_namespace-vml
+ ).
+
+ lv_total_shapes = lo_shapes->get_length( ).
+ WHILE lv_shape_index < lv_total_shapes.
+ lo_shape ?= lo_shapes->get_item( lv_shape_index ).
+ CLEAR ls_box.
+ lo_anchor ?= lo_shape->find_from_name_ns( name = `Anchor` uri = lc_namespace-excel ).
+ IF lo_anchor IS BOUND.
+ lv_dims = lo_anchor->get_value( ).
+ SPLIT lv_dims AT `,` INTO TABLE lt_dims.
+ LOOP AT lt_dims INTO lv_dim.
+ ASSIGN COMPONENT sy-tabix OF STRUCTURE ls_box TO .
+ CHECK sy-subrc EQ 0.
+ TRY.
+ = lv_dim.
+ CATCH cx_sy_conversion_error.
+ ENDTRY.
+ ENDLOOP.
+ APPEND ls_box TO lt_boxes.
+ ENDIF.
+
+ ADD 1 TO lv_shape_index.
+ ENDWHILE.
+
+* Serialize lo_vml into a string lv_vml and pass it to the comments object
+ lo_xml ?= cl_ixml=>create( ).
+ lo_stream_factory = lo_xml->create_stream_factory( ).
+ lo_stream = lo_stream_factory->create_ostream_cstring( lv_vml ).
+ lo_vml->render( lo_stream ).
+
+ IF lt_boxes IS NOT INITIAL.
+ io_worksheet->set_comment_boxes( it_boxes = lt_boxes iv_full_vml = lv_vml ).
+ ENDIF.
+
+
+ ENDMETHOD.
+
+
+ METHOD load_single_comment.
+
+* Example
+*
+*
+*
+*
+*
+*
+*
+*
+*
+*
+*
+* Info:
+*
+*
+*
+*
+*
+*
+*
+*
+* Demo Text
+*
+* ...
+
+
+ DATA:
+ lo_attr TYPE REF TO if_ixml_attribute,
+ lv_comment_text TYPE string,
+ lv_ref TYPE string.
+
+ CREATE OBJECT eo_comment.
+
+ lo_attr = io_node_comment->get_attribute_node_ns( name = 'ref' ).
+ lv_ref = lo_attr->get_value( ).
+
+ DATA:
+ lo_rs TYPE REF TO if_ixml_node_collection,
+ lo_r TYPE REF TO if_ixml_element,
+ lo_t TYPE REF TO if_ixml_element,
+ lo_rpr TYPE REF TO if_ixml_element,
+ lo_font TYPE REF TO zcl_excel_style_font,
+ ls_rtf TYPE zcl_excel_comment=>ty_rtf_fragment,
+ lt_rtf type zcl_excel_comment=>ty_rtf_fragments,
+ lv_r_index TYPE i,
+ lv_total_r TYPE i.
+
+ lo_rs = io_node_comment->get_elements_by_tag_name_ns( name = `r` uri = namespace-main ).
+ lv_total_r = lo_rs->get_length( ).
+ WHILE lv_r_index < lv_total_r.
+ CLEAR:
+ ls_rtf.
+ lo_r ?= lo_rs->get_item( lv_r_index ).
+ lo_rpr ?= lo_r->find_from_name_ns( name = `rPr` uri = namespace-main ).
+ IF lo_rpr IS BOUND.
+ lo_font = load_style_font( lo_rpr ).
+ ls_rtf-rtf = lo_font->get_structure( ).
+ ENDIF.
+ lo_t ?= lo_r->find_from_name_ns( name = `t` uri = namespace-main ).
+ IF lo_t IS BOUND.
+ ls_rtf-text = lo_t->get_value( ).
+ ENDIF.
+ append ls_rtf to lt_rtf.
+ add 1 to lv_r_index.
+ ENDWHILE.
+
+ eo_comment->set_text_rtf( ip_ref = lv_ref it_rtf = lt_rtf ).
+
+ ENDMETHOD.
ENDCLASS.
diff --git a/src/zcl_excel_reader_2007.clas.xml b/src/zcl_excel_reader_2007.clas.xml
index e03ffa7..41abc63 100644
--- a/src/zcl_excel_reader_2007.clas.xml
+++ b/src/zcl_excel_reader_2007.clas.xml
@@ -48,11 +48,6 @@
E
Fills structure fields based on XML node attributes
-
- FILL_STRUCT_FROM_ATTRIBUTES
- I
- Fills structure fields based on XML node attributes
-
GET_DXF_STYLE_GUID
E
@@ -63,21 +58,11 @@
E
Read file from ZIP Archive
-
- GET_FROM_ZIP_ARCHIVE
- I
- Read file from ZIP Archive
-
GET_IXML_FROM_ZIP_ARCHIVE
E
Read file from ZIP Archive and convert to ixml document
-
- GET_IXML_FROM_ZIP_ARCHIVE
- I
- Read file from ZIP Archive
-
GTS_EXTERNAL_HYPERLINK
E
@@ -89,14 +74,14 @@
Table with external hyperlinks
- LOAD_DRAWING_ANCHOR
+ LOAD_COMMENT_BOXES
E
- Loads drawing anchor
+ Loads worksheet drawings
LOAD_DRAWING_ANCHOR
- I
- Loads worksheet
+ E
+ Loads drawing anchor
LOAD_DXF_STYLES
@@ -108,61 +93,31 @@
E
Loads shared strings table
-
- LOAD_SHARED_STRINGS
- I
- Loads shared strings table
-
LOAD_STYLES
E
Loads styles
-
- LOAD_STYLES
- I
- Loads styles
-
LOAD_STYLE_BORDERS
E
Loads 'borders' part of styles
-
- LOAD_STYLE_BORDERS
- I
- Loads 'borders' part of styles
-
LOAD_STYLE_FILLS
E
Loads 'fills' part of styles
-
- LOAD_STYLE_FILLS
- I
- Loads 'fills' part of styles
-
LOAD_STYLE_FONTS
E
Loads 'fonts' part of styles
-
- LOAD_STYLE_FONTS
- I
- Loads 'fonts' part of styles
-
LOAD_STYLE_NUM_FORMATS
E
Loads 'number format' part of styles
-
- LOAD_STYLE_NUM_FORMATS
- I
- Loads 'number format' part of styles
-
LOAD_THEME
E
@@ -173,21 +128,11 @@
E
Loads workbook
-
- LOAD_WORKBOOK
- I
- Loads workbook
-
LOAD_WORKSHEET
E
Loads worksheet
-
- LOAD_WORKSHEET
- I
- Loads worksheet
-
LOAD_WORKSHEET_COND_FORMAT
E
@@ -233,11 +178,6 @@
E
Loads worksheet drawings
-
- LOAD_WORKSHEET_DRAWING
- I
- Loads worksheet drawings
-
LOAD_WORKSHEET_HYPERLINKS
E
@@ -268,11 +208,6 @@
E
Referenced formulae before resolving
-
- MT_REF_FORMULAE
- I
- Referenced formulae before resolving
-
READ_FROM_APPLSERVER
E
@@ -288,42 +223,36 @@
E
Return path after ../ values are removed
-
- RESOLVE_PATH
- I
- Return path after ../ values are removed
-
RESOLVE_REFERENCED_FORMULAE
E
Resolve referenced formulae
-
- RESOLVE_REFERENCED_FORMULAE
- I
- Resolve referenced formulae
-
SHARED_STRINGS
E
Table with Strings
-
- SHARED_STRINGS
- I
- Table with Strings
-
ZIP
E
Zip Utility
-
- ZIP
- I
- Zip Utility
-
+
+
+ LOAD_SINGLE_COMMENT
+ EO_COMMENT
+ E
+ Comment
+
+
+ LOAD_SINGLE_COMMENT
+ IO_NODE_COMMENT
+ E
+ Element of an XML Document
+
+
diff --git a/src/zcl_excel_style_number_format.clas.xml b/src/zcl_excel_style_number_format.clas.xml
index 8018385..5e8c6bc 100644
--- a/src/zcl_excel_style_number_format.clas.xml
+++ b/src/zcl_excel_style_number_format.clas.xml
@@ -22,21 +22,11 @@
E
CONSTRUCTOR
-
- CONSTRUCTOR
- I
- CONSTRUCTOR
-
C_FORMAT_CURRENCY_EUR_SIMPLE
E
Number format
-
- C_FORMAT_CURRENCY_EUR_SIMPLE
- I
- Number format
-
C_FORMAT_CURRENCY_SIMPLE
E
@@ -62,231 +52,116 @@
E
Number format
-
- C_FORMAT_CURRENCY_USD
- I
- Number format
-
C_FORMAT_CURRENCY_USD_SIMPLE
E
Number format
-
- C_FORMAT_CURRENCY_USD_SIMPLE
- I
- Number format
-
C_FORMAT_DATE_DATETIME
E
Number format
-
- C_FORMAT_DATE_DATETIME
- I
- Number format
-
C_FORMAT_DATE_DDMMYYYY
E
Number format
-
- C_FORMAT_DATE_DDMMYYYY
- I
- Number format
-
C_FORMAT_DATE_DDMMYYYYDOT
E
Number format
-
- C_FORMAT_DATE_DDMMYYYYDOT
- I
- Number format
-
C_FORMAT_DATE_DMMINUS
E
Number format
-
- C_FORMAT_DATE_DMMINUS
- I
- Number format
-
C_FORMAT_DATE_DMYMINUS
E
Number format
-
- C_FORMAT_DATE_DMYMINUS
- I
- Number format
-
C_FORMAT_DATE_DMYSLASH
E
Number format
-
- C_FORMAT_DATE_DMYSLASH
- I
- Number format
-
C_FORMAT_DATE_MYMINUS
E
Number format
-
- C_FORMAT_DATE_MYMINUS
- I
- Number format
-
C_FORMAT_DATE_STD
E
Number format
-
- C_FORMAT_DATE_STD
- I
- Number format
-
C_FORMAT_DATE_TIME1
E
Number format
-
- C_FORMAT_DATE_TIME1
- I
- Number format
-
C_FORMAT_DATE_TIME2
E
Number format
-
- C_FORMAT_DATE_TIME2
- I
- Number format
-
C_FORMAT_DATE_TIME3
E
Number format
-
- C_FORMAT_DATE_TIME3
- I
- Number format
-
C_FORMAT_DATE_TIME4
E
Number format
-
- C_FORMAT_DATE_TIME4
- I
- Number format
-
C_FORMAT_DATE_TIME5
E
Number format
-
- C_FORMAT_DATE_TIME5
- I
- Number format
-
C_FORMAT_DATE_TIME6
E
Number format
-
- C_FORMAT_DATE_TIME6
- I
- Number format
-
C_FORMAT_DATE_TIME7
E
Number format
-
- C_FORMAT_DATE_TIME7
- I
- Number format
-
C_FORMAT_DATE_TIME8
E
Number format
-
- C_FORMAT_DATE_TIME8
- I
- Number format
-
C_FORMAT_DATE_XLSX14
E
Number format
-
- C_FORMAT_DATE_XLSX14
- I
- Number format
-
C_FORMAT_DATE_XLSX15
E
Number format
-
- C_FORMAT_DATE_XLSX15
- I
- Number format
-
C_FORMAT_DATE_XLSX16
E
Number format
-
- C_FORMAT_DATE_XLSX16
- I
- Number format
-
C_FORMAT_DATE_XLSX17
E
Number format
-
- C_FORMAT_DATE_XLSX17
- I
- Number format
-
C_FORMAT_DATE_XLSX22
E
Number format
-
- C_FORMAT_DATE_XLSX22
- I
- Number format
-
C_FORMAT_DATE_XLSX45
E
@@ -307,61 +182,31 @@
E
Number format
-
- C_FORMAT_DATE_YYMMDD
- I
- Number format
-
C_FORMAT_DATE_YYMMDDMINUS
E
Number format
-
- C_FORMAT_DATE_YYMMDDMINUS
- I
- Number format
-
C_FORMAT_DATE_YYMMDDSLASH
E
Number format
-
- C_FORMAT_DATE_YYMMDDSLASH
- I
- Number format
-
C_FORMAT_DATE_YYYYMMDD
E
Number format
-
- C_FORMAT_DATE_YYYYMMDD
- I
- Number format
-
C_FORMAT_DATE_YYYYMMDDMINUS
E
Number format
-
- C_FORMAT_DATE_YYYYMMDDMINUS
- I
- Number format
-
C_FORMAT_DATE_YYYYMMDDSLASH
E
Number format
-
- C_FORMAT_DATE_YYYYMMDDSLASH
- I
- Number format
-
C_FORMAT_FRACTION_1
E
@@ -377,31 +222,16 @@
E
Number format
-
- C_FORMAT_GENERAL
- I
- Number format
-
C_FORMAT_NUMBER
E
Number format
-
- C_FORMAT_NUMBER
- I
- Number format
-
C_FORMAT_NUMBER_00
E
Number format
-
- C_FORMAT_NUMBER_00
- I
- Number format
-
C_FORMAT_NUMBER_COMMA_SEP0
E
@@ -412,51 +242,26 @@
E
Number format
-
- C_FORMAT_NUMBER_COMMA_SEP1
- I
- Number format
-
C_FORMAT_NUMBER_COMMA_SEP2
E
Number format
-
- C_FORMAT_NUMBER_COMMA_SEP2
- I
- Number format
-
C_FORMAT_NUMC_STD
E
Number format
-
- C_FORMAT_NUMC_STD
- I
- Number format
-
C_FORMAT_PERCENTAGE
E
Number format
-
- C_FORMAT_PERCENTAGE
- I
- Number format
-
C_FORMAT_PERCENTAGE_00
E
Number format
-
- C_FORMAT_PERCENTAGE_00
- I
- Number format
-
C_FORMAT_SCIENTIFIC
E
@@ -472,11 +277,6 @@
E
Number format
-
- C_FORMAT_TEXT
- I
- Number format
-
C_FORMAT_XLSX37
E
@@ -522,11 +322,6 @@
E
Number format
-
- FORMAT_CODE
- I
- Number format
-
MT_BUILT_IN_NUM_FORMATS
E
diff --git a/src/zcl_excel_worksheet.clas.abap b/src/zcl_excel_worksheet.clas.abap
index a4a2376..5a965b0 100644
--- a/src/zcl_excel_worksheet.clas.abap
+++ b/src/zcl_excel_worksheet.clas.abap
@@ -3,13 +3,13 @@ CLASS zcl_excel_worksheet DEFINITION
CREATE PUBLIC .
PUBLIC SECTION.
+
*"* public components of class ZCL_EXCEL_WORKSHEET
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_WORKSHEET
*"* do not include other source files here!!!
*"* protected components of class ZCL_EXCEL_WORKSHEET
*"* do not include other source files here!!!
-
INTERFACES zif_excel_sheet_printsettings .
INTERFACES zif_excel_sheet_properties .
INTERFACES zif_excel_sheet_protection .
@@ -21,8 +21,9 @@ CLASS zcl_excel_worksheet DEFINITION
row_to TYPE i,
collapsed TYPE abap_bool,
END OF mty_s_outline_row .
- TYPES: mty_ts_outlines_row TYPE SORTED TABLE OF mty_s_outline_row WITH UNIQUE KEY primary_key COMPONENTS row_from row_to
- WITH NON-UNIQUE SORTED KEY row_to COMPONENTS row_to collapsed.
+ TYPES:
+ mty_ts_outlines_row TYPE SORTED TABLE OF mty_s_outline_row WITH UNIQUE KEY primary_key COMPONENTS row_from row_to
+ WITH NON-UNIQUE SORTED KEY row_to COMPONENTS row_to collapsed .
TYPES:
BEGIN OF mty_s_ignored_errors,
"! Cell reference (e.g. "A1") or list like "A1 A2" or range "A1:G1"
@@ -62,8 +63,8 @@ CLASS zcl_excel_worksheet DEFINITION
END OF mty_s_column_formula .
TYPES:
mty_th_column_formula
- TYPE HASHED TABLE OF mty_s_column_formula
- WITH UNIQUE KEY id .
+ TYPE HASHED TABLE OF mty_s_column_formula
+ WITH UNIQUE KEY id .
TYPES:
ty_doc_url TYPE c LENGTH 255 .
TYPES:
@@ -74,8 +75,7 @@ CLASS zcl_excel_worksheet DEFINITION
col_to TYPE i,
END OF mty_merge .
TYPES:
- mty_ts_merge TYPE SORTED TABLE OF mty_merge WITH UNIQUE KEY table_line.
-
+ mty_ts_merge TYPE SORTED TABLE OF mty_merge WITH UNIQUE KEY table_line .
TYPES:
ty_area TYPE c LENGTH 1 .
@@ -103,8 +103,8 @@ CLASS zcl_excel_worksheet DEFINITION
formula_in_other_column TYPE string,
END OF c_messages .
DATA mt_merged_cells TYPE mty_ts_merge READ-ONLY .
- DATA pane_top_left_cell TYPE string READ-ONLY.
- DATA sheetview_top_left_cell TYPE string READ-ONLY.
+ DATA pane_top_left_cell TYPE string READ-ONLY .
+ DATA sheetview_top_left_cell TYPE string READ-ONLY .
METHODS add_comment
IMPORTING
@@ -548,15 +548,15 @@ CLASS zcl_excel_worksheet DEFINITION
!ip_row TYPE zexcel_cell_row OPTIONAL
!ip_row_to TYPE zexcel_cell_row OPTIONAL
!ip_style TYPE any OPTIONAL
- !ip_value TYPE simple OPTIONAL "added parameter
- !ip_formula TYPE zexcel_cell_formula OPTIONAL "added parameter
+ !ip_value TYPE simple OPTIONAL "added parameter
+ !ip_formula TYPE zexcel_cell_formula OPTIONAL "added parameter
RAISING
zcx_excel .
METHODS set_pane_top_left_cell
IMPORTING
!iv_columnrow TYPE csequence
RAISING
- zcx_excel.
+ zcx_excel .
METHODS set_print_gridlines
IMPORTING
!i_print_gridlines TYPE zexcel_print_gridlines .
@@ -577,7 +577,7 @@ CLASS zcl_excel_worksheet DEFINITION
IMPORTING
!iv_columnrow TYPE csequence
RAISING
- zcx_excel.
+ zcx_excel .
METHODS set_show_gridlines
IMPORTING
!i_show_gridlines TYPE zexcel_show_gridlines .
@@ -694,6 +694,10 @@ CLASS zcl_excel_worksheet DEFINITION
!er_data TYPE REF TO data
RAISING
zcx_excel .
+ METHODS set_comment_boxes
+ IMPORTING
+ !it_boxes TYPE zcl_excel_comments=>ty_boxes OPTIONAL
+ !iv_full_vml TYPE string OPTIONAL .
PROTECTED SECTION.
METHODS set_table_reference
IMPORTING
@@ -857,7 +861,7 @@ ENDCLASS.
-CLASS zcl_excel_worksheet IMPLEMENTATION.
+CLASS ZCL_EXCEL_WORKSHEET IMPLEMENTATION.
METHOD add_comment.
@@ -2612,16 +2616,11 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
METHOD get_comments.
- DATA: lo_comment TYPE REF TO zcl_excel_comment,
- lo_iterator TYPE REF TO zcl_excel_collection_iterator.
- CREATE OBJECT r_comments.
-
- lo_iterator = comments->get_iterator( ).
- WHILE lo_iterator->has_next( ) = abap_true.
- lo_comment ?= lo_iterator->get_next( ).
- r_comments->include( lo_comment ).
- ENDWHILE.
+* Create a copy of the comments attribute
+ CREATE OBJECT r_comments
+ EXPORTING
+ io_from = comments.
ENDMETHOD. "get_comments
@@ -4869,4 +4868,9 @@ CLASS zcl_excel_worksheet IMPLEMENTATION.
METHOD zif_excel_sheet_vba_project~set_codename_pr.
me->zif_excel_sheet_vba_project~codename_pr = ip_codename_pr.
ENDMETHOD. "ZIF_EXCEL_SHEET_VBA_PROJECT~SET_CODENAME_PR
+
+
+ method SET_COMMENT_BOXES.
+ comments->set_boxes( it_boxes = it_boxes iv_full_vml = iv_full_vml ).
+ endmethod.
ENDCLASS.
diff --git a/src/zcl_excel_worksheet.clas.xml b/src/zcl_excel_worksheet.clas.xml
index b436cfc..f66eab1 100644
--- a/src/zcl_excel_worksheet.clas.xml
+++ b/src/zcl_excel_worksheet.clas.xml
@@ -68,21 +68,11 @@
E
Version Number Component
-
- ACTIVE_CELL
- I
- Version Number Component
-
ADD_DRAWING
E
Add drawing to the sheet
-
- ADD_DRAWING
- I
- Add drawing to the sheet
-
ADD_NEW_COLUMN
E
@@ -93,21 +83,11 @@
E
Creates a new data validation
-
- ADD_NEW_DATA_VALIDATION
- I
- Creates a new data validation
-
ADD_NEW_RANGE
E
Create a new local range
-
- ADD_NEW_RANGE
- I
- Create a new local range
-
ADD_NEW_ROW
E
@@ -123,51 +103,26 @@
E
Set cell value from ALV object
-
- BIND_ALV
- I
- Set cell value from ALV object
-
BIND_ALV_OLE2
E
Set cell value from ALV object (OLE2)
-
- BIND_ALV_OLE2
- I
- Set cell value from ALV object (OLE2)
-
BIND_TABLE
E
Set cell value from a table
-
- BIND_TABLE
- I
- Set cell value from a table
-
CALCULATE_CELL_WIDTH
E
Calculate width of cell
-
- CALCULATE_CELL_WIDTH
- I
- Calculate width of cell
-
CALCULATE_COLUMN_WIDTHS
E
Calculate widths for auto-size columns
-
- CALCULATE_COLUMN_WIDTHS
- I
- Calculate widths for auto-size columns
-
CHANGE_AREA_STYLE
E
@@ -178,21 +133,11 @@
E
Change cell style
-
- CHANGE_CELL_STYLE
- I
- Change cell style
-
CHARTS
E
Charts collection
-
- CHARTS
- I
- Charts collection
-
COLUMNS
E
@@ -208,81 +153,41 @@
E
CONSTRUCTOR
-
- CONSTRUCTOR
- I
- CONSTRUCTOR
-
C_BREAK_COLUMN
E
Worksheet Break
-
- C_BREAK_COLUMN
- I
- Worksheet Break
-
C_BREAK_NONE
E
Worksheet Break
-
- C_BREAK_NONE
- I
- Worksheet Break
-
C_BREAK_ROW
E
Worksheet Break
-
- C_BREAK_ROW
- I
- Worksheet Break
-
DATA_VALIDATIONS
E
Data validations collection
-
- DATA_VALIDATIONS
- I
- Data validations collection
-
DEFAULT_EXCEL_DATE_FORMAT
E
Date format used in case style is not provide for D fields
-
- DEFAULT_EXCEL_DATE_FORMAT
- I
- Date format used in case style is not provide for D fields
-
DEFAULT_EXCEL_TIME_FORMAT
E
Date format used in case style is not provide for D fields
-
- DEFAULT_EXCEL_TIME_FORMAT
- I
- Date format used in case style is not provide for D fields
-
DELETE_MERGE
E
Delete the used merges
-
- DELETE_MERGE
- I
- Delete the used merges
-
DELETE_ROW_OUTLINE
E
@@ -293,71 +198,36 @@
E
Drawings collection
-
- DRAWINGS
- I
- Drawings collection
-
FREEZE_PANES
E
Freeze panes for supplied number of rows and/or columns
-
- FREEZE_PANES
- I
- Freeze panes for supplied number of rows and/or columns
-
FREEZE_PANE_CELL_COLUMN
E
Cell Column
-
- FREEZE_PANE_CELL_COLUMN
- I
- Cell Column
-
FREEZE_PANE_CELL_ROW
E
Cell Row
-
- FREEZE_PANE_CELL_ROW
- I
- Cell Row
-
GENERATE_TITLE
E
Generate title for worksheet (called if none is supplied )
-
- GENERATE_TITLE
- I
- Generate title for worksheet (called if none is supplied )
-
GET_ACTIVE_CELL
E
Get used range dimension
-
- GET_ACTIVE_CELL
- I
- Get used range dimension
-
GET_CELL
E
Get cell value
-
- GET_CELL
- I
- Get cell value
-
GET_COLUMN
E
@@ -378,21 +248,11 @@
E
Get data validation iterator
-
- GET_DATA_VALIDATIONS_ITERATOR
- I
- Get conditional styles iterator
-
GET_DATA_VALIDATIONS_SIZE
E
Get the number of data validation objects
-
- GET_DATA_VALIDATIONS_SIZE
- I
- Get the number of data validation objects
-
GET_DEFAULT_COLUMN
E
@@ -403,21 +263,11 @@
E
Gets default date format
-
- GET_DEFAULT_EXCEL_DATE_FORMAT
- I
- Gets default date format
-
GET_DEFAULT_EXCEL_TIME_FORMAT
E
Gets default time format
-
- GET_DEFAULT_EXCEL_TIME_FORMAT
- I
- Gets default time format
-
GET_DEFAULT_ROW
E
@@ -428,51 +278,26 @@
E
Get used range dimension
-
- GET_DIMENSION_RANGE
- I
- Get used range dimension
-
GET_DRAWINGS
E
Gets drawing attached to the sheet
-
- GET_DRAWINGS
- I
- Gets drawing attached to the sheet
-
GET_DRAWINGS_ITERATOR
E
Get iterator for drawings collection
-
- GET_DRAWINGS_ITERATOR
- I
- Get iterator for drawings collection
-
GET_FREEZE_CELL
E
Gets the coordinates of cell determining freeze panes
-
- GET_FREEZE_CELL
- I
- Gets the coordinates of cell determining freeze panes
-
GET_GUID
E
Get sheet guid
-
- GET_GUID
- I
- Get sheet guid
-
GET_HEADER_FOOTER_DRAWINGS
E
@@ -483,31 +308,16 @@
E
Get iterator for links collection
-
- GET_HYPERLINKS_ITERATOR
- I
- Get iterator for links collection
-
GET_HYPERLINKS_SIZE
E
Gets the size of links collection
-
- GET_HYPERLINKS_SIZE
- I
- Gets the size of links collection
-
GET_MERGE
E
Get the merge range
-
- GET_MERGE
- I
- Get the merge range
-
GET_PAGEBREAKS
E
@@ -518,11 +328,6 @@
E
Get ranges iterator
-
- GET_RANGES_ITERATOR
- I
- Get ranges iterator
-
GET_ROW
E
@@ -558,71 +363,36 @@
E
get tabcolor
-
- GET_TABCOLOR
- I
- get tabcolor
-
GET_TABLES_ITERATOR
E
Get iterator for tables collection
-
- GET_TABLES_ITERATOR
- I
- Get iterator for tables collection
-
GET_TABLES_SIZE
E
Gets the size of tables collection
-
- GET_TABLES_SIZE
- I
- Gets the size of tables collection
-
GET_TITLE
E
Get WorkSheet Title
-
- GET_TITLE
- I
- Get WorkSheet Title
-
GET_VALUE_TYPE
E
Get abap type kind and apply conversion routine
-
- GET_VALUE_TYPE
- I
- Get abap type kind and apply conversion routine
-
GUID
E
GUID in 'RAW' format
-
- GUID
- I
- GUID in 'RAW' format
-
HYPERLINKS
E
Colletion of hyperlinks
-
- HYPERLINKS
- I
- Colletion of hyperlinks
-
IS_CELL_MERGED
E
@@ -633,11 +403,6 @@
E
Bottom right range cell
-
- LOWER_CELL
- I
- Bottom right range cell
-
MO_PAGEBREAKS
E
@@ -678,71 +443,36 @@
E
Print Gridlines
-
- PRINT_GRIDLINES
- I
- Print Gridlines
-
PRINT_TITLE_COL_FROM
E
Cell Column
-
- PRINT_TITLE_COL_FROM
- I
- Cell Column
-
PRINT_TITLE_COL_TO
E
Cell Column
-
- PRINT_TITLE_COL_TO
- I
- Cell Column
-
PRINT_TITLE_ROW_FROM
E
Cell Row
-
- PRINT_TITLE_ROW_FROM
- I
- Cell Row
-
PRINT_TITLE_ROW_TO
E
Cell Row
-
- PRINT_TITLE_ROW_TO
- I
- Cell Row
-
PRINT_TITLE_SET_RANGE
E
Update range for print title
-
- PRINT_TITLE_SET_RANGE
- I
- Update range for print title
-
RANGES
E
Ranges collection
-
- RANGES
- I
- Ranges collection
-
ROWS
E
@@ -758,81 +488,46 @@
E
Set cell value
-
- SET_CELL
- I
- Set cell value
-
SET_CELL_FORMULA
E
Set cell formula
-
- SET_CELL_FORMULA
- I
- Set cell formula
-
SET_CELL_STYLE
E
Set cell style
-
- SET_CELL_STYLE
- I
- Set cell style
-
SET_COLUMN_WIDTH
E
Set column width
- SET_COLUMN_WIDTH
- I
- Set column width
+ SET_COMMENT_BOXES
+ E
+ Set dimensions of info boxes for comments
SET_DEFAULT_EXCEL_DATE_FORMAT
E
Sets default date format
-
- SET_DEFAULT_EXCEL_DATE_FORMAT
- I
- Sets default date format
-
SET_MERGE
E
Set the merge range
-
- SET_MERGE
- I
- Set the merge range
-
SET_PRINT_GRIDLINES
E
Set print gridlines
-
- SET_PRINT_GRIDLINES
- I
- Set print gridlines
-
SET_ROW_HEIGHT
E
Set row height
-
- SET_ROW_HEIGHT
- I
- Set row height
-
SET_ROW_OUTLINE
E
@@ -843,91 +538,46 @@
E
Set show gridlines
-
- SET_SHOW_GRIDLINES
- I
- Set show gridlines
-
SET_SHOW_ROWCOLHEADERS
E
Set show colum row headers
-
- SET_SHOW_ROWCOLHEADERS
- I
- Set show colum row headers
-
SET_TABCOLOR
E
Set tabcolor
-
- SET_TABCOLOR
- I
- Set tabcolor
-
SET_TABLE
E
Set cell value from a table
-
- SET_TABLE
- I
- Set cell value from a table
-
SET_TITLE
E
Set WorkSheet Title
-
- SET_TITLE
- I
- Set WorkSheet Title
-
SHEET_CONTENT
E
Excel worksheet content
-
- SHEET_CONTENT
- I
- Excel worksheet content
-
SHEET_SETUP
E
Sheet setup
-
- SHEET_SETUP
- I
- Sheet setup
-
SHOW_GRIDLINES
E
Show Gridlines
-
- SHOW_GRIDLINES
- I
- Show Gridlines
-
SHOW_ROWCOLHEADERS
E
Show Gridlines
-
- SHOW_ROWCOLHEADERS
- I
- Show Gridlines
-
STYLES_COND
E
@@ -938,51 +588,26 @@
E
Tabcolor
-
- TABCOLOR
- I
- Tabcolor
-
TABLES
E
Colletion of tables
-
- TABLES
- I
- Colletion of tables
-
TITLE
E
Title
-
- TITLE
- I
- Title
-
UPDATE_DIMENSION_RANGE
E
Update dimension range
-
- UPDATE_DIMENSION_RANGE
- I
- Update dimension range
-
UPPER_CELL
E
Top left range cell
-
- UPPER_CELL
- I
- Top left range cell
-
diff --git a/src/zcl_excel_writer_2007.clas.abap b/src/zcl_excel_writer_2007.clas.abap
index 45f47c6..eb33056 100644
--- a/src/zcl_excel_writer_2007.clas.abap
+++ b/src/zcl_excel_writer_2007.clas.abap
@@ -9,276 +9,288 @@ CLASS zcl_excel_writer_2007 DEFINITION
INTERFACES zif_excel_writer .
METHODS constructor.
- PROTECTED SECTION.
+PROTECTED SECTION.
+ TYPES:
*"* protected components of class ZCL_EXCEL_WRITER_2007
*"* do not include other source files here!!!
- TYPES: BEGIN OF mty_column_formula_used,
- id TYPE zexcel_s_cell_data-column_formula_id,
- si TYPE string,
- "! type: shared, etc.
- t TYPE string,
- END OF mty_column_formula_used,
- mty_column_formulas_used TYPE HASHED TABLE OF mty_column_formula_used WITH UNIQUE KEY id.
- 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_drawings TYPE string VALUE 'xl/drawings/drawing#.xml'. "#EC NOTEXT
- CONSTANTS c_xl_drawings_rels TYPE string VALUE 'xl/drawings/_rels/drawing#.xml.rels'. "#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_cond_mapping TYPE zexcel_t_styles_cond_mapping .
- DATA styles_mapping TYPE zexcel_t_styles_mapping .
- CONSTANTS c_xl_comments TYPE string VALUE 'xl/comments#.xml'. "#EC NOTEXT
- CONSTANTS cl_xl_drawing_for_comments TYPE string VALUE 'xl/drawings/vmlDrawing#.vml'. "#EC NOTEXT
- CONSTANTS c_xl_drawings_vml_rels TYPE string VALUE 'xl/drawings/_rels/vmlDrawing#.vml.rels'. "#EC NOTEXT
- DATA ixml TYPE REF TO if_ixml.
- DATA control_characters TYPE string.
+ BEGIN OF mty_column_formula_used,
+ id TYPE zexcel_s_cell_data-column_formula_id,
+ si TYPE string,
+ "! type: shared, etc.
+ t TYPE string,
+ END OF mty_column_formula_used .
+ TYPES:
+ mty_column_formulas_used TYPE HASHED TABLE OF mty_column_formula_used WITH UNIQUE KEY id .
- METHODS create_xl_sheet_sheet_data
- IMPORTING
- !io_document TYPE REF TO if_ixml_document
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- RETURNING
- VALUE(rv_ixml_sheet_data_root) TYPE REF TO if_ixml_element
- RAISING
- zcx_excel .
- METHODS add_further_data_to_zip
- IMPORTING
- !io_zip TYPE REF TO cl_abap_zip .
- METHODS create
- RETURNING
- VALUE(ep_excel) TYPE xstring
- RAISING
- zcx_excel .
- 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_dxf_style
- IMPORTING
- !iv_cell_style TYPE zexcel_cell_style
- !io_dxf_element TYPE REF TO if_ixml_element
- !io_ixml_document TYPE REF TO if_ixml_document
- !it_cellxfs TYPE zexcel_t_cellxfs
- !it_fonts TYPE zexcel_t_style_font
- !it_fills TYPE zexcel_t_style_fill
- CHANGING
- !cv_dfx_count TYPE i .
- METHODS create_relationships
- RETURNING
- VALUE(ep_content) TYPE xstring .
- METHODS create_xl_charts
- IMPORTING
- !io_drawing TYPE REF TO zcl_excel_drawing
- RETURNING
- VALUE(ep_content) TYPE xstring .
- METHODS create_xl_comments
- IMPORTING
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- RETURNING
- VALUE(ep_content) TYPE xstring .
- METHODS create_xl_drawings
- IMPORTING
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- RETURNING
- VALUE(ep_content) TYPE xstring .
- METHODS create_xl_drawings_rels
- IMPORTING
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- RETURNING
- VALUE(ep_content) TYPE xstring .
- METHODS create_xl_drawing_anchor
- IMPORTING
- !io_drawing TYPE REF TO zcl_excel_drawing
- !io_document TYPE REF TO if_ixml_document
- !ip_index TYPE i
- RETURNING
- VALUE(ep_anchor) TYPE REF TO if_ixml_element .
- METHODS create_xl_drawing_for_comments
- IMPORTING
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- RETURNING
- VALUE(ep_content) TYPE xstring
- RAISING
- zcx_excel .
- 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
- RAISING
- zcx_excel .
- METHODS create_xl_sheet_ignored_errors
- IMPORTING
- io_worksheet TYPE REF TO zcl_excel_worksheet
- io_document TYPE REF TO if_ixml_document
- io_element_root TYPE REF TO if_ixml_element.
- METHODS create_xl_sheet_pagebreaks
- IMPORTING
- !io_document TYPE REF TO if_ixml_document
- !io_parent TYPE REF TO if_ixml_element
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- RAISING
- zcx_excel .
- METHODS create_xl_sheet_rels
- IMPORTING
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- !iv_drawing_index TYPE i OPTIONAL
- !iv_comment_index TYPE i OPTIONAL
- !iv_cmnt_vmlindex TYPE i OPTIONAL
- !iv_hdft_vmlindex TYPE i OPTIONAL
- RETURNING
- VALUE(ep_content) TYPE xstring .
- METHODS create_xl_styles
- RETURNING
- VALUE(ep_content) TYPE xstring .
- METHODS create_xl_styles_color_node
- IMPORTING
- !io_document TYPE REF TO if_ixml_document
- !io_parent TYPE REF TO if_ixml_element
- !iv_color_elem_name TYPE string DEFAULT 'color'
- !is_color TYPE zexcel_s_style_color .
- METHODS create_xl_styles_font_node
- IMPORTING
- !io_document TYPE REF TO if_ixml_document
- !io_parent TYPE REF TO if_ixml_element
- !is_font TYPE zexcel_s_style_font
- !iv_use_rtf TYPE abap_bool DEFAULT abap_false .
- METHODS create_xl_table
- IMPORTING
- !io_table TYPE REF TO zcl_excel_table
- RETURNING
- VALUE(ep_content) TYPE xstring
- RAISING
- zcx_excel .
- METHODS create_xl_theme
- RETURNING
- VALUE(ep_content) TYPE xstring .
- METHODS create_xl_workbook
- RETURNING
- VALUE(ep_content) TYPE xstring
- RAISING
- zcx_excel .
- METHODS get_shared_string_index
- IMPORTING
- !ip_cell_value TYPE zexcel_cell_value
- !it_rtf TYPE zexcel_t_rtf OPTIONAL
- RETURNING
- VALUE(ep_index) TYPE int4 .
- METHODS create_xl_drawings_vml
- RETURNING
- VALUE(ep_content) TYPE xstring .
- METHODS set_vml_string
- RETURNING
- VALUE(ep_content) TYPE string .
- METHODS create_xl_drawings_vml_rels
- RETURNING
- VALUE(ep_content) TYPE xstring .
- METHODS escape_string_value
- IMPORTING
- !iv_value TYPE zexcel_cell_value
- RETURNING
- VALUE(result) TYPE zexcel_cell_value.
- METHODS set_vml_shape_footer
- IMPORTING
- !is_footer TYPE zexcel_s_worksheet_head_foot
- RETURNING
- VALUE(ep_content) TYPE string .
- METHODS set_vml_shape_header
- IMPORTING
- !is_header TYPE zexcel_s_worksheet_head_foot
- RETURNING
- VALUE(ep_content) TYPE string .
- METHODS create_xl_drawing_for_hdft_im
- IMPORTING
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- RETURNING
- VALUE(ep_content) TYPE xstring .
- METHODS create_xl_drawings_hdft_rels
- IMPORTING
- !io_worksheet TYPE REF TO zcl_excel_worksheet
- RETURNING
- VALUE(ep_content) TYPE xstring .
- METHODS create_xml_document
- RETURNING
- VALUE(ro_document) TYPE REF TO if_ixml_document.
- METHODS render_xml_document
- IMPORTING
- io_document TYPE REF TO if_ixml_document
- RETURNING
- VALUE(ep_content) TYPE xstring.
- METHODS create_xl_sheet_column_formula
- IMPORTING
- io_document TYPE REF TO if_ixml_document
- it_column_formulas TYPE zcl_excel_worksheet=>mty_th_column_formula
- is_sheet_content TYPE zexcel_s_cell_data
- EXPORTING
- eo_element TYPE REF TO if_ixml_element
- CHANGING
- ct_column_formulas_used TYPE mty_column_formulas_used
- cv_si TYPE i
- RAISING
- zcx_excel.
- METHODS is_formula_shareable
- IMPORTING
- ip_formula TYPE string
- RETURNING
- VALUE(ep_shareable) TYPE abap_bool
- RAISING
- zcx_excel.
- PRIVATE SECTION.
+ CONSTANTS c_content_types TYPE string VALUE '[Content_Types].xml' ##NO_TEXT.
+ CONSTANTS c_docprops_app TYPE string VALUE 'docProps/app.xml' ##NO_TEXT.
+ CONSTANTS c_docprops_core TYPE string VALUE 'docProps/core.xml' ##NO_TEXT.
+ CONSTANTS c_relationships TYPE string VALUE '_rels/.rels' ##NO_TEXT.
+ CONSTANTS c_xl_calcchain TYPE string VALUE 'xl/calcChain.xml' ##NO_TEXT.
+ CONSTANTS c_xl_drawings TYPE string VALUE 'xl/drawings/drawing#.xml' ##NO_TEXT.
+ CONSTANTS c_xl_drawings_rels TYPE string VALUE 'xl/drawings/_rels/drawing#.xml.rels' ##NO_TEXT.
+ CONSTANTS c_xl_relationships TYPE string VALUE 'xl/_rels/workbook.xml.rels' ##NO_TEXT.
+ CONSTANTS c_xl_sharedstrings TYPE string VALUE 'xl/sharedStrings.xml' ##NO_TEXT.
+ CONSTANTS c_xl_sheet TYPE string VALUE 'xl/worksheets/sheet#.xml' ##NO_TEXT.
+ CONSTANTS c_xl_sheet_rels TYPE string VALUE 'xl/worksheets/_rels/sheet#.xml.rels' ##NO_TEXT.
+ CONSTANTS c_xl_styles TYPE string VALUE 'xl/styles.xml' ##NO_TEXT.
+ CONSTANTS c_xl_theme TYPE string VALUE 'xl/theme/theme1.xml' ##NO_TEXT.
+ CONSTANTS c_xl_workbook TYPE string VALUE 'xl/workbook.xml' ##NO_TEXT.
+ DATA excel TYPE REF TO zcl_excel .
+ DATA shared_strings TYPE zexcel_t_shared_string .
+ DATA styles_cond_mapping TYPE zexcel_t_styles_cond_mapping .
+ DATA styles_mapping TYPE zexcel_t_styles_mapping .
+ CONSTANTS c_xl_comments TYPE string VALUE 'xl/comments#.xml' ##NO_TEXT.
+ CONSTANTS cl_xl_drawing_for_comments TYPE string VALUE 'xl/drawings/vmlDrawing#.vml' ##NO_TEXT.
+ CONSTANTS c_xl_drawings_vml_rels TYPE string VALUE 'xl/drawings/_rels/vmlDrawing#.vml.rels' ##NO_TEXT.
+ DATA ixml TYPE REF TO if_ixml .
+ DATA control_characters TYPE string .
+
+ METHODS create_xl_sheet_sheet_data
+ IMPORTING
+ !io_document TYPE REF TO if_ixml_document
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RETURNING
+ VALUE(rv_ixml_sheet_data_root) TYPE REF TO if_ixml_element
+ RAISING
+ zcx_excel .
+ METHODS add_further_data_to_zip
+ IMPORTING
+ !io_zip TYPE REF TO cl_abap_zip .
+ METHODS create
+ RETURNING
+ VALUE(ep_excel) TYPE xstring
+ RAISING
+ zcx_excel .
+ 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_dxf_style
+ IMPORTING
+ !iv_cell_style TYPE zexcel_cell_style
+ !io_dxf_element TYPE REF TO if_ixml_element
+ !io_ixml_document TYPE REF TO if_ixml_document
+ !it_cellxfs TYPE zexcel_t_cellxfs
+ !it_fonts TYPE zexcel_t_style_font
+ !it_fills TYPE zexcel_t_style_fill
+ CHANGING
+ !cv_dfx_count TYPE i .
+ METHODS create_relationships
+ RETURNING
+ VALUE(ep_content) TYPE xstring .
+ METHODS create_xl_charts
+ IMPORTING
+ !io_drawing TYPE REF TO zcl_excel_drawing
+ RETURNING
+ VALUE(ep_content) TYPE xstring .
+ METHODS create_xl_comments
+ IMPORTING
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RETURNING
+ VALUE(ep_content) TYPE xstring .
+ METHODS create_xl_drawings
+ IMPORTING
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RETURNING
+ VALUE(ep_content) TYPE xstring .
+ METHODS create_xl_drawings_rels
+ IMPORTING
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RETURNING
+ VALUE(ep_content) TYPE xstring .
+ METHODS create_xl_drawing_anchor
+ IMPORTING
+ !io_drawing TYPE REF TO zcl_excel_drawing
+ !io_document TYPE REF TO if_ixml_document
+ !ip_index TYPE i
+ RETURNING
+ VALUE(ep_anchor) TYPE REF TO if_ixml_element .
+ METHODS create_xl_drawing_for_comments
+ IMPORTING
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RETURNING
+ VALUE(ep_content) TYPE xstring
+ RAISING
+ zcx_excel .
+ 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
+ RAISING
+ zcx_excel .
+ METHODS create_xl_sheet_ignored_errors
+ IMPORTING
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ !io_document TYPE REF TO if_ixml_document
+ !io_element_root TYPE REF TO if_ixml_element .
+ METHODS create_xl_sheet_pagebreaks
+ IMPORTING
+ !io_document TYPE REF TO if_ixml_document
+ !io_parent TYPE REF TO if_ixml_element
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RAISING
+ zcx_excel .
+ METHODS create_xl_sheet_rels
+ IMPORTING
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ !iv_drawing_index TYPE i OPTIONAL
+ !iv_comment_index TYPE i OPTIONAL
+ !iv_cmnt_vmlindex TYPE i OPTIONAL
+ !iv_hdft_vmlindex TYPE i OPTIONAL
+ RETURNING
+ VALUE(ep_content) TYPE xstring .
+ METHODS create_xl_styles
+ RETURNING
+ VALUE(ep_content) TYPE xstring .
+ METHODS create_xl_styles_color_node
+ IMPORTING
+ !io_document TYPE REF TO if_ixml_document
+ !io_parent TYPE REF TO if_ixml_element
+ !iv_color_elem_name TYPE string DEFAULT 'color'
+ !is_color TYPE zexcel_s_style_color .
+ METHODS create_xl_styles_font_node
+ IMPORTING
+ !io_document TYPE REF TO if_ixml_document
+ !io_parent TYPE REF TO if_ixml_element
+ !is_font TYPE zexcel_s_style_font
+ !iv_use_rtf TYPE abap_bool DEFAULT abap_false .
+ METHODS create_xl_table
+ IMPORTING
+ !io_table TYPE REF TO zcl_excel_table
+ RETURNING
+ VALUE(ep_content) TYPE xstring
+ RAISING
+ zcx_excel .
+ METHODS create_xl_theme
+ RETURNING
+ VALUE(ep_content) TYPE xstring .
+ METHODS create_xl_workbook
+ RETURNING
+ VALUE(ep_content) TYPE xstring
+ RAISING
+ zcx_excel .
+ METHODS get_shared_string_index
+ IMPORTING
+ !ip_cell_value TYPE zexcel_cell_value
+ !it_rtf TYPE zexcel_t_rtf OPTIONAL
+ RETURNING
+ VALUE(ep_index) TYPE int4 .
+ METHODS create_xl_drawings_vml
+ RETURNING
+ VALUE(ep_content) TYPE xstring .
+ METHODS set_vml_string
+ RETURNING
+ VALUE(ep_content) TYPE string .
+ METHODS create_xl_drawings_vml_rels
+ RETURNING
+ VALUE(ep_content) TYPE xstring .
+ METHODS escape_string_value
+ IMPORTING
+ !iv_value TYPE zexcel_cell_value
+ RETURNING
+ VALUE(result) TYPE zexcel_cell_value .
+ METHODS set_vml_shape_footer
+ IMPORTING
+ !is_footer TYPE zexcel_s_worksheet_head_foot
+ RETURNING
+ VALUE(ep_content) TYPE string .
+ METHODS set_vml_shape_header
+ IMPORTING
+ !is_header TYPE zexcel_s_worksheet_head_foot
+ RETURNING
+ VALUE(ep_content) TYPE string .
+ METHODS create_xl_drawing_for_hdft_im
+ IMPORTING
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RETURNING
+ VALUE(ep_content) TYPE xstring .
+ METHODS create_xl_drawings_hdft_rels
+ IMPORTING
+ !io_worksheet TYPE REF TO zcl_excel_worksheet
+ RETURNING
+ VALUE(ep_content) TYPE xstring .
+ METHODS create_xml_document
+ RETURNING
+ VALUE(ro_document) TYPE REF TO if_ixml_document .
+ METHODS render_xml_document
+ IMPORTING
+ !io_document TYPE REF TO if_ixml_document OPTIONAL
+ !iv_document_as_string TYPE string OPTIONAL
+ PREFERRED PARAMETER io_document
+ RETURNING
+ VALUE(ep_content) TYPE xstring .
+ METHODS create_xl_sheet_column_formula
+ IMPORTING
+ !io_document TYPE REF TO if_ixml_document
+ !it_column_formulas TYPE zcl_excel_worksheet=>mty_th_column_formula
+ !is_sheet_content TYPE zexcel_s_cell_data
+ EXPORTING
+ !eo_element TYPE REF TO if_ixml_element
+ CHANGING
+ !ct_column_formulas_used TYPE mty_column_formulas_used
+ !cv_si TYPE i
+ RAISING
+ zcx_excel .
+ METHODS is_formula_shareable
+ IMPORTING
+ !ip_formula TYPE string
+ RETURNING
+ VALUE(ep_shareable) TYPE abap_bool
+ RAISING
+ zcx_excel .
+PRIVATE SECTION.
+
+ TYPES:
+ tv_charbool TYPE c LENGTH 5 .
*"* private components of class ZCL_EXCEL_WRITER_2007
*"* do not include other source files here!!!
- CONSTANTS c_off TYPE string VALUE '0'. "#EC NOTEXT
- CONSTANTS c_on TYPE string VALUE '1'. "#EC NOTEXT
- CONSTANTS c_xl_printersettings TYPE string VALUE 'xl/printerSettings/printerSettings#.bin'. "#EC NOTEXT
- TYPES: tv_charbool TYPE c LENGTH 5.
+ CONSTANTS c_off TYPE string VALUE '0' ##NO_TEXT.
+ CONSTANTS c_on TYPE string VALUE '1' ##NO_TEXT.
+ CONSTANTS c_xl_printersettings TYPE string VALUE 'xl/printerSettings/printerSettings#.bin' ##NO_TEXT.
- METHODS add_1_val_child_node
- IMPORTING
- io_document TYPE REF TO if_ixml_document
- io_parent TYPE REF TO if_ixml_element
- iv_elem_name TYPE string
- iv_attr_name TYPE string
- iv_attr_value TYPE string.
- METHODS flag2bool
- IMPORTING
- !ip_flag TYPE flag
- RETURNING
- VALUE(ep_boolean) TYPE tv_charbool .
- METHODS number2string
- IMPORTING
- !ip_number TYPE numeric
- RETURNING
- VALUE(ep_string) TYPE string.
+ METHODS get_comment_anchor
+ IMPORTING
+ !io_comment TYPE REF TO zcl_excel_comment
+ RETURNING
+ VALUE(ev_anchor) TYPE string .
+ METHODS add_1_val_child_node
+ IMPORTING
+ !io_document TYPE REF TO if_ixml_document
+ !io_parent TYPE REF TO if_ixml_element
+ !iv_elem_name TYPE string
+ !iv_attr_name TYPE string
+ !iv_attr_value TYPE string .
+ METHODS flag2bool
+ IMPORTING
+ !ip_flag TYPE flag
+ RETURNING
+ VALUE(ep_boolean) TYPE tv_charbool .
+ METHODS number2string
+ IMPORTING
+ !ip_number TYPE numeric
+ RETURNING
+ VALUE(ep_string) TYPE string .
ENDCLASS.
-CLASS zcl_excel_writer_2007 IMPLEMENTATION.
+CLASS ZCL_EXCEL_WRITER_2007 IMPLEMENTATION.
METHOD add_1_val_child_node.
@@ -2338,55 +2350,22 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
METHOD create_xl_comments.
-** Constant node name
- CONSTANTS: lc_xml_node_comments TYPE string VALUE 'comments',
- lc_xml_node_ns TYPE string VALUE 'http://schemas.openxmlformats.org/spreadsheetml/2006/main',
- " authors
- lc_xml_node_author TYPE string VALUE 'author',
- lc_xml_node_authors TYPE string VALUE 'authors',
- " comments
- lc_xml_node_commentlist TYPE string VALUE 'commentList',
- lc_xml_node_comment TYPE string VALUE 'comment',
- lc_xml_node_text TYPE string VALUE 'text',
- lc_xml_node_r TYPE string VALUE 'r',
- lc_xml_node_rpr TYPE string VALUE 'rPr',
- lc_xml_node_b TYPE string VALUE 'b',
- lc_xml_node_sz TYPE string VALUE 'sz',
- lc_xml_node_color TYPE string VALUE 'color',
- lc_xml_node_rfont TYPE string VALUE 'rFont',
-* lc_xml_node_charset TYPE string VALUE 'charset',
- lc_xml_node_family TYPE string VALUE 'family',
- lc_xml_node_t TYPE string VALUE 't',
- " comments attributes
- lc_xml_attr_ref TYPE string VALUE 'ref',
- lc_xml_attr_authorid TYPE string VALUE 'authorId',
- lc_xml_attr_val TYPE string VALUE 'val',
- lc_xml_attr_indexed TYPE string VALUE 'indexed',
- lc_xml_attr_xmlspacing TYPE string VALUE 'xml:space'.
-
-
- DATA: lo_document TYPE REF TO if_ixml_document,
- lo_element_root TYPE REF TO if_ixml_element,
- lo_element_authors TYPE REF TO if_ixml_element,
- lo_element_author TYPE REF TO if_ixml_element,
- lo_element_commentlist TYPE REF TO if_ixml_element,
- lo_element_comment TYPE REF TO if_ixml_element,
- lo_element_text TYPE REF TO if_ixml_element,
- lo_element_r TYPE REF TO if_ixml_element,
- lo_element_rpr TYPE REF TO if_ixml_element,
- lo_element_b TYPE REF TO if_ixml_element,
- lo_element_sz TYPE REF TO if_ixml_element,
- lo_element_color TYPE REF TO if_ixml_element,
- lo_element_rfont TYPE REF TO if_ixml_element,
-* lo_element_charset TYPE REF TO if_ixml_element,
- lo_element_family TYPE REF TO if_ixml_element,
- lo_element_t TYPE REF TO if_ixml_element,
- lo_iterator TYPE REF TO zcl_excel_collection_iterator,
- lo_comments TYPE REF TO zcl_excel_comments,
- lo_comment TYPE REF TO zcl_excel_comment.
- DATA: lv_rel_id TYPE i,
- lv_author TYPE string.
+ DATA:
+ lo_comment TYPE REF TO zcl_excel_comment,
+ lo_comments TYPE REF TO zcl_excel_comments,
+ lo_document TYPE REF TO if_ixml_document,
+ lo_element_author TYPE REF TO if_ixml_element,
+ lo_element_authors TYPE REF TO if_ixml_element,
+ lo_element_comment TYPE REF TO if_ixml_element,
+ lo_element_commentlist TYPE REF TO if_ixml_element,
+ lo_element_r TYPE REF TO if_ixml_element,
+ lo_element_root TYPE REF TO if_ixml_element,
+ lo_element_rpr TYPE REF TO if_ixml_element,
+ lo_element_t TYPE REF TO if_ixml_element,
+ lo_element_text TYPE REF TO if_ixml_element,
+ lo_iterator TYPE REF TO zcl_excel_collection_iterator,
+ lv_author TYPE string.
**********************************************************************
* STEP 1: Create [Content_Types].xml into the root of the ZIP
@@ -2394,76 +2373,76 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
***********************************************************************
* STEP 3: Create main node relationships
- lo_element_root = lo_document->create_simple_element( name = lc_xml_node_comments
+ lo_element_root = lo_document->create_simple_element( name = `comments`
parent = lo_document ).
- lo_element_root->set_attribute_ns( name = 'xmlns'
- value = lc_xml_node_ns ).
+ lo_element_root->set_attribute_ns( name = `xmlns`
+ value = `http://schemas.openxmlformats.org/spreadsheetml/2006/main` ).
**********************************************************************
* STEP 4: Create authors
* TO-DO: management of several authors
- lo_element_authors = lo_document->create_simple_element( name = lc_xml_node_authors
- parent = lo_document ).
+ lo_element_authors = lo_document->create_simple_element( name = `authors`
+ parent = lo_element_root ).
- lo_element_author = lo_document->create_simple_element( name = lc_xml_node_author
- parent = lo_document ).
+ lo_element_author = lo_document->create_simple_element( name = `author`
+ parent = lo_element_authors ).
lv_author = sy-uname.
lo_element_author->set_value( lv_author ).
- lo_element_authors->append_child( new_child = lo_element_author ).
- lo_element_root->append_child( new_child = lo_element_authors ).
-
**********************************************************************
* STEP 5: Create comments
- lo_element_commentlist = lo_document->create_simple_element( name = lc_xml_node_commentlist
- parent = lo_document ).
+ lo_element_commentlist = lo_document->create_simple_element( name = `commentList`
+ parent = lo_element_root ).
lo_comments = io_worksheet->get_comments( ).
+ DATA:
+ lt_rtf TYPE zcl_excel_comment=>ty_rtf_fragments.
+ FIELD-SYMBOLS:
+ TYPE zcl_excel_comment=>ty_rtf_fragment.
+
lo_iterator = lo_comments->get_iterator( ).
WHILE lo_iterator->has_next( ) EQ abap_true.
lo_comment ?= lo_iterator->get_next( ).
- lo_element_comment = lo_document->create_simple_element( name = lc_xml_node_comment
- parent = lo_document ).
- lo_element_comment->set_attribute_ns( name = lc_xml_attr_ref
+ lo_element_comment = lo_document->create_simple_element( name = `comment`
+ parent = lo_element_commentlist ).
+ lo_element_comment->set_attribute_ns( name = `ref`
value = lo_comment->get_ref( ) ).
- lo_element_comment->set_attribute_ns( name = lc_xml_attr_authorid
- value = '0' ). " TO-DO
+ lo_element_comment->set_attribute_ns( name = `authorId`
+ value = `0` ). " TO-DO
- lo_element_text = lo_document->create_simple_element( name = lc_xml_node_text
- parent = lo_document ).
- lo_element_r = lo_document->create_simple_element( name = lc_xml_node_r
- parent = lo_document ).
- lo_element_rpr = lo_document->create_simple_element( name = lc_xml_node_rpr
- parent = lo_document ).
+ lo_element_text = lo_document->create_simple_element( name = `text`
+ parent = lo_element_comment ).
- lo_element_b = lo_document->create_simple_element( name = lc_xml_node_b
- parent = lo_document ).
- lo_element_rpr->append_child( new_child = lo_element_b ).
+ lt_rtf = lo_comment->get_text_rtf( ).
- add_1_val_child_node( io_document = lo_document io_parent = lo_element_rpr iv_elem_name = lc_xml_node_sz iv_attr_name = lc_xml_attr_val iv_attr_value = '9' ).
- add_1_val_child_node( io_document = lo_document io_parent = lo_element_rpr iv_elem_name = lc_xml_node_color iv_attr_name = lc_xml_attr_indexed iv_attr_value = '81' ).
- add_1_val_child_node( io_document = lo_document io_parent = lo_element_rpr iv_elem_name = lc_xml_node_rfont iv_attr_name = lc_xml_attr_val iv_attr_value = 'Tahoma' ).
- add_1_val_child_node( io_document = lo_document io_parent = lo_element_rpr iv_elem_name = lc_xml_node_family iv_attr_name = lc_xml_attr_val iv_attr_value = '2' ).
+ LOOP AT lt_rtf ASSIGNING .
- lo_element_r->append_child( new_child = lo_element_rpr ).
- lo_element_t = lo_document->create_simple_element( name = lc_xml_node_t
- parent = lo_document ).
- lo_element_t->set_attribute_ns( name = lc_xml_attr_xmlspacing
- value = 'preserve' ).
- lo_element_t->set_value( lo_comment->get_text( ) ).
- lo_element_r->append_child( new_child = lo_element_t ).
+ lo_element_r = lo_document->create_simple_element( name = `r`
+ parent = lo_element_text ).
+ lo_element_rpr = lo_document->create_simple_element( name = `rPr`
+ parent = lo_element_r ).
+
+ create_xl_styles_font_node(
+ io_document = lo_document
+ io_parent = lo_element_rpr
+ is_font = -rtf
+ iv_use_rtf = abap_true " generate , not element for font
+ ).
+
+ lo_element_t = lo_document->create_simple_element( name = `t`
+ parent = lo_element_r ).
+ lo_element_t->set_attribute_ns( name = `xml:space`
+ value = `preserve` ).
+ lo_element_t->set_value( -text ).
+
+ ENDLOOP.
- lo_element_text->append_child( new_child = lo_element_r ).
- lo_element_comment->append_child( new_child = lo_element_text ).
- lo_element_commentlist->append_child( new_child = lo_element_comment ).
ENDWHILE.
- lo_element_root->append_child( new_child = lo_element_commentlist ).
-
**********************************************************************
* STEP 5: Create xstring stream
ep_content = render_xml_document( lo_document ).
@@ -3095,107 +3074,47 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
ENDMETHOD.
- METHOD create_xl_drawing_for_comments.
-** Constant node name
- CONSTANTS: lc_xml_node_xml TYPE string VALUE 'xml',
- lc_xml_node_ns_v TYPE string VALUE 'urn:schemas-microsoft-com:vml',
- lc_xml_node_ns_o TYPE string VALUE 'urn:schemas-microsoft-com:office:office',
- lc_xml_node_ns_x TYPE string VALUE 'urn:schemas-microsoft-com:office:excel',
- " shapelayout
- lc_xml_node_shapelayout TYPE string VALUE 'o:shapelayout',
- lc_xml_node_idmap TYPE string VALUE 'o:idmap',
- " shapetype
- lc_xml_node_shapetype TYPE string VALUE 'v:shapetype',
- lc_xml_node_stroke TYPE string VALUE 'v:stroke',
- lc_xml_node_path TYPE string VALUE 'v:path',
- " shape
- lc_xml_node_shape TYPE string VALUE 'v:shape',
- lc_xml_node_fill TYPE string VALUE 'v:fill',
- lc_xml_node_shadow TYPE string VALUE 'v:shadow',
- lc_xml_node_textbox TYPE string VALUE 'v:textbox',
- lc_xml_node_div TYPE string VALUE 'div',
- lc_xml_node_clientdata TYPE string VALUE 'x:ClientData',
- lc_xml_node_movewithcells TYPE string VALUE 'x:MoveWithCells',
- lc_xml_node_sizewithcells TYPE string VALUE 'x:SizeWithCells',
- lc_xml_node_anchor TYPE string VALUE 'x:Anchor',
- lc_xml_node_autofill TYPE string VALUE 'x:AutoFill',
- lc_xml_node_row TYPE string VALUE 'x:Row',
- lc_xml_node_column TYPE string VALUE 'x:Column',
- " attributes,
- lc_xml_attr_vext TYPE string VALUE 'v:ext',
- lc_xml_attr_data TYPE string VALUE 'data',
- lc_xml_attr_id TYPE string VALUE 'id',
- lc_xml_attr_coordsize TYPE string VALUE 'coordsize',
- lc_xml_attr_ospt TYPE string VALUE 'o:spt',
- lc_xml_attr_joinstyle TYPE string VALUE 'joinstyle',
- lc_xml_attr_path TYPE string VALUE 'path',
- lc_xml_attr_gradientshapeok TYPE string VALUE 'gradientshapeok',
- lc_xml_attr_oconnecttype TYPE string VALUE 'o:connecttype',
- lc_xml_attr_type TYPE string VALUE 'type',
- lc_xml_attr_style TYPE string VALUE 'style',
- lc_xml_attr_fillcolor TYPE string VALUE 'fillcolor',
- lc_xml_attr_oinsetmode TYPE string VALUE 'o:insetmode',
- lc_xml_attr_color TYPE string VALUE 'color',
- lc_xml_attr_color2 TYPE string VALUE 'color2',
- lc_xml_attr_on TYPE string VALUE 'on',
- lc_xml_attr_obscured TYPE string VALUE 'obscured',
- lc_xml_attr_objecttype TYPE string VALUE 'ObjectType',
- " attributes values
- lc_xml_attr_val_edit TYPE string VALUE 'edit',
- lc_xml_attr_val_rect TYPE string VALUE 'rect',
- lc_xml_attr_val_t TYPE string VALUE 't',
- lc_xml_attr_val_miter TYPE string VALUE 'miter',
- lc_xml_attr_val_auto TYPE string VALUE 'auto',
- lc_xml_attr_val_black TYPE string VALUE 'black',
- lc_xml_attr_val_none TYPE string VALUE 'none',
- lc_xml_attr_val_msodir TYPE string VALUE 'mso-direction-alt:auto',
- lc_xml_attr_val_note TYPE string VALUE 'Note'.
+METHOD create_xl_drawing_for_comments.
+ DATA: lo_document TYPE REF TO if_ixml_document,
+ lo_element_root TYPE REF TO if_ixml_element,
+ "shapelayout
+ lo_element_shapelayout TYPE REF TO if_ixml_element,
+ lo_element_idmap TYPE REF TO if_ixml_element,
+ "shapetype
+ lo_element_shapetype TYPE REF TO if_ixml_element,
+ lo_element_stroke TYPE REF TO if_ixml_element,
+ lo_element_path TYPE REF TO if_ixml_element,
+ "shape
+ lo_element_shape TYPE REF TO if_ixml_element,
+ lo_element_fill TYPE REF TO if_ixml_element,
+ lo_element_shadow TYPE REF TO if_ixml_element,
+ lo_element_textbox TYPE REF TO if_ixml_element,
+ lo_element_div TYPE REF TO if_ixml_element,
+ lo_element_clientdata TYPE REF TO if_ixml_element,
+ lo_element_movewithcells TYPE REF TO if_ixml_element,
+ lo_element_sizewithcells TYPE REF TO if_ixml_element,
+ lo_element_anchor TYPE REF TO if_ixml_element,
+ lo_element_autofill TYPE REF TO if_ixml_element,
+ lo_element_row TYPE REF TO if_ixml_element,
+ lo_element_column TYPE REF TO if_ixml_element,
+ lo_iterator TYPE REF TO zcl_excel_collection_iterator,
+ lo_anchors TYPE REF TO if_ixml_node_collection,
+ lo_anchor TYPE REF TO if_ixml_element,
+ lo_comments TYPE REF TO zcl_excel_comments,
+ lo_comment TYPE REF TO zcl_excel_comment,
+ lv_row TYPE zexcel_cell_row,
+ lv_str_column TYPE zexcel_cell_column_alpha,
+ lv_column TYPE zexcel_cell_column,
+ lv_index TYPE i,
+ lv_attr_id_index TYPE i,
+ lv_attr_id TYPE string,
+ lv_int_value TYPE i,
+ lv_int_value_string TYPE string,
+ lv_anchor TYPE string.
- DATA: lo_document TYPE REF TO if_ixml_document,
- lo_element_root TYPE REF TO if_ixml_element,
- "shapelayout
- lo_element_shapelayout TYPE REF TO if_ixml_element,
- lo_element_idmap TYPE REF TO if_ixml_element,
- "shapetype
- lo_element_shapetype TYPE REF TO if_ixml_element,
- lo_element_stroke TYPE REF TO if_ixml_element,
- lo_element_path TYPE REF TO if_ixml_element,
- "shape
- lo_element_shape TYPE REF TO if_ixml_element,
- lo_element_fill TYPE REF TO if_ixml_element,
- lo_element_shadow TYPE REF TO if_ixml_element,
- lo_element_textbox TYPE REF TO if_ixml_element,
- lo_element_div TYPE REF TO if_ixml_element,
- lo_element_clientdata TYPE REF TO if_ixml_element,
- lo_element_movewithcells TYPE REF TO if_ixml_element,
- lo_element_sizewithcells TYPE REF TO if_ixml_element,
- lo_element_anchor TYPE REF TO if_ixml_element,
- lo_element_autofill TYPE REF TO if_ixml_element,
- lo_element_row TYPE REF TO if_ixml_element,
- lo_element_column TYPE REF TO if_ixml_element,
- lo_iterator TYPE REF TO zcl_excel_collection_iterator,
- lo_comments TYPE REF TO zcl_excel_comments,
- lo_comment TYPE REF TO zcl_excel_comment,
- lv_row TYPE zexcel_cell_row,
- lv_str_column TYPE zexcel_cell_column_alpha,
- lv_column TYPE zexcel_cell_column,
- lv_index TYPE i,
- lv_attr_id_index TYPE i,
- lv_attr_id TYPE string,
- lv_int_value TYPE i,
- lv_int_value_string TYPE string.
- DATA: lv_rel_id TYPE i.
- DATA lv_anchor TYPE string.
- DATA lv_bottom_row TYPE i.
- DATA lv_right_column TYPE i.
- DATA lv_bottom_row_str TYPE string.
- DATA lv_right_column_str TYPE string.
- DATA lv_top_row TYPE i.
- DATA lv_left_column TYPE i.
- DATA lv_top_row_str TYPE string.
- DATA lv_left_column_str TYPE string.
-
+ lo_comments = io_worksheet->get_comments( ).
+ IF lo_comments->gv_full_vml IS INITIAL.
**********************************************************************
* STEP 1: Create XML document
@@ -3203,59 +3122,48 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
***********************************************************************
* STEP 2: Create main node relationships
- lo_element_root = lo_document->create_simple_element( name = lc_xml_node_xml
- parent = lo_document ).
- lo_element_root->set_attribute_ns( name = 'xmlns:v' value = lc_xml_node_ns_v ).
- lo_element_root->set_attribute_ns( name = 'xmlns:o' value = lc_xml_node_ns_o ).
- lo_element_root->set_attribute_ns( name = 'xmlns:x' value = lc_xml_node_ns_x ).
+ lo_element_root = lo_document->create_simple_element( name = `xml` parent = lo_document ).
+ lo_element_root->set_attribute_ns( name = `xmlns:v` value = `urn:schemas-microsoft-com:vml` ).
+ lo_element_root->set_attribute_ns( name = `xmlns:o` value = `urn:schemas-microsoft-com:office:office` ).
+ lo_element_root->set_attribute_ns( name = `xmlns:x` value = `urn:schemas-microsoft-com:office:excel` ).
**********************************************************************
* STEP 3: Create o:shapeLayout
* TO-DO: management of several authors
- lo_element_shapelayout = lo_document->create_simple_element( name = lc_xml_node_shapelayout
- parent = lo_document ).
+ lo_element_shapelayout = lo_document->create_simple_element( name = `o:shapelayout`
+ parent = lo_element_root ).
- lo_element_shapelayout->set_attribute_ns( name = lc_xml_attr_vext
- value = lc_xml_attr_val_edit ).
+ lo_element_shapelayout->set_attribute_ns( name = `v:ext`
+ value = `edit` ).
- lo_element_idmap = lo_document->create_simple_element( name = lc_xml_node_idmap
- parent = lo_document ).
- lo_element_idmap->set_attribute_ns( name = lc_xml_attr_vext value = lc_xml_attr_val_edit ).
- lo_element_idmap->set_attribute_ns( name = lc_xml_attr_data value = '1' ).
-
- lo_element_shapelayout->append_child( new_child = lo_element_idmap ).
-
- lo_element_root->append_child( new_child = lo_element_shapelayout ).
+ lo_element_idmap = lo_document->create_simple_element( name = `o:idmap`
+ parent = lo_element_shapelayout ).
+ lo_element_idmap->set_attribute_ns( name = `v:ext` value = `edit` ).
+ lo_element_idmap->set_attribute_ns( name = `data` value = `1` ).
**********************************************************************
* STEP 4: Create v:shapetype
- lo_element_shapetype = lo_document->create_simple_element( name = lc_xml_node_shapetype
- parent = lo_document ).
+ lo_element_shapetype = lo_document->create_simple_element( name = `v:shapetype`
+ parent = lo_element_root ).
- lo_element_shapetype->set_attribute_ns( name = lc_xml_attr_id value = '_x0000_t202' ).
- lo_element_shapetype->set_attribute_ns( name = lc_xml_attr_coordsize value = '21600,21600' ).
- lo_element_shapetype->set_attribute_ns( name = lc_xml_attr_ospt value = '202' ).
- lo_element_shapetype->set_attribute_ns( name = lc_xml_attr_path value = 'm,l,21600r21600,l21600,xe' ).
+ lo_element_shapetype->set_attribute_ns( name = `id` value = `_x0000_t202` ).
+ lo_element_shapetype->set_attribute_ns( name = `coordsize` value = `21600,21600` ).
+ lo_element_shapetype->set_attribute_ns( name = `o:spt` value = `202` ).
+ lo_element_shapetype->set_attribute_ns( name = `path` value = `m,l,21600r21600,l21600,xe` ).
- lo_element_stroke = lo_document->create_simple_element( name = lc_xml_node_stroke
- parent = lo_document ).
- lo_element_stroke->set_attribute_ns( name = lc_xml_attr_joinstyle value = lc_xml_attr_val_miter ).
+ lo_element_stroke = lo_document->create_simple_element( name = `v:stroke`
+ parent = lo_element_shapetype ).
+ lo_element_stroke->set_attribute_ns( name = `joinstyle` value = `miter` ).
- lo_element_path = lo_document->create_simple_element( name = lc_xml_node_path
- parent = lo_document ).
- lo_element_path->set_attribute_ns( name = lc_xml_attr_gradientshapeok value = lc_xml_attr_val_t ).
- lo_element_path->set_attribute_ns( name = lc_xml_attr_oconnecttype value = lc_xml_attr_val_rect ).
-
- lo_element_shapetype->append_child( new_child = lo_element_stroke ).
- lo_element_shapetype->append_child( new_child = lo_element_path ).
-
- lo_element_root->append_child( new_child = lo_element_shapetype ).
+ lo_element_path = lo_document->create_simple_element( name = `v:path`
+ parent = lo_element_shapetype ).
+ lo_element_path->set_attribute_ns( name = `gradientshapeok` value = `t` ).
+ lo_element_path->set_attribute_ns( name = `o:connecttype` value = `rect` ).
**********************************************************************
* STEP 4: Create v:shapetype
- lo_comments = io_worksheet->get_comments( ).
lo_iterator = lo_comments->get_iterator( ).
WHILE lo_iterator->has_next( ) EQ abap_true.
@@ -3267,56 +3175,54 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
e_row = lv_row ).
lv_column = zcl_excel_common=>convert_column2int( lv_str_column ).
- lo_element_shape = lo_document->create_simple_element( name = lc_xml_node_shape
- parent = lo_document ).
+ lo_element_shape = lo_document->create_simple_element( name = `v:shape`
+ parent = lo_element_root ).
lv_attr_id_index = 1024 + lv_index.
lv_attr_id = lv_attr_id_index.
- CONCATENATE '_x0000_s' lv_attr_id INTO lv_attr_id.
- lo_element_shape->set_attribute_ns( name = lc_xml_attr_id value = lv_attr_id ).
- lo_element_shape->set_attribute_ns( name = lc_xml_attr_type value = '#_x0000_t202' ).
- lo_element_shape->set_attribute_ns( name = lc_xml_attr_style value = 'size:auto;width:auto;height:auto;position:absolute;margin-left:117pt;margin-top:172.5pt;z-index:1;visibility:hidden' ).
- lo_element_shape->set_attribute_ns( name = lc_xml_attr_fillcolor value = '#ffffe1' ).
- lo_element_shape->set_attribute_ns( name = lc_xml_attr_oinsetmode value = lc_xml_attr_val_auto ).
+ CONCATENATE `_x0000_s` lv_attr_id INTO lv_attr_id.
+ lo_element_shape->set_attribute_ns( name = `id` value = lv_attr_id ).
+ lo_element_shape->set_attribute_ns( name = `type` value = `#_x0000_t202` ).
+ lo_element_shape->set_attribute_ns( name = `style` value = `size:auto;width:auto;height:auto;position:absolute;margin-left:117pt;margin-top:172.5pt;z-index:1;visibility:hidden` ).
+ lo_element_shape->set_attribute_ns( name = `fillcolor` value = `#ffffe1` ).
+ lo_element_shape->set_attribute_ns( name = `o:insetmode` value = `auto` ).
" Fill
- lo_element_fill = lo_document->create_simple_element( name = lc_xml_node_fill
- parent = lo_document ).
- lo_element_fill->set_attribute_ns( name = lc_xml_attr_color2 value = '#ffffe1' ).
- lo_element_shape->append_child( new_child = lo_element_fill ).
+ lo_element_fill = lo_document->create_simple_element( name = `v:fill`
+ parent = lo_element_shape ).
+ lo_element_fill->set_attribute_ns( name = `color2` value = `#ffffe1` ).
+
" Shadow
- lo_element_shadow = lo_document->create_simple_element( name = lc_xml_node_shadow
- parent = lo_document ).
- lo_element_shadow->set_attribute_ns( name = lc_xml_attr_on value = lc_xml_attr_val_t ).
- lo_element_shadow->set_attribute_ns( name = lc_xml_attr_color value = lc_xml_attr_val_black ).
- lo_element_shadow->set_attribute_ns( name = lc_xml_attr_obscured value = lc_xml_attr_val_t ).
- lo_element_shape->append_child( new_child = lo_element_shadow ).
+ lo_element_shadow = lo_document->create_simple_element( name = `v:shadow`
+ parent = lo_element_shape ).
+ lo_element_shadow->set_attribute_ns( name = `on` value = `t` ).
+ lo_element_shadow->set_attribute_ns( name = `color` value = `black` ).
+ lo_element_shadow->set_attribute_ns( name = `obscured` value = `t` ).
+
" Path
- lo_element_path = lo_document->create_simple_element( name = lc_xml_node_path
- parent = lo_document ).
- lo_element_path->set_attribute_ns( name = lc_xml_attr_oconnecttype value = lc_xml_attr_val_none ).
- lo_element_shape->append_child( new_child = lo_element_path ).
+ lo_element_path = lo_document->create_simple_element( name = `v:path`
+ parent = lo_element_shape ).
+ lo_element_path->set_attribute_ns( name = `o:connecttype` value = `none` ).
+
" Textbox
- lo_element_textbox = lo_document->create_simple_element( name = lc_xml_node_textbox
- parent = lo_document ).
- lo_element_textbox->set_attribute_ns( name = lc_xml_attr_style value = lc_xml_attr_val_msodir ).
- lo_element_div = lo_document->create_simple_element( name = lc_xml_node_div
- parent = lo_document ).
- lo_element_div->set_attribute_ns( name = lc_xml_attr_style value = 'text-align:left' ).
- lo_element_textbox->append_child( new_child = lo_element_div ).
- lo_element_shape->append_child( new_child = lo_element_textbox ).
+ lo_element_textbox = lo_document->create_simple_element( name = `v:textbox`
+ parent = lo_element_shape ).
+ lo_element_textbox->set_attribute_ns( name = `style` value = `mso-direction-alt:auto` ).
+ lo_element_div = lo_document->create_simple_element( name = `div`
+ parent = lo_element_div ).
+ lo_element_div->set_attribute_ns( name = `style` value = `text-align:left` ).
+
" ClientData
- lo_element_clientdata = lo_document->create_simple_element( name = lc_xml_node_clientdata
- parent = lo_document ).
- lo_element_clientdata->set_attribute_ns( name = lc_xml_attr_objecttype value = lc_xml_attr_val_note ).
- lo_element_movewithcells = lo_document->create_simple_element( name = lc_xml_node_movewithcells
- parent = lo_document ).
- lo_element_clientdata->append_child( new_child = lo_element_movewithcells ).
- lo_element_sizewithcells = lo_document->create_simple_element( name = lc_xml_node_sizewithcells
- parent = lo_document ).
- lo_element_clientdata->append_child( new_child = lo_element_sizewithcells ).
- lo_element_anchor = lo_document->create_simple_element( name = lc_xml_node_anchor
- parent = lo_document ).
+ lo_element_clientdata = lo_document->create_simple_element( name = `x:ClientData`
+ parent = lo_element_shape ).
+ lo_element_clientdata->set_attribute_ns( name = `ObjectType` value = `Note` ).
+ lo_element_movewithcells = lo_document->create_simple_element( name = `x:MoveWithCells`
+ parent = lo_element_clientdata ).
+ lo_element_sizewithcells = lo_document->create_simple_element( name = `x:SizeWithCells`
+ parent = lo_element_clientdata ).
+
+ lo_element_anchor = lo_document->create_simple_element( name = `x:Anchor`
+ parent = lo_element_clientdata ).
" Anchor represents 4 pairs of numbers:
" ( left column, left offset ), ( top row, top offset ),
@@ -3324,44 +3230,61 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
" Offsets are a number of pixels.
" Reference: Anchor Class at
" https://learn.microsoft.com/en-us/dotnet/api/documentformat.openxml.vml.spreadsheet.anchor?view=openxml-3.0.1
- lv_anchor = number2string( lo_comment->get_left_column( ) )
- && `, ` && number2string( lo_comment->get_left_offset( ) )
- && `, ` && number2string( lo_comment->get_top_row( ) )
- && `, ` && number2string( lo_comment->get_top_offset( ) )
- && `, ` && number2string( lo_comment->get_right_column( ) )
- && `, ` && number2string( lo_comment->get_right_offset( ) )
- && `, ` && number2string( lo_comment->get_bottom_row( ) )
- && `, ` && number2string( lo_comment->get_bottom_offset( ) ).
+ lv_anchor = get_comment_anchor( lo_comment ).
lo_element_anchor->set_value( lv_anchor ).
- lo_element_clientdata->append_child( new_child = lo_element_anchor ).
- lo_element_autofill = lo_document->create_simple_element( name = lc_xml_node_autofill
- parent = lo_document ).
- lo_element_autofill->set_value( 'False' ).
- lo_element_clientdata->append_child( new_child = lo_element_autofill ).
- lo_element_row = lo_document->create_simple_element( name = lc_xml_node_row
- parent = lo_document ).
+ lo_element_autofill = lo_document->create_simple_element( name = `x:AutoFill`
+ parent = lo_element_clientdata ).
+ lo_element_autofill->set_value( `False` ).
+
+ lo_element_row = lo_document->create_simple_element( name = `x:Row`
+ parent = lo_element_clientdata ).
lv_int_value = lv_row - 1.
lv_int_value_string = lv_int_value.
lo_element_row->set_value( lv_int_value_string ).
- lo_element_clientdata->append_child( new_child = lo_element_row ).
- lo_element_column = lo_document->create_simple_element( name = lc_xml_node_column
- parent = lo_document ).
+
+ lo_element_column = lo_document->create_simple_element( name = `x:Column`
+ parent = lo_element_clientdata ).
lv_int_value = lv_column - 1.
lv_int_value_string = lv_int_value.
lo_element_column->set_value( lv_int_value_string ).
- lo_element_clientdata->append_child( new_child = lo_element_column ).
- lo_element_shape->append_child( new_child = lo_element_clientdata ).
-
- lo_element_root->append_child( new_child = lo_element_shape ).
ENDWHILE.
**********************************************************************
* STEP 6: Create xstring stream
ep_content = render_xml_document( lo_document ).
- ENDMETHOD.
+ ELSE.
+
+* Replace the eight numbers in with the current values
+* (they may have been changed before calling the writer
+ lo_document = ixml->create_document( ).
+ CALL TRANSFORMATION id
+ SOURCE XML lo_comments->gv_full_vml
+ RESULT XML lo_document.
+
+ lo_anchors = lo_document->get_elements_by_tag_name_ns(
+ name = `anchor`
+ uri = `urn:schemas-microsoft-com:office:excel`
+ ).
+
+ lo_iterator = lo_comments->get_iterator( ).
+ WHILE lo_iterator->has_next( ).
+ lo_anchor ?= lo_anchors->get_item( sy-index - 1 ).
+ IF lo_anchor IS NOT BOUND.
+ EXIT.
+ ENDIF.
+ lo_comment ?= lo_iterator->get_next( ).
+ lv_anchor = get_comment_anchor( lo_comment ).
+ lo_anchor->set_value( lv_anchor ).
+ ENDWHILE.
+
+ ep_content = render_xml_document( lo_document ).
+
+ ENDIF.
+
+ENDMETHOD.
METHOD create_xl_drawing_for_hdft_im.
@@ -4430,8 +4353,6 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
lo_element_2->set_attribute_ns( name = 's' value = lv_value ).
lo_element_2->set_attribute_ns( name = 'customFormat' value = '1' ).
ENDIF.
- ELSE.
-
ENDIF.
ENDWHILE.
@@ -6254,10 +6175,14 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
" and then to convert the STRING variable to UTF-8 using method CL_ABAP_CODEPAGE=>CONVERT_TO.
" 1) RENDER TO XML STRING
- lo_streamfactory = me->ixml->create_stream_factory( ).
- lo_ostream = lo_streamfactory->create_ostream_cstring( string = lv_string ).
- lo_renderer = me->ixml->create_renderer( ostream = lo_ostream document = io_document ).
- lo_renderer->render( ).
+ IF io_document IS BOUND.
+ lo_streamfactory = me->ixml->create_stream_factory( ).
+ lo_ostream = lo_streamfactory->create_ostream_cstring( string = lv_string ).
+ lo_renderer = me->ixml->create_renderer( ostream = lo_ostream document = io_document ).
+ lo_renderer->render( ).
+ ELSE.
+ lv_string = iv_document_as_string.
+ ENDIF.
" 2) CONVERT IT TO UTF-8
"-----------------
@@ -6571,4 +6496,17 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
ep_file = me->create( ).
ENDMETHOD.
+
+
+ METHOD GET_COMMENT_ANCHOR.
+ ev_anchor = number2string( io_comment->get_left_column( ) )
+ && `, ` && number2string( io_comment->get_left_offset( ) )
+ && `, ` && number2string( io_comment->get_top_row( ) )
+ && `, ` && number2string( io_comment->get_top_offset( ) )
+ && `, ` && number2string( io_comment->get_right_column( ) )
+ && `, ` && number2string( io_comment->get_right_offset( ) )
+ && `, ` && number2string( io_comment->get_bottom_row( ) )
+ && `, ` && number2string( io_comment->get_bottom_offset( ) ).
+ condense ev_anchor.
+ ENDMETHOD.
ENDCLASS.
diff --git a/src/zcl_excel_writer_2007.clas.xml b/src/zcl_excel_writer_2007.clas.xml
index a10f598..8175dbb 100644
--- a/src/zcl_excel_writer_2007.clas.xml
+++ b/src/zcl_excel_writer_2007.clas.xml
@@ -23,41 +23,21 @@
E
Create Excel
-
- CREATE
- I
- Create Excel
-
CREATE_CONTENT_TYPES
E
Create '[Content_Types].xml'
-
- CREATE_CONTENT_TYPES
- I
- Create '[Content_Types].xml'
-
CREATE_DOCPROPS_APP
E
Create 'docProps/app.xml'
-
- CREATE_DOCPROPS_APP
- I
- Create 'docProps/app.xml'
-
CREATE_DOCPROPS_CORE
E
Create 'docProps/core.xml'
-
- CREATE_DOCPROPS_CORE
- I
- Create 'docProps/core.xml'
-
CREATE_DXF_STYLE
E
@@ -68,31 +48,21 @@
E
Create '_rels/.rels'
-
- CREATE_RELATIONSHIPS
- I
- Create '_rels/.rels'
-
CREATE_XL_CHARTS
E
Create 'xl/charts/chart1.xml'
- CREATE_XL_CHARTS
- I
- Create 'xl/charts/chart1.xml'
+ CREATE_XL_COMMENTS
+ E
+ Create 'xl/comments1.xml'
CREATE_XL_DRAWINGS
E
Create 'xl/drawings/drawing1.xml'
-
- CREATE_XL_DRAWINGS
- I
- Create 'xl/drawings/drawing1.xml'
-
CREATE_XL_DRAWINGS_HDFT_RELS
E
@@ -103,11 +73,6 @@
E
Create 'xl/drawings/_rels/drawing1.xml.rels'
-
- CREATE_XL_DRAWINGS_RELS
- I
- Create 'xl/drawings/_rels/drawing1.xml.rels'
-
CREATE_XL_DRAWINGS_VML
E
@@ -124,40 +89,25 @@
Create 'xl/drawings/drawing1.xml'
- CREATE_XL_DRAWING_ANCHOR
- I
- Create 'xl/drawings/drawing1.xml'
+ CREATE_XL_DRAWING_FOR_COMMENTS
+ E
+ Create 'xl/drawings/vmlDrawing1.vml' (style for comments)
CREATE_XL_RELATIONSHIPS
E
Create 'xl/_rels/workbook.xml.rels'
-
- CREATE_XL_RELATIONSHIPS
- I
- Create 'xl/_rels/workbook.xml.rels'
-
CREATE_XL_SHAREDSTRINGS
E
Create 'xl/sharedStrings.xml'
-
- CREATE_XL_SHAREDSTRINGS
- I
- Create 'xl/sharedStrings.xml'
-
CREATE_XL_SHEET
E
Create 'xl/sheet.xml'
-
- CREATE_XL_SHEET
- I
- Create 'xl/sheet.xml'
-
CREATE_XL_SHEET_PAGEBREAKS
E
@@ -168,11 +118,6 @@
E
Create 'xl/workbook/_rels/sheet.xml.rels'
-
- CREATE_XL_SHEET_RELS
- I
- Create 'xl/workbook/_rels/sheet.xml.rels'
-
CREATE_XL_SHEET_SHEET_DATA
E
@@ -183,251 +128,126 @@
E
Create 'xl/styles.xml'
-
- CREATE_XL_STYLES
- I
- Create 'xl/styles.xml'
-
CREATE_XL_STYLES_COLOR_NODE
E
Create 'xl/styles.xml' color node
-
- CREATE_XL_STYLES_COLOR_NODE
- I
- Create 'xl/styles.xml' color node
-
CREATE_XL_TABLE
E
Create 'xl/tables/____.xml'
-
- CREATE_XL_TABLE
- I
- Create 'xl/tables/____.xml'
-
CREATE_XL_THEME
E
Create 'xl/theme/theme1.xml'
-
- CREATE_XL_THEME
- I
- Create 'xl/theme/theme1.xml'
-
CREATE_XL_WORKBOOK
E
Create 'xl/workbook.xml'
-
- CREATE_XL_WORKBOOK
- I
- Create 'xl/workbook.xml'
-
C_CONTENT_TYPES
E
Content Type XML File Name
-
- C_CONTENT_TYPES
- I
- Content Type XML File Name
-
C_DOCPROPS_APP
E
App XML File Name
-
- C_DOCPROPS_APP
- I
- App XML File Name
-
C_DOCPROPS_CORE
E
Core XML File Name
-
- C_DOCPROPS_CORE
- I
- Core XML File Name
-
C_OFF
E
Byte Value
-
- C_OFF
- I
- Byte Value
-
C_ON
E
Byte Value
-
- C_ON
- I
- Byte Value
-
C_RELATIONSHIPS
E
Rels XML File Name
-
- C_RELATIONSHIPS
- I
- Rels XML File Name
-
C_XL_CALCCHAIN
E
xlcalcChain XML File Name
-
- C_XL_CALCCHAIN
- I
- xlcalcChain XML File Name
-
C_XL_DRAWINGS
E
xlDrawings XML File Name
-
- C_XL_DRAWINGS
- I
- xlDrawings XML File Name
-
C_XL_DRAWINGS_RELS
E
xlDrawings XML File Name
-
- C_XL_DRAWINGS_RELS
- I
- xlDrawings XML File Name
-
C_XL_PRINTERSETTINGS
E
xlDrawings XML File Name
-
- C_XL_PRINTERSETTINGS
- I
- xlDrawings XML File Name
-
C_XL_RELATIONSHIPS
E
xlRels XML File Name
-
- C_XL_RELATIONSHIPS
- I
- xlRels XML File Name
-
C_XL_SHAREDSTRINGS
E
xlSharedStrings XML File Name
-
- C_XL_SHAREDSTRINGS
- I
- xlSharedStrings XML File Name
-
C_XL_SHEET
E
xlSheet XML File Name Template
-
- C_XL_SHEET
- I
- xlSheet XML File Name Template
-
C_XL_SHEET_RELS
E
xlSheetRels XML File Name Template
-
- C_XL_SHEET_RELS
- I
- xlSheetRels XML File Name Template
-
C_XL_STYLES
E
xlStyles XML File Name
-
- C_XL_STYLES
- I
- xlStyles XML File Name
-
C_XL_THEME
E
xlTheme XML File Name
-
- C_XL_THEME
- I
- xlTheme XML File Name
-
C_XL_WORKBOOK
E
xlWorkbook XML File Name
-
- C_XL_WORKBOOK
- I
- xlWorkbook XML File Name
-
EXCEL
E
Excel creator
-
- EXCEL
- I
- Excel creator
-
FLAG2BOOL
E
Convert a FLAG to BOOLEAN value
-
- FLAG2BOOL
- I
- Convert a FLAG to BOOLEAN value
-
GET_SHARED_STRING_INDEX
E
Get shared string index
-
- GET_SHARED_STRING_INDEX
- I
- Get shared string index
-
SET_VML_SHAPE_FOOTER
E
@@ -448,32 +268,37 @@
E
Shared Strings
-
- SHARED_STRINGS
- I
- Shared Strings
-
STYLES_COND_MAPPING
E
Styles mapping
-
- STYLES_COND_MAPPING
- I
- Styles mapping
-
STYLES_MAPPING
E
Styles mapping
-
- STYLES_MAPPING
- I
- Styles mapping
-
+
+
+ GET_COMMENT_ANCHOR
+ IO_COMMENT
+ E
+ Comment
+
+
+ RENDER_XML_DOCUMENT
+ IO_DOCUMENT
+ E
+ XML Doc as object
+
+
+ RENDER_XML_DOCUMENT
+ IV_DOCUMENT_AS_STRING
+ E
+ XML Doc as string
+
+
diff --git a/src/zcl_excel_writer_csv.clas.xml b/src/zcl_excel_writer_csv.clas.xml
index 7b1d8ad..fbd3df4 100644
--- a/src/zcl_excel_writer_csv.clas.xml
+++ b/src/zcl_excel_writer_csv.clas.xml
@@ -17,21 +17,11 @@
E
Create
-
- CREATE
- I
- Create
-
CREATE_CSV
E
Create CSV ; Delimited format
-
- CREATE_CSV
- I
- Create CSV ; Delimited format
-
C_DEFAULT
E
@@ -42,41 +32,21 @@
E
Delimiter
-
- DELIMITER
- I
- Delimiter
-
ENCLOSURE
E
Text inclusure character
-
- ENCLOSURE
- I
- Text inclusure character
-
EOL
E
End Of line
-
- EOL
- I
- End Of line
-
EXCEL
E
Excel creator
-
- EXCEL
- I
- Excel creator
-
INITIAL_EXT_DATE
E
@@ -87,51 +57,26 @@
E
Activate worksheet by index before the CSV file creation
-
- SET_ACTIVE_SHEET_INDEX
- I
- Activate worksheet by index before the CSV file creation
-
SET_ACTIVE_SHEET_INDEX_BY_NAME
E
Activate worksheet by name before the CSV file creation
-
- SET_ACTIVE_SHEET_INDEX_BY_NAME
- I
- Activate worksheet by name before the CSV file creation
-
SET_DELIMITER
E
Set Delimiter value
-
- SET_DELIMITER
- I
- Set Delimiter value
-
SET_ENCLOSURE
E
Set Enclosure character
-
- SET_ENCLOSURE
- I
- Set Enclosure character
-
SET_ENDOFLINE
E
Set End Of Line character
-
- SET_ENDOFLINE
- I
- Set End Of Line character
-
SET_INITIAL_EXT_DATE
E
@@ -142,21 +87,11 @@
E
Active Worksheet
-
- WORKSHEET_INDEX
- I
- Active Worksheet
-
WORKSHEET_NAME
E
Worksheets name
-
- WORKSHEET_NAME
- I
- Worksheets name
-
diff --git a/src/zexcel_pane_state.dtel.xml b/src/zexcel_pane_state.dtel.xml
index d18f424..e70534d 100644
--- a/src/zexcel_pane_state.dtel.xml
+++ b/src/zexcel_pane_state.dtel.xml
@@ -9,15 +9,6 @@
E
STRG
-
- R
-
-
- -
- R
- Pane state
-
-
diff --git a/src/zexcel_pane_type.dtel.xml b/src/zexcel_pane_type.dtel.xml
index dca2f00..c2d68d6 100644
--- a/src/zexcel_pane_type.dtel.xml
+++ b/src/zexcel_pane_type.dtel.xml
@@ -9,15 +9,6 @@
E
STRG
-
- R
-
-
- -
- R
- Pane type
-
-
diff --git a/src/zexcel_s_fieldcatalog.tabl.xml b/src/zexcel_s_fieldcatalog.tabl.xml
index 30e2add..d49fd5d 100644
--- a/src/zexcel_s_fieldcatalog.tabl.xml
+++ b/src/zexcel_s_fieldcatalog.tabl.xml
@@ -130,125 +130,6 @@
E
-
- 1
- 4
- 5
- 6
- 8
- B
- C
- F
- G
- H
- K
- L
- N
- O
- Q
- R
- S
- T
- U
- V
- W
- c
- d
-
-
- -
- 1
- Fieldcatalog for Table Binding
-
- -
- 4
- Fieldcatalog for Table Binding
-
- -
- 5
- Fieldcatalog for Table Binding
-
- -
- 6
- Fieldcatalog for Table Binding
-
- -
- 8
- Fieldcatalog for Table Binding
-
- -
- B
- Fieldcatalog for Table Binding
-
- -
- C
- Fieldcatalog for Table Binding
-
- -
- F
- Fieldcatalog for Table Binding
-
- -
- G
- Fieldcatalog for Table Binding
-
- -
- H
- Fieldcatalog for Table Binding
-
- -
- K
- Fieldcatalog for Table Binding
-
- -
- L
- Fieldcatalog for Table Binding
-
- -
- N
- Fieldcatalog for Table Binding
-
- -
- O
- Fieldcatalog for Table Binding
-
- -
- Q
- Fieldcatalog for Table Binding
-
- -
- R
- Fieldcatalog for Table Binding
-
- -
- S
- Fieldcatalog for Table Binding
-
- -
- T
- Fieldcatalog for Table Binding
-
- -
- U
- Fieldcatalog for Table Binding
-
- -
- V
- Fieldcatalog for Table Binding
-
- -
- W
- Fieldcatalog for Table Binding
-
- -
- c
- Fieldcatalog for Table Binding
-
- -
- d
- Fieldcatalog for Table Binding
-
-