mirror of
https://github.com/abap2xlsx/abap2xlsx.git
synced 2025-05-06 20:26:20 +08:00
Merge branch 'master' into hvam/unit0511
This commit is contained in:
commit
295b6b840f
12
.apack-manifest.xml
Normal file
12
.apack-manifest.xml
Normal file
|
@ -0,0 +1,12 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<DATA>
|
||||||
|
<GROUP_ID>github.com/abap2xlsx/abap2xlsx</GROUP_ID>
|
||||||
|
<ARTIFACT_ID>abap2xlsx</ARTIFACT_ID>
|
||||||
|
<VERSION>7.14.0</VERSION>
|
||||||
|
<REPOSITORY_TYPE>abapGit</REPOSITORY_TYPE>
|
||||||
|
<GIT_URL>https://github.com/abap2xlsx/abap2xlsx.git</GIT_URL>
|
||||||
|
</DATA>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
|
@ -1,6 +1,6 @@
|
||||||
# abap2xlsx - Read and generate Excel Spreadsheets with ABAP
|
# abap2xlsx - Read and generate Excel Spreadsheets with ABAP
|
||||||
|
|
||||||
For general information please refer to the blog series [abap2xlsx - Generate your professional Excel spreadsheet from ABAP](http://scn.sap.com/community/abap/blog/2010/07/12/abap2xlsx--generate-your-professional-excel-spreadsheet-from-abap) and the [documentation](https://sapmentors.github.io/abap2xlsx/).
|
For general information please refer to the blog series [abap2xlsx - Generate your professional Excel spreadsheet from ABAP](http://scn.sap.com/community/abap/blog/2010/07/12/abap2xlsx--generate-your-professional-excel-spreadsheet-from-abap) and the [documentation](https://abap2xlsx.github.io/abap2xlsx/).
|
||||||
Please refer to the official wiki for the [abapGit installation guide](https://sapmentors.github.io/abap2xlsx/abapGit-installation).
|
Please refer to the official wiki for the [abapGit installation guide](https://abap2xlsx.github.io/abap2xlsx/abapGit-installation).
|
||||||
|
|
||||||
For questions, bug reports and more information on contributing to the project, please refer to the [contributing guidelines](./CONTRIBUTING.md).
|
For questions, bug reports and more information on contributing to the project, please refer to the [contributing guidelines](./CONTRIBUTING.md).
|
||||||
|
|
122
changelog.txt
Normal file
122
changelog.txt
Normal file
|
@ -0,0 +1,122 @@
|
||||||
|
abapGit changelog
|
||||||
|
=================
|
||||||
|
|
||||||
|
Legend
|
||||||
|
------
|
||||||
|
* : fixed
|
||||||
|
! : changed
|
||||||
|
+ : added
|
||||||
|
- : removed
|
||||||
|
|
||||||
|
2021-11-11 v7.14.0
|
||||||
|
------------------
|
||||||
|
+ changelog
|
||||||
|
! Refactor ABAP Cloud: column width based on SAP font
|
||||||
|
! Refactor ABAP Cloud: DDIC references changed
|
||||||
|
! Refactor ABAP Cloud: collection classes
|
||||||
|
! Refactor: split unit tests into one method per case
|
||||||
|
! pretty print zcl_excel_worksheet
|
||||||
|
* SET_CELL_FORMULA: set formula even if cell was uninitialized
|
||||||
|
! Refactor: replace all macros with methods
|
||||||
|
+ Add ability to generate report from template
|
||||||
|
* Read range of print titles
|
||||||
|
+ Multiple Styles in One Cell ("rich text format")
|
||||||
|
+ Bind ALV with non-displayed SALV data
|
||||||
|
+ new feature "Ignored Errors"
|
||||||
|
* Ignore invalid Excel Table names
|
||||||
|
+ new feature "Calculated Columns"
|
||||||
|
* better error message for ZDEMO_EXCEL25
|
||||||
|
|
||||||
|
2021-10-11 v7.13.0
|
||||||
|
------------------
|
||||||
|
! zcl_excel_common: refactor unit tests
|
||||||
|
! Refactor: replace zcl_excel_aunit with cl_abap_unit_assert
|
||||||
|
! Refactor ABAP Cloud: DDIC references changed
|
||||||
|
* clear Style exporting parameter in GET_CELL
|
||||||
|
+ Conditional Formatting for Cells that "Begin With" and more
|
||||||
|
- Delete unused customui objects
|
||||||
|
* ZDEMO_EXCEL37 incorrect screen field labels
|
||||||
|
* SHIFT_FORMULA
|
||||||
|
! Refactor: replace macro with method in zcl_excel_style_number_format
|
||||||
|
* autofilter messed up if several sheets
|
||||||
|
* autofilter + filtering value, then read it, the filtering value is lost
|
||||||
|
* autofilter on row 2 is incorrectly set on row 1
|
||||||
|
! Refactor: change EXIT to RETURN, where applicable
|
||||||
|
! Refactor: zcl_excel_common: refactor STATICS to CLASS-DATA
|
||||||
|
* Writer: trailing spaces of cell values lost
|
||||||
|
! Refactor: move zexcel_s_org_rel to demos
|
||||||
|
! update to latest abapGit format
|
||||||
|
! abaplint to not change sy fields anymore
|
||||||
|
! Refactor: Do not change sy fields anymore
|
||||||
|
! abapGit diff says zdemo_calendar_classes has changed
|
||||||
|
! update abaplint configuration to latest
|
||||||
|
! Refactor: Move non-Cloud code to separate package (#795) …
|
||||||
|
* Reader: empty Excel date -> ABAP 00000000
|
||||||
|
|
||||||
|
2021-09-11 v7.12.0
|
||||||
|
------------------
|
||||||
|
! First draft of the contributing guidelines
|
||||||
|
! Refactor: remove usage of CHAR07 domain
|
||||||
|
|
||||||
|
2021-08-11 v7.11.0
|
||||||
|
------------------
|
||||||
|
! Pretty print on all source code
|
||||||
|
! Create coding-guidelines.md
|
||||||
|
! remove usage of CHAR08 DTEL
|
||||||
|
! remove usage of CHAR10 domain
|
||||||
|
! remove usage of OS_BOOLEAN
|
||||||
|
|
||||||
|
2021-07-11 v7.10.0
|
||||||
|
------------------
|
||||||
|
! remove unused DOMA
|
||||||
|
! Reader: wrong worksheet dimension
|
||||||
|
* GET_TABLE: support fields of type date
|
||||||
|
* Vietnamese, Emoji and other characters not rendered in old SAP versions
|
||||||
|
* SET_TABLE: support table headers with newline
|
||||||
|
* SET_CELL: support values with wildcard format like `_x0041_`
|
||||||
|
|
||||||
|
2021-06-11 v7.9.0
|
||||||
|
------------------
|
||||||
|
! update linter config to latest
|
||||||
|
+ Remove 15 chars. limit at encrypt password
|
||||||
|
+ Reader to read range of hyperlinks and new method SET_AREA_HYPERLINK
|
||||||
|
* Vietnamese, Emoji and other characters not rendered
|
||||||
|
* Update of ZDEMO_EXCEL31 to use CALCULATE_COLUMN_WIDTHS
|
||||||
|
! remove CHAR01
|
||||||
|
|
||||||
|
2021-05-11 v7.8.0
|
||||||
|
------------------
|
||||||
|
! remove "BOOLEAN" domain
|
||||||
|
! replace messages with ones from ZABAP2XLSX message class
|
||||||
|
|
||||||
|
2021-04-11 v7.7.0
|
||||||
|
------------------
|
||||||
|
! remove CHAR_02 domain
|
||||||
|
! abapGit format update
|
||||||
|
|
||||||
|
2021-03-11 v7.6.0
|
||||||
|
------------------
|
||||||
|
! AUnit warning zcl excel reader huge file "# au > "#au
|
||||||
|
! Remove doma ZEXCEL_BOOLE01
|
||||||
|
|
||||||
|
2021-02-11 v7.5.0
|
||||||
|
------------------
|
||||||
|
+ Possibility to get the fieldcatalog with mandt
|
||||||
|
! cleanup types in zif_excel_book_protection
|
||||||
|
|
||||||
|
2021-01-11 v7.4.0
|
||||||
|
------------------
|
||||||
|
! warning about SAPLink in documentation, and replace obsolete links in zangry_birds and zdemo_excel1
|
||||||
|
! remove XFELD usage
|
||||||
|
! Dynamic prefill of date in zdemo_calendar
|
||||||
|
|
||||||
|
2020-12-11 v7.3.0
|
||||||
|
------------------
|
||||||
|
* Fix in ZDEMO_EXCEL11: Field-symbol usage
|
||||||
|
! Update abapGit-installation.md
|
||||||
|
|
||||||
|
2020-11-11 v7.2.0
|
||||||
|
------------------
|
||||||
|
! Improve Documentaiton
|
||||||
|
! Fix package errors
|
||||||
|
+ Feature: Enable custom converters
|
|
@ -4,7 +4,7 @@
|
||||||
|
|
||||||
## Procedure
|
## Procedure
|
||||||
|
|
||||||
Execute abapGit using the report **ZABAPGIT_FULL**, click on *New Online*, fill the field *Git repository URL* with *https://github.com/sapmentors/abap2xlsx.git*, package with *$abap2xls* if you just want to test. If you want to transport abap2xlsx to production then use a non local package. Click *Create package* if the package doesn't exist yet. Then click *Clone online repo*
|
Execute abapGit using the report **ZABAPGIT_FULL**, click on *New Online*, fill the field *Git repository URL* with *https://github.com/abap2xlsx/abap2xlsx.git*, package with *$abap2xls* if you just want to test. If you want to transport abap2xlsx to production then use a non local package. Click *Create package* if the package doesn't exist yet. Then click *Clone online repo*
|
||||||
|
|
||||||

|

|
||||||
|
|
||||||
|
|
|
@ -1,6 +1,6 @@
|
||||||
# Naming convention of variables, etc.
|
# Naming convention of variables, etc.
|
||||||
|
|
||||||
In abap2xlsx, over time, alas, the ABAP code came to mix different [naming standards](https://github.com/sapmentors/abap2xlsx/issues/773). Naming standards may vary from one class to another, but one naming standards is usually correctly applied in each class.
|
In abap2xlsx, over time, alas, the ABAP code came to mix different [naming standards](https://github.com/abap2xlsx/abap2xlsx/issues/773). Naming standards may vary from one class to another, but one naming standards is usually correctly applied in each class.
|
||||||
|
|
||||||
It's not possible to impose one naming standards by fixing the existing names, because clients may have developed custom programs which may already refer to them.
|
It's not possible to impose one naming standards by fixing the existing names, because clients may have developed custom programs which may already refer to them.
|
||||||
When it's about adding a new variable, parameter or type in an existing object or method, it's embarrassing to impose one naming standards because that could be inconsistent with the variables, parameters or types which already exist at this place.
|
When it's about adding a new variable, parameter or type in an existing object or method, it's embarrassing to impose one naming standards because that could be inconsistent with the variables, parameters or types which already exist at this place.
|
||||||
|
|
|
@ -722,10 +722,10 @@ START-OF-SELECTION.
|
||||||
ip_value = 'Created with abap2xlsx'
|
ip_value = 'Created with abap2xlsx'
|
||||||
ip_style = lv_style_credit_guid ).
|
ip_style = lv_style_credit_guid ).
|
||||||
|
|
||||||
lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'https://sapmentors.github.io/abap2xlsx' ).
|
lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'https://abap2xlsx.github.io/abap2xlsx' ).
|
||||||
lo_worksheet->set_cell( ip_column = 'AP'
|
lo_worksheet->set_cell( ip_column = 'AP'
|
||||||
ip_row = 24
|
ip_row = 24
|
||||||
ip_value = 'https://sapmentors.github.io/abap2xlsx'
|
ip_value = 'https://abap2xlsx.github.io/abap2xlsx'
|
||||||
ip_style = lv_style_link_guid
|
ip_style = lv_style_link_guid
|
||||||
ip_hyperlink = lo_hyperlink ).
|
ip_hyperlink = lo_hyperlink ).
|
||||||
|
|
||||||
|
|
|
@ -26,7 +26,7 @@
|
||||||
<item>
|
<item>
|
||||||
<ID>I</ID>
|
<ID>I</ID>
|
||||||
<KEY>002</KEY>
|
<KEY>002</KEY>
|
||||||
<ENTRY>Created with abap2xlsx. Find more information at https://github.com/sapmentors/abap2xlsx.</ENTRY>
|
<ENTRY>Created with abap2xlsx. Find more information at https://github.com/abap2xlsx/abap2xlsx.</ENTRY>
|
||||||
<LENGTH>132</LENGTH>
|
<LENGTH>132</LENGTH>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
@ -84,7 +84,7 @@
|
||||||
<item>
|
<item>
|
||||||
<ID>I</ID>
|
<ID>I</ID>
|
||||||
<KEY>002</KEY>
|
<KEY>002</KEY>
|
||||||
<ENTRY>Erzeugt mit abap2xlsx. Weitere Informationen unter https://github.com/sapmentors/abap2xlsx.</ENTRY>
|
<ENTRY>Erzeugt mit abap2xlsx. Weitere Informationen unter https://github.com/abap2xlsx/abap2xlsx.</ENTRY>
|
||||||
<LENGTH>132</LENGTH>
|
<LENGTH>132</LENGTH>
|
||||||
</item>
|
</item>
|
||||||
<item>
|
<item>
|
||||||
|
|
|
@ -347,8 +347,8 @@ CLASS zcl_helper IMPLEMENTATION.
|
||||||
DATA: value TYPE string,
|
DATA: value TYPE string,
|
||||||
hyperlink TYPE REF TO zcl_excel_hyperlink.
|
hyperlink TYPE REF TO zcl_excel_hyperlink.
|
||||||
|
|
||||||
value = 'Created with abap2xlsx. Find more information at https://github.com/sapmentors/abap2xlsx.'(002).
|
value = 'Created with abap2xlsx. Find more information at https://github.com/abap2xlsx/abap2xlsx.'(002).
|
||||||
hyperlink = zcl_excel_hyperlink=>create_external_link( 'https://github.com/sapmentors/abap2xlsx' ). "#EC NOTEXT
|
hyperlink = zcl_excel_hyperlink=>create_external_link( 'https://github.com/abap2xlsx/abap2xlsx' ). "#EC NOTEXT
|
||||||
c_worksheet->set_cell(
|
c_worksheet->set_cell(
|
||||||
EXPORTING
|
EXPORTING
|
||||||
ip_column = i_from_col " Cell Column
|
ip_column = i_from_col " Cell Column
|
||||||
|
|
|
@ -28,7 +28,7 @@ START-OF-SELECTION.
|
||||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ).
|
lo_worksheet->set_cell( ip_column = 'B' ip_row = 2 ip_value = 'Hello world' ).
|
||||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = sy-datum ).
|
lo_worksheet->set_cell( ip_column = 'B' ip_row = 3 ip_value = sy-datum ).
|
||||||
lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ).
|
lo_worksheet->set_cell( ip_column = 'C' ip_row = 3 ip_value = sy-uzeit ).
|
||||||
lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'https://sapmentors.github.io/abap2xlsx' ).
|
lo_hyperlink = zcl_excel_hyperlink=>create_external_link( iv_url = 'https://abap2xlsx.github.io/abap2xlsx' ).
|
||||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 4 ip_value = 'Click here to visit abap2xlsx homepage' ip_hyperlink = lo_hyperlink ).
|
lo_worksheet->set_cell( ip_column = 'B' ip_row = 4 ip_value = 'Click here to visit abap2xlsx homepage' ip_hyperlink = lo_hyperlink ).
|
||||||
|
|
||||||
lo_worksheet->set_cell( ip_column = 'B' ip_row = 6 ip_value = '你好,世界' ).
|
lo_worksheet->set_cell( ip_column = 'B' ip_row = 6 ip_value = '你好,世界' ).
|
||||||
|
|
|
@ -96,6 +96,8 @@ START-OF-SELECTION.
|
||||||
* ALV user command
|
* ALV user command
|
||||||
*--------------------------------------------------------------------*
|
*--------------------------------------------------------------------*
|
||||||
FORM user_command .
|
FORM user_command .
|
||||||
|
DATA: lo_error TYPE REF TO zcx_excel,
|
||||||
|
lv_message TYPE string.
|
||||||
IF sy-ucomm = 'EXCEL'.
|
IF sy-ucomm = 'EXCEL'.
|
||||||
|
|
||||||
* get save file path
|
* get save file path
|
||||||
|
@ -118,7 +120,12 @@ FORM user_command .
|
||||||
INTO l_path.
|
INTO l_path.
|
||||||
|
|
||||||
* export file to save file path
|
* export file to save file path
|
||||||
|
TRY.
|
||||||
PERFORM export_to_excel.
|
PERFORM export_to_excel.
|
||||||
|
CATCH zcx_excel INTO lo_error.
|
||||||
|
lv_message = lo_error->get_text( ).
|
||||||
|
MESSAGE lv_message TYPE 'I' DISPLAY LIKE 'E'.
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
ENDIF.
|
ENDIF.
|
||||||
ENDFORM. " USER_COMMAND
|
ENDFORM. " USER_COMMAND
|
||||||
|
@ -129,6 +136,9 @@ ENDFORM. " USER_COMMAND
|
||||||
* This subroutine is principal demo session
|
* This subroutine is principal demo session
|
||||||
*--------------------------------------------------------------------*
|
*--------------------------------------------------------------------*
|
||||||
FORM export_to_excel RAISING zcx_excel.
|
FORM export_to_excel RAISING zcx_excel.
|
||||||
|
DATA: lo_error TYPE REF TO zcx_excel,
|
||||||
|
lv_message TYPE string.
|
||||||
|
|
||||||
* create zcl_excel_worksheet object
|
* create zcl_excel_worksheet object
|
||||||
|
|
||||||
CREATE OBJECT lo_excel.
|
CREATE OBJECT lo_excel.
|
||||||
|
@ -136,15 +146,12 @@ FORM export_to_excel RAISING zcx_excel.
|
||||||
lo_worksheet->set_title( ip_title = 'Sheet1' ).
|
lo_worksheet->set_title( ip_title = 'Sheet1' ).
|
||||||
|
|
||||||
* write to excel using method Bin_object
|
* write to excel using method Bin_object
|
||||||
TRY.
|
|
||||||
lo_worksheet->bind_alv(
|
lo_worksheet->bind_alv(
|
||||||
io_alv = lo_salv
|
io_alv = lo_salv
|
||||||
it_table = gt_sbook
|
it_table = gt_sbook
|
||||||
i_top = 2
|
i_top = 2
|
||||||
i_left = 1
|
i_left = 1
|
||||||
).
|
).
|
||||||
CATCH zcx_excel .
|
|
||||||
ENDTRY.
|
|
||||||
|
|
||||||
PERFORM write_file.
|
PERFORM write_file.
|
||||||
|
|
||||||
|
@ -157,7 +164,7 @@ ENDFORM. "EXPORT_TO_EXCEL
|
||||||
* --> p1 text
|
* --> p1 text
|
||||||
* <-- p2 text
|
* <-- p2 text
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
FORM write_file .
|
FORM write_file RAISING zcx_excel.
|
||||||
DATA: lt_file TYPE solix_tab,
|
DATA: lt_file TYPE solix_tab,
|
||||||
l_bytecount TYPE i,
|
l_bytecount TYPE i,
|
||||||
l_file TYPE xstring.
|
l_file TYPE xstring.
|
||||||
|
|
|
@ -10,7 +10,9 @@ REPORT zdemo_excel27.
|
||||||
|
|
||||||
CLASS lcl_app DEFINITION.
|
CLASS lcl_app DEFINITION.
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
METHODS main.
|
METHODS main
|
||||||
|
RAISING
|
||||||
|
zcx_excel.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
METHODS conditional_formatting_cellis
|
METHODS conditional_formatting_cellis
|
||||||
IMPORTING
|
IMPORTING
|
||||||
|
@ -20,14 +22,18 @@ CLASS lcl_app DEFINITION.
|
||||||
op TYPE zexcel_condition_operator
|
op TYPE zexcel_condition_operator
|
||||||
f TYPE zexcel_style_formula
|
f TYPE zexcel_style_formula
|
||||||
f2 TYPE zexcel_style_formula
|
f2 TYPE zexcel_style_formula
|
||||||
numfmt TYPE string.
|
numfmt TYPE string
|
||||||
|
RAISING
|
||||||
|
zcx_excel.
|
||||||
METHODS conditional_formatting_textfun
|
METHODS conditional_formatting_textfun
|
||||||
IMPORTING
|
IMPORTING
|
||||||
column TYPE simple
|
column TYPE simple
|
||||||
row TYPE zexcel_cell_row
|
row TYPE zexcel_cell_row
|
||||||
txtfun TYPE zcl_excel_style_cond=>tv_textfunction
|
txtfun TYPE zcl_excel_style_cond=>tv_textfunction
|
||||||
text TYPE string
|
text TYPE string
|
||||||
numfmt TYPE string.
|
numfmt TYPE string
|
||||||
|
RAISING
|
||||||
|
zcx_excel.
|
||||||
ENDCLASS.
|
ENDCLASS.
|
||||||
|
|
||||||
CONSTANTS: c_fish TYPE string VALUE 'Fish'.
|
CONSTANTS: c_fish TYPE string VALUE 'Fish'.
|
||||||
|
@ -53,8 +59,16 @@ INCLUDE zdemo_excel_outputopt_incl.
|
||||||
|
|
||||||
|
|
||||||
START-OF-SELECTION.
|
START-OF-SELECTION.
|
||||||
|
DATA: lo_error TYPE REF TO zcx_excel,
|
||||||
|
lv_message TYPE string.
|
||||||
|
|
||||||
CREATE OBJECT lo_app.
|
CREATE OBJECT lo_app.
|
||||||
|
TRY.
|
||||||
lo_app->main( ).
|
lo_app->main( ).
|
||||||
|
CATCH zcx_excel INTO lo_error.
|
||||||
|
lv_message = lo_error->get_text( ).
|
||||||
|
MESSAGE lv_message TYPE 'I' DISPLAY LIKE 'E'.
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
|
|
||||||
CLASS lcl_app IMPLEMENTATION.
|
CLASS lcl_app IMPLEMENTATION.
|
||||||
|
|
|
@ -97,6 +97,8 @@ START-OF-SELECTION.
|
||||||
* ALV user command
|
* ALV user command
|
||||||
*--------------------------------------------------------------------*
|
*--------------------------------------------------------------------*
|
||||||
FORM user_command .
|
FORM user_command .
|
||||||
|
DATA: lo_error TYPE REF TO zcx_excel,
|
||||||
|
lv_message TYPE string.
|
||||||
|
|
||||||
* get save file path
|
* get save file path
|
||||||
cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = l_path ).
|
cl_gui_frontend_services=>get_sapgui_workdir( CHANGING sapworkdir = l_path ).
|
||||||
|
@ -117,6 +119,7 @@ FORM user_command .
|
||||||
|
|
||||||
|
|
||||||
* export file to save file path
|
* export file to save file path
|
||||||
|
TRY.
|
||||||
CASE sy-ucomm.
|
CASE sy-ucomm.
|
||||||
WHEN 'EXCELBIND'.
|
WHEN 'EXCELBIND'.
|
||||||
CONCATENATE l_path lv_file_separator lv_default_file_name
|
CONCATENATE l_path lv_file_separator lv_default_file_name
|
||||||
|
@ -130,6 +133,12 @@ FORM user_command .
|
||||||
PERFORM export_to_excel_conv.
|
PERFORM export_to_excel_conv.
|
||||||
|
|
||||||
ENDCASE.
|
ENDCASE.
|
||||||
|
|
||||||
|
CATCH zcx_excel INTO lo_error.
|
||||||
|
lv_message = lo_error->get_text( ).
|
||||||
|
MESSAGE lv_message TYPE 'I' DISPLAY LIKE 'E'.
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
ENDFORM. " USER_COMMAND
|
ENDFORM. " USER_COMMAND
|
||||||
*--------------------------------------------------------------------*
|
*--------------------------------------------------------------------*
|
||||||
* FORM EXPORT_TO_EXCEL_CONV
|
* FORM EXPORT_TO_EXCEL_CONV
|
||||||
|
@ -193,7 +202,7 @@ ENDFORM. "EXPORT_TO_EXCEL_BIND
|
||||||
* --> p1 text
|
* --> p1 text
|
||||||
* <-- p2 text
|
* <-- p2 text
|
||||||
*----------------------------------------------------------------------*
|
*----------------------------------------------------------------------*
|
||||||
FORM write_file .
|
FORM write_file RAISING zcx_excel.
|
||||||
DATA: lt_file TYPE solix_tab,
|
DATA: lt_file TYPE solix_tab,
|
||||||
l_bytecount TYPE i,
|
l_bytecount TYPE i,
|
||||||
l_file TYPE xstring.
|
l_file TYPE xstring.
|
||||||
|
@ -216,7 +225,7 @@ FORM write_file .
|
||||||
RECEIVING
|
RECEIVING
|
||||||
et_solix = lt_file.
|
et_solix = lt_file.
|
||||||
|
|
||||||
l_bytecount = XSTRLEN( l_file ).
|
l_bytecount = xstrlen( l_file ).
|
||||||
ELSE.
|
ELSE.
|
||||||
" Convert to binary
|
" Convert to binary
|
||||||
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
|
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
|
||||||
|
|
|
@ -15,60 +15,60 @@ REPORT zdemo_excel_fill_template.
|
||||||
* on the Excel file ZDEMO_EXCEL_TEMPLATE
|
* on the Excel file ZDEMO_EXCEL_TEMPLATE
|
||||||
* from SMW0.
|
* from SMW0.
|
||||||
*=================
|
*=================
|
||||||
TYPES t_number TYPE p length 16 decimals 4.
|
TYPES t_number TYPE p LENGTH 16 DECIMALS 4.
|
||||||
TYPES:
|
TYPES:
|
||||||
begin of t_TABLE1,
|
BEGIN OF t_table1,
|
||||||
PERSON type string,
|
person TYPE string,
|
||||||
SALARY type t_number,
|
salary TYPE t_number,
|
||||||
end of t_TABLE1,
|
END OF t_table1,
|
||||||
|
|
||||||
tt_TABLE1 type standard table of t_TABLE1 with default key,
|
tt_table1 TYPE STANDARD TABLE OF t_table1 WITH DEFAULT KEY,
|
||||||
|
|
||||||
begin of t_LINE1,
|
BEGIN OF t_line1,
|
||||||
CARRID type string,
|
carrid TYPE string,
|
||||||
CONNID type string,
|
connid TYPE string,
|
||||||
FLDATE type d,
|
fldate TYPE d,
|
||||||
PRICE type t_number,
|
price TYPE t_number,
|
||||||
end of t_LINE1,
|
END OF t_line1,
|
||||||
|
|
||||||
tt_LINE1 type standard table of t_LINE1 with default key,
|
tt_line1 TYPE STANDARD TABLE OF t_line1 WITH DEFAULT KEY,
|
||||||
|
|
||||||
begin of t_TABLE2,
|
BEGIN OF t_table2,
|
||||||
CARRID type string,
|
carrid TYPE string,
|
||||||
PRICE type t_number,
|
price TYPE t_number,
|
||||||
LINE1 type tt_LINE1,
|
line1 TYPE tt_line1,
|
||||||
end of t_TABLE2,
|
END OF t_table2,
|
||||||
|
|
||||||
tt_TABLE2 type standard table of t_TABLE2 with default key,
|
tt_table2 TYPE STANDARD TABLE OF t_table2 WITH DEFAULT KEY,
|
||||||
|
|
||||||
begin of t_Sheet1,
|
BEGIN OF t_sheet1,
|
||||||
DATE type d,
|
date TYPE d,
|
||||||
TIME type t,
|
time TYPE t,
|
||||||
USER type string,
|
user TYPE string,
|
||||||
TOTAL type t_number,
|
total TYPE t_number,
|
||||||
PRICE type t_number,
|
price TYPE t_number,
|
||||||
TABLE1 type tt_TABLE1,
|
table1 TYPE tt_table1,
|
||||||
TABLE2 type tt_TABLE2,
|
table2 TYPE tt_table2,
|
||||||
end of t_Sheet1,
|
END OF t_sheet1,
|
||||||
|
|
||||||
|
|
||||||
begin of t_TABLE3,
|
BEGIN OF t_table3,
|
||||||
PERSON type string,
|
person TYPE string,
|
||||||
SALARY type t_number,
|
salary TYPE t_number,
|
||||||
end of t_TABLE3,
|
END OF t_table3,
|
||||||
|
|
||||||
tt_TABLE3 type standard table of t_TABLE3 with default key,
|
tt_table3 TYPE STANDARD TABLE OF t_table3 WITH DEFAULT KEY,
|
||||||
|
|
||||||
begin of t_Sheet2,
|
BEGIN OF t_sheet2,
|
||||||
DATE type d,
|
date TYPE d,
|
||||||
TIME type t,
|
time TYPE t,
|
||||||
USER type string,
|
user TYPE string,
|
||||||
TOTAL type t_number,
|
total TYPE t_number,
|
||||||
TABLE3 type tt_TABLE3,
|
table3 TYPE tt_table3,
|
||||||
end of t_Sheet2.
|
END OF t_sheet2.
|
||||||
|
|
||||||
|
|
||||||
DATA: lo_data type ref to ZCL_EXCEL_TEMPLATE_DATA.
|
DATA: lo_data TYPE REF TO zcl_excel_template_data.
|
||||||
*=================
|
*=================
|
||||||
* End of generated code
|
* End of generated code
|
||||||
*=================
|
*=================
|
||||||
|
|
|
@ -5,7 +5,8 @@ CLASS lcl_output DEFINITION CREATE PRIVATE.
|
||||||
PUBLIC SECTION.
|
PUBLIC SECTION.
|
||||||
CLASS-METHODS:
|
CLASS-METHODS:
|
||||||
output IMPORTING cl_excel TYPE REF TO zcl_excel
|
output IMPORTING cl_excel TYPE REF TO zcl_excel
|
||||||
iv_writerclass_name TYPE clike OPTIONAL,
|
iv_writerclass_name TYPE clike OPTIONAL
|
||||||
|
RAISING zcx_excel,
|
||||||
f4_path RETURNING VALUE(selected_folder) TYPE string,
|
f4_path RETURNING VALUE(selected_folder) TYPE string,
|
||||||
parametertexts.
|
parametertexts.
|
||||||
|
|
||||||
|
|
|
@ -969,148 +969,176 @@
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>8</LINE_NUMBER>
|
<LINE_NUMBER>8</LINE_NUMBER>
|
||||||
<SOURCE_LINE> CREATE OBJECT lo_excel.</SOURCE_LINE>
|
<SOURCE_LINE> TRY.</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>9</LINE_NUMBER>
|
<LINE_NUMBER>9</LINE_NUMBER>
|
||||||
<SOURCE_LINE> lo_worksheet = lo_excel->get_active_worksheet( ).</SOURCE_LINE>
|
<SOURCE_LINE> CREATE OBJECT lo_excel.</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>10</LINE_NUMBER>
|
<LINE_NUMBER>10</LINE_NUMBER>
|
||||||
|
<SOURCE_LINE> lo_worksheet = lo_excel->get_active_worksheet( ).</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>11</LINE_NUMBER>
|
<LINE_NUMBER>11</LINE_NUMBER>
|
||||||
<SOURCE_LINE> lo_worksheet->set_cell( ip_column = 'B'</SOURCE_LINE>
|
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>12</LINE_NUMBER>
|
<LINE_NUMBER>12</LINE_NUMBER>
|
||||||
<SOURCE_LINE> ip_row = '2'</SOURCE_LINE>
|
<SOURCE_LINE> lo_worksheet->set_cell( ip_column = 'B'</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>13</LINE_NUMBER>
|
<LINE_NUMBER>13</LINE_NUMBER>
|
||||||
<SOURCE_LINE> ip_value = 'Welcome to Web Dynpro and abap2xlsx.' ).</SOURCE_LINE>
|
<SOURCE_LINE> ip_row = '2'</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>14</LINE_NUMBER>
|
<LINE_NUMBER>14</LINE_NUMBER>
|
||||||
|
<SOURCE_LINE> ip_value = 'Welcome to Web Dynpro and abap2xlsx.' ).</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>15</LINE_NUMBER>
|
<LINE_NUMBER>15</LINE_NUMBER>
|
||||||
<SOURCE_LINE> CREATE OBJECT lo_excel_writer.</SOURCE_LINE>
|
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>16</LINE_NUMBER>
|
<LINE_NUMBER>16</LINE_NUMBER>
|
||||||
<SOURCE_LINE> lv_content = lo_excel_writer->zif_excel_writer~write_file( lo_excel ).</SOURCE_LINE>
|
<SOURCE_LINE> CREATE OBJECT lo_excel_writer.</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>17</LINE_NUMBER>
|
<LINE_NUMBER>17</LINE_NUMBER>
|
||||||
|
<SOURCE_LINE> lv_content = lo_excel_writer->zif_excel_writer~write_file( lo_excel ).</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>18</LINE_NUMBER>
|
<LINE_NUMBER>18</LINE_NUMBER>
|
||||||
<SOURCE_LINE> DATA: lv_filename TYPE string.</SOURCE_LINE>
|
<SOURCE_LINE> CATCH zcx_excel.</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>19</LINE_NUMBER>
|
<LINE_NUMBER>19</LINE_NUMBER>
|
||||||
<SOURCE_LINE> lv_filename = 'wda01.xlsx'.</SOURCE_LINE>
|
<SOURCE_LINE> "Unlikely, ignore to keep demo simple.</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>20</LINE_NUMBER>
|
<LINE_NUMBER>20</LINE_NUMBER>
|
||||||
|
<SOURCE_LINE> ENDTRY.</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>21</LINE_NUMBER>
|
<LINE_NUMBER>21</LINE_NUMBER>
|
||||||
<SOURCE_LINE> CALL METHOD cl_wd_runtime_services=>attach_file_to_response</SOURCE_LINE>
|
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>22</LINE_NUMBER>
|
<LINE_NUMBER>22</LINE_NUMBER>
|
||||||
<SOURCE_LINE> EXPORTING</SOURCE_LINE>
|
<SOURCE_LINE> DATA: lv_filename TYPE string.</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>23</LINE_NUMBER>
|
<LINE_NUMBER>23</LINE_NUMBER>
|
||||||
<SOURCE_LINE> i_filename = lv_filename</SOURCE_LINE>
|
<SOURCE_LINE> lv_filename = 'wda01.xlsx'.</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>24</LINE_NUMBER>
|
<LINE_NUMBER>24</LINE_NUMBER>
|
||||||
<SOURCE_LINE> i_content = lv_content</SOURCE_LINE>
|
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>25</LINE_NUMBER>
|
<LINE_NUMBER>25</LINE_NUMBER>
|
||||||
<SOURCE_LINE> i_mime_type = 'EXCEL'</SOURCE_LINE>
|
<SOURCE_LINE> CALL METHOD cl_wd_runtime_services=>attach_file_to_response</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>26</LINE_NUMBER>
|
<LINE_NUMBER>26</LINE_NUMBER>
|
||||||
<SOURCE_LINE> i_in_new_window = abap_false</SOURCE_LINE>
|
<SOURCE_LINE> EXPORTING</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>27</LINE_NUMBER>
|
<LINE_NUMBER>27</LINE_NUMBER>
|
||||||
<SOURCE_LINE> i_inplace = abap_false.</SOURCE_LINE>
|
<SOURCE_LINE> i_filename = lv_filename</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>28</LINE_NUMBER>
|
<LINE_NUMBER>28</LINE_NUMBER>
|
||||||
|
<SOURCE_LINE> i_content = lv_content</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
<LINE_NUMBER>29</LINE_NUMBER>
|
<LINE_NUMBER>29</LINE_NUMBER>
|
||||||
|
<SOURCE_LINE> i_mime_type = 'EXCEL'</SOURCE_LINE>
|
||||||
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
|
<LINE_NUMBER>30</LINE_NUMBER>
|
||||||
|
<SOURCE_LINE> i_in_new_window = abap_false</SOURCE_LINE>
|
||||||
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
|
<LINE_NUMBER>31</LINE_NUMBER>
|
||||||
|
<SOURCE_LINE> i_inplace = abap_false.</SOURCE_LINE>
|
||||||
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
|
<LINE_NUMBER>32</LINE_NUMBER>
|
||||||
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
|
<COMPONENT_NAME>ZDEMO_EXCEL_WDA01</COMPONENT_NAME>
|
||||||
|
<CONTROLLER_NAME>V_MAIN</CONTROLLER_NAME>
|
||||||
|
<CMPNAME>ONACTIONBTN_DOWNLOAD</CMPNAME>
|
||||||
|
<LINE_NUMBER>33</LINE_NUMBER>
|
||||||
<SOURCE_LINE>ENDMETHOD.</SOURCE_LINE>
|
<SOURCE_LINE>ENDMETHOD.</SOURCE_LINE>
|
||||||
</WDY_CTLR_COMPO_SOURCE_VRS>
|
</WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
<WDY_CTLR_COMPO_SOURCE_VRS>
|
<WDY_CTLR_COMPO_SOURCE_VRS>
|
||||||
|
|
|
@ -147,8 +147,8 @@ CLASS zcl_excel DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!io_theme TYPE REF TO zcl_excel_theme .
|
!io_theme TYPE REF TO zcl_excel_theme .
|
||||||
METHODS fill_template
|
METHODS fill_template
|
||||||
importing
|
IMPORTING
|
||||||
!iv_data TYPE REF TO ZCL_EXCEL_TEMPLATE_DATA
|
!iv_data TYPE REF TO zcl_excel_template_data
|
||||||
RAISING
|
RAISING
|
||||||
zcx_excel .
|
zcx_excel .
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
@ -156,7 +156,7 @@ CLASS zcl_excel DEFINITION
|
||||||
DATA worksheets TYPE REF TO zcl_excel_worksheets .
|
DATA worksheets TYPE REF TO zcl_excel_worksheets .
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
CONSTANTS version TYPE c LENGTH 10 VALUE '7.2.0'. "#EC NOTEXT
|
CONSTANTS version TYPE c LENGTH 10 VALUE '7.14.0'. "#EC NOTEXT
|
||||||
DATA autofilters TYPE REF TO zcl_excel_autofilters .
|
DATA autofilters TYPE REF TO zcl_excel_autofilters .
|
||||||
DATA charts TYPE REF TO zcl_excel_drawings .
|
DATA charts TYPE REF TO zcl_excel_drawings .
|
||||||
DATA default_style TYPE zexcel_cell_style .
|
DATA default_style TYPE zexcel_cell_style .
|
||||||
|
|
32
src/zcl_excel_apack.clas.abap
Normal file
32
src/zcl_excel_apack.clas.abap
Normal file
|
@ -0,0 +1,32 @@
|
||||||
|
CLASS zcl_excel_apack DEFINITION
|
||||||
|
PUBLIC
|
||||||
|
FINAL
|
||||||
|
CREATE PUBLIC .
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
INTERFACES if_apack_manifest.
|
||||||
|
|
||||||
|
METHODS: constructor.
|
||||||
|
|
||||||
|
ALIASES descriptor FOR if_apack_manifest~descriptor.
|
||||||
|
|
||||||
|
PROTECTED SECTION.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CLASS zcl_excel_apack IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD constructor.
|
||||||
|
|
||||||
|
descriptor-group_id = 'github.com/abap2xlsx/abap2xlsx'.
|
||||||
|
descriptor-artifact_id = 'abap2xlsx'.
|
||||||
|
descriptor-version = '7.14.0'.
|
||||||
|
descriptor-repository_type = 'abapGit'.
|
||||||
|
descriptor-git_url = 'https://github.com/abap2xlsx/abap2xlsx.git'.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
16
src/zcl_excel_apack.clas.xml
Normal file
16
src/zcl_excel_apack.clas.xml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOCLASS>
|
||||||
|
<CLSNAME>ZCL_EXCEL_APACK</CLSNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>abap2xlsx version and dependencies</DESCRIPT>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -33,7 +33,9 @@ CLASS zcl_excel_autofilter DEFINITION
|
||||||
!io_sheet TYPE REF TO zcl_excel_worksheet .
|
!io_sheet TYPE REF TO zcl_excel_worksheet .
|
||||||
METHODS get_filter_area
|
METHODS get_filter_area
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rs_area) TYPE zexcel_s_autofilter_area .
|
VALUE(rs_area) TYPE zexcel_s_autofilter_area
|
||||||
|
RAISING
|
||||||
|
zcx_excel .
|
||||||
METHODS get_filter_range
|
METHODS get_filter_range
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(r_range) TYPE zexcel_cell_value
|
VALUE(r_range) TYPE zexcel_cell_value
|
||||||
|
|
|
@ -37,7 +37,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_EXCEL_COLLECTION IMPLEMENTATION.
|
CLASS zcl_excel_collection IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD add .
|
METHOD add .
|
||||||
|
|
|
@ -15,7 +15,7 @@ CLASS zcl_excel_collection_iterator DEFINITION
|
||||||
VALUE(object) TYPE REF TO object.
|
VALUE(object) TYPE REF TO object.
|
||||||
METHODS constructor
|
METHODS constructor
|
||||||
IMPORTING
|
IMPORTING
|
||||||
collection TYPE REF TO zCL_excel_COLLECTION.
|
collection TYPE REF TO zcl_excel_collection.
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
DATA index TYPE i VALUE 0.
|
DATA index TYPE i VALUE 0.
|
||||||
|
@ -24,7 +24,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_EXCEL_COLLECTION_ITERATOR IMPLEMENTATION.
|
CLASS zcl_excel_collection_iterator IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD constructor .
|
METHOD constructor .
|
||||||
|
|
|
@ -12,7 +12,9 @@ CLASS zcl_excel_column DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ip_index TYPE zexcel_cell_column_alpha
|
!ip_index TYPE zexcel_cell_column_alpha
|
||||||
!ip_worksheet TYPE REF TO zcl_excel_worksheet
|
!ip_worksheet TYPE REF TO zcl_excel_worksheet
|
||||||
!ip_excel TYPE REF TO zcl_excel .
|
!ip_excel TYPE REF TO zcl_excel
|
||||||
|
RAISING
|
||||||
|
zcx_excel .
|
||||||
METHODS get_auto_size
|
METHODS get_auto_size
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(r_auto_size) TYPE abap_bool .
|
VALUE(r_auto_size) TYPE abap_bool .
|
||||||
|
@ -48,7 +50,9 @@ CLASS zcl_excel_column DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ip_index TYPE zexcel_cell_column_alpha
|
!ip_index TYPE zexcel_cell_column_alpha
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(io_column) TYPE REF TO zcl_excel_column .
|
VALUE(io_column) TYPE REF TO zcl_excel_column
|
||||||
|
RAISING
|
||||||
|
zcx_excel .
|
||||||
METHODS set_outline_level
|
METHODS set_outline_level
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ip_outline_level TYPE int4 .
|
!ip_outline_level TYPE int4 .
|
||||||
|
|
|
@ -221,7 +221,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_EXCEL_COMMON IMPLEMENTATION.
|
CLASS zcl_excel_common IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD calculate_cell_distance.
|
METHOD calculate_cell_distance.
|
||||||
|
|
|
@ -19,7 +19,10 @@ CLASS lcl_excel_common_test DEFINITION FOR TESTING
|
||||||
f_cut TYPE REF TO zcl_excel_common. "class under test
|
f_cut TYPE REF TO zcl_excel_common. "class under test
|
||||||
|
|
||||||
METHODS: setup.
|
METHODS: setup.
|
||||||
METHODS: convert_column2alpha FOR TESTING.
|
METHODS: convert_column2alpha_simple FOR TESTING.
|
||||||
|
METHODS: convert_column2alpha_maxcol FOR TESTING.
|
||||||
|
METHODS: convert_column2alpha_last FOR TESTING.
|
||||||
|
METHODS: convert_column2alpha_oob FOR TESTING.
|
||||||
METHODS convert_column2int_basic FOR TESTING.
|
METHODS convert_column2int_basic FOR TESTING.
|
||||||
METHODS convert_column2int_maxcol FOR TESTING.
|
METHODS convert_column2int_maxcol FOR TESTING.
|
||||||
METHODS convert_column2int_oob_empty FOR TESTING.
|
METHODS convert_column2int_oob_empty FOR TESTING.
|
||||||
|
@ -118,7 +121,7 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
|
||||||
ENDMETHOD. "setup
|
ENDMETHOD. "setup
|
||||||
|
|
||||||
|
|
||||||
METHOD convert_column2alpha.
|
METHOD convert_column2alpha_simple.
|
||||||
* ============================
|
* ============================
|
||||||
DATA ep_column TYPE zexcel_cell_column_alpha.
|
DATA ep_column TYPE zexcel_cell_column_alpha.
|
||||||
|
|
||||||
|
@ -138,6 +141,12 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
|
||||||
level = if_aunit_constants=>critical " Error Severity
|
level = if_aunit_constants=>critical " Error Severity
|
||||||
).
|
).
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
ENDMETHOD. "convert_column2alpha_simple
|
||||||
|
|
||||||
|
|
||||||
|
METHOD convert_column2alpha_maxcol.
|
||||||
|
* ============================
|
||||||
|
DATA ep_column TYPE zexcel_cell_column_alpha.
|
||||||
|
|
||||||
* Test 2. Max column for OXML #16,384 = XFD
|
* Test 2. Max column for OXML #16,384 = XFD
|
||||||
TRY.
|
TRY.
|
||||||
|
@ -155,6 +164,12 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
|
||||||
level = if_aunit_constants=>critical " Error Severity
|
level = if_aunit_constants=>critical " Error Severity
|
||||||
).
|
).
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
ENDMETHOD. "convert_column2alpha_maxcol
|
||||||
|
|
||||||
|
|
||||||
|
METHOD convert_column2alpha_last.
|
||||||
|
* ============================
|
||||||
|
DATA ep_column TYPE zexcel_cell_column_alpha.
|
||||||
|
|
||||||
* Test 3. Index 0 is out of bounds
|
* Test 3. Index 0 is out of bounds
|
||||||
TRY.
|
TRY.
|
||||||
|
@ -172,6 +187,12 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
|
||||||
level = if_aunit_constants=>fatal
|
level = if_aunit_constants=>fatal
|
||||||
).
|
).
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
|
ENDMETHOD. "convert_column2alpha_last
|
||||||
|
|
||||||
|
|
||||||
|
METHOD convert_column2alpha_oob.
|
||||||
|
* ============================
|
||||||
|
DATA ep_column TYPE zexcel_cell_column_alpha.
|
||||||
|
|
||||||
* Test 4. Exception should be thrown index out of bounds
|
* Test 4. Exception should be thrown index out of bounds
|
||||||
TRY.
|
TRY.
|
||||||
|
@ -191,7 +212,7 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
|
||||||
level = if_aunit_constants=>tolerable
|
level = if_aunit_constants=>tolerable
|
||||||
).
|
).
|
||||||
ENDTRY.
|
ENDTRY.
|
||||||
ENDMETHOD. "convert_Column2alpha
|
ENDMETHOD. "convert_Column2alpha_oob
|
||||||
|
|
||||||
|
|
||||||
METHOD convert_column2int_basic.
|
METHOD convert_column2int_basic.
|
||||||
|
@ -1384,7 +1405,7 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD shift_formula_sheet_nodigit.
|
METHOD shift_formula_sheet_nodigit.
|
||||||
|
|
||||||
" Sheet name not ending with digit
|
" Sheet name not ending with digit
|
||||||
macro_shift_formula(
|
macro_shift_formula(
|
||||||
iv_reference_formula = 'Sheet!A1'
|
iv_reference_formula = 'Sheet!A1'
|
||||||
iv_shift_cols = 1
|
iv_shift_cols = 1
|
||||||
|
@ -1395,7 +1416,7 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD shift_formula_sheet_nodig.
|
METHOD shift_formula_sheet_nodig.
|
||||||
|
|
||||||
" Sheet name ending with digit
|
" Sheet name ending with digit
|
||||||
macro_shift_formula(
|
macro_shift_formula(
|
||||||
iv_reference_formula = 'Sheet2!A1'
|
iv_reference_formula = 'Sheet2!A1'
|
||||||
iv_shift_cols = 1
|
iv_shift_cols = 1
|
||||||
|
@ -1406,7 +1427,7 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD shift_formula_sheet_special.
|
METHOD shift_formula_sheet_special.
|
||||||
|
|
||||||
" Sheet name with special characters
|
" Sheet name with special characters
|
||||||
macro_shift_formula(
|
macro_shift_formula(
|
||||||
iv_reference_formula = |'Sheet name'!A1|
|
iv_reference_formula = |'Sheet name'!A1|
|
||||||
iv_shift_cols = 1
|
iv_shift_cols = 1
|
||||||
|
@ -1417,7 +1438,7 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD shift_formula_resp_blanks_1.
|
METHOD shift_formula_resp_blanks_1.
|
||||||
|
|
||||||
" Respecting blanks
|
" Respecting blanks
|
||||||
macro_shift_formula(
|
macro_shift_formula(
|
||||||
iv_reference_formula = 'SUBTOTAL(109,Table1[SUM 1])'
|
iv_reference_formula = 'SUBTOTAL(109,Table1[SUM 1])'
|
||||||
iv_shift_cols = 1
|
iv_shift_cols = 1
|
||||||
|
@ -1428,7 +1449,7 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD shift_formula_resp_blanks_2.
|
METHOD shift_formula_resp_blanks_2.
|
||||||
|
|
||||||
" Respecting blanks
|
" Respecting blanks
|
||||||
macro_shift_formula(
|
macro_shift_formula(
|
||||||
iv_reference_formula = 'B4 & C4'
|
iv_reference_formula = 'B4 & C4'
|
||||||
iv_shift_cols = 0
|
iv_shift_cols = 0
|
||||||
|
@ -1439,7 +1460,7 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD shift_formula_range.
|
METHOD shift_formula_range.
|
||||||
|
|
||||||
" F_1 is a range name, not a cell address
|
" F_1 is a range name, not a cell address
|
||||||
macro_shift_formula(
|
macro_shift_formula(
|
||||||
iv_reference_formula = 'SUM(F_1,F_2)'
|
iv_reference_formula = 'SUM(F_1,F_2)'
|
||||||
iv_shift_cols = 1
|
iv_shift_cols = 1
|
||||||
|
@ -1449,7 +1470,7 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
||||||
METHOD shift_formula_notcols.
|
METHOD shift_formula_notcols.
|
||||||
" RC are not columns
|
" RC are not columns
|
||||||
macro_shift_formula(
|
macro_shift_formula(
|
||||||
iv_reference_formula = 'INDIRECT("RC[4]",FALSE)'
|
iv_reference_formula = 'INDIRECT("RC[4]",FALSE)'
|
||||||
iv_shift_cols = 1
|
iv_shift_cols = 1
|
||||||
|
@ -1460,7 +1481,7 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD shift_formula_name.
|
METHOD shift_formula_name.
|
||||||
|
|
||||||
" A1 is a sheet name
|
" A1 is a sheet name
|
||||||
macro_shift_formula(
|
macro_shift_formula(
|
||||||
iv_reference_formula = |'A1'!$A$1|
|
iv_reference_formula = |'A1'!$A$1|
|
||||||
iv_shift_cols = 1
|
iv_shift_cols = 1
|
||||||
|
@ -1471,7 +1492,7 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD shift_formula_refcolumn1.
|
METHOD shift_formula_refcolumn1.
|
||||||
|
|
||||||
" Reference to another column in the same row of a Table, with a space in the column name
|
" Reference to another column in the same row of a Table, with a space in the column name
|
||||||
macro_shift_formula(
|
macro_shift_formula(
|
||||||
iv_reference_formula = 'Tbl[[#This Row],[Air fare]]'
|
iv_reference_formula = 'Tbl[[#This Row],[Air fare]]'
|
||||||
iv_shift_cols = 1
|
iv_shift_cols = 1
|
||||||
|
@ -1482,7 +1503,7 @@ CLASS lcl_excel_common_test IMPLEMENTATION.
|
||||||
|
|
||||||
METHOD shift_formula_refcolumn2.
|
METHOD shift_formula_refcolumn2.
|
||||||
|
|
||||||
" Reference to another column in the same row of a Table, inside more complex expression
|
" Reference to another column in the same row of a Table, inside more complex expression
|
||||||
macro_shift_formula(
|
macro_shift_formula(
|
||||||
iv_reference_formula = 'Tbl[[#This Row],[Air]]+A1'
|
iv_reference_formula = 'Tbl[[#This Row],[Air]]+A1'
|
||||||
iv_shift_cols = 1
|
iv_shift_cols = 1
|
||||||
|
|
|
@ -34,17 +34,23 @@ CLASS zcl_excel_converter DEFINITION
|
||||||
EXPORTING
|
EXPORTING
|
||||||
!e_bytecount TYPE i
|
!e_bytecount TYPE i
|
||||||
!et_file TYPE solix_tab
|
!et_file TYPE solix_tab
|
||||||
!e_file TYPE xstring .
|
!e_file TYPE xstring
|
||||||
|
RAISING
|
||||||
|
zcx_excel .
|
||||||
METHODS get_option
|
METHODS get_option
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rs_option) TYPE zexcel_s_converter_option .
|
VALUE(rs_option) TYPE zexcel_s_converter_option .
|
||||||
METHODS open_file .
|
METHODS open_file
|
||||||
|
RAISING
|
||||||
|
zcx_excel .
|
||||||
METHODS set_option
|
METHODS set_option
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!is_option TYPE zexcel_s_converter_option .
|
!is_option TYPE zexcel_s_converter_option .
|
||||||
METHODS write_file
|
METHODS write_file
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!i_path TYPE string OPTIONAL .
|
!i_path TYPE string OPTIONAL
|
||||||
|
RAISING
|
||||||
|
zcx_excel .
|
||||||
*"* protected components of class ZCL_EXCEL_CONVERTER
|
*"* protected components of class ZCL_EXCEL_CONVERTER
|
||||||
*"* do not include other source files here!!!
|
*"* do not include other source files here!!!
|
||||||
PROTECTED SECTION.
|
PROTECTED SECTION.
|
||||||
|
@ -249,7 +255,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_EXCEL_CONVERTER IMPLEMENTATION.
|
CLASS zcl_excel_converter IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD ask_option.
|
METHOD ask_option.
|
||||||
|
|
|
@ -825,8 +825,10 @@ CLASS zcl_excel_drawing IMPLEMENTATION.
|
||||||
|
|
||||||
node ?= node->find_from_name( name = 'lineChart' namespace = 'c' ).
|
node ?= node->find_from_name( name = 'lineChart' namespace = 'c' ).
|
||||||
node2 ?= node->find_from_name( name = 'marker' namespace = 'c' depth = '1' ).
|
node2 ?= node->find_from_name( name = 'marker' namespace = 'c' depth = '1' ).
|
||||||
|
IF node2 IS BOUND.
|
||||||
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
||||||
lo_linechart->ns_markerval = ls_prop-val.
|
lo_linechart->ns_markerval = ls_prop-val.
|
||||||
|
ENDIF.
|
||||||
node2 ?= node->find_from_name( name = 'smooth' namespace = 'c' depth = '1' ).
|
node2 ?= node->find_from_name( name = 'smooth' namespace = 'c' depth = '1' ).
|
||||||
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
||||||
lo_linechart->ns_smoothval = ls_prop-val.
|
lo_linechart->ns_smoothval = ls_prop-val.
|
||||||
|
@ -973,25 +975,37 @@ CLASS zcl_excel_drawing IMPLEMENTATION.
|
||||||
CASE me->graph_type.
|
CASE me->graph_type.
|
||||||
WHEN c_graph_bars.
|
WHEN c_graph_bars.
|
||||||
node2 ?= node->find_from_name( name = 'legendPos' namespace = 'c' ).
|
node2 ?= node->find_from_name( name = 'legendPos' namespace = 'c' ).
|
||||||
|
IF node2 IS BOUND.
|
||||||
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
||||||
lo_barchart->ns_legendposval = ls_prop-val.
|
lo_barchart->ns_legendposval = ls_prop-val.
|
||||||
|
ENDIF.
|
||||||
node2 ?= node->find_from_name( name = 'overlay' namespace = 'c' ).
|
node2 ?= node->find_from_name( name = 'overlay' namespace = 'c' ).
|
||||||
|
IF node2 IS BOUND.
|
||||||
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
||||||
lo_barchart->ns_overlayval = ls_prop-val.
|
lo_barchart->ns_overlayval = ls_prop-val.
|
||||||
|
ENDIF.
|
||||||
WHEN c_graph_line.
|
WHEN c_graph_line.
|
||||||
node2 ?= node->find_from_name( name = 'legendPos' namespace = 'c' ).
|
node2 ?= node->find_from_name( name = 'legendPos' namespace = 'c' ).
|
||||||
|
IF node2 IS BOUND.
|
||||||
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
||||||
lo_linechart->ns_legendposval = ls_prop-val.
|
lo_linechart->ns_legendposval = ls_prop-val.
|
||||||
|
ENDIF.
|
||||||
node2 ?= node->find_from_name( name = 'overlay' namespace = 'c' ).
|
node2 ?= node->find_from_name( name = 'overlay' namespace = 'c' ).
|
||||||
|
IF node2 IS BOUND.
|
||||||
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
||||||
lo_linechart->ns_overlayval = ls_prop-val.
|
lo_linechart->ns_overlayval = ls_prop-val.
|
||||||
|
ENDIF.
|
||||||
WHEN c_graph_pie.
|
WHEN c_graph_pie.
|
||||||
node2 ?= node->find_from_name( name = 'legendPos' namespace = 'c' ).
|
node2 ?= node->find_from_name( name = 'legendPos' namespace = 'c' ).
|
||||||
|
IF node2 IS BOUND.
|
||||||
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
||||||
lo_piechart->ns_legendposval = ls_prop-val.
|
lo_piechart->ns_legendposval = ls_prop-val.
|
||||||
|
ENDIF.
|
||||||
node2 ?= node->find_from_name( name = 'overlay' namespace = 'c' ).
|
node2 ?= node->find_from_name( name = 'overlay' namespace = 'c' ).
|
||||||
|
IF node2 IS BOUND.
|
||||||
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
||||||
lo_piechart->ns_overlayval = ls_prop-val.
|
lo_piechart->ns_overlayval = ls_prop-val.
|
||||||
|
ENDIF.
|
||||||
node2 ?= node->find_from_name( name = 'pPr' namespace = 'a' ).
|
node2 ?= node->find_from_name( name = 'pPr' namespace = 'a' ).
|
||||||
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
zcl_excel_reader_2007=>fill_struct_from_attributes( EXPORTING ip_element = node2 CHANGING cp_structure = ls_prop ).
|
||||||
lo_piechart->ns_pprrtl = ls_prop-rtl.
|
lo_piechart->ns_pprrtl = ls_prop-rtl.
|
||||||
|
|
183
src/zcl_excel_font.clas.abap
Normal file
183
src/zcl_excel_font.clas.abap
Normal file
|
@ -0,0 +1,183 @@
|
||||||
|
CLASS zcl_excel_font DEFINITION
|
||||||
|
PUBLIC
|
||||||
|
FINAL
|
||||||
|
CREATE PUBLIC .
|
||||||
|
|
||||||
|
PUBLIC SECTION.
|
||||||
|
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF mty_s_font_metric,
|
||||||
|
char TYPE c LENGTH 1,
|
||||||
|
char_width TYPE tdcwidths,
|
||||||
|
END OF mty_s_font_metric .
|
||||||
|
TYPES:
|
||||||
|
mty_th_font_metrics
|
||||||
|
TYPE HASHED TABLE OF mty_s_font_metric
|
||||||
|
WITH UNIQUE KEY char .
|
||||||
|
TYPES:
|
||||||
|
BEGIN OF mty_s_font_cache,
|
||||||
|
font_name TYPE zexcel_style_font_name,
|
||||||
|
font_height TYPE tdfontsize,
|
||||||
|
flag_bold TYPE abap_bool,
|
||||||
|
flag_italic TYPE abap_bool,
|
||||||
|
th_font_metrics TYPE mty_th_font_metrics,
|
||||||
|
END OF mty_s_font_cache .
|
||||||
|
TYPES:
|
||||||
|
mty_th_font_cache
|
||||||
|
TYPE HASHED TABLE OF mty_s_font_cache
|
||||||
|
WITH UNIQUE KEY font_name font_height flag_bold flag_italic .
|
||||||
|
|
||||||
|
CONSTANTS lc_default_font_height TYPE tdfontsize VALUE '110' ##NO_TEXT.
|
||||||
|
CONSTANTS lc_default_font_name TYPE zexcel_style_font_name VALUE 'Calibri' ##NO_TEXT.
|
||||||
|
CLASS-DATA mth_font_cache TYPE mty_th_font_cache .
|
||||||
|
|
||||||
|
CLASS-METHODS calculate_text_width
|
||||||
|
IMPORTING
|
||||||
|
!iv_font_name TYPE zexcel_style_font_name
|
||||||
|
!iv_font_height TYPE tdfontsize
|
||||||
|
!iv_flag_bold TYPE abap_bool
|
||||||
|
!iv_flag_italic TYPE abap_bool
|
||||||
|
!iv_cell_value TYPE zexcel_cell_value
|
||||||
|
RETURNING
|
||||||
|
VALUE(rv_width) TYPE float .
|
||||||
|
PROTECTED SECTION.
|
||||||
|
PRIVATE SECTION.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
|
CLASS zcl_excel_font IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
|
METHOD calculate_text_width.
|
||||||
|
|
||||||
|
CONSTANTS lc_excel_cell_padding TYPE float VALUE '0.75'.
|
||||||
|
|
||||||
|
DATA: ld_current_character TYPE c LENGTH 1,
|
||||||
|
lt_itcfc TYPE STANDARD TABLE OF itcfc,
|
||||||
|
ld_offset TYPE i,
|
||||||
|
ld_length TYPE i,
|
||||||
|
ld_uccp TYPE i,
|
||||||
|
ls_font_metric TYPE mty_s_font_metric,
|
||||||
|
ld_width_from_font_metrics TYPE i,
|
||||||
|
ld_font_family TYPE itcfh-tdfamily,
|
||||||
|
lt_font_families LIKE STANDARD TABLE OF ld_font_family,
|
||||||
|
ls_font_cache TYPE mty_s_font_cache.
|
||||||
|
|
||||||
|
FIELD-SYMBOLS: <ls_font_cache> TYPE mty_s_font_cache,
|
||||||
|
<ls_font_metric> TYPE mty_s_font_metric,
|
||||||
|
<ls_itcfc> TYPE itcfc.
|
||||||
|
|
||||||
|
" Check if the same font (font name and font attributes) was already
|
||||||
|
" used before
|
||||||
|
READ TABLE mth_font_cache
|
||||||
|
WITH TABLE KEY
|
||||||
|
font_name = iv_font_name
|
||||||
|
font_height = iv_font_height
|
||||||
|
flag_bold = iv_flag_bold
|
||||||
|
flag_italic = iv_flag_italic
|
||||||
|
ASSIGNING <ls_font_cache>.
|
||||||
|
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
" Font is used for the first time
|
||||||
|
" Add the font to our local font cache
|
||||||
|
ls_font_cache-font_name = iv_font_name.
|
||||||
|
ls_font_cache-font_height = iv_font_height.
|
||||||
|
ls_font_cache-flag_bold = iv_flag_bold.
|
||||||
|
ls_font_cache-flag_italic = iv_flag_italic.
|
||||||
|
INSERT ls_font_cache INTO TABLE mth_font_cache
|
||||||
|
ASSIGNING <ls_font_cache>.
|
||||||
|
|
||||||
|
" Determine the SAPscript font family name from the Excel
|
||||||
|
" font name
|
||||||
|
SELECT tdfamily
|
||||||
|
FROM tfo01
|
||||||
|
INTO TABLE lt_font_families
|
||||||
|
UP TO 1 ROWS
|
||||||
|
WHERE tdtext = iv_font_name
|
||||||
|
ORDER BY PRIMARY KEY.
|
||||||
|
|
||||||
|
" Check if a matching font family was found
|
||||||
|
" Fonts can be uploaded from TTF files using transaction SE73
|
||||||
|
IF lines( lt_font_families ) > 0.
|
||||||
|
READ TABLE lt_font_families INDEX 1 INTO ld_font_family.
|
||||||
|
|
||||||
|
" Load font metrics (returns a table with the size of each letter
|
||||||
|
" in the font)
|
||||||
|
CALL FUNCTION 'LOAD_FONT'
|
||||||
|
EXPORTING
|
||||||
|
family = ld_font_family
|
||||||
|
height = iv_font_height
|
||||||
|
printer = 'SWIN'
|
||||||
|
bold = iv_flag_bold
|
||||||
|
italic = iv_flag_italic
|
||||||
|
TABLES
|
||||||
|
metric = lt_itcfc
|
||||||
|
EXCEPTIONS
|
||||||
|
font_family = 1
|
||||||
|
codepage = 2
|
||||||
|
device_type = 3
|
||||||
|
OTHERS = 4.
|
||||||
|
IF sy-subrc <> 0.
|
||||||
|
CLEAR lt_itcfc.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
" For faster access, convert each character number to the actual
|
||||||
|
" character, and store the characters and their sizes in a hash
|
||||||
|
" table
|
||||||
|
LOOP AT lt_itcfc ASSIGNING <ls_itcfc>.
|
||||||
|
ld_uccp = <ls_itcfc>-cpcharno.
|
||||||
|
ls_font_metric-char =
|
||||||
|
cl_abap_conv_in_ce=>uccpi( ld_uccp ).
|
||||||
|
ls_font_metric-char_width = <ls_itcfc>-tdcwidths.
|
||||||
|
INSERT ls_font_metric
|
||||||
|
INTO TABLE <ls_font_cache>-th_font_metrics.
|
||||||
|
ENDLOOP.
|
||||||
|
|
||||||
|
ENDIF.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
" Calculate the cell width
|
||||||
|
" If available, use font metrics
|
||||||
|
IF lines( <ls_font_cache>-th_font_metrics ) = 0.
|
||||||
|
" Font metrics are not available
|
||||||
|
" -> Calculate the cell width using only the font size
|
||||||
|
ld_length = strlen( iv_cell_value ).
|
||||||
|
rv_width = ld_length * iv_font_height / lc_default_font_height + lc_excel_cell_padding.
|
||||||
|
|
||||||
|
ELSE.
|
||||||
|
" Font metrics are available
|
||||||
|
|
||||||
|
" Calculate the size of the text by adding the sizes of each
|
||||||
|
" letter
|
||||||
|
ld_length = strlen( iv_cell_value ).
|
||||||
|
DO ld_length TIMES.
|
||||||
|
" Subtract 1, because the first character is at offset 0
|
||||||
|
ld_offset = sy-index - 1.
|
||||||
|
|
||||||
|
" Read the current character from the cell value
|
||||||
|
ld_current_character = iv_cell_value+ld_offset(1).
|
||||||
|
|
||||||
|
" Look up the size of the current letter
|
||||||
|
READ TABLE <ls_font_cache>-th_font_metrics
|
||||||
|
WITH TABLE KEY char = ld_current_character
|
||||||
|
ASSIGNING <ls_font_metric>.
|
||||||
|
IF sy-subrc = 0.
|
||||||
|
" The size of the letter is known
|
||||||
|
" -> Add the actual size of the letter
|
||||||
|
ADD <ls_font_metric>-char_width TO ld_width_from_font_metrics.
|
||||||
|
ELSE.
|
||||||
|
" The size of the letter is unknown
|
||||||
|
" -> Add the font height as the default letter size
|
||||||
|
ADD iv_font_height TO ld_width_from_font_metrics.
|
||||||
|
ENDIF.
|
||||||
|
ENDDO.
|
||||||
|
|
||||||
|
" Add cell padding (Excel makes columns a bit wider than the space
|
||||||
|
" that is needed for the text itself) and convert unit
|
||||||
|
" (division by 100)
|
||||||
|
rv_width = ld_width_from_font_metrics / 100 + lc_excel_cell_padding.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
ENDCLASS.
|
27
src/zcl_excel_font.clas.testclasses.abap
Normal file
27
src/zcl_excel_font.clas.testclasses.abap
Normal file
|
@ -0,0 +1,27 @@
|
||||||
|
CLASS ltcl_test DEFINITION FOR TESTING DURATION SHORT RISK LEVEL HARMLESS FINAL.
|
||||||
|
|
||||||
|
PRIVATE SECTION.
|
||||||
|
METHODS calculate FOR TESTING RAISING cx_static_check.
|
||||||
|
ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
CLASS ltcl_test IMPLEMENTATION.
|
||||||
|
|
||||||
|
METHOD calculate.
|
||||||
|
|
||||||
|
DATA lv_width TYPE f.
|
||||||
|
|
||||||
|
lv_width = zcl_excel_font=>calculate_text_width(
|
||||||
|
iv_font_name = 'foobar'
|
||||||
|
iv_font_height = 20
|
||||||
|
iv_flag_bold = abap_false
|
||||||
|
iv_flag_italic = abap_false
|
||||||
|
iv_cell_value = 'hello world' ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals(
|
||||||
|
act = lv_width
|
||||||
|
exp = '2.75' ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
ENDCLASS.
|
17
src/zcl_excel_font.clas.xml
Normal file
17
src/zcl_excel_font.clas.xml
Normal file
|
@ -0,0 +1,17 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOCLASS>
|
||||||
|
<CLSNAME>ZCL_EXCEL_FONT</CLSNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>abap2xlsx - Font Logic</DESCRIPT>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
<WITH_UNIT_TESTS>X</WITH_UNIT_TESTS>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
|
@ -254,7 +254,9 @@ CLASS zcl_excel_reader_2007 DEFINITION
|
||||||
METHODS load_worksheet_autofilter
|
METHODS load_worksheet_autofilter
|
||||||
IMPORTING
|
IMPORTING
|
||||||
io_ixml_worksheet TYPE REF TO if_ixml_document
|
io_ixml_worksheet TYPE REF TO if_ixml_document
|
||||||
io_worksheet TYPE REF TO zcl_excel_worksheet.
|
io_worksheet TYPE REF TO zcl_excel_worksheet
|
||||||
|
RAISING
|
||||||
|
zcx_excel.
|
||||||
METHODS load_worksheet_pagemargins
|
METHODS load_worksheet_pagemargins
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!io_ixml_worksheet TYPE REF TO if_ixml_document
|
!io_ixml_worksheet TYPE REF TO if_ixml_document
|
||||||
|
@ -276,7 +278,9 @@ CLASS zcl_excel_reader_2007 DEFINITION
|
||||||
METHODS load_theme
|
METHODS load_theme
|
||||||
IMPORTING
|
IMPORTING
|
||||||
VALUE(iv_path) TYPE string
|
VALUE(iv_path) TYPE string
|
||||||
!ip_excel TYPE REF TO zcl_excel .
|
!ip_excel TYPE REF TO zcl_excel
|
||||||
|
RAISING
|
||||||
|
zcx_excel .
|
||||||
PRIVATE SECTION.
|
PRIVATE SECTION.
|
||||||
|
|
||||||
DATA zip TYPE REF TO lcl_zip_archive .
|
DATA zip TYPE REF TO lcl_zip_archive .
|
||||||
|
@ -872,7 +876,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
|
||||||
lo_node_si TYPE REF TO if_ixml_element,
|
lo_node_si TYPE REF TO if_ixml_element,
|
||||||
lo_node_si_child TYPE REF TO if_ixml_element,
|
lo_node_si_child TYPE REF TO if_ixml_element,
|
||||||
lo_node_r_child_t TYPE REF TO if_ixml_element,
|
lo_node_r_child_t TYPE REF TO if_ixml_element,
|
||||||
lo_node_r_child_rPr TYPE REF TO if_ixml_element,
|
lo_node_r_child_rpr TYPE REF TO if_ixml_element,
|
||||||
lo_font TYPE REF TO zcl_excel_style_font,
|
lo_font TYPE REF TO zcl_excel_style_font,
|
||||||
ls_rtf TYPE zexcel_s_rtf,
|
ls_rtf TYPE zexcel_s_rtf,
|
||||||
lv_current_offset TYPE int2,
|
lv_current_offset TYPE int2,
|
||||||
|
@ -2208,6 +2212,7 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
|
||||||
zoomscalenormal TYPE string,
|
zoomscalenormal TYPE string,
|
||||||
workbookviewid TYPE string,
|
workbookviewid TYPE string,
|
||||||
showrowcolheaders TYPE string,
|
showrowcolheaders TYPE string,
|
||||||
|
righttoleft TYPE string,
|
||||||
END OF lty_sheetview.
|
END OF lty_sheetview.
|
||||||
|
|
||||||
TYPES: BEGIN OF lty_mergecell,
|
TYPES: BEGIN OF lty_mergecell,
|
||||||
|
@ -2724,6 +2729,10 @@ CLASS zcl_excel_reader_2007 IMPLEMENTATION.
|
||||||
ls_sheetview-showgridlines = abap_false.
|
ls_sheetview-showgridlines = abap_false.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
io_worksheet->set_show_gridlines( ls_sheetview-showgridlines ).
|
io_worksheet->set_show_gridlines( ls_sheetview-showgridlines ).
|
||||||
|
IF ls_sheetview-righttoleft = lc_xml_attr_true
|
||||||
|
OR ls_sheetview-righttoleft = lc_xml_attr_true_int.
|
||||||
|
io_worksheet->zif_excel_sheet_properties~set_right_to_left( abap_true ).
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
|
|
||||||
"Add merge cell information
|
"Add merge cell information
|
||||||
|
|
|
@ -68,7 +68,9 @@ CLASS zcl_excel_reader_huge_file DEFINITION
|
||||||
METHODS put_cell_to_worksheet
|
METHODS put_cell_to_worksheet
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!io_worksheet TYPE REF TO zcl_excel_worksheet
|
!io_worksheet TYPE REF TO zcl_excel_worksheet
|
||||||
!is_cell TYPE t_cell .
|
!is_cell TYPE t_cell
|
||||||
|
RAISING
|
||||||
|
zcx_excel.
|
||||||
METHODS get_shared_string
|
METHODS get_shared_string
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_index TYPE any
|
!iv_index TYPE any
|
||||||
|
@ -88,7 +90,8 @@ CLASS zcl_excel_reader_huge_file DEFINITION
|
||||||
!io_reader TYPE REF TO if_sxml_reader
|
!io_reader TYPE REF TO if_sxml_reader
|
||||||
!io_worksheet TYPE REF TO zcl_excel_worksheet
|
!io_worksheet TYPE REF TO zcl_excel_worksheet
|
||||||
RAISING
|
RAISING
|
||||||
lcx_not_found .
|
lcx_not_found
|
||||||
|
zcx_excel .
|
||||||
METHODS get_sxml_reader
|
METHODS get_sxml_reader
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!iv_path TYPE string
|
!iv_path TYPE string
|
||||||
|
@ -246,16 +249,20 @@ CLASS zcl_excel_reader_huge_file IMPLEMENTATION.
|
||||||
|
|
||||||
WHILE io_reader->node_type NE c_end_of_stream.
|
WHILE io_reader->node_type NE c_end_of_stream.
|
||||||
io_reader->next_node( ).
|
io_reader->next_node( ).
|
||||||
IF io_reader->name EQ `t`.
|
CASE io_reader->name.
|
||||||
|
WHEN 'si'.
|
||||||
CASE io_reader->node_type .
|
CASE io_reader->node_type .
|
||||||
WHEN c_element_open .
|
WHEN c_element_open .
|
||||||
CLEAR lv_value .
|
CLEAR lv_value .
|
||||||
WHEN c_node_value .
|
|
||||||
lv_value = lv_value && io_reader->value .
|
|
||||||
WHEN c_element_close .
|
WHEN c_element_close .
|
||||||
APPEND lv_value TO et_shared_strings.
|
APPEND lv_value TO et_shared_strings.
|
||||||
ENDCASE .
|
ENDCASE .
|
||||||
ENDIF.
|
WHEN 't'.
|
||||||
|
CASE io_reader->node_type .
|
||||||
|
WHEN c_node_value .
|
||||||
|
lv_value = lv_value && io_reader->value .
|
||||||
|
ENDCASE .
|
||||||
|
ENDCASE .
|
||||||
ENDWHILE.
|
ENDWHILE.
|
||||||
|
|
||||||
ENDMETHOD.
|
ENDMETHOD.
|
||||||
|
|
|
@ -1,133 +1,134 @@
|
||||||
*"* use this source file for your ABAP unit test classes
|
*"* use this source file for your ABAP unit test classes
|
||||||
class lcl_test definition deferred.
|
CLASS lcl_test DEFINITION DEFERRED.
|
||||||
class zcl_excel_reader_huge_file definition local friends lcl_test.
|
CLASS zcl_excel_reader_huge_file DEFINITION LOCAL FRIENDS lcl_test.
|
||||||
|
|
||||||
*
|
*
|
||||||
class lcl_test definition for testing
|
CLASS lcl_test DEFINITION FOR TESTING
|
||||||
risk level harmless
|
RISK LEVEL HARMLESS
|
||||||
duration short.
|
DURATION SHORT.
|
||||||
|
|
||||||
private section.
|
PRIVATE SECTION.
|
||||||
data:
|
DATA:
|
||||||
out type ref to zcl_excel_reader_huge_file, " object under test
|
out TYPE REF TO zcl_excel_reader_huge_file, " object under test
|
||||||
excel type ref to zcl_excel,
|
excel TYPE REF TO zcl_excel,
|
||||||
worksheet type ref to zcl_excel_worksheet.
|
worksheet TYPE REF TO zcl_excel_worksheet.
|
||||||
methods:
|
METHODS:
|
||||||
setup raising cx_static_check,
|
setup RAISING cx_static_check,
|
||||||
test_number for testing raising cx_static_check,
|
test_number FOR TESTING RAISING cx_static_check,
|
||||||
test_shared_string for testing raising cx_static_check,
|
test_shared_string FOR TESTING RAISING cx_static_check,
|
||||||
test_shared_string_missing for testing raising cx_static_check,
|
test_shared_string_missing FOR TESTING RAISING cx_static_check,
|
||||||
test_inline_string for testing raising cx_static_check,
|
test_inline_string FOR TESTING RAISING cx_static_check,
|
||||||
test_empty_cells for testing raising cx_static_check,
|
test_empty_cells FOR TESTING RAISING cx_static_check,
|
||||||
test_boolean for testing raising cx_static_check,
|
test_boolean FOR TESTING RAISING cx_static_check,
|
||||||
test_style for testing raising cx_static_check,
|
test_style FOR TESTING RAISING cx_static_check,
|
||||||
test_style_missing for testing raising cx_static_check,
|
test_style_missing FOR TESTING RAISING cx_static_check,
|
||||||
test_formula for testing raising cx_static_check,
|
test_formula FOR TESTING RAISING cx_static_check,
|
||||||
test_read_shared_strings for testing raising cx_static_check,
|
test_read_shared_strings FOR TESTING RAISING cx_static_check,
|
||||||
test_shared_string_some_empty for testing raising cx_static_check,
|
test_shared_string_some_empty FOR TESTING RAISING cx_static_check,
|
||||||
test_skip_to_inexistent for testing raising cx_static_check,
|
test_shared_string_multi_style FOR TESTING RAISING cx_static_check,
|
||||||
get_reader importing iv_xml type string returning value(eo_reader) type ref to if_sxml_reader,
|
test_skip_to_inexistent FOR TESTING RAISING cx_static_check,
|
||||||
assert_value_equals importing iv_row type i default 1 iv_col type i default 1 iv_value type string,
|
get_reader IMPORTING iv_xml TYPE string RETURNING VALUE(eo_reader) TYPE REF TO if_sxml_reader,
|
||||||
assert_formula_equals importing iv_row type i default 1 iv_col type i default 1 iv_formula type string,
|
assert_value_equals IMPORTING iv_row TYPE i DEFAULT 1 iv_col TYPE i DEFAULT 1 iv_value TYPE string,
|
||||||
assert_style_equals importing iv_row type i default 1 iv_col type i default 1 iv_style type ZEXCEL_CELL_STYLE,
|
assert_formula_equals IMPORTING iv_row TYPE i DEFAULT 1 iv_col TYPE i DEFAULT 1 iv_formula TYPE string,
|
||||||
assert_datatype_equals importing iv_row type i default 1 iv_col type i default 1 iv_datatype type string.
|
assert_style_equals IMPORTING iv_row TYPE i DEFAULT 1 iv_col TYPE i DEFAULT 1 iv_style TYPE zexcel_cell_style,
|
||||||
|
assert_datatype_equals IMPORTING iv_row TYPE i DEFAULT 1 iv_col TYPE i DEFAULT 1 iv_datatype TYPE string.
|
||||||
|
|
||||||
endclass. "lcl_test DEFINITION
|
ENDCLASS. "lcl_test DEFINITION
|
||||||
|
|
||||||
*
|
*
|
||||||
class lcl_test implementation.
|
CLASS lcl_test IMPLEMENTATION.
|
||||||
|
|
||||||
*
|
*
|
||||||
method test_number.
|
METHOD test_number.
|
||||||
data lo_reader type ref to if_sxml_reader.
|
DATA lo_reader TYPE REF TO if_sxml_reader.
|
||||||
lo_reader = get_reader(
|
lo_reader = get_reader(
|
||||||
`<c r="A1" t="n"><v>17</v></c>`
|
`<c r="A1" t="n"><v>17</v></c>`
|
||||||
).
|
).
|
||||||
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
||||||
assert_value_equals( `17` ).
|
assert_value_equals( `17` ).
|
||||||
assert_datatype_equals( `n` ).
|
assert_datatype_equals( `n` ).
|
||||||
endmethod. "test_shared_string
|
ENDMETHOD. "test_shared_string
|
||||||
|
|
||||||
*
|
*
|
||||||
method test_shared_string.
|
METHOD test_shared_string.
|
||||||
data lo_reader type ref to if_sxml_reader.
|
DATA lo_reader TYPE REF TO if_sxml_reader.
|
||||||
data: ls_shared_string type zcl_excel_reader_huge_file=>t_shared_string.
|
DATA: ls_shared_string TYPE zcl_excel_reader_huge_file=>t_shared_string.
|
||||||
ls_shared_string-value = `Test1`.
|
ls_shared_string-value = `Test1`.
|
||||||
append ls_shared_string to out->shared_strings.
|
APPEND ls_shared_string TO out->shared_strings.
|
||||||
ls_shared_string-value = `Test2`.
|
ls_shared_string-value = `Test2`.
|
||||||
append ls_shared_string to out->shared_strings.
|
APPEND ls_shared_string TO out->shared_strings.
|
||||||
lo_reader = get_reader(
|
lo_reader = get_reader(
|
||||||
`<c r="A1" t="s"><v>1</v></c>`
|
`<c r="A1" t="s"><v>1</v></c>`
|
||||||
).
|
).
|
||||||
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
||||||
assert_value_equals( `Test2` ).
|
assert_value_equals( `Test2` ).
|
||||||
assert_datatype_equals( `s` ).
|
assert_datatype_equals( `s` ).
|
||||||
endmethod. "test_shared_string
|
ENDMETHOD. "test_shared_string
|
||||||
*
|
*
|
||||||
method test_shared_string_missing.
|
METHOD test_shared_string_missing.
|
||||||
|
|
||||||
data: lo_reader type ref to if_sxml_reader,
|
DATA: lo_reader TYPE REF TO if_sxml_reader,
|
||||||
lo_ex type ref to lcx_not_found,
|
lo_ex TYPE REF TO lcx_not_found,
|
||||||
lv_text type string.
|
lv_text TYPE string.
|
||||||
data: ls_shared_string type zcl_excel_reader_huge_file=>t_shared_string.
|
DATA: ls_shared_string TYPE zcl_excel_reader_huge_file=>t_shared_string.
|
||||||
ls_shared_string-value = `Test`.
|
ls_shared_string-value = `Test`.
|
||||||
append ls_shared_string to out->shared_strings.
|
APPEND ls_shared_string TO out->shared_strings.
|
||||||
lo_reader = get_reader(
|
lo_reader = get_reader(
|
||||||
`<c r="A1" t="s"><v>1</v></c>`
|
`<c r="A1" t="s"><v>1</v></c>`
|
||||||
).
|
).
|
||||||
|
|
||||||
try.
|
TRY.
|
||||||
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
||||||
CL_ABAP_UNIT_ASSERT=>fail( `Index to non-existent shared string should give an error` ).
|
cl_abap_unit_assert=>fail( `Index to non-existent shared string should give an error` ).
|
||||||
catch lcx_not_found into lo_ex.
|
CATCH lcx_not_found INTO lo_ex.
|
||||||
lv_text = lo_ex->get_text( ). " >>> May inspect the message in the debugger
|
lv_text = lo_ex->get_text( ). " >>> May inspect the message in the debugger
|
||||||
endtry.
|
ENDTRY.
|
||||||
|
|
||||||
endmethod.
|
ENDMETHOD.
|
||||||
*
|
*
|
||||||
method test_inline_string.
|
METHOD test_inline_string.
|
||||||
data lo_reader type ref to if_sxml_reader.
|
DATA lo_reader TYPE REF TO if_sxml_reader.
|
||||||
lo_reader = get_reader(
|
lo_reader = get_reader(
|
||||||
`<c r="A1" t="inlineStr"><is><t>Alpha</t></is></c>`
|
`<c r="A1" t="inlineStr"><is><t>Alpha</t></is></c>`
|
||||||
).
|
).
|
||||||
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
||||||
assert_value_equals( `Alpha` ).
|
assert_value_equals( `Alpha` ).
|
||||||
assert_datatype_equals( `inlineStr` ).
|
assert_datatype_equals( `inlineStr` ).
|
||||||
endmethod. "test_inline_string
|
ENDMETHOD. "test_inline_string
|
||||||
|
|
||||||
*
|
*
|
||||||
method test_boolean.
|
METHOD test_boolean.
|
||||||
data lo_reader type ref to if_sxml_reader.
|
DATA lo_reader TYPE REF TO if_sxml_reader.
|
||||||
lo_reader = get_reader(
|
lo_reader = get_reader(
|
||||||
`<c r="A1" t="b"><v>1</v></c>`
|
`<c r="A1" t="b"><v>1</v></c>`
|
||||||
).
|
).
|
||||||
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
||||||
assert_value_equals( `1` ).
|
assert_value_equals( `1` ).
|
||||||
assert_datatype_equals( `b` ).
|
assert_datatype_equals( `b` ).
|
||||||
endmethod. "test_boolean
|
ENDMETHOD. "test_boolean
|
||||||
|
|
||||||
*
|
*
|
||||||
method test_formula.
|
METHOD test_formula.
|
||||||
data lo_reader type ref to if_sxml_reader.
|
DATA lo_reader TYPE REF TO if_sxml_reader.
|
||||||
lo_reader = get_reader(
|
lo_reader = get_reader(
|
||||||
`<c r="A1" t="n"><f>A2*A2</f></c>`
|
`<c r="A1" t="n"><f>A2*A2</f></c>`
|
||||||
).
|
).
|
||||||
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
||||||
assert_formula_equals( `A2*A2` ).
|
assert_formula_equals( `A2*A2` ).
|
||||||
assert_datatype_equals( `n` ).
|
assert_datatype_equals( `n` ).
|
||||||
endmethod. "test_formula
|
ENDMETHOD. "test_formula
|
||||||
|
|
||||||
*
|
*
|
||||||
method test_empty_cells.
|
METHOD test_empty_cells.
|
||||||
|
|
||||||
* There is no need to store an empty cell in the ABAP worksheet structure
|
* There is no need to store an empty cell in the ABAP worksheet structure
|
||||||
|
|
||||||
data: lo_reader type ref to if_sxml_reader.
|
DATA: lo_reader TYPE REF TO if_sxml_reader.
|
||||||
data: ls_shared_string type zcl_excel_reader_huge_file=>t_shared_string.
|
DATA: ls_shared_string TYPE zcl_excel_reader_huge_file=>t_shared_string.
|
||||||
ls_shared_string-value = ``.
|
ls_shared_string-value = ``.
|
||||||
append ls_shared_string to out->shared_strings.
|
APPEND ls_shared_string TO out->shared_strings.
|
||||||
ls_shared_string-value = `t`.
|
ls_shared_string-value = `t`.
|
||||||
append ls_shared_string to out->shared_strings.
|
APPEND ls_shared_string TO out->shared_strings.
|
||||||
lo_reader = get_reader(
|
lo_reader = get_reader(
|
||||||
`<c r="A1" t="s"><v>0</v></c>` &
|
`<c r="A1" t="s"><v>0</v></c>` &
|
||||||
`<c r="A2" t="inlineStr"><is><t></t></is></c>` &
|
`<c r="A2" t="inlineStr"><is><t></t></is></c>` &
|
||||||
|
@ -140,16 +141,16 @@ class lcl_test implementation.
|
||||||
assert_value_equals( iv_row = 2 iv_col = 1 iv_value = `` ).
|
assert_value_equals( iv_row = 2 iv_col = 1 iv_value = `` ).
|
||||||
assert_value_equals( iv_row = 3 iv_col = 1 iv_value = `t` ).
|
assert_value_equals( iv_row = 3 iv_col = 1 iv_value = `t` ).
|
||||||
|
|
||||||
endmethod.
|
ENDMETHOD.
|
||||||
|
|
||||||
*
|
*
|
||||||
method test_style.
|
METHOD test_style.
|
||||||
data:
|
DATA:
|
||||||
lo_reader type ref to if_sxml_reader,
|
lo_reader TYPE REF TO if_sxml_reader,
|
||||||
lo_style type ref to zcl_excel_style,
|
lo_style TYPE REF TO zcl_excel_style,
|
||||||
lv_guid type ZEXCEL_CELL_STYLE.
|
lv_guid TYPE zexcel_cell_style.
|
||||||
create object lo_style.
|
CREATE OBJECT lo_style.
|
||||||
append lo_style to out->styles.
|
APPEND lo_style TO out->styles.
|
||||||
lv_guid = lo_style->get_guid( ).
|
lv_guid = lo_style->get_guid( ).
|
||||||
|
|
||||||
lo_reader = get_reader(
|
lo_reader = get_reader(
|
||||||
|
@ -159,173 +160,196 @@ class lcl_test implementation.
|
||||||
|
|
||||||
assert_style_equals( lv_guid ).
|
assert_style_equals( lv_guid ).
|
||||||
|
|
||||||
endmethod. "test_style
|
ENDMETHOD. "test_style
|
||||||
|
|
||||||
*
|
*
|
||||||
method test_style_missing.
|
METHOD test_style_missing.
|
||||||
|
|
||||||
data:
|
DATA:
|
||||||
lo_reader type ref to if_sxml_reader,
|
lo_reader TYPE REF TO if_sxml_reader,
|
||||||
lo_ex type ref to lcx_not_found,
|
lo_ex TYPE REF TO lcx_not_found,
|
||||||
lv_text type string.
|
lv_text TYPE string.
|
||||||
|
|
||||||
lo_reader = get_reader(
|
lo_reader = get_reader(
|
||||||
`<c r="A1" s="0"><v>18</v></c>`
|
`<c r="A1" s="0"><v>18</v></c>`
|
||||||
).
|
).
|
||||||
|
|
||||||
try.
|
TRY.
|
||||||
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
out->read_worksheet_data( io_reader = lo_reader io_worksheet = worksheet ).
|
||||||
CL_ABAP_UNIT_ASSERT=>fail( `Reference to non-existent style should throw an lcx_not_found exception` ).
|
cl_abap_unit_assert=>fail( `Reference to non-existent style should throw an lcx_not_found exception` ).
|
||||||
catch lcx_not_found into lo_ex.
|
CATCH lcx_not_found INTO lo_ex.
|
||||||
lv_text = lo_ex->get_text( ). " >>> May inspect the message in the debugger
|
lv_text = lo_ex->get_text( ). " >>> May inspect the message in the debugger
|
||||||
endtry.
|
ENDTRY.
|
||||||
|
|
||||||
endmethod. "test_style
|
ENDMETHOD. "test_style
|
||||||
|
|
||||||
*
|
*
|
||||||
method test_read_shared_strings.
|
METHOD test_read_shared_strings.
|
||||||
data: lo_c2x type ref to cl_abap_conv_out_ce,
|
DATA: lo_c2x TYPE REF TO cl_abap_conv_out_ce,
|
||||||
lv_xstring type xstring,
|
lv_xstring TYPE xstring,
|
||||||
lo_reader type ref to if_sxml_reader,
|
lo_reader TYPE REF TO if_sxml_reader,
|
||||||
lt_act type stringtab,
|
lt_act TYPE stringtab,
|
||||||
lt_exp type stringtab.
|
lt_exp TYPE stringtab.
|
||||||
|
|
||||||
lo_c2x = cl_abap_conv_out_ce=>create( ).
|
lo_c2x = cl_abap_conv_out_ce=>create( ).
|
||||||
lo_c2x->convert( exporting data = `<sst><si><t/></si><si><t>Alpha</t></si><si><t>Bravo</t></si></sst>`
|
lo_c2x->convert( EXPORTING data = `<sst><si><t/></si><si><t>Alpha</t></si><si><t>Bravo</t></si></sst>`
|
||||||
importing buffer = lv_xstring ).
|
IMPORTING buffer = lv_xstring ).
|
||||||
lo_reader = cl_sxml_string_reader=>create( lv_xstring ).
|
lo_reader = cl_sxml_string_reader=>create( lv_xstring ).
|
||||||
append :
|
APPEND :
|
||||||
`` to lt_exp,
|
`` TO lt_exp,
|
||||||
`Alpha` to lt_exp,
|
`Alpha` TO lt_exp,
|
||||||
`Bravo` to lt_exp.
|
`Bravo` TO lt_exp.
|
||||||
|
|
||||||
lt_act = out->read_shared_strings( lo_reader ).
|
lt_act = out->read_shared_strings( lo_reader ).
|
||||||
|
|
||||||
CL_ABAP_UNIT_ASSERT=>assert_equals( act = lt_act
|
cl_abap_unit_assert=>assert_equals( act = lt_act
|
||||||
exp = lt_exp ).
|
exp = lt_exp ).
|
||||||
|
|
||||||
endmethod.
|
ENDMETHOD.
|
||||||
|
|
||||||
*
|
*
|
||||||
method test_shared_string_some_empty.
|
METHOD test_shared_string_some_empty.
|
||||||
data: lo_reader type ref to if_sxml_reader,
|
DATA: lo_reader TYPE REF TO if_sxml_reader,
|
||||||
lt_act type stringtab,
|
lt_act TYPE stringtab,
|
||||||
lt_exp type stringtab.
|
lt_exp TYPE stringtab.
|
||||||
lo_reader = cl_sxml_string_reader=>create( cl_abap_codepage=>convert_to(
|
lo_reader = cl_sxml_string_reader=>create( cl_abap_codepage=>convert_to(
|
||||||
`<sst><si><t/></si>` &
|
`<sst><si><t/></si>` &
|
||||||
`<si><t>Alpha</t></si>` &
|
`<si><t>Alpha</t></si>` &
|
||||||
`<si><t/></si>` &
|
`<si><t/></si>` &
|
||||||
`<si><t>Bravo</t></si></sst>`
|
`<si><t>Bravo</t></si></sst>`
|
||||||
) ).
|
) ).
|
||||||
append :
|
APPEND :
|
||||||
`` to lt_exp,
|
`` TO lt_exp,
|
||||||
`Alpha` to lt_exp,
|
`Alpha` TO lt_exp,
|
||||||
`` to lt_exp,
|
`` TO lt_exp,
|
||||||
`Bravo` to lt_exp.
|
`Bravo` TO lt_exp.
|
||||||
|
|
||||||
lt_act = out->read_shared_strings( lo_reader ).
|
lt_act = out->read_shared_strings( lo_reader ).
|
||||||
|
|
||||||
CL_ABAP_UNIT_ASSERT=>assert_equals( act = lt_act
|
cl_abap_unit_assert=>assert_equals( act = lt_act
|
||||||
exp = lt_exp ).
|
exp = lt_exp ).
|
||||||
|
|
||||||
endmethod.
|
ENDMETHOD.
|
||||||
|
|
||||||
|
*
|
||||||
|
METHOD test_shared_string_multi_style.
|
||||||
|
DATA: lo_reader TYPE REF TO if_sxml_reader,
|
||||||
|
lt_act TYPE stringtab,
|
||||||
|
lt_exp TYPE stringtab.
|
||||||
|
lo_reader = cl_sxml_string_reader=>create( cl_abap_codepage=>convert_to(
|
||||||
|
`<sst>` &&
|
||||||
|
`<si><t>Cell A2</t></si>` &&
|
||||||
|
`<si><r><t>the following coloured part</t></r><r><rPr><sz val="11"/><color rgb="FFFF0000"/><rFont val="Calibri"/><family val="2"/><scheme val="minor"/></rPr><t xml:space="preserve"> will be preserved</t></r></si>` &&
|
||||||
|
`<si><t>Cell A3</t></si>` &&
|
||||||
|
`</sst>` ) ).
|
||||||
|
APPEND :
|
||||||
|
`Cell A2` TO lt_exp,
|
||||||
|
`the following coloured part will be preserved` TO lt_exp,
|
||||||
|
`Cell A3` TO lt_exp.
|
||||||
|
|
||||||
|
lt_act = out->read_shared_strings( lo_reader ).
|
||||||
|
|
||||||
|
cl_abap_unit_assert=>assert_equals( act = lt_act
|
||||||
|
exp = lt_exp ).
|
||||||
|
|
||||||
|
ENDMETHOD.
|
||||||
|
|
||||||
|
|
||||||
*
|
*
|
||||||
method test_skip_to_inexistent.
|
METHOD test_skip_to_inexistent.
|
||||||
data: lo_c2x type ref to cl_abap_conv_out_ce,
|
DATA: lo_c2x TYPE REF TO cl_abap_conv_out_ce,
|
||||||
lv_xstring type xstring,
|
lv_xstring TYPE xstring,
|
||||||
lo_reader type ref to if_sxml_reader,
|
lo_reader TYPE REF TO if_sxml_reader,
|
||||||
lo_ex type ref to lcx_not_found,
|
lo_ex TYPE REF TO lcx_not_found,
|
||||||
lv_text type string.
|
lv_text TYPE string.
|
||||||
|
|
||||||
lo_c2x = cl_abap_conv_out_ce=>create( ).
|
lo_c2x = cl_abap_conv_out_ce=>create( ).
|
||||||
lo_c2x->convert( exporting data = `<sst><si><t/></si><si><t>Alpha</t></si><si><t>Bravo</t></si></sst>`
|
lo_c2x->convert( EXPORTING data = `<sst><si><t/></si><si><t>Alpha</t></si><si><t>Bravo</t></si></sst>`
|
||||||
importing buffer = lv_xstring ).
|
IMPORTING buffer = lv_xstring ).
|
||||||
lo_reader = cl_sxml_string_reader=>create( lv_xstring ).
|
lo_reader = cl_sxml_string_reader=>create( lv_xstring ).
|
||||||
try.
|
TRY.
|
||||||
out->skip_to( iv_element_name = `nonExistingElement` io_reader = lo_reader ).
|
out->skip_to( iv_element_name = `nonExistingElement` io_reader = lo_reader ).
|
||||||
CL_ABAP_UNIT_ASSERT=>fail( `Skipping to non-existing element must raise lcx_not_found exception` ).
|
cl_abap_unit_assert=>fail( `Skipping to non-existing element must raise lcx_not_found exception` ).
|
||||||
catch lcx_not_found into lo_ex.
|
CATCH lcx_not_found INTO lo_ex.
|
||||||
lv_text = lo_ex->get_text( ). " May inspect exception text in debugger
|
lv_text = lo_ex->get_text( ). " May inspect exception text in debugger
|
||||||
endtry.
|
ENDTRY.
|
||||||
endmethod.
|
ENDMETHOD.
|
||||||
|
|
||||||
*
|
*
|
||||||
method get_reader.
|
METHOD get_reader.
|
||||||
data: lv_full type string,
|
DATA: lv_full TYPE string,
|
||||||
lo_c2x type ref to cl_abap_conv_out_ce,
|
lo_c2x TYPE REF TO cl_abap_conv_out_ce,
|
||||||
lv_xstring type xstring.
|
lv_xstring TYPE xstring.
|
||||||
concatenate `<root><sheetData><row>` iv_xml `</row></sheetData></root>` into lv_full.
|
CONCATENATE `<root><sheetData><row>` iv_xml `</row></sheetData></root>` INTO lv_full.
|
||||||
lo_c2x = cl_abap_conv_out_ce=>create( ).
|
lo_c2x = cl_abap_conv_out_ce=>create( ).
|
||||||
lo_c2x->convert( exporting data = lv_full
|
lo_c2x->convert( EXPORTING data = lv_full
|
||||||
importing buffer = lv_xstring ).
|
IMPORTING buffer = lv_xstring ).
|
||||||
eo_reader = cl_sxml_string_reader=>create( lv_xstring ).
|
eo_reader = cl_sxml_string_reader=>create( lv_xstring ).
|
||||||
endmethod. "get_reader
|
ENDMETHOD. "get_reader
|
||||||
*
|
*
|
||||||
method assert_value_equals.
|
METHOD assert_value_equals.
|
||||||
|
|
||||||
constants: lc_empty_string type string value is initial.
|
CONSTANTS: lc_empty_string TYPE string VALUE IS INITIAL.
|
||||||
|
|
||||||
field-symbols: <ls_cell_data> type zexcel_s_cell_data,
|
FIELD-SYMBOLS: <ls_cell_data> TYPE zexcel_s_cell_data,
|
||||||
<lv_value> type string.
|
<lv_value> TYPE string.
|
||||||
|
|
||||||
read table worksheet->sheet_content assigning <ls_cell_data>
|
READ TABLE worksheet->sheet_content ASSIGNING <ls_cell_data>
|
||||||
with table key cell_row = iv_row cell_column = iv_col.
|
WITH TABLE KEY cell_row = iv_row cell_column = iv_col.
|
||||||
if sy-subrc eq 0.
|
IF sy-subrc EQ 0.
|
||||||
assign <ls_cell_data>-cell_value to <lv_value>.
|
ASSIGN <ls_cell_data>-cell_value TO <lv_value>.
|
||||||
else.
|
ELSE.
|
||||||
assign lc_empty_string to <lv_value>.
|
ASSIGN lc_empty_string TO <lv_value>.
|
||||||
endif.
|
ENDIF.
|
||||||
|
|
||||||
CL_ABAP_UNIT_ASSERT=>assert_equals( act = <lv_value>
|
cl_abap_unit_assert=>assert_equals( act = <lv_value>
|
||||||
exp = iv_value ).
|
exp = iv_value ).
|
||||||
|
|
||||||
endmethod. "assert_value_equals
|
ENDMETHOD. "assert_value_equals
|
||||||
**
|
**
|
||||||
method assert_formula_equals.
|
METHOD assert_formula_equals.
|
||||||
|
|
||||||
field-symbols: <ls_cell_data> type zexcel_s_cell_data.
|
FIELD-SYMBOLS: <ls_cell_data> TYPE zexcel_s_cell_data.
|
||||||
|
|
||||||
read table worksheet->sheet_content assigning <ls_cell_data>
|
READ TABLE worksheet->sheet_content ASSIGNING <ls_cell_data>
|
||||||
with table key cell_row = iv_row cell_column = iv_col.
|
WITH TABLE KEY cell_row = iv_row cell_column = iv_col.
|
||||||
CL_ABAP_UNIT_ASSERT=>assert_subrc( sy-subrc ).
|
cl_abap_unit_assert=>assert_subrc( sy-subrc ).
|
||||||
|
|
||||||
CL_ABAP_UNIT_ASSERT=>assert_equals( act = <ls_cell_data>-cell_formula
|
cl_abap_unit_assert=>assert_equals( act = <ls_cell_data>-cell_formula
|
||||||
exp = iv_formula ).
|
exp = iv_formula ).
|
||||||
|
|
||||||
endmethod. "assert_formula_equals
|
ENDMETHOD. "assert_formula_equals
|
||||||
*
|
*
|
||||||
method assert_style_equals.
|
METHOD assert_style_equals.
|
||||||
|
|
||||||
field-symbols: <ls_cell_data> type zexcel_s_cell_data.
|
FIELD-SYMBOLS: <ls_cell_data> TYPE zexcel_s_cell_data.
|
||||||
|
|
||||||
read table worksheet->sheet_content assigning <ls_cell_data>
|
READ TABLE worksheet->sheet_content ASSIGNING <ls_cell_data>
|
||||||
with table key cell_row = iv_row cell_column = iv_col.
|
WITH TABLE KEY cell_row = iv_row cell_column = iv_col.
|
||||||
CL_ABAP_UNIT_ASSERT=>assert_subrc( sy-subrc ).
|
cl_abap_unit_assert=>assert_subrc( sy-subrc ).
|
||||||
|
|
||||||
CL_ABAP_UNIT_ASSERT=>assert_equals( act = <ls_cell_data>-cell_style
|
cl_abap_unit_assert=>assert_equals( act = <ls_cell_data>-cell_style
|
||||||
exp = iv_style ).
|
exp = iv_style ).
|
||||||
|
|
||||||
endmethod.
|
ENDMETHOD.
|
||||||
*
|
*
|
||||||
method assert_datatype_equals.
|
METHOD assert_datatype_equals.
|
||||||
|
|
||||||
field-symbols: <ls_cell_data> type zexcel_s_cell_data.
|
FIELD-SYMBOLS: <ls_cell_data> TYPE zexcel_s_cell_data.
|
||||||
|
|
||||||
read table worksheet->sheet_content assigning <ls_cell_data>
|
READ TABLE worksheet->sheet_content ASSIGNING <ls_cell_data>
|
||||||
with table key cell_row = iv_row cell_column = iv_col.
|
WITH TABLE KEY cell_row = iv_row cell_column = iv_col.
|
||||||
CL_ABAP_UNIT_ASSERT=>assert_subrc( sy-subrc ).
|
cl_abap_unit_assert=>assert_subrc( sy-subrc ).
|
||||||
|
|
||||||
CL_ABAP_UNIT_ASSERT=>assert_equals( act = <ls_cell_data>-data_type
|
cl_abap_unit_assert=>assert_equals( act = <ls_cell_data>-data_type
|
||||||
exp = iv_datatype ).
|
exp = iv_datatype ).
|
||||||
|
|
||||||
endmethod. "assert_datatype_equals
|
ENDMETHOD. "assert_datatype_equals
|
||||||
method setup.
|
METHOD setup.
|
||||||
create object out.
|
CREATE OBJECT out.
|
||||||
create object excel.
|
CREATE OBJECT excel.
|
||||||
create object worksheet
|
CREATE OBJECT worksheet
|
||||||
exporting
|
EXPORTING
|
||||||
ip_excel = excel.
|
ip_excel = excel.
|
||||||
endmethod. "setup
|
ENDMETHOD. "setup
|
||||||
endclass. "lcl_test IMPLEMENTATION
|
ENDCLASS. "lcl_test IMPLEMENTATION
|
||||||
|
|
1675
src/zcl_excel_style_changer.clas.abap
Normal file
1675
src/zcl_excel_style_changer.clas.abap
Normal file
File diff suppressed because it is too large
Load Diff
16
src/zcl_excel_style_changer.clas.xml
Normal file
16
src/zcl_excel_style_changer.clas.xml
Normal file
|
@ -0,0 +1,16 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_CLAS" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOCLASS>
|
||||||
|
<CLSNAME>ZCL_EXCEL_STYLE_CHANGER</CLSNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>Style changer</DESCRIPT>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<CLSCCINCL>X</CLSCCINCL>
|
||||||
|
<FIXPT>X</FIXPT>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOCLASS>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
File diff suppressed because it is too large
Load Diff
|
@ -15,9 +15,9 @@ CLASS lcl_excel_worksheet_test DEFINITION FOR TESTING
|
||||||
CLASS-METHODS: class_teardown.
|
CLASS-METHODS: class_teardown.
|
||||||
METHODS: setup.
|
METHODS: setup.
|
||||||
METHODS: teardown.
|
METHODS: teardown.
|
||||||
METHODS: set_merge FOR TESTING.
|
METHODS: set_merge FOR TESTING RAISING cx_static_check.
|
||||||
METHODS: delete_merge FOR TESTING.
|
METHODS: delete_merge FOR TESTING RAISING cx_static_check.
|
||||||
METHODS: get_dimension_range FOR TESTING.
|
METHODS: get_dimension_range FOR TESTING RAISING cx_static_check.
|
||||||
ENDCLASS. "lcl_Excel_Worksheet_Test
|
ENDCLASS. "lcl_Excel_Worksheet_Test
|
||||||
|
|
||||||
|
|
||||||
|
@ -78,9 +78,13 @@ CLASS lcl_excel_worksheet_test IMPLEMENTATION.
|
||||||
|
|
||||||
CREATE OBJECT lo_excel.
|
CREATE OBJECT lo_excel.
|
||||||
|
|
||||||
|
TRY.
|
||||||
CREATE OBJECT f_cut
|
CREATE OBJECT f_cut
|
||||||
EXPORTING
|
EXPORTING
|
||||||
ip_excel = lo_excel.
|
ip_excel = lo_excel.
|
||||||
|
CATCH zcx_excel.
|
||||||
|
cl_abap_unit_assert=>fail( 'Could not create instance' ).
|
||||||
|
ENDTRY.
|
||||||
|
|
||||||
ENDMETHOD. "setup
|
ENDMETHOD. "setup
|
||||||
|
|
||||||
|
|
|
@ -753,12 +753,6 @@
|
||||||
<LANGU>E</LANGU>
|
<LANGU>E</LANGU>
|
||||||
<DESCRIPT>Pagebreaks</DESCRIPT>
|
<DESCRIPT>Pagebreaks</DESCRIPT>
|
||||||
</SEOCOMPOTX>
|
</SEOCOMPOTX>
|
||||||
<SEOCOMPOTX>
|
|
||||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
|
||||||
<CMPNAME>MTH_FONT_CACHE</CMPNAME>
|
|
||||||
<LANGU>E</LANGU>
|
|
||||||
<DESCRIPT>Hash table containing fonts and their metrics</DESCRIPT>
|
|
||||||
</SEOCOMPOTX>
|
|
||||||
<SEOCOMPOTX>
|
<SEOCOMPOTX>
|
||||||
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
<CLSNAME>ZCL_EXCEL_WORKSHEET</CLSNAME>
|
||||||
<CMPNAME>MTY_MERGE</CMPNAME>
|
<CMPNAME>MTY_MERGE</CMPNAME>
|
||||||
|
|
|
@ -48,13 +48,17 @@ CLASS zcl_excel_writer_2007 DEFINITION
|
||||||
!io_document TYPE REF TO if_ixml_document
|
!io_document TYPE REF TO if_ixml_document
|
||||||
!io_worksheet TYPE REF TO zcl_excel_worksheet
|
!io_worksheet TYPE REF TO zcl_excel_worksheet
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(rv_ixml_sheet_data_root) TYPE REF TO if_ixml_element .
|
VALUE(rv_ixml_sheet_data_root) TYPE REF TO if_ixml_element
|
||||||
|
RAISING
|
||||||
|
zcx_excel .
|
||||||
METHODS add_further_data_to_zip
|
METHODS add_further_data_to_zip
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!io_zip TYPE REF TO cl_abap_zip .
|
!io_zip TYPE REF TO cl_abap_zip .
|
||||||
METHODS create
|
METHODS create
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ep_excel) TYPE xstring .
|
VALUE(ep_excel) TYPE xstring
|
||||||
|
RAISING
|
||||||
|
zcx_excel .
|
||||||
METHODS create_content_types
|
METHODS create_content_types
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ep_content) TYPE xstring .
|
VALUE(ep_content) TYPE xstring .
|
||||||
|
@ -108,7 +112,9 @@ CLASS zcl_excel_writer_2007 DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!io_worksheet TYPE REF TO zcl_excel_worksheet
|
!io_worksheet TYPE REF TO zcl_excel_worksheet
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ep_content) TYPE xstring .
|
VALUE(ep_content) TYPE xstring
|
||||||
|
RAISING
|
||||||
|
zcx_excel .
|
||||||
METHODS create_xl_relationships
|
METHODS create_xl_relationships
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ep_content) TYPE xstring .
|
VALUE(ep_content) TYPE xstring .
|
||||||
|
@ -161,13 +167,17 @@ CLASS zcl_excel_writer_2007 DEFINITION
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!io_table TYPE REF TO zcl_excel_table
|
!io_table TYPE REF TO zcl_excel_table
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ep_content) TYPE xstring .
|
VALUE(ep_content) TYPE xstring
|
||||||
|
RAISING
|
||||||
|
zcx_excel .
|
||||||
METHODS create_xl_theme
|
METHODS create_xl_theme
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ep_content) TYPE xstring .
|
VALUE(ep_content) TYPE xstring .
|
||||||
METHODS create_xl_workbook
|
METHODS create_xl_workbook
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ep_content) TYPE xstring .
|
VALUE(ep_content) TYPE xstring
|
||||||
|
RAISING
|
||||||
|
zcx_excel .
|
||||||
METHODS get_shared_string_index
|
METHODS get_shared_string_index
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ip_cell_value TYPE zexcel_cell_value
|
!ip_cell_value TYPE zexcel_cell_value
|
||||||
|
@ -3836,7 +3846,7 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
lc_xml_attr_priority TYPE string VALUE 'priority',
|
lc_xml_attr_priority TYPE string VALUE 'priority',
|
||||||
lc_xml_attr_operator TYPE string VALUE 'operator',
|
lc_xml_attr_operator TYPE string VALUE 'operator',
|
||||||
lc_xml_attr_text TYPE string VALUE 'text',
|
lc_xml_attr_text TYPE string VALUE 'text',
|
||||||
lc_xml_attr_notContainsText TYPE string VALUE 'notContainsText',
|
lc_xml_attr_notcontainstext TYPE string VALUE 'notContainsText',
|
||||||
lc_xml_attr_allowblank TYPE string VALUE 'allowBlank',
|
lc_xml_attr_allowblank TYPE string VALUE 'allowBlank',
|
||||||
lc_xml_attr_showinputmessage TYPE string VALUE 'showInputMessage',
|
lc_xml_attr_showinputmessage TYPE string VALUE 'showInputMessage',
|
||||||
lc_xml_attr_showerrormessage TYPE string VALUE 'showErrorMessage',
|
lc_xml_attr_showerrormessage TYPE string VALUE 'showErrorMessage',
|
||||||
|
@ -4078,6 +4088,10 @@ CLASS zcl_excel_writer_2007 IMPLEMENTATION.
|
||||||
lo_element_2->set_attribute_ns( name = lc_xml_attr_zoomscalesheetview
|
lo_element_2->set_attribute_ns( name = lc_xml_attr_zoomscalesheetview
|
||||||
value = lv_value ).
|
value = lv_value ).
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
IF io_worksheet->zif_excel_sheet_properties~get_right_to_left( ) EQ abap_true.
|
||||||
|
lo_element_2->set_attribute_ns( name = 'rightToLeft'
|
||||||
|
value = '1' ).
|
||||||
|
ENDIF.
|
||||||
lo_element_2->set_attribute_ns( name = lc_xml_attr_workbookviewid
|
lo_element_2->set_attribute_ns( name = lc_xml_attr_workbookviewid
|
||||||
value = '0' ).
|
value = '0' ).
|
||||||
" showGridLines attribute
|
" showGridLines attribute
|
||||||
|
|
|
@ -53,7 +53,7 @@ ENDCLASS.
|
||||||
|
|
||||||
|
|
||||||
|
|
||||||
CLASS ZCL_EXCEL_WRITER_CSV IMPLEMENTATION.
|
CLASS zcl_excel_writer_csv IMPLEMENTATION.
|
||||||
|
|
||||||
|
|
||||||
METHOD create.
|
METHOD create.
|
||||||
|
|
|
@ -69,7 +69,7 @@ CLASS zcl_excel_writer_huge_file IMPLEMENTATION.
|
||||||
|
|
||||||
**********************************************************************
|
**********************************************************************
|
||||||
* STEP 0: Build Regex for invalid characters
|
* STEP 0: Build Regex for invalid characters
|
||||||
" uccpi returns 2 chars but for this specific input 1 char is enough
|
" uccpi returns 2 chars but for this specific input 1 char is enough
|
||||||
CASE cl_abap_char_utilities=>charsize.
|
CASE cl_abap_char_utilities=>charsize.
|
||||||
WHEN 1.lv_last_allowed_char = cl_abap_conv_in_ce=>uccpi( 255 ). " FF in non-Unicode
|
WHEN 1.lv_last_allowed_char = cl_abap_conv_in_ce=>uccpi( 255 ). " FF in non-Unicode
|
||||||
WHEN 2.lv_last_allowed_char = cl_abap_conv_in_ce=>uccpi( 65533 )." FFFD in Unicode
|
WHEN 2.lv_last_allowed_char = cl_abap_conv_in_ce=>uccpi( 65533 )." FFFD in Unicode
|
||||||
|
@ -209,6 +209,7 @@ CLASS zcl_excel_writer_huge_file IMPLEMENTATION.
|
||||||
zoomscalenormal TYPE i,
|
zoomscalenormal TYPE i,
|
||||||
zoomscalepageview TYPE i,
|
zoomscalepageview TYPE i,
|
||||||
zoomscalesheetview TYPE i,
|
zoomscalesheetview TYPE i,
|
||||||
|
righttoleft TYPE i,
|
||||||
workbookviewid TYPE c,
|
workbookviewid TYPE c,
|
||||||
showgridlines TYPE c,
|
showgridlines TYPE c,
|
||||||
showrowcolheaders TYPE c,
|
showrowcolheaders TYPE c,
|
||||||
|
@ -249,7 +250,6 @@ CLASS zcl_excel_writer_huge_file IMPLEMENTATION.
|
||||||
draft TYPE c,
|
draft TYPE c,
|
||||||
errors TYPE string,
|
errors TYPE string,
|
||||||
firstpagenumber TYPE i,
|
firstpagenumber TYPE i,
|
||||||
fittopage TYPE c,
|
|
||||||
fittoheight TYPE i,
|
fittoheight TYPE i,
|
||||||
fittowidth TYPE i,
|
fittowidth TYPE i,
|
||||||
horizontaldpi TYPE i,
|
horizontaldpi TYPE i,
|
||||||
|
@ -381,6 +381,12 @@ CLASS zcl_excel_writer_huge_file IMPLEMENTATION.
|
||||||
l_worksheet-zoomscalesheetview = io_worksheet->zif_excel_sheet_properties~zoomscale_sheetlayoutview.
|
l_worksheet-zoomscalesheetview = io_worksheet->zif_excel_sheet_properties~zoomscale_sheetlayoutview.
|
||||||
ENDIF.
|
ENDIF.
|
||||||
|
|
||||||
|
IF io_worksheet->zif_excel_sheet_properties~get_right_to_left( ) EQ abap_true.
|
||||||
|
l_worksheet-righttoleft = lc_one.
|
||||||
|
ELSE.
|
||||||
|
l_worksheet-righttoleft = lc_zero.
|
||||||
|
ENDIF.
|
||||||
|
|
||||||
l_worksheet-workbookviewid = lc_zero.
|
l_worksheet-workbookviewid = lc_zero.
|
||||||
|
|
||||||
IF io_worksheet->show_gridlines = abap_true.
|
IF io_worksheet->show_gridlines = abap_true.
|
||||||
|
@ -676,7 +682,6 @@ CLASS zcl_excel_writer_huge_file IMPLEMENTATION.
|
||||||
l_worksheet-pagesetup-cellcomments = io_worksheet->sheet_setup->cell_comments.
|
l_worksheet-pagesetup-cellcomments = io_worksheet->sheet_setup->cell_comments.
|
||||||
l_worksheet-pagesetup-copies = io_worksheet->sheet_setup->copies.
|
l_worksheet-pagesetup-copies = io_worksheet->sheet_setup->copies.
|
||||||
l_worksheet-pagesetup-firstpagenumber = io_worksheet->sheet_setup->first_page_number.
|
l_worksheet-pagesetup-firstpagenumber = io_worksheet->sheet_setup->first_page_number.
|
||||||
l_worksheet-pagesetup-fittopage = io_worksheet->sheet_setup->fit_to_page.
|
|
||||||
l_worksheet-pagesetup-fittoheight = io_worksheet->sheet_setup->fit_to_height.
|
l_worksheet-pagesetup-fittoheight = io_worksheet->sheet_setup->fit_to_height.
|
||||||
l_worksheet-pagesetup-fittowidth = io_worksheet->sheet_setup->fit_to_width.
|
l_worksheet-pagesetup-fittowidth = io_worksheet->sheet_setup->fit_to_width.
|
||||||
l_worksheet-pagesetup-horizontaldpi = io_worksheet->sheet_setup->horizontal_dpi.
|
l_worksheet-pagesetup-horizontaldpi = io_worksheet->sheet_setup->horizontal_dpi.
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<DDLANGUAGE>E</DDLANGUAGE>
|
<DDLANGUAGE>E</DDLANGUAGE>
|
||||||
<TABCLASS>INTTAB</TABCLASS>
|
<TABCLASS>INTTAB</TABCLASS>
|
||||||
<DDTEXT>Changeflag for Cells - border</DDTEXT>
|
<DDTEXT>Changeflag for Cells - border</DDTEXT>
|
||||||
<EXCLASS>4</EXCLASS>
|
<EXCLASS>2</EXCLASS>
|
||||||
</DD02V>
|
</DD02V>
|
||||||
<DD03P_TABLE>
|
<DD03P_TABLE>
|
||||||
<DD03P>
|
<DD03P>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<DDLANGUAGE>E</DDLANGUAGE>
|
<DDLANGUAGE>E</DDLANGUAGE>
|
||||||
<TABCLASS>INTTAB</TABCLASS>
|
<TABCLASS>INTTAB</TABCLASS>
|
||||||
<DDTEXT>Changeflag for Cellstyles - Borders</DDTEXT>
|
<DDTEXT>Changeflag for Cellstyles - Borders</DDTEXT>
|
||||||
<EXCLASS>4</EXCLASS>
|
<EXCLASS>2</EXCLASS>
|
||||||
</DD02V>
|
</DD02V>
|
||||||
<DD03P_TABLE>
|
<DD03P_TABLE>
|
||||||
<DD03P>
|
<DD03P>
|
||||||
|
|
|
@ -7,7 +7,8 @@
|
||||||
<DDLANGUAGE>E</DDLANGUAGE>
|
<DDLANGUAGE>E</DDLANGUAGE>
|
||||||
<TABCLASS>INTTAB</TABCLASS>
|
<TABCLASS>INTTAB</TABCLASS>
|
||||||
<DDTEXT>Changeflag Color</DDTEXT>
|
<DDTEXT>Changeflag Color</DDTEXT>
|
||||||
<EXCLASS>4</EXCLASS>
|
<MASTERLANG>E</MASTERLANG>
|
||||||
|
<EXCLASS>2</EXCLASS>
|
||||||
</DD02V>
|
</DD02V>
|
||||||
<DD03P_TABLE>
|
<DD03P_TABLE>
|
||||||
<DD03P>
|
<DD03P>
|
||||||
|
|
|
@ -7,7 +7,7 @@
|
||||||
<DDLANGUAGE>E</DDLANGUAGE>
|
<DDLANGUAGE>E</DDLANGUAGE>
|
||||||
<TABCLASS>INTTAB</TABCLASS>
|
<TABCLASS>INTTAB</TABCLASS>
|
||||||
<DDTEXT>Changeflag for Cellstyles - Fill</DDTEXT>
|
<DDTEXT>Changeflag for Cellstyles - Fill</DDTEXT>
|
||||||
<EXCLASS>4</EXCLASS>
|
<EXCLASS>2</EXCLASS>
|
||||||
</DD02V>
|
</DD02V>
|
||||||
<DD03P_TABLE>
|
<DD03P_TABLE>
|
||||||
<DD03P>
|
<DD03P>
|
||||||
|
|
|
@ -18,9 +18,11 @@
|
||||||
</DD03P>
|
</DD03P>
|
||||||
<DD03P>
|
<DD03P>
|
||||||
<FIELDNAME>TABLE_NAME</FIELDNAME>
|
<FIELDNAME>TABLE_NAME</FIELDNAME>
|
||||||
<ROLLNAME>DSTRING</ROLLNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
<COMPTYPE>E</COMPTYPE>
|
<INTTYPE>g</INTTYPE>
|
||||||
|
<INTLEN>000008</INTLEN>
|
||||||
|
<DATATYPE>STRG</DATATYPE>
|
||||||
|
<MASK> STRG</MASK>
|
||||||
</DD03P>
|
</DD03P>
|
||||||
<DD03P>
|
<DD03P>
|
||||||
<FIELDNAME>TOP_LEFT_COLUMN</FIELDNAME>
|
<FIELDNAME>TOP_LEFT_COLUMN</FIELDNAME>
|
||||||
|
|
|
@ -12,9 +12,11 @@
|
||||||
<DD03P_TABLE>
|
<DD03P_TABLE>
|
||||||
<DD03P>
|
<DD03P>
|
||||||
<FIELDNAME>LEFT_VALUE</FIELDNAME>
|
<FIELDNAME>LEFT_VALUE</FIELDNAME>
|
||||||
<ROLLNAME>DSTRING</ROLLNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
<COMPTYPE>E</COMPTYPE>
|
<INTTYPE>g</INTTYPE>
|
||||||
|
<INTLEN>000008</INTLEN>
|
||||||
|
<DATATYPE>STRG</DATATYPE>
|
||||||
|
<MASK> STRG</MASK>
|
||||||
</DD03P>
|
</DD03P>
|
||||||
<DD03P>
|
<DD03P>
|
||||||
<FIELDNAME>LEFT_FONT</FIELDNAME>
|
<FIELDNAME>LEFT_FONT</FIELDNAME>
|
||||||
|
@ -26,9 +28,11 @@
|
||||||
</DD03P>
|
</DD03P>
|
||||||
<DD03P>
|
<DD03P>
|
||||||
<FIELDNAME>CENTER_VALUE</FIELDNAME>
|
<FIELDNAME>CENTER_VALUE</FIELDNAME>
|
||||||
<ROLLNAME>DSTRING</ROLLNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
<COMPTYPE>E</COMPTYPE>
|
<INTTYPE>g</INTTYPE>
|
||||||
|
<INTLEN>000008</INTLEN>
|
||||||
|
<DATATYPE>STRG</DATATYPE>
|
||||||
|
<MASK> STRG</MASK>
|
||||||
</DD03P>
|
</DD03P>
|
||||||
<DD03P>
|
<DD03P>
|
||||||
<FIELDNAME>CENTER_FONT</FIELDNAME>
|
<FIELDNAME>CENTER_FONT</FIELDNAME>
|
||||||
|
@ -40,9 +44,11 @@
|
||||||
</DD03P>
|
</DD03P>
|
||||||
<DD03P>
|
<DD03P>
|
||||||
<FIELDNAME>RIGHT_VALUE</FIELDNAME>
|
<FIELDNAME>RIGHT_VALUE</FIELDNAME>
|
||||||
<ROLLNAME>DSTRING</ROLLNAME>
|
|
||||||
<ADMINFIELD>0</ADMINFIELD>
|
<ADMINFIELD>0</ADMINFIELD>
|
||||||
<COMPTYPE>E</COMPTYPE>
|
<INTTYPE>g</INTTYPE>
|
||||||
|
<INTLEN>000008</INTLEN>
|
||||||
|
<DATATYPE>STRG</DATATYPE>
|
||||||
|
<MASK> STRG</MASK>
|
||||||
</DD03P>
|
</DD03P>
|
||||||
<DD03P>
|
<DD03P>
|
||||||
<FIELDNAME>RIGHT_FONT</FIELDNAME>
|
<FIELDNAME>RIGHT_FONT</FIELDNAME>
|
||||||
|
|
|
@ -5,7 +5,6 @@
|
||||||
<DD04V>
|
<DD04V>
|
||||||
<ROLLNAME>ZEXCEL_SHEET_ZOOMSCALE</ROLLNAME>
|
<ROLLNAME>ZEXCEL_SHEET_ZOOMSCALE</ROLLNAME>
|
||||||
<DDLANGUAGE>E</DDLANGUAGE>
|
<DDLANGUAGE>E</DDLANGUAGE>
|
||||||
<DOMNAME>INT2</DOMNAME>
|
|
||||||
<HEADLEN>16</HEADLEN>
|
<HEADLEN>16</HEADLEN>
|
||||||
<SCRLEN1>10</SCRLEN1>
|
<SCRLEN1>10</SCRLEN1>
|
||||||
<SCRLEN2>16</SCRLEN2>
|
<SCRLEN2>16</SCRLEN2>
|
||||||
|
@ -16,7 +15,9 @@
|
||||||
<SCRTEXT_M>Sheet Zoom Scale</SCRTEXT_M>
|
<SCRTEXT_M>Sheet Zoom Scale</SCRTEXT_M>
|
||||||
<SCRTEXT_L>Sheet Zoom Scale</SCRTEXT_L>
|
<SCRTEXT_L>Sheet Zoom Scale</SCRTEXT_L>
|
||||||
<DTELMASTER>E</DTELMASTER>
|
<DTELMASTER>E</DTELMASTER>
|
||||||
<REFKIND>D</REFKIND>
|
<DATATYPE>INT2</DATATYPE>
|
||||||
|
<LENG>000005</LENG>
|
||||||
|
<OUTPUTLEN>000006</OUTPUTLEN>
|
||||||
</DD04V>
|
</DD04V>
|
||||||
</asx:values>
|
</asx:values>
|
||||||
</asx:abap>
|
</asx:abap>
|
||||||
|
|
|
@ -27,12 +27,12 @@
|
||||||
<tt:attribute name="summaryRight" value-ref="WORKSHEET.SUMMARYRIGHT" />
|
<tt:attribute name="summaryRight" value-ref="WORKSHEET.SUMMARYRIGHT" />
|
||||||
<tt:attribute name="summaryBelow" value-ref="WORKSHEET.SUMMARYBELOW" />
|
<tt:attribute name="summaryBelow" value-ref="WORKSHEET.SUMMARYBELOW" />
|
||||||
</outlinePr>
|
</outlinePr>
|
||||||
</sheetPr>
|
|
||||||
<tt:cond check="not-initial(WORKSHEET.FITTOPAGE)">
|
<tt:cond check="not-initial(WORKSHEET.FITTOPAGE)">
|
||||||
<pageSetupPr>
|
<pageSetUpPr>
|
||||||
<tt:attribute name="fitToPage" value-ref="WORKSHEET.FITTOPAGE" />
|
<tt:attribute name="fitToPage" value-ref="WORKSHEET.FITTOPAGE"/>
|
||||||
</pageSetupPr>
|
</pageSetUpPr>
|
||||||
</tt:cond>
|
</tt:cond>
|
||||||
|
</sheetPr>
|
||||||
<dimension>
|
<dimension>
|
||||||
<tt:attribute name="ref" value-ref="WORKSHEET.DIMENSION" />
|
<tt:attribute name="ref" value-ref="WORKSHEET.DIMENSION" />
|
||||||
</dimension>
|
</dimension>
|
||||||
|
@ -48,6 +48,7 @@
|
||||||
<tt:attribute name="zoomScalePageLayoutView" value-ref="WORKSHEET.ZOOMSCALEPAGEVIEW" />
|
<tt:attribute name="zoomScalePageLayoutView" value-ref="WORKSHEET.ZOOMSCALEPAGEVIEW" />
|
||||||
</tt:cond>
|
</tt:cond>
|
||||||
<tt:attribute name="zoomScaleSheetLayoutView" value-ref="WORKSHEET.ZOOMSCALESHEETVIEW" />
|
<tt:attribute name="zoomScaleSheetLayoutView" value-ref="WORKSHEET.ZOOMSCALESHEETVIEW" />
|
||||||
|
<tt:attribute name="rightToLeft" value-ref="WORKSHEET.RIGHTTOLEFT" />
|
||||||
<tt:attribute name="workbookViewId" value-ref="WORKSHEET.WORKBOOKVIEWID" />
|
<tt:attribute name="workbookViewId" value-ref="WORKSHEET.WORKBOOKVIEWID" />
|
||||||
<tt:attribute name="showGridLines" value-ref="WORKSHEET.SHOWGRIDLINES" />
|
<tt:attribute name="showGridLines" value-ref="WORKSHEET.SHOWGRIDLINES" />
|
||||||
<tt:attribute name="showRowColHeaders" value-ref="WORKSHEET.SHOWROWCOLHEADERS" />
|
<tt:attribute name="showRowColHeaders" value-ref="WORKSHEET.SHOWROWCOLHEADERS" />
|
||||||
|
@ -112,8 +113,8 @@
|
||||||
<tt:attribute name="hidden" value-ref="HIDDEN" />
|
<tt:attribute name="hidden" value-ref="HIDDEN" />
|
||||||
</tt:cond>
|
</tt:cond>
|
||||||
<tt:cond check="not-initial(CUSTOMHEIGHT)">
|
<tt:cond check="not-initial(CUSTOMHEIGHT)">
|
||||||
<tt:attribute name="customHeight" value-ref="CUSTOMHIGHT" />
|
<tt:attribute name="customHeight" value-ref="CUSTOMHEIGHT" />
|
||||||
<tt:attribute name="ht" value-ref="HIGHT" />
|
<tt:attribute name="ht" value-ref="HEIGHT" />
|
||||||
</tt:cond>
|
</tt:cond>
|
||||||
<tt:cond check="not-initial(COLLAPSED)">
|
<tt:cond check="not-initial(COLLAPSED)">
|
||||||
<tt:attribute name="collapsed" value-ref="COLLAPSED" />
|
<tt:attribute name="collapsed" value-ref="COLLAPSED" />
|
||||||
|
@ -229,8 +230,8 @@
|
||||||
<tt:cond check="FIRSTPAGENUMBER != 0">
|
<tt:cond check="FIRSTPAGENUMBER != 0">
|
||||||
<tt:attribute name="firstPageNumber" value-ref="FIRSTPAGENUMBER" />
|
<tt:attribute name="firstPageNumber" value-ref="FIRSTPAGENUMBER" />
|
||||||
</tt:cond>
|
</tt:cond>
|
||||||
<tt:cond check="not-initial(FITTOPAGE)">
|
<tt:cond check="not-initial(ref('.WORKSHEET.FITTOPAGE'))">
|
||||||
<tt:attribute name="fitToHeight" value-ref="FITTOHIGHT" />
|
<tt:attribute name="fitToHeight" value-ref="FITTOHEIGHT" />
|
||||||
<tt:attribute name="fitToWidth" value-ref="FITTOWIDTH" />
|
<tt:attribute name="fitToWidth" value-ref="FITTOWIDTH" />
|
||||||
</tt:cond>
|
</tt:cond>
|
||||||
<tt:cond check="HORIZONTALDPI != 0">
|
<tt:cond check="HORIZONTALDPI != 0">
|
||||||
|
|
|
@ -25,9 +25,15 @@ INTERFACE zif_excel_sheet_properties
|
||||||
DATA hide_columns_from TYPE zexcel_cell_column_alpha .
|
DATA hide_columns_from TYPE zexcel_cell_column_alpha .
|
||||||
|
|
||||||
METHODS initialize .
|
METHODS initialize .
|
||||||
|
METHODS get_right_to_left
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE abap_bool.
|
||||||
METHODS get_style
|
METHODS get_style
|
||||||
RETURNING
|
RETURNING
|
||||||
VALUE(ep_style) TYPE zexcel_cell_style .
|
VALUE(ep_style) TYPE zexcel_cell_style .
|
||||||
|
METHODS set_right_to_left
|
||||||
|
IMPORTING
|
||||||
|
!right_to_left TYPE abap_bool .
|
||||||
METHODS set_style
|
METHODS set_style
|
||||||
IMPORTING
|
IMPORTING
|
||||||
!ip_style TYPE zexcel_cell_style .
|
!ip_style TYPE zexcel_cell_style .
|
||||||
|
|
495
src/zif_excel_style_changer.intf.abap
Normal file
495
src/zif_excel_style_changer.intf.abap
Normal file
|
@ -0,0 +1,495 @@
|
||||||
|
INTERFACE zif_excel_style_changer
|
||||||
|
PUBLIC .
|
||||||
|
|
||||||
|
METHODS apply
|
||||||
|
IMPORTING
|
||||||
|
ip_worksheet TYPE REF TO zcl_excel_worksheet
|
||||||
|
ip_column TYPE simple
|
||||||
|
ip_row TYPE zexcel_cell_row
|
||||||
|
RETURNING
|
||||||
|
VALUE(ep_guid) TYPE zexcel_cell_style
|
||||||
|
RAISING
|
||||||
|
zcx_excel.
|
||||||
|
METHODS get_guid
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE zexcel_cell_style.
|
||||||
|
METHODS set_complete
|
||||||
|
IMPORTING
|
||||||
|
ip_complete TYPE zexcel_s_cstyle_complete
|
||||||
|
ip_xcomplete TYPE zexcel_s_cstylex_complete
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_complete_font
|
||||||
|
IMPORTING
|
||||||
|
ip_font TYPE zexcel_s_cstyle_font
|
||||||
|
ip_xfont TYPE zexcel_s_cstylex_font OPTIONAL
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_complete_fill
|
||||||
|
IMPORTING
|
||||||
|
ip_fill TYPE zexcel_s_cstyle_fill
|
||||||
|
ip_xfill TYPE zexcel_s_cstylex_fill OPTIONAL
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_complete_borders
|
||||||
|
IMPORTING
|
||||||
|
ip_borders TYPE zexcel_s_cstyle_borders
|
||||||
|
ip_xborders TYPE zexcel_s_cstylex_borders OPTIONAL
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_complete_alignment
|
||||||
|
IMPORTING
|
||||||
|
ip_alignment TYPE zexcel_s_cstyle_alignment
|
||||||
|
ip_xalignment TYPE zexcel_s_cstylex_alignment OPTIONAL
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_complete_protection
|
||||||
|
IMPORTING
|
||||||
|
ip_protection TYPE zexcel_s_cstyle_protection
|
||||||
|
ip_xprotection TYPE zexcel_s_cstylex_protection OPTIONAL
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_complete_borders_all
|
||||||
|
IMPORTING
|
||||||
|
ip_borders_allborders TYPE zexcel_s_cstyle_border
|
||||||
|
ip_xborders_allborders TYPE zexcel_s_cstylex_border OPTIONAL
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_complete_borders_diagonal
|
||||||
|
IMPORTING
|
||||||
|
ip_borders_diagonal TYPE zexcel_s_cstyle_border
|
||||||
|
ip_xborders_diagonal TYPE zexcel_s_cstylex_border OPTIONAL
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_complete_borders_down
|
||||||
|
IMPORTING
|
||||||
|
ip_borders_down TYPE zexcel_s_cstyle_border
|
||||||
|
ip_xborders_down TYPE zexcel_s_cstylex_border OPTIONAL
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_complete_borders_left
|
||||||
|
IMPORTING
|
||||||
|
ip_borders_left TYPE zexcel_s_cstyle_border
|
||||||
|
ip_xborders_left TYPE zexcel_s_cstylex_border OPTIONAL
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_complete_borders_right
|
||||||
|
IMPORTING
|
||||||
|
ip_borders_right TYPE zexcel_s_cstyle_border
|
||||||
|
ip_xborders_right TYPE zexcel_s_cstylex_border OPTIONAL
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_complete_borders_top
|
||||||
|
IMPORTING
|
||||||
|
ip_borders_top TYPE zexcel_s_cstyle_border
|
||||||
|
ip_xborders_top TYPE zexcel_s_cstylex_border OPTIONAL
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_number_format
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_number_format
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_font_bold
|
||||||
|
IMPORTING
|
||||||
|
value TYPE flag
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_font_color
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_style_color
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_font_color_rgb
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_argb
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_font_color_indexed
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_indexed
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_font_color_theme
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_theme
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_font_color_tint
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_tint
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_font_family
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_font_family
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_font_italic
|
||||||
|
IMPORTING
|
||||||
|
value TYPE flag
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_font_name
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_font_name
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_font_scheme
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_font_scheme
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_font_size
|
||||||
|
IMPORTING
|
||||||
|
value TYPE numeric
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_font_strikethrough
|
||||||
|
IMPORTING
|
||||||
|
value TYPE flag
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_font_underline
|
||||||
|
IMPORTING
|
||||||
|
value TYPE flag
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_font_underline_mode
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_font_underline
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_filltype
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_fill_type
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_rotation
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_rotation
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_fgcolor
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_style_color
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_fgcolor_rgb
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_argb
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_fgcolor_indexed
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_indexed
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_fgcolor_theme
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_theme
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_fgcolor_tint
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_tint
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_bgcolor
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_style_color
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_bgcolor_rgb
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_argb
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_bgcolor_indexed
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_indexed
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_bgcolor_theme
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_theme
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_bgcolor_tint
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_tint
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_gradtype_type
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_gradient_type-type
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_gradtype_degree
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_gradient_type-degree
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_gradtype_bottom
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_gradient_type-bottom
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_gradtype_left
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_gradient_type-left
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_gradtype_top
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_gradient_type-top
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_gradtype_right
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_gradient_type-right
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_gradtype_position1
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_gradient_type-position1
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_gradtype_position2
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_gradient_type-position2
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_fill_gradtype_position3
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_gradient_type-position3
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_diagonal_mode
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_diagonal
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_alignment_horizontal
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_alignment
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_alignment_vertical
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_alignment
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_alignment_textrotation
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_text_rotation
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_alignment_wraptext
|
||||||
|
IMPORTING
|
||||||
|
value TYPE flag
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_alignment_shrinktofit
|
||||||
|
IMPORTING
|
||||||
|
value TYPE flag
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_alignment_indent
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_indent
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_protection_hidden
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_cell_protection
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_protection_locked
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_cell_protection
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_allborders_style
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_border
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_allborders_color
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_style_color
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_allbo_color_rgb
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_argb
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_allbo_color_indexe
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_indexed
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_allbo_color_theme
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_theme
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_allbo_color_tint
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_tint
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_diagonal_style
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_border
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_diagonal_color
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_style_color
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_diagonal_color_rgb
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_argb
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_diagonal_color_ind
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_indexed
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_diagonal_color_the
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_theme
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_diagonal_color_tin
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_tint
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_down_style
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_border
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_down_color
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_style_color
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_down_color_rgb
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_argb
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_down_color_indexed
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_indexed
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_down_color_theme
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_theme
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_down_color_tint
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_tint
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_left_style
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_border
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_left_color
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_style_color
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_left_color_rgb
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_argb
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_left_color_indexed
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_indexed
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_left_color_theme
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_theme
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_left_color_tint
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_tint
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_right_style
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_border
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_right_color
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_style_color
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_right_color_rgb
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_argb
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_right_color_indexe
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_indexed
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_right_color_theme
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_theme
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_right_color_tint
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_tint
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_top_style
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_border
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_top_color
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_s_style_color
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_top_color_rgb
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_argb
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_top_color_indexed
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_indexed
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_top_color_theme
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_theme
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
METHODS set_borders_top_color_tint
|
||||||
|
IMPORTING
|
||||||
|
value TYPE zexcel_style_color_tint
|
||||||
|
RETURNING
|
||||||
|
VALUE(result) TYPE REF TO zif_excel_style_changer.
|
||||||
|
DATA: complete_style TYPE zexcel_s_cstyle_complete READ-ONLY,
|
||||||
|
complete_stylex TYPE zexcel_s_cstylex_complete READ-ONLY.
|
||||||
|
ENDINTERFACE.
|
15
src/zif_excel_style_changer.intf.xml
Normal file
15
src/zif_excel_style_changer.intf.xml
Normal file
|
@ -0,0 +1,15 @@
|
||||||
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
|
<abapGit version="v1.0.0" serializer="LCL_OBJECT_INTF" serializer_version="v1.0.0">
|
||||||
|
<asx:abap xmlns:asx="http://www.sap.com/abapxml" version="1.0">
|
||||||
|
<asx:values>
|
||||||
|
<VSEOINTERF>
|
||||||
|
<CLSNAME>ZIF_EXCEL_STYLE_CHANGER</CLSNAME>
|
||||||
|
<LANGU>E</LANGU>
|
||||||
|
<DESCRIPT>Excel style</DESCRIPT>
|
||||||
|
<EXPOSURE>2</EXPOSURE>
|
||||||
|
<STATE>1</STATE>
|
||||||
|
<UNICODE>X</UNICODE>
|
||||||
|
</VSEOINTERF>
|
||||||
|
</asx:values>
|
||||||
|
</asx:abap>
|
||||||
|
</abapGit>
|
Loading…
Reference in New Issue
Block a user