SAP ABAP2XLSX 设置单元格图标之ZDEMO

    科技2025-10-10  16

    ABAP2XLSX 设置单元格图标ICON 单元格值是否显示 ZDEMO_EXCEL5

    代码:

    DATA: lo_excel TYPE REF TO zcl_excel, lo_worksheet TYPE REF TO zcl_excel_worksheet, lo_style_conditional TYPE REF TO zcl_excel_style_conditional. DATA: ls_iconset TYPE zexcel_conditional_iconset. CONSTANTS: gc_save_file_name TYPE string VALUE 'zdeome_excel5.xlsx'. INCLUDE zdemo_excel_outputopt_incl. START-OF-SELECTION. CREATE OBJECT lo_excel. " Get active sheet lo_worksheet = lo_excel->get_active_worksheet( ). *设置三种颜色类型的ICON ls_iconset-cfvo1_type = zcl_excel_style_conditional=>c_cfvo_type_percent. ls_iconset-cfvo1_value = '0'. ls_iconset-cfvo2_type = zcl_excel_style_conditional=>c_cfvo_type_percent. ls_iconset-cfvo2_value = '11'. ls_iconset-cfvo3_type = zcl_excel_style_conditional=>c_cfvo_type_percent. ls_iconset-cfvo3_value = '33'. *C列输出 lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_conditional->priority = 1. ls_iconset-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights2. "设置ICON样式 ls_iconset-showvalue = zcl_excel_style_conditional=>c_showvalue_true. "默认显示值 lo_style_conditional->mode_iconset = ls_iconset. "应用ICON设置输出到Range,cfvo1-cfvo5之间循环红绿黄,超过cfvo1-cfvo5部分默认绿色 lo_style_conditional->set_range( ip_start_column = 'C' ip_start_row = 4 ip_stop_column = 'C' ip_stop_row = 10 ). lo_worksheet->set_cell( ip_row = 4 ip_column = 'C' ip_value = 100 ). lo_worksheet->set_cell( ip_row = 5 ip_column = 'C' ip_value = 1000 ). lo_worksheet->set_cell( ip_row = 6 ip_column = 'C' ip_value = 150 ). lo_worksheet->set_cell( ip_row = 7 ip_column = 'C' ip_value = 10 ). lo_worksheet->set_cell( ip_row = 8 ip_column = 'C' ip_value = 500 ). lo_worksheet->set_cell( ip_row = 9 ip_column = 'C' ip_value = 700 ). lo_worksheet->set_cell( ip_row = 10 ip_column = 'C' ip_value = 800 ). *E列输出 lo_style_conditional = lo_worksheet->add_new_conditional_style( ). lo_style_conditional->rule = zcl_excel_style_conditional=>c_rule_iconset. lo_style_conditional->priority = 1. ls_iconset-iconset = zcl_excel_style_conditional=>c_iconset_3trafficlights. ls_iconset-showvalue = zcl_excel_style_conditional=>c_showvalue_false. "设置不显示值 lo_style_conditional->mode_iconset = ls_iconset. "应用ICON设置输出到Range lo_style_conditional->set_range( ip_start_column = 'E' ip_start_row = 4 ip_stop_column = 'E' ip_stop_row = 8 ). lo_worksheet->set_cell( ip_row = 4 ip_column = 'E' ip_value = 100 ). lo_worksheet->set_cell( ip_row = 5 ip_column = 'E' ip_value = 1000 ). lo_worksheet->set_cell( ip_row = 6 ip_column = 'E' ip_value = 150 ). lo_worksheet->set_cell( ip_row = 7 ip_column = 'E' ip_value = 10 ). lo_worksheet->set_cell( ip_row = 8 ip_column = 'E' ip_value = 500 ). *** Create output lcl_output=>output( lo_excel ).

    运行程序后,输出选项:

    Save to Frontend 前台输出,下载到电脑Save to Backend 后台输出Direct Display 直接输出,在SAP GUI显示Excel表Send Via Email 发送至邮箱

    直接输出-前台显示结果:

    Processed: 0.017, SQL: 8