当前位置:首页 > REUSE - ALV - GRID - DISPLAY - LVC超详细讲解
ALV总结
作者:张志昂—2008.07.08
9. 按照上传的模板格式导出为本地文件
9.1.
定义导出为EXCEL用到的数据变量
TYPE-POOLS ole2 . DATA: v_excel TYPE ole2_object, v_sheet TYPE ole2_object, v_book TYPE ole2_object, v_rows TYPE ole2_object, v_cell TYPE ole2_object, v_sheet_number TYPE i . 9.2. 上传模板
需要用事务码“SMW0”先上传一个EXCEL模板,步骤:
1> 、SMW0进入界面,选择“WebRFC应用程序的二进制数据”,点击2> 、在“包”后面输入一个包名后点击
进入现已界面;
或者按F8进入上传模板的主界面,如下图:
3> 、在上图中点击
或者按F5新建一个模板,弹出下图:
21 / 28
ALV总结
作者:张志昂—2008.07.08
输入“对象名称”(一般用程序名+。xls)和“描述”后,点击
或者按“Shift + F6”找
到自己存放模板的路径双击上传即可完成模板的上传(名称为Z_ALV.XLS);
9.3. 代码
当用户触动子FORM(F_USER_COMMAND)里的导出程序时,就会触动下列代码,现将模板现在下来, 进而根据模板将数据导出到EXCEL表格中,代码中的许多部分都是固定的,其中的红色底色部分 为需要自己填写代码如下:
*&---------------------------------------------------------------------* *& Form f_export *&---------------------------------------------------------------------* * 导出数据 *----------------------------------------------------------------------* FORM f_export . DATA: l_name LIKE wwwdatatab, l_mine LIKE w3mime OCCURS 10, l_title TYPE string, l_filename TYPE string, l_path TYPE string, l_fullpath TYPE string. l_name-relid = 'MI'. l_name-objid = 'Z_ALV.XLS'. l_name-text = sy-title. CONCATENATE 'Z_ALV*模板下载 CALL FUNCTION 'WWWDATA_IMPORT' EXPORTING key = l_name TABLES
22 / 28
测试_' sy-uname '_' sy-datum '_' sy-uzeit INTO l_title . ALV总结
作者:张志昂—2008.07.08
mime = l_mine EXCEPTIONS
wrong_object_type = 1 import_error = 2 OTHERS = 3.
CALL METHOD cl_gui_frontend_services=>file_save_dialog EXPORTING
window_title = l_title default_extension = 'xls' default_file_name = l_title
file_filter = '(电子表格EXCEL)' CHANGING
filename = l_filename path = l_path fullpath = l_fullpath EXCEPTIONS
cntl_error = 1 error_no_gui = 2 not_supported_by_gui = 3 OTHERS = 4. IF sy-subrc <> 0. STOP. ENDIF.
IF l_filename = ''.
MESSAGE e000 WITH '已取消导出!' . ENDIF.
CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING
filename = l_fullpath filetype = 'BIN' TABLES
data_tab = l_mine.
*--打开excel模板
PERFORM f_open_excel USING l_fullpath.
*--向excel写数据
PERFORM f_write_excel_sheet.
*--设置excel可见
CALL METHOD OF v_excel 'Worksheets' = v_sheet
23 / 28
ALV总结
作者:张志昂—2008.07.08
EXPORTING #1 = 1.
CALL METHOD OF v_sheet 'Activate'. SET PROPERTY OF v_excel 'Visible' = 1.
* 关闭EXCEL并保存
PERFORM f_save_excel USING l_fullpath. ENDFORM. \
*&---------------------------------------------------------------------* *& Form f_OPEN_EXCEL
*&---------------------------------------------------------------------* * 根据本地excel路径,打开excel应用
*----------------------------------------------------------------------* FORM f_open_excel USING pa_path.
CREATE OBJECT v_excel 'Excel.Application'.
CALL METHOD OF v_excel 'Workbooks' = v_book.
CALL METHOD OF v_book 'Open' = v_book EXPORTING #1 = pa_path.
CALL METHOD OF v_book 'Sheets' = v_sheet EXPORTING #1 = 1.
ENDFORM. \
*&---------------------------------------------------------------------* *& Form f_WRITE_EXCEL_SHEET1
*&---------------------------------------------------------------------* * 向excel写入数据
*----------------------------------------------------------------------* FORM f_write_excel_sheet.
TYPES: BEGIN OF typ_name , name_first(40) TYPE c , name_last(40) TYPE c , END OF typ_name .
DATA: i_name TYPE TABLE OF typ_name WITH HEADER LINE . DATA: l_name(40) TYPE c .
SELECT adrp~name_first adrp~name_last
INTO CORRESPONDING FIELDS OF TABLE i_name
24 / 28
共分享92篇相关文档