*&---------------------------------------------------------------------* *& Report ZDEMO_EXCEL2 *& Test Styles for ABAP2XLSX *&---------------------------------------------------------------------* *& *& *&---------------------------------------------------------------------* REPORT zdemo_excel34. CONSTANTS: width TYPE f VALUE '10.14'. CONSTANTS: height TYPE f VALUE '57.75'. DATA: current_row TYPE i, col TYPE i, col_alpha TYPE zexcel_cell_column_alpha, row TYPE i, row_board TYPE i, colorflag TYPE i, color TYPE zexcel_style_color_argb, column_dimension TYPE REF TO zcl_excel_worksheet_columndime, row_dimension TYPE REF TO zcl_excel_worksheet_rowdimensi, writing1 TYPE string, writing2 TYPE string. DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet. CONSTANTS: gc_save_file_name TYPE string VALUE '34_Static Styles_Chess.xlsx'. INCLUDE zdemo_excel_outputopt_incl. START-OF-SELECTION. " Creates active sheet CREATE OBJECT lo_excel. " Get active sheet lo_worksheet = lo_excel->get_active_worksheet( ). lo_worksheet->set_title( ip_title = 'Spassky_vs_Bronstein' ). * Header current_row = 1. ADD 1 TO current_row. lo_worksheet->set_cell( ip_row = current_row ip_column = 'B' ip_value = 'White' ). lo_worksheet->set_cell( ip_row = current_row ip_column = 'C' ip_value = 'Spassky, Boris V -- wins in turn 23' ). ADD 1 TO current_row. lo_worksheet->set_cell( ip_row = current_row ip_column = 'B' ip_value = 'Black' ). lo_worksheet->set_cell( ip_row = current_row ip_column = 'C' ip_value = 'Bronstein, David I' ). ADD 1 TO current_row. * Set size of column + Writing above chessboard DO 8 TIMES. writing1 = zcl_excel_common=>convert_column2alpha( sy-index ). writing2 = sy-index . row = current_row + sy-index. col = sy-index + 1. col_alpha = zcl_excel_common=>convert_column2alpha( col ). * Set size of column column_dimension = lo_worksheet->get_column_dimension( col_alpha ). column_dimension->set_width( width ). * Set size of row row_dimension = lo_worksheet->get_row_dimension( row ). row_dimension->set_row_height( height ). * Set writing on chessboard lo_worksheet->set_cell( ip_row = row ip_column = 'A' ip_value = writing2 ). lo_worksheet->change_cell_style( ip_column = 'A' ip_row = row ip_alignment_vertical = zcl_excel_style_alignment=>c_vertical_center ). lo_worksheet->set_cell( ip_row = row ip_column = 'J' ip_value = writing2 ). lo_worksheet->change_cell_style( ip_column = 'J' ip_row = row ip_alignment_vertical = zcl_excel_style_alignment=>c_vertical_center ). row = current_row + 9. lo_worksheet->set_cell( ip_row = current_row ip_column = col_alpha ip_value = writing1 ). lo_worksheet->change_cell_style( ip_column = col_alpha ip_row = current_row ip_alignment_horizontal = zcl_excel_style_alignment=>c_horizontal_center ). lo_worksheet->set_cell( ip_row = row ip_column = col_alpha ip_value = writing1 ). lo_worksheet->change_cell_style( ip_column = col_alpha ip_row = row ip_alignment_horizontal = zcl_excel_style_alignment=>c_horizontal_center ). ENDDO. column_dimension = lo_worksheet->get_column_dimension( 'A' ). column_dimension->set_auto_size( abap_true ). column_dimension = lo_worksheet->get_column_dimension( 'J' ). column_dimension->set_auto_size( abap_true ). * Set win-position CONSTANTS: c_pawn TYPE string VALUE 'Pawn'. CONSTANTS: c_rook TYPE string VALUE 'Rook'. CONSTANTS: c_knight TYPE string VALUE 'Knight'. CONSTANTS: c_bishop TYPE string VALUE 'Bishop'. CONSTANTS: c_queen TYPE string VALUE 'Queen'. CONSTANTS: c_king TYPE string VALUE 'King'. row = current_row + 1. lo_worksheet->set_cell( ip_row = row ip_column = 'B' ip_value = c_rook ). lo_worksheet->set_cell( ip_row = row ip_column = 'F' ip_value = c_rook ). lo_worksheet->set_cell( ip_row = row ip_column = 'G' ip_value = c_knight ). row = current_row + 2. lo_worksheet->set_cell( ip_row = row ip_column = 'B' ip_value = c_pawn ). lo_worksheet->set_cell( ip_row = row ip_column = 'C' ip_value = c_pawn ). lo_worksheet->set_cell( ip_row = row ip_column = 'D' ip_value = c_pawn ). lo_worksheet->set_cell( ip_row = row ip_column = 'F' ip_value = c_queen ). lo_worksheet->set_cell( ip_row = row ip_column = 'H' ip_value = c_pawn ). lo_worksheet->set_cell( ip_row = row ip_column = 'I' ip_value = c_king ). row = current_row + 3. lo_worksheet->set_cell( ip_row = row ip_column = 'I' ip_value = c_pawn ). row = current_row + 4. lo_worksheet->set_cell( ip_row = row ip_column = 'D' ip_value = c_pawn ). lo_worksheet->set_cell( ip_row = row ip_column = 'F' ip_value = c_knight ). row = current_row + 5. lo_worksheet->set_cell( ip_row = row ip_column = 'E' ip_value = c_pawn ). lo_worksheet->set_cell( ip_row = row ip_column = 'F' ip_value = c_queen ). row = current_row + 6. lo_worksheet->set_cell( ip_row = row ip_column = 'C' ip_value = c_bishop ). row = current_row + 7. lo_worksheet->set_cell( ip_row = row ip_column = 'B' ip_value = c_pawn ). lo_worksheet->set_cell( ip_row = row ip_column = 'C' ip_value = c_pawn ). lo_worksheet->set_cell( ip_row = row ip_column = 'H' ip_value = c_pawn ). lo_worksheet->set_cell( ip_row = row ip_column = 'I' ip_value = c_pawn ). row = current_row + 8. lo_worksheet->set_cell( ip_row = row ip_column = 'G' ip_value = c_rook ). lo_worksheet->set_cell( ip_row = row ip_column = 'H' ip_value = c_king ). * Set Chessboard DO 8 TIMES. IF sy-index <= 3. " Black color = zcl_excel_style_color=>c_black. ELSE. color = zcl_excel_style_color=>c_white. ENDIF. row_board = sy-index. row = current_row + sy-index. DO 8 TIMES. col = sy-index + 1. col_alpha = zcl_excel_common=>convert_column2alpha( col ). TRY. * Borders around outer limits IF row_board = 1. lo_worksheet->change_cell_style( ip_column = col_alpha ip_row = row ip_borders_top_style = zcl_excel_style_border=>c_border_thick ip_borders_top_color_rgb = zcl_excel_style_color=>c_black ). ENDIF. IF row_board = 8. lo_worksheet->change_cell_style( ip_column = col_alpha ip_row = row ip_borders_down_style = zcl_excel_style_border=>c_border_thick ip_borders_down_color_rgb = zcl_excel_style_color=>c_black ). ENDIF. IF col = 2. lo_worksheet->change_cell_style( ip_column = col_alpha ip_row = row ip_borders_left_style = zcl_excel_style_border=>c_border_thick ip_borders_left_color_rgb = zcl_excel_style_color=>c_black ). ENDIF. IF col = 9. lo_worksheet->change_cell_style( ip_column = col_alpha ip_row = row ip_borders_right_style = zcl_excel_style_border=>c_border_thick ip_borders_right_color_rgb = zcl_excel_style_color=>c_black ). ENDIF. * Style for writing lo_worksheet->change_cell_style( ip_column = col_alpha ip_row = row ip_font_color_rgb = color ip_font_bold = 'X' ip_font_size = 16 ip_alignment_horizontal = zcl_excel_style_alignment=>c_horizontal_center ip_alignment_vertical = zcl_excel_style_alignment=>c_vertical_center ip_fill_filltype = zcl_excel_style_fill=>c_fill_solid ). * Color of field colorflag = ( row + col ) MOD 2. IF colorflag = 0. lo_worksheet->change_cell_style( ip_column = col_alpha ip_row = row ip_fill_fgcolor_rgb = 'FFB5866A' ). ELSE. lo_worksheet->change_cell_style( ip_column = col_alpha ip_row = row ip_fill_fgcolor_rgb = 'FFF5DEBF' ). ENDIF. CATCH zcx_excel . ENDTRY. ENDDO. ENDDO. *** Create output lcl_output=>output( lo_excel ).