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 发送至邮箱
直接输出-前台显示结果: