ABAP 上传和下载excel模板的相关操作
首先做一个简单的excel模板,也就是新建一个空白工作表然后用代码添加内容。
CREATE OBJECT g_excel 'EXCEL.APPLICATION'.
CALL METHOD OF g_excel 'WORKBOOKS' = g_books.
SET PROPERTY OF g_excel 'VISIBLE' = 1.
CALL METHOD OF g_books 'ADD' = g_books.
CALL METHOD OF g_books 'WORKSHEETS' = g_sheet
EXPORTING
#1 = 1.
CALL METHOD OF g_sheet 'ACTIVATE'.
g_sheet_n = g_sheet.
基本是固定格式,然后在单元格里写入数据
PERFORM frm_fill_cell USING: 1 1 '模板',
FORM frm_fill_cell USING pr_row TYPE i
pr_col TYPE i
pr_value TYPE any.
CALL METHOD OF g_sheet_n 'CELLS' = g_cell
EXPORTING
#1 = pr_row
#2 = pr_col.
SET PROPERTY OF g_cell 'VALUE' = pr_value.
ENDFORM. "frm_fill_cell
SET PROPERTY OF g_excel 'VISIBLE' = 1.
这样一个简单的模板就做好了,只是没有调整格式。
然后我们在模板文件里面对数据进行修改,完成之后再上传回来。
DATA: l_file TYPE rlgrap-filename.
CALL FUNCTION 'F4_FILENAME'
IMPORTING
file_name = l_file.
调用函数把数据放入处理表
CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'
EXPORTING
filename = p_file
i_begin_col = begin_col
i_begin_row = begin_row
i_end_col = end_col
i_end_row = end_row
TABLES
intern = lt_load
EXCEPTIONS
inconsistent_parameters = 1
upload_ole = 2
OTHERS = 3.
IF sy-subrc NE 0.
MESSAGE ID sy-msgid TYPE sy-msgty NUMBER sy-msgno
WITH sy-msgv1 sy-msgv2 sy-msgv3 sy-msgv4.
ENDIF.
然后根据需要从lt_load里面把数据取出来。
LOOP AT lt_load.
IF lt_load-col LE end_col.
ASSIGN COMPONENT lt_load-col OF STRUCTURE lt_data TO <fs_any>.
MOVE lt_load-value TO <fs_any> .
ENDIF.
AT END OF row.
APPEND lt_data. CLEAR lt_data.
ENDAT.
ENDLOOP.
文章来自于网络,如果侵犯了您的权益,请联系站长删除!