ABAP ABAP2XLSX ZCL_EXCEL使用小技巧
创建Excel sheet1
LO_WORKSHEET = LO_EXCEL->GET_ACTIVE_WORKSHEET( ).
LO_WORKSHEET->SET_TITLE( 'sheet1' ).
边框样式和颜色
LO_BORDER_DARK->BORDER_COLOR-RGB = ZCL_EXCEL_STYLE_COLOR=>C_BLACK.
LO_BORDER_DARK->BORDER_STYLE = ZCL_EXCEL_STYLE_BORDER=>C_BORDER_THIN.
LO_STYLE_BOLD_BORDER = LO_EXCEL->ADD_NEW_STYLE( ).
LO_STYLE_BOLD_BORDER->FONT->BOLD = ABAP_TRUE.
LO_STYLE_BOLD_BORDER->FONT->ITALIC = ABAP_FALSE.
LO_STYLE_BOLD_BORDER->FONT->COLOR-RGB = ZCL_EXCEL_STYLE_COLOR=>C_BLACK.
LO_STYLE_BOLD_BORDER->ALIGNMENT->HORIZONTAL = ZCL_EXCEL_STYLE_ALIGNMENT=>C_HORIZONTAL_CENTER.
* LO_STYLE_BOLD_BORDER->BORDERS->ALLBORDERS = LO_BORDER_DARK.
LO_STYLE_BOLD_BORDER->BORDERS->LEFT = LO_BORDER_DARK.
LV_STYLE_BOLD_BORDER_GUID = LO_STYLE_BOLD_BORDER->GET_GUID( ).
对齐方式
边框样式
数据格式化
千分格式
LO_CURR = LO_EXCEL->ADD_NEW_STYLE( ).
LO_CURR->FONT->BOLD = ABAP_TRUE.
LO_CURR->FONT->ITALIC = ABAP_FALSE.
LO_CURR->FONT->COLOR-RGB = ZCL_EXCEL_STYLE_COLOR=>C_BLACK.
LO_CURR->ALIGNMENT->HORIZONTAL = ZCL_EXCEL_STYLE_ALIGNMENT=>C_HORIZONTAL_CENTER.
LO_CURR->NUMBER_FORMAT->FORMAT_CODE = ZCL_EXCEL_STYLE_NUMBER_FORMAT=>C_FORMAT_XLSX38. "千分格式
LO_CURR->BORDERS->ALLBORDERS = LO_BORDER_DARK.
LO_CURR_GUID = LO_CURR->GET_GUID( ).
DATA:LCURR LIKE BSEG-DMBTR.
LCURR = '12345673456.1234'.
LO_WORKSHEET->SET_CELL( IP_ROW = 2 IP_COLUMN = 'H' IP_VALUE = LCURR IP_STYLE = LO_CURR_GUID ).
合并单元格
LO_WORKSHEET->SET_MERGE( IP_ROW = 6 IP_COLUMN_START = 'B' IP_COLUMN_END = 'G' ).
设置列宽
SET_ROW_HEIGHT 行高
列宽
LO_WORKSHEET->SET_COLUMN_WIDTH( IP_COLUMN = 'A' IP_WIDTH_FIX = '10').
设置区域
LO_WORKSHEET->SET_AREA( IP_ROW = 1 IP_ROW_TO = 6 IP_COLUMN_START = 'B' IP_COLUMN_END = 'G' IP_STYLE = LV_STYLE_BOLD_BORDER_GUID ).
保存文件
" Convert to binary
CALL FUNCTION 'SCMS_XSTRING_TO_BINARY'
EXPORTING
BUFFER = LV_FILE
IMPORTING
OUTPUT_LENGTH = LV_BYTECOUNT
TABLES
BINARY_TAB = LT_FILE_TAB.
* " This method is only available on AS ABAP > 6.40
* lt_file_tab = cl_bcs_convert=>xstring_to_solix( iv_xstring = lv_file ).
* lv_bytecount = xstrlen( lv_file ).
" Save the file
CL_GUI_FRONTEND_SERVICES=>GUI_DOWNLOAD( EXPORTING BIN_FILESIZE = LV_BYTECOUNT
FILENAME = LV_FULL_PATH
FILETYPE = 'BIN'
CHANGING DATA_TAB = LT_FILE_TAB ).
部分样稿