abap2xlsx/ZA2X/PROG/ZDEMO_EXCEL13.slnk
Ivan 24c5fca308 Update slinkees
Update of all the slinkees files with the latest version of SAPLink to
simplify merge of pull request
2015-01-12 14:55:28 -06:00

93 lines
5.7 KiB
XML

<?xml version="1.0" encoding="utf-8"?>
<PROG NAME="ZDEMO_EXCEL13" VARCL="X" SUBC="1" RSTAT="T" RMAND="001" RLOAD="E" FIXPT="X" UCCHECK="X">
<textPool>
<language SPRAS="E">
<textElement ID="R" ENTRY="abap2xlsx Demo: Merge cells" LENGTH="28 "/>
<textElement ID="S" KEY="P_PATH" ENTRY="D ." LENGTH="9 "/>
</language>
</textPool>
<source>*&amp;---------------------------------------------------------------------*
*&amp; Report ZDEMO_EXCEL13
*&amp;
*&amp;---------------------------------------------------------------------*
*&amp; Example by: Alvaro &quot;Blag&quot; Tejada Galindo.
*&amp;
*&amp;---------------------------------------------------------------------*
REPORT zdemo_excel13.
DATA: lo_excel TYPE REF TO zcl_excel,
lo_worksheet TYPE REF TO zcl_excel_worksheet,
lv_style_bold_border_guid TYPE zexcel_cell_style,
lo_style_bold_border TYPE REF TO zcl_excel_style,
lo_border_dark TYPE REF TO zcl_excel_style_border.
CONSTANTS: gc_save_file_name TYPE string VALUE &apos;13_MergedCells.xlsx&apos;.
INCLUDE zdemo_excel_outputopt_incl.
START-OF-SELECTION.
CREATE OBJECT lo_excel.
&quot; Get active sheet
lo_worksheet = lo_excel-&gt;get_active_worksheet( ).
lo_worksheet-&gt;set_title( &apos;sheet1&apos; ).
CREATE OBJECT lo_border_dark.
lo_border_dark-&gt;border_color-rgb = zcl_excel_style_color=&gt;c_black.
lo_border_dark-&gt;border_style = zcl_excel_style_border=&gt;c_border_thin.
lo_style_bold_border = lo_excel-&gt;add_new_style( ).
lo_style_bold_border-&gt;font-&gt;bold = abap_true.
lo_style_bold_border-&gt;font-&gt;italic = abap_false.
lo_style_bold_border-&gt;font-&gt;color-rgb = zcl_excel_style_color=&gt;c_black.
lo_style_bold_border-&gt;alignment-&gt;horizontal = zcl_excel_style_alignment=&gt;c_horizontal_center.
lo_style_bold_border-&gt;borders-&gt;allborders = lo_border_dark.
lv_style_bold_border_guid = lo_style_bold_border-&gt;get_guid( ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;A&apos; ip_value = &apos;Test&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;B&apos; ip_value = &apos;Banana&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;C&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;D&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;E&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;F&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 2 ip_column = &apos;G&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;B&apos; ip_value = &apos;Apple&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;C&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;D&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;E&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;F&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 4 ip_column = &apos;G&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_merge( ip_row = 4 ip_column_start = &apos;B&apos; ip_column_end = &apos;G&apos; ).
&quot; Test also if merge works when oher merged chells are empty
lo_worksheet-&gt;set_cell( ip_row = 6 ip_column = &apos;B&apos; ip_value = &apos;Tomato&apos; ).
lo_worksheet-&gt;set_merge( ip_row = 6 ip_column_start = &apos;B&apos; ip_column_end = &apos;G&apos; ).
&quot; Test the patch provided by Victor Alekhin to merge cells in one column
lo_worksheet-&gt;set_cell( ip_row = 8 ip_column = &apos;B&apos; ip_value = &apos;Merge cells also over multiple rows by Victor Alekhin&apos; ).
lo_worksheet-&gt;set_merge( ip_row = 8 ip_column_start = &apos;B&apos; ip_column_end = &apos;G&apos; ip_row_to = 10 ).
&quot; Test the patch provided by Alexander Budeyev with different column merges
lo_worksheet-&gt;set_cell( ip_row = 12 ip_column = &apos;B&apos; ip_value = &apos;Merge cells with different merges by Alexander Budeyev&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;B&apos; ip_value = &apos;Test&apos; ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;D&apos; ip_value = &apos;Banana&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 14 ip_column = &apos;D&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;E&apos; ip_value = &apos;Apple&apos; ip_style = lv_style_bold_border_guid ).
lo_worksheet-&gt;set_cell( ip_row = 13 ip_column = &apos;F&apos; ip_value = &apos;&apos; ip_style = lv_style_bold_border_guid ).
&quot; Test merge (issue)
lo_worksheet-&gt;set_merge( ip_row = 13 ip_column_start = &apos;B&apos; ip_column_end = &apos;C&apos; ip_row_to = 15 ).
lo_worksheet-&gt;set_merge( ip_row = 13 ip_column_start = &apos;D&apos; ip_column_end = &apos;D&apos; ip_row_to = 14 ).
lo_worksheet-&gt;set_merge( ip_row = 13 ip_column_start = &apos;E&apos; ip_column_end = &apos;F&apos; ).
*** Create output
lcl_output=&gt;output( lo_excel ).</source>
</PROG>