ABAP_EXCEL导出数据
用OLE DOI 实现ABAP导出EXCEL表格

OLE导出:sap中abap 导出excel的方法很多,ole是其中一种,但其导出速度比较慢,一般只应用于对excel格式有特别要求的场所REPORT YGL_MYOLE.INCLUDE OLE2INCL.* OLE OBJECTDA TA:MYEXCEL TYPE OLE2_OBJECT,MYSHEET TYPE OLE2_OBJECT,MYCELL TYPE OLE2_OBJECT,MYWORKBOOK TYPE OLE2_OBJECT. .................................*创建excel进程CREATE OBJECT MYEXCEL 'EXCEL.APPLICATION'.* 创建工作表CALL METHOD OF MYEXCEL 'WORKBOOKS' = MYWORKBOOK.* 创建sheet并添加到工作表SET PROPERTY OF MYEXCEL 'SHEETSINNEWWORKBOOK' = 1.CALL METHOD OF MYWORKBOOK 'ADD'.* 选中excel中的cell,第一行的第二列。
CALL METHOD OF MYEXCEL 'CELLS' = MYCELL EXPORTING #1 = 1 #2 = 2.* 设置被选中的cell的值SET PROTERTY OF MYCELL 'V ALUE' = 'HELLO WORD'. "你要输出的内容GET PROPERTY OF MYEXCEL 'ACTIVESHEET' = MYSHEET.GET PROPERTY OF MYEXCEL 'ACTIVEWORKBOOK' = MYWORKBOOK.* 保存文件CALL METHOD OF MYWORKBOOK 'SAVEAS' EXPORTING #1 = 'C:\TMP\AA.XLS' #2 = 1. CALL METHOD OF MYWORKBOOK 'CLOSE'.* 退出excelCALL METHOD OF MYEXCEL 'QUIT'.* 释放对象FREE OBJECT MYSHEET.FREE OBJECT MYWORKBOOK.FREE OBJECT MYEXCEL.******************************************************************************* 实例:TYPE -POOLS: ole2,slis.DEFINE add_field.wa_field-fieldname = &1 .wa_field-reptext_ddic = &2 .wa_field-no_zero = 'X' . "去掉0* WA_FIELD_EIDT = 'X'.append wa_field to it_field.END -OF -DEFINITION .* 定义变量和字段组DA TA : g_repid TYPE sy-repid,gs_layout TYPE slis_layout_alv,wa_field TYPE slis_fieldcat_alv,it_field TYPE slis_t_fieldcat_alv.******************************************************************************** OLE EXCEL变量DA TA : excel TYPE ole2_object,workbook TYPE ole2_object,sheet TYPE ole2_object,cell TYPE ole2_object.* CELL1 TYPE OLE2_OBJECT,* COLUMN TYPE OLE2_OBJECT,* RANGE TYPE OLE2_OBJECT,* BORDERS TYPE OLE2_OBJECT,* button TYPE OLE2_OBJECT,* int TYPE OLE2_OBJECT,* FONT TYPE OLE2_OBJECT.* ROW TYPE OLE2_OBJECT.* 填充单元格FORM fill_cell USING i j val.* CALL METHOD OF EXCEL 'COLUMNS' = COLUMN.* CALL METHOD OF COLUMN 'AUTOFIT'. "导出EXCEL自动适应宽度CALL METHOD OF excel 'CELLS' = cell NO FLUSH EXPORTING #1 = i #2 = j.SET PROPERTY OF cell 'V ALUE' = val no flush.FREE OBJECT cell NO FLUSH.* GET PROPERTY OF CELL 'FONT' = FONT.* SET PROPERTY OF FONT 'BOLD' = BOLD .ENDFORM . "FILL_CELL* 处理进度条FORM p_process USING i_processed LIKE sy-tabixi_total LIKE sy-tabix.DATA :i_percent TYPE i ,i_text2(72 ) TYPE c ,i_times TYPE i ,i_proc(10 ) TYPE c .i_times = 0 .i_percent = ( i_processed * 100 ) DIV i_total.i_times = ( i_percent - STRLEN ( i_proc ) ) DIV 10 .DO i_times TIMES .CONCATENATE i_proc '■' INTO i_proc.CONDENSE i_proc.ENDDO .IF i_percent > 0 .WRITE i_percent TO i_text2.CONDENSE i_text2.CONCATENATE i_text2 '%' i_proc INTO i_text2.ENDIF .CONCATENATE '正在导出EXCEL,目前的进度为' i_text2 INTO i_text2 SEPARATED BY space. "合并文本CONDENSE i_text2. "缩进文本* 启动指示钟CALL FUNCTION 'SAPGUI_PROGRESS_INDICA TOR'EXPORTING* PERCENTAGE = I_PERCENTtext = i_text2EXCEPTIONSOTHERS = 1.ENDFORM . "P_PROCESSDOI:推荐用DOI方式导数据到Excel,而不要用OLE,DOI是调用SAP自带的类来操作的,可控性更高,并且可以把Excel窗口当作一个片屏幕控件放入屏幕的容器中。
ABAP_EXCEL导入内表并ALV显示

*&---------------------------------------------------------------------**& Report Z_TZTEST8*&*&本程序用来把EXCEL导入到内表,再转换一下格式之后,通过ALV显示出来*&本文最后列出导入的EXCEL格式,供大家测试和ALV输出之后的效果*&哥们,兄弟只能帮你到这了**&我的QQ:840560948,大家一起加油吧,吼吼*REPORT Z_TZTEST8.type-pools:slis.data: begin of iexcel occurs 0.include structure alsmex_tabline.data: end of iexcel.data: begin of itab occurs 0,c1(12) type c,c2(4) type c,c3(10) type c,c4(10) type c,c5(6) type c,c6(4) type c,c7(8) type c,c8(8) type c,c9(1) type c,end of itab.data:fieldcat type slis_t_fieldcat_alv with header line. " 定义ALV的有关数据data:layout type slis_layout_alv. " 定义ALV的有关数据data:ivariant like disvariant. " 定义ALV的有关数据data:i_repid like sy-repid. " 定义ALV的有关数据parameters: p_fname like rlgrap-filename memory id m01. " 获取文件路径at selection-screen on value-request for p_fname.perform get_p_fname. " 把需要导入的文件的路径存放在P_name 中start-of-selection.perform upload. " 通过路径把EXCEL中的数据导入到内表iexcel中perform alv.form get_p_fname. " 获取文件路径call function 'WS_FILENAME_GET'exportingmask = ',Excel Files,*.xls,All Files,*.csv,*.*.'title = '请选择要导入的文件'importingfilename = p_fnameexceptionsinv_winsys = 1no_batch = 2selection_cancel = 3selection_error = 4others = 5.IF sy-subrc <> 0 and sy-subrc <> 3.message e100(zdev) with 'error'(007). ENDIF.endform.form upload.call function 'ALSM_EXCEL_TO_INTERNAL_TABLE' exportingfilename = p_fnamei_begin_col = 1i_begin_row = 1i_end_col = 100i_end_row = 100tablesintern = iexcelexceptionsinconsistent_parameters = 1upload_ole = 2others = 3.IF sy-subrc <> 0.write: / '读入文件错误',p_fname.else.LOOP AT iexcel.CASE iexcel-col.WHEN '0001'.move iexcel-value to itab-c1.WHEN '0002'.move iexcel-value to itab-c2.WHEN '0003'.move iexcel-value to itab-c3.WHEN '0004'.move iexcel-value to itab-c4.WHEN '0005'.move iexcel-value to itab-c5.WHEN '0006'.move iexcel-value to itab-c6.WHEN '0007'.move iexcel-value to itab-c7.WHEN '0008'.move iexcel-value to itab-c8.WHEN '0009'.move iexcel-value to itab-c9.ENDCASE.* write iexcel-value(25).at end of row. " 在每一行结束的时候把工作区域itab中的值写到内表itab[]中append itab.clear itab.endat.ENDLOOP.ENDIF.endform.form alv.perform fieldcat_init.layout-colwidth_optimize = 'X'. "设置自动调整列宽layout-zebra = 'X'. " 设置相邻行颜色不同这样便于观看i_repid = sy-repid.CALL FUNCTION 'REUSE_ALV_GRID_DISPLAY'EXPORTINGI_CALLBACK_PROGRAM = i_repidIT_FIELDCAT = fieldcat[]IS_VARIANT = ivariantis_layout = layoutTABLESt_outtab = itabEXCEPTIONSPROGRAM_ERROR = 1OTHERS = 2.endform.form fieldcat_init.perform frm_catlg_set using:'C1' '物料号', " '' 里面的字母需要大写'C2' '工厂','C3' '开始日期','C4' '结束日期','C5' '供应商','C6' '采购组织','C7' '计划协议','C8' '行项目','C9' 'MRP'. endform.form frm_catlg_set using p_field p_text. data: temp_fieldcat type slis_fieldcat_alv. temp_fieldcat-fieldname = p_field. temp_fieldcat-seltext_l = p_text. append temp_fieldcat to fieldcat.clear temp_fieldcat.endform.380903908 2100 28.05.2013 31.12.9999 103225 2100 380903909 2100 28.05.2013 31.12.9999 102141 2100 380903910 2100 28.05.2013 31.12.9999 103231 2100 380903911 2100 28.05.2013 31.12.9999 102328 2100 380903912 2100 28.05.2013 31.12.9999 101435 2100 801969313 2100 28.05.2013 31.12.9999 105188 2100 801969315 2100 28.05.2013 31.12.9999 105188 2100 425500102 2100 28.05.2013 31.12.9999 103230 2100 425500103 2100 28.05.2013 31.12.9999 103230 2100 425500104 2100 28.05.2013 31.12.9999 103230 2100 425500105 2100 28.05.2013 31.12.9999 105692 2100 425500106 2100 28.05.2013 31.12.9999 105692 2100 425500107 2100 28.05.2013 31.12.9999 103227 2100 425500108 2100 28.05.2013 31.12.9999 105470 2100 425500109 2100 28.05.2013 31.12.9999 103227 2100 425500110 2100 28.05.2013 31.12.9999 103230 2100 425500111 2100 28.05.2013 31.12.9999 103245 2100 425500112 2100 28.05.2013 31.12.9999 103231 2100 425500113 2100 28.05.2013 31.12.9999 101457 2100 425500114 2100 28.05.2013 31.12.9999 102189 2100 425500115 2100 28.05.2013 31.12.9999 105486 2100425500116 2100 28.05.2013 31.12.9999 105692 2100 425500117 2100 28.05.2013 31.12.9999 100272 2100 425500118 2100 28.05.2013 31.12.9999 103245 2100 425500119 2100 28.05.2013 31.12.9999 103231 2100 425500120 2100 28.05.2013 31.12.9999 105470 2100 425500121 2100 28.05.2013 31.12.9999 103245 2100 425500122 2100 28.05.2013 31.12.9999 101457 2100 425500123 2100 28.05.2013 31.12.9999 103231 2100。
如何在Excel中进行数据导入和导出

如何在Excel中进行数据导入和导出Excel是一款功能强大的电子表格软件,广泛应用于数据处理和分析。
在Excel中,数据导入和导出是一个常见的操作需求,可以帮助我们快速有效地获取和交换数据。
本文将介绍如何在Excel中进行数据导入和导出的方法与技巧。
一、数据导入1. 从文本文件导入在Excel中,我们可以从文本文件导入数据。
操作步骤如下:1) 打开Excel并新建一个工作簿;2) 点击菜单栏中的“数据”选项卡,找到“从文本”命令并点击;3) 在文件选择对话框中,定位并选择需要导入的文本文件;4) 根据文本导入向导的指示,选择合适的分隔符、文本格式等参数;5) 点击“确定”按钮,完成数据导入。
2. 从数据库导入Excel还支持从数据库导入数据,如从SQL Server、Oracle等数据库。
操作步骤如下:1) 打开Excel并新建一个工作簿;2) 点击菜单栏中的“数据”选项卡,找到“从其他来源”命令并点击;3) 在“从其他来源”子菜单中选择“从SQL Server”或者“从Oracle”等选项;4) 根据数据库连接向导的指示,填写数据库服务器信息、登录凭据等;5) 选择需要导入的表或者查询,点击“确定”,完成数据导入。
3. 从Web页面导入如果需要从Web页面上导入数据到Excel中,可以按照以下步骤进行操作:1) 打开Excel并新建一个工作簿;2) 点击菜单栏中的“数据”选项卡,找到“从Web”命令并点击;3) 在“新建Web查询”对话框中,输入需要导入的Web页面URL;4) 点击“确定”,Excel会尝试解析并加载该Web页面上的表格数据;5) 根据需要选择合适的数据表格,点击“导入”完成数据导入。
二、数据导出1. 导出为文本文件在Excel中,我们可以将数据导出为文本文件,方便在其他应用程序中使用。
操作步骤如下:1) 打开包含需要导出的数据的Excel工作簿;2) 选中需要导出的数据区域,可以是某个表格、整个工作表或者多个工作表;3) 点击菜单栏中的“文件”选项卡,找到“另存为”命令并点击;4) 在“另存为”对话框中,选择需要保存的文件格式为“文本(Tab 分隔)”或者其他格式;5) 指定保存路径和文件名,点击“保存”按钮,完成数据导出。
ABAP_EXCEL_DOI_操作手册V1

[ABAP EXCEL DOI 操作]2012年01月04日目录1引言 (3)1.1目的及范围 (3)1.2参考资料 (3)1.3定义 (3)1.4文档结构 (3)2SAP上传EXCEL文件到R3 (3)2.1FM:TEXT_CONVERT_XLS_TO_SAP (3)2.2FM:ALSM_EXCEL_TO_INTERNAL_TABLE (4)3SAP将R3内容下载到EXCEL文件 (5)3.1FM:SAP_CONVERT_TO_XLS_FORMAT (5)4DOI技术操作EXCEL (6)4.1介绍 (6)4.1.1OLE&DOI两者之间的关系: (6)4.1.2OLE&DOI关于EXCEL的处理: (6)4.1.3DOI优点: (6)4.2DOI实现EXCEL操作 (6)4.2.1上传EXCEL模板 (6)4.2.2DOI操作EXCEL的类 (7)5具体案例 (14)5.1上传EXCEL到内表,下载内表数据到EXCEL(一) (15)5.1.1代码实现 (15)5.1.2本地EXCEL文件及内容 (17)5.1.3执行程序 (18)5.1.4执行结果 (19)5.2按单元格上传EXCEL数据到内表 (21)5.2.1代码实现 (21)5.2.2本地EXCEL文档及内容 (23)5.2.3执行程序 (23)5.2.4执行结果 (24)5.3DOI技术操作EXCEL (25)5.3.1上传EXCEL模板 (25)5.3.2代码实现 (28)5.3.3设计屏幕 (41)5.3.4程序执行 (43)1 引言SAP将EXCEL文件中的数据上传到R3(内表),对数据进行处理后,再下载到EXCEL文件中是经常用到的操作,文档主要介绍了对EXCEL文档的上传与下载功能实现的介绍1.1 目的及范围本文档主要介绍如何实现SAP系统上传与下载EXCEL文件介绍及相应实例,可适用于ABAP开发人员,分析人员使用1.2 参考资料1.3 定义1.4 文档结构文档的各章节介绍的内容如下:•第2节介绍SAP上传EXCEL文件到R3•第3节介绍SAP将R3内容下载到EXCEL文件中•第4节具体案例2 SAP上传EXCEL文件到R3以下将讲解SAP如何上传EXCEL文件到内表:2.1 FM:TEXT_CONVERT_XLS_TO_SAP该Function Module用于将EXCEL文件中的数据上传到内表中,要求内表的列数和要传得EXCEL数据的列数要相同,因为FM是按照列来匹配传值的,单元格文本不能超过256个字符。
Excel数据导入导出

Excel数据导入导出Excel是一款功能强大的电子表格软件,被广泛应用于数据处理、分析和管理。
其中,数据导入和导出是使用Excel的常见操作,本文将介绍如何进行Excel数据导入和导出的方法和技巧。
一、数据导入1. 打开Excel软件,点击“文件”菜单,在下拉菜单中选择“打开”。
2. 在弹出的对话框中,选择要导入的数据文件所在的位置,并选中文件,点击“打开”。
3. Excel将自动识别文件类型,并根据文件内容进行数据导入。
你也可以根据需要,选择“导入向导”或“文本导入向导”等选项,进行更详细的数据导入设置。
4. 在导入数据后,Excel会将数据显示在当前的工作表中。
你可以根据需要进行数据格式调整、删除无用数据列、添加计算公式等操作。
5. 最后,点击“文件”菜单,选择“保存”或“另存为”,将导入的数据保存到本地或云端位置。
二、数据导出1. 在Excel软件中打开已有的工作表或创建新的工作表。
2. 点击“文件”菜单,在下拉菜单中选择“导出”。
3. 在弹出的对话框中,选择导出的文件格式。
常见的文件格式包括Excel、CSV、PDF等,你可以根据需要选择适合的文件格式。
4. 选择导出文件的保存位置,并输入文件名,点击“保存”。
5. Excel将根据你的选择,将工作表中的数据导出为指定格式的文件,并保存到指定位置。
三、导入导出的注意事项与技巧1. 数据格式的处理:在进行数据导入之前,务必确认源数据的格式与目标数据的要求一致。
如果需要,可以在进行数据导入之前先进行数据清洗和整理。
2. 列宽和行高的调整:导入数据后,为了更好地显示和阅读数据,你可以根据需要调整列宽和行高。
只需鼠标拖动列宽或行高边界即可实现。
3. 公式的调整:如果导入的数据需要进行计算,你可以使用Excel 的各种公式和函数。
根据具体需求,可以进行公式的拖拽复制、绝对引用和相对引用等操作。
4. 数据筛选和排序:Excel提供了数据筛选和排序功能,可以帮助你快速找到所需数据并进行排序,提高工作效率。
ABAP将excel导出导入到文件夹中

Code listing for: Z00HRJ_IMPORT_Z00HRTWSSIGN Description: 通过EXCEL文件夹导入Z00HRTSIG表*&---------------------------------------------------------------------**& Report Z00HRJ_IMPORT_Z00HRTWSSIGN*&*&------------------------------------------------------------------- ------------------------------------------------------------------* REPORT Z00HRJ_IMPORT_Z00HRTWSSIGN.DATA: GS_PATH TYPE STRING,GS_FILE TYPE STRING,P_EXPORT TYPE STRING,P_FILE LIKE RLGRAP-FILENAME,OK_CODE LIKE SY-TCODE.TYPES:BEGIN OF TYP_SIGN,MANDT TYPE CHAR3,ZNO TYPE CHAR10,SIGN TYPE NUM2,OTYPE TYPE CHAR2,SPERNR TYPE NUM8,GPERNR TYPE NUM8,ZJZBSID TYPE NUM8,BEGDA TYPE DATS,ENDDA TYPE DATS,UPDDA TYPE DATS,END OF TYP_SIGN.TYPES:BEGIN OF TYP_ZB,MANDT TYPE CHAR3,ZNO TYPE CHAR10,SIGN TYPE CHAR2,OTYPE TYPE CHAR2,SPERNR TYPE NUM8,GPERNR TYPE NUM8,BEGDA TYPE CHAR8,ENDDA TYPE CHAR8,UPDDA TYPE CHAR8,END OF TYP_ZB.DATA: GT_SIGN TYPE TABLE OF TYP_ZB WITH HEADER LINE,GWA_SIGN TYPE TYP_ZB,WA_ZBSIGN TYPE Z00HRTSIGN,IT_ZBSIGN TYPE TABLE OF Z00HRTSIGN,WA_JZSIGN TYPE TYP_SIGN,IT_JZSIGN TYPE TABLE OF TYP_SIGN.DATA: C_QB,P_WSBH(2),R_BACKUP TYPE C VALUE 'X',R_JZBS TYPE C ,R_UPDATE TYPE C,R_EXPORT TYPE C,R_DELETE TYPE C.INITIALIZATION.START-OF-SELECTION.CALL SCREEN 100.*&---------------------------------------------------------------------**& Module STATUS_0100 OUTPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE STATUS_0100 OUTPUT.SET PF-STATUS 'STATUS_100'.SET TITLEBAR '0100_TITLE'.LOOP AT SCREEN.IF R_BACKUP EQ 'X' AND ( ( SCREEN-NAME EQ 'P_FILE' OR SCREEN-NAME EQ 'T-001') OR( SCREEN-NAME EQ 'P_EXPORT' OR SCREEN-NAME EQ 'T-003') ).SCREEN-INPUT = '0'.SCREEN-INVISIBLE = '1'.ENDIF.IF R_UPDATE EQ 'X' AND ( ( SCREEN-NAME EQ 'P_FILE' OR SCREEN-NAME EQ 'T-001') OR( SCREEN-NAME EQ 'P_EXPORT' OR SCREEN-NAME EQ 'T-003') OR( SCREEN-NAME EQ 'C_QB' OR SCREEN-NAME EQ 'T-004') ).SCREEN-INPUT = '0'.SCREEN-INVISIBLE = '1'.ENDIF.IF R_DELETE EQ 'X' AND ( ( SCREEN-NAME EQ 'P_FILE' OR SCREEN-NAME EQ 'T-001') OR( SCREEN-NAME EQ 'P_EXPORT' OR SCREEN-NAME EQ 'T-003') OR( SCREEN-NAME EQ 'C_QB' OR SCREEN-NAME EQ 'T-004')OR ( SCREEN-NAME EQ 'P_WSBH' OR SCREEN-NAME EQ 'T-002') ).SCREEN-INPUT = '0'.SCREEN-INVISIBLE = '1'.ENDIF.IF R_JZBS EQ 'X' AND ( SCREEN-NAME EQ 'P_EXPORT' OR SCREEN-NAME EQ 'T-003' OR ( SCREEN-NAME EQ 'C_QB' OR SCREEN-NAME EQ 'T-004') ).SCREEN-INPUT = '0'.SCREEN-INVISIBLE = '1'.ENDIF.IF R_EXPORT EQ 'X' AND ( SCREEN-NAME EQ 'P_FILE' OR SCREEN-NAME EQ 'T-001' OR ( SCREEN-NAME EQ 'C_QB' OR SCREEN-NAME EQ 'T-004') ).SCREEN-INPUT = '0'.SCREEN-INVISIBLE = '1'.ENDIF.MODIFY SCREEN.ENDLOOP.ENDMODULE. " STATUS_0100 OUTPUT*&---------------------------------------------------------------------**& Module USER_COMMAND_0100 INPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE USER_COMMAND_0100 INPUT.DATA: L_WSBH TYPE CHAR2,LT_SIGN TYPE TABLE OF Z00HRTSIGN WITH HEADER LINE.CASE OK_CODE.WHEN 'BACK' OR 'CANCEL' OR 'EXIT'.LEAVE PROGRAM.WHEN 'DRSIGN'.CLEAR OK_CODE.IF C_QB IS INITIAL AND R_DELETE IS INITIAL.IF P_WSBH IS INITIAL.MESSAGE '请填写编号' TYPE 'E'.ENDIF.ENDIF.IF R_JZBS EQ 'X'.IF P_FILE IS INITIAL.MESSAGE '请填写路径' TYPE 'E'.ENDIF.PERFORM FRM_IMPORT_Z00HRTSIGN.ELSEIF R_UPDATE EQ 'X'.PERFORM FRM_UPDATE_99991231.ELSEIF R_EXPORT EQ 'X'.IF P_EXPORT IS INITIAL.MESSAGE '请填写路径' TYPE 'E'.ENDIF.PERFORM FRM_EXPROT_Z00HRTSIGN.ELSEIF R_BACKUP EQ 'X'.IF C_QB EQ ''.SELECT * FROM Z00HRTSIGN INTO TABLE LT_SIGN WHERE SIGN EQ P_WSBH .IF SY-SUBRC EQ 0.INSERT Z00HRTSIGNBF FROM TABLE LT_SIGN ACCEPTING DUPLICATE KEYS.COMMIT WORK.ENDIF.ELSE.SELECT Z00HRJWSBH INTO L_WSBH FROM Z00HRTBMDY.SELECT * FROM Z00HRTSIGN INTO TABLE LT_SIGN WHERE SIGN EQ L_WSBH.IF SY-SUBRC EQ 0.INSERT Z00HRTSIGNBF FROM TABLE LT_SIGN ACCEPTING DUPLICATE KEYS.CLEAR L_WSBH.CLEAR:LT_SIGN[].ENDIF.ENDSELECT.ENDIF.ELSEIF R_DELETE EQ 'X'.DELETE FROM Z00HRTSIGN WHERE GPERNR EQ '' OR SPERNR EQ ''.IF SY-SUBRC EQ 0.COMMIT WORK.ELSE.MESSAGE '删除失败' TYPE 'E'.ENDIF.ENDIF.MESSAGE '执行完成' TYPE 'S'.WHEN OTHERS.ENDCASE.ENDMODULE. " USER_COMMAND_0100 INPUT*&---------------------------------------------------------------------**& Form FRM_PROCESS_Z00HRTSIGN*&---------------------------------------------------------------------** text 导入Z00HRTSIGN表*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM FRM_IMPORT_Z00HRTSIGN .DATA: Z_COUNT TYPE I.DATA:ZFILE_TABLE TYPE TABLE OF SDOKPATH WITH HEADER LINE.DATA:ZDIR_TABLE TYPE TABLE OF SDOKPATH WITH HEADER LINE.CALL FUNCTION 'TMP_GUI_DIRECTORY_LIST_FILES'EXPORTINGDIRECTORY = P_FILEFILTER = '*.XLS'IMPORTINGFILE_COUNT = Z_COUNT* DIR_COUNT =TABLESFILE_TABLE = ZFILE_TABLE[]DIR_TABLE = ZDIR_TABLE[]EXCEPTIONSCNTL_ERROR = 1OTHERS = 2.IF SY-SUBRC <> 0 .MESSAGE '文件路径读取失败' TYPE 'S'.EXIT.ELSEIF ZFILE_TABLE[] IS INITIAL.DATA: P_FILEJ(129) TYPE C.CONCATENATE P_FILE '\' INTO P_FILE.CALL FUNCTION 'TMP_GUI_DIRECTORY_LIST_FILES'EXPORTINGDIRECTORY = P_FILEFILTER = '*.XLS'IMPORTINGFILE_COUNT = Z_COUNT* DIR_COUNT =TABLESFILE_TABLE = ZFILE_TABLE[]DIR_TABLE = ZDIR_TABLE[]EXCEPTIONSCNTL_ERROR = 1OTHERS = 2.IF SY-SUBRC <> 0 .MESSAGE '文件路径读取失败' TYPE 'S'.EXIT.ENDIF.ENDIF.IF ZFILE_TABLE[] IS NOT INITIAL.DATA:PATHNAME(255) TYPE C.DATA:ZTYPE(5) TYPE C.* DATA:P_FILE LIKE RLGRAP-FILENAME.LOOP AT ZFILE_TABLE.SPLIT ZFILE_TABLE-PATHNAME AT '.' INTO: PATHNAME ZTYPE .CONCATENATE P_FILE '\' ZFILE_TABLE-PATHNAME INTO P_FILE.PERFORM FRM_UPDATE_Z00HRTSIGN USING P_FILE.* CALL FUNCTION 'GUI_EXEC'* EXPORTING* COMMAND = 'TASKKILL'* PARAMETER = 'EXCEL.EXE'** IMPORTING** RETURNCODE =.* WAIT UP TO 10 SECONDS.* SUBMIT Z00HRJ_IMPORT_FILE WITH P_FILE = P_FILE AND RETURN.ENDLOOP.ELSE.MESSAGE '文件路径读取失败' TYPE 'S'.EXIT.ENDIF.ENDFORM. " FRM_PROCESS_Z00HRTSIGN*&---------------------------------------------------------------------**& Module F4_FILE INPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE F4_FILE INPUT.DATA: TMP_FOLDER(255).CALL FUNCTION 'TMP_GUI_BROWSE_FOR_FOLDER'EXPORTINGWINDOW_TITLE = '请选择要上传文档所存储的文件夹'IMPORTINGSELECTED_FOLDER = TMP_FOLDER .IF SY-SUBRC = 0.P_FILE = TMP_FOLDER.ENDIF.ENDMODULE. " F4_FILE INPUT*&---------------------------------------------------------------------**& Form FRM_UPDATE_Z00HRTSIGN*&---------------------------------------------------------------------** text 更新Z00HRTSIGN表*----------------------------------------------------------------------** -->P_P_FILE2 text*----------------------------------------------------------------------*FORM FRM_UPDATE_Z00HRTSIGN USING U_FILE .DATA: L_TIMES TYPE I,LEN_ZNO TYPE I,L_INTER_DATA TYPE DATS.FIELD-SYMBOLS <DYN_FIELD>.DATA: IT_EXCEL TYPE TABLE OF ALSMEX_TABLINE WITH HEADER LINE.CALL FUNCTION 'ALSM_EXCEL_TO_INTERNAL_TABLE'EXPORTINGFILENAME = U_FILEI_BEGIN_COL = 1I_BEGIN_ROW = 1I_END_COL = 10I_END_ROW = 9999TABLESINTERN = IT_EXCELEXCEPTIONSINCONSISTENT_PARAMETERS = 1UPLOAD_OLE = 2OTHERS = 3.IF SY-SUBRC <> 0.MESSAGE '导入excel报错' TYPE 'E'.ENDIF.SORT IT_EXCEL BY ROW COL.LOOP AT IT_EXCEL.ASSIGN COMPONENT IT_EXCEL-COL OF STRUCTURE WA_JZSIGN TO <DYN_FIELD>.CHECK SY-SUBRC EQ 0.<DYN_FIELD> = IT_EXCEL-VALUE.AT END OF ROW.APPEND WA_JZSIGN TO IT_JZSIGN.CLEAR WA_JZSIGN.ENDAT.ENDLOOP.LOOP AT IT_JZSIGN INTO WA_JZSIGN.IF WA_JZSIGN-BEGDA EQ '0'.CLEAR WA_JZSIGN-BEGDA.ENDIF.IF WA_JZSIGN-ENDDA EQ '0'.CLEAR WA_JZSIGN-ENDDA.ENDIF.IF WA_JZSIGN-UPDDA EQ '0'.CLEAR WA_JZSIGN-UPDDA.ENDIF.* UPDATE Z00HRTSIGN SET ENDDA = '99991231' WHERE SPERNR = WA_JZSIGN-SPERNR."将对象更新结束日期是99991231* COMMIT WORK.MOVE-CORRESPONDING WA_JZSIGN TO WA_ZBSIGN.CLEAR WA_ZBSIGN-SPERNR.LEN_ZNO = STRLEN( WA_ZBSIGN-ZNO ).IF LEN_ZNO LE 10.L_TIMES = 10 - LEN_ZNO.DO L_TIMES TIMES.CONCATENATE '0' WA_ZBSIGN-ZNO INTO WA_ZBSIGN-ZNO.ENDDO.ENDIF.CONCATENATE 'JZ' WA_ZBSIGN-ZNO+2 INTO WA_ZBSIGN-ZNO.WA_ZBSIGN-SPERNR = WA_JZSIGN-ZJZBSID.WA_ZBSIGN-ENDDA = '88881231'."将集中部署对象更新结束日期是88881231APPEND WA_ZBSIGN TO IT_ZBSIGN.CLEAR:WA_ZBSIGN,WA_JZSIGN,LEN_ZNO,L_TIMES.ENDLOOP.MODIFY Z00HRTSIGN FROM TABLE IT_ZBSIGN.COMMIT WORK.MESSAGE '执行完成' TYPE 'S'.ENDFORM. " FRM_UPDATE_Z00HRTSIGN*&---------------------------------------------------------------------**& Form FRM_UPDATE_99991231*&---------------------------------------------------------------------** text 将Z00HRTSIGN结束日期更新99991231*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM FRM_UPDATE_99991231 .DATA: LT_SIGN TYPE TABLE OF Z00HRTSIGN WITH HEADER LINE.DO.SELECT * FROM Z00HRTSIGNINTO TABLE LT_SIGN UP TO 5000 ROWSWHERE ENDDA NE '99991231' AND ENDDA NE '88881231' AND SIGN EQ P_WSBH.IF SY-SUBRC NE 0.EXIT.ENDIF.LOOP AT LT_SIGN.LT_SIGN-ENDDA = '99991231'.MODIFY LT_SIGN.ENDLOOP.UPDATE Z00HRTSIGN FROM TABLE LT_SIGN.COMMIT WORK.ENDDO.ENDFORM. " FRM_UPDATE_99991231*&---------------------------------------------------------------------**& Module F4_WSBH INPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE F4_WSBH INPUT.DATA: XDYNPFIELDS TYPE TABLE OF DYNPREAD WITH HEADER LINE,LT_WSBH TYPE TABLE OF Z00HRTBMDY WITH HEADER LINE,SELECTED_TABLE TYPE TABLE OF DDSHRETVAL WITH HEADER LINE.SELECT * FROM Z00HRTBMDY INTO TABLE LT_WSBH.CALL FUNCTION 'F4IF_INT_TABLE_VALUE_REQUEST'EXPORTINGRETFIELD = 'Z00HRJWSBH'DYNPPROG = SY-CPROGDYNPNR = SY-DYNNRDYNPROFIELD = 'P_WSBH'STEPL = SY-STEPLWINDOW_TITLE = '选择网省代码'VALUE_ORG = 'S'TABLESRETURN_TAB = SELECTED_TABLEVALUE_TAB = LT_WSBHEXCEPTIONSPARAMETER_ERROR = 1NO_VALUES_FOUND = 2OTHERS = 3.IF SY-SUBRC EQ 0.P_WSBH = SELECTED_TABLE-FIELDVAL.ELSE.MESSAGE 'error' TYPE 'E'.ENDIF.REFRESH XDYNPFIELDS.CLEAR XDYNPFIELDS.XDYNPFIELDS-FIELDNAME = 'P_WSBH'.XDYNPFIELDS-FIELDVALUE = P_WSBH.XDYNPFIELDS-FIELDINP = 'X'.APPEND XDYNPFIELDS.CALL FUNCTION 'DYNP_VALUES_UPDATE'EXPORTINGDYNAME = SY-REPIDDYNUMB = SY-DYNNRTABLESDYNPFIELDS = XDYNPFIELDSEXCEPTIONSINVALID_ABAPWORKAREA = 1INVALID_DYNPROFIELD = 2INVALID_DYNPRONAME = 3INVALID_DYNPRONUMMER = 4INVALID_REQUEST = 5NO_FIELDDESCRIPTION = 6UNDEFIND_ERROR = 7OTHERS = 8.ENDMODULE. " F4_WSBH INPUT*&---------------------------------------------------------------------**& Form FRM_EXPROT_Z00HRTSIGN*&---------------------------------------------------------------------** text 导出Z00HRTSIGN表*----------------------------------------------------------------------** --> p1 text* <-- p2 text*----------------------------------------------------------------------*FORM FRM_EXPROT_Z00HRTSIGN .DATA: LV_FILE LIKE RLGRAP-FILENAME,LV_NAME(200) TYPE C,LV_NUM(4) TYPE N,LV_FLAG TYPE C,LV_NEXT TYPE I VALUE '1',LV_TABIX TYPE I,LT_DOWN TYPE TABLE OF Z00HRTSIGN WITH HEADER LINE,LWA_SIGN TYPE Z00HRTSIGN,LT_Z00HRTSIGN TYPE TABLE OF Z00HRTSIGN WITH HEADER LINE.SELECT * FROM Z00HRTSIGN INTO TABLE LT_Z00HRTSIGN WHERE SIGN EQ P_WSBH AND ENDDA EQ '99991231'.IF SY-SUBRC NE 0.MESSAGE '没有查询到数据' TYPE 'E'.ENDIF.LOOP AT LT_Z00HRTSIGN INTO LWA_SIGN.CLEAR:LT_DOWN,LV_FLAG.LV_TABIX = LV_TABIX + 1.LV_NEXT = LV_NEXT + 1.IF LV_TABIX < 9000.READ TABLE LT_Z00HRTSIGN INDEX LV_NEXT.IF SY-SUBRC NE 0.LV_FLAG = 'X'.ENDIF.ELSE.LV_FLAG = 'X'.ENDIF.APPEND LWA_SIGN TO GT_SIGN.CLEAR LWA_SIGN.IF LV_FLAG EQ 'X'.LV_FILE = P_EXPORT.LV_NUM = LV_NUM + 1.CONCATENATE LV_FILE 'ZB-Z00HRTSIGN-' LV_NUM '.XLS' INTO LV_FILE. * REPLACE FIRST OCCURRENCE OF '.XLS' IN LV_FILE WITH LV_NAME. CALL FUNCTION 'WS_DOWNLOAD'EXPORTINGFILENAME = LV_FILEFILETYPE = 'DAT'TABLESDATA_TAB = GT_SIGN[]EXCEPTIONSFILE_OPEN_ERROR = 1FILE_WRITE_ERROR = 2INVALID_FILESIZE = 3INVALID_TYPE = 4NO_BATCH = 5UNKNOWN_ERROR = 6INVALID_TABLE_WIDTH = 7GUI_REFUSE_FILETRANSFER = 8CUSTOMER_ERROR = 9NO_AUTHORITY = 10OTHERS = 11.IF SY-SUBRC = 0.MESSAGE '下载完毕' TYPE 'S'.ELSEIF SY-SUBRC <> 0.MESSAGE ID SY-MSGID TYPE SY-MSGTY NUMBER SY-MSGNOWITH SY-MSGV1 SY-MSGV2 SY-MSGV3 SY-MSGV4.ENDIF.CLEAR:LV_TABIX,GT_SIGN[].ENDIF.ENDLOOP.MESSAGE '执行结束' TYPE 'S'.ENDFORM. " FRM_EXPROT_Z00HRTSIGN*&---------------------------------------------------------------------**& Module F4_EXPORT INPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE F4_EXPORT INPUT.CALL METHOD CL_GUI_FRONTEND_SERVICES=>FILE_SAVE_DIALOGEXPORTINGWINDOW_TITLE = '请选择文件保存路径:'FILE_FILTER = '*.xls|*.XLS'PROMPT_ON_OVERWRITE = ' 'CHANGINGFILENAME = GS_FILEPATH = P_EXPORTFULLPATH = GS_PATH.ENDMODULE. " F4_EXPORT INPUT*GUI Texts*----------------------------------------------------------。
Excel数据导入导出掌握这个技巧数据互通无障碍

Excel数据导入导出掌握这个技巧数据互通无障碍在日常工作中,我们经常会遇到需要大量的数据记录、整理和处理的情况。
而Excel作为一款强大的数据处理工具,为我们提供了很多方便快捷的功能,其中包括数据导入和导出。
掌握这些技巧,能够使我们在处理数据时更加高效,并且实现数据的互通无障碍。
一、数据导入技巧1. 打开Excel软件,选择“文件”-“打开”,找到需要导入的数据文件并选择打开;2. 在打开的Excel表格中,找到想要导入数据的位置,点击该单元格位置,将光标移动到该单元格;3. 选择“数据”-“从文本”命令,打开“导入文本向导”对话框;4. 在“导入文本向导”对话框中,选择需要导入的文件类型,如CSV 文件、文本文件等,然后点击“下一步”按钮;5. 在第二步选择分隔符的界面上,确保选中正确的分隔符类型,并预览导入的数据,确认无误后点击“下一步”按钮;6. 在第三步中可以进行列数据格式的设置,包括日期格式、数值格式等,设置完成后点击“下一步”按钮;7. 在第四步中选择数据的导入位置和导入的工作表名称,点击“完成”按钮,完成数据的导入操作。
二、数据导出技巧1. 打开Excel软件,并打开包含需要导出数据的工作表;2. 在工作表中,选择需要导出的数据范围,可以是一列、一行或者一段区域;3. 选择“文件”-“另存为”,在弹出的对话框中选择要保存的文件路径和文件名,并选择保存文件的格式,如CSV文件、文本文件等;4. 点击“保存”按钮,完成数据的导出操作。
通过以上的简单步骤,我们可以轻松地实现Excel数据的导入和导出,从而实现不同系统之间的数据互通。
在实际应用中,我们还可以根据需要进行一些额外的操作,以满足特定的需求。
三、导入导出技巧的应用场景1. 数据更新:当需要将外部数据导入到Excel中进行更新时,可以使用数据导入技巧。
比如,某公司的销售数据存储在数据库中,我们可以将数据导入到Excel表格中进行分析和处理,然后再将结果导出到数据库中进行更新;2. 数据备份:在数据处理过程中,为了防止数据丢失或者出错,我们通常需要对数据进行备份。
【ABAP】OLE2的使用 操作EXCEL把内表中的数据在EXCEL中显示出来

* 输出到EXCEL
LW_S = '4'.
LOOP AT TD_BKPF INTO TH_BKPF.
LW_H = 'A'.
PERFORM FRM_FILL_CELL USING LW_H LW_S TH_BKPF-BUKRS.
WHERE BUKRS = P_BUKRS
AND GJAHR = P_GJAHR.
IF SY-SUBRC <> 0.
* MESSAGE S001 DISPLAY LIKE 'E'.
LEAVE LIST-PROCESSING.
ENDIF.
ENDFORM. " FRM_GET_BKPF_DATA
CALL METHOD OF W_BOOKS CNS_OPEN = W_BOOK
EXPORTING
#1 = CNS_DOWN_PATH.
CALL METHOD OF W_BOOK CNS_WORKSHEETS = W_SHEET
EXPORTING
#1 = 'Sheet1'.
*&-----ቤተ መጻሕፍቲ ባይዱ---------------------------------------------------------------*
* 向EXCEL中填入数据,并显示出来
*----------------------------------------------------------------------*
START-OF-SELECTION.
- 1、下载文档前请自行甄别文档内容的完整性,平台不提供额外的编辑、内容补充、找答案等附加服务。
- 2、"仅部分预览"的文档,不可在线预览部分如存在完整性等问题,可反馈申请退款(可完整预览的文档不适用该条件!)。
- 3、如文档侵犯您的权益,请联系客服反馈,我们会尽快为您处理(人工客服工作时间:9:00-18:30)。
使用EXCEL导出数据要完成使用EXCEL导出数据,基本分为两布:1 建立excel模版2 在程序中整理要输出的数据,并完成最终的输出1 建立excel模版1.1 在本地建立一个excel设置模版的格式,在本例中,模版格式如下:1.2 使用Tcode:OROA,将模版导入SAP系统1.2.1 输入Tcode:OROA注:其他字段可以不填1.2.2 导入模版1.2.2.1 导入模版Create——>standard.doc.types ——> table template1.2.2.2 选择要导入的模版1.2.2.3 输入模版信息——描述和语言1.2.2.5 导入模版之后,在屏幕左上角会添加模版2. 程序中整理数据,并调用模版输出2.1 整理数据,并调用屏幕SELECT * FROM zlhjtestINTO CORRESPONDING FIELDS OF TABLE l_itab_stu. CALL SCREEN0100.2.2 输出屏幕2.2.1 输出屏幕之前,调用模版SET PF-STATUS 'STAN1'.PERFORM create_basic_objects USING'''''''' document_name. PERFORM output_to_excel.2.2.2 输出屏幕之后,根据用户选择做出反应实现这些功能的的代码,如下:REPORT zlhjtest_abavn.TYPE-POOLS:slis,vrm,soi.TYPES:BEGIN OF l_hh,BSART LIKE T161-BSART,batxt TYPE t161t-batxt,END OF l_hh.DATA: ok_code TYPE sy-ucomm,save_ok TYPE sy-ucomm.DATA: flag TYPE c,initialized TYPE c,item_url(256) TYPE c,app TYPE vrm_id,excel(80) VALUE'Excel.Sheet',v_title1(60) TYPE c VALUE'制作人:李红娟'.DATA: rangeitem TYPE soi_range_item,ranges TYPE soi_range_list.DATA: excel_input TYPE soi_generic_table,excel_input_wa TYPE soi_generic_item.DATA: document_type(80) TYPE c,container TYPE REF TO cl_gui_custom_container,control TYPE REF TO i_oi_container_control,document TYPE REF TO i_oi_document_proxy,spreadshee TYPE REF TO i_oi_spreadsheet,error TYPE REF TO i_oi_error,errors TYPE REF TO i_oi_errorOCCURS0WITH HEADER LINE. DATA: l_itab_stu TYPE TABLE OF t161t,l_wa_stu TYPE t161t.CONSTANTS:document_name(30) VALUE'学生信息表', "inplace VALUE'X'.1. 选择数据SELECT * FROM zlhjtestINTO CORRESPONDING FIELDS OF TABLE l_itab_stu.2 调用输出屏幕CALL SCREEN0100.*******************下面是子程序******************************&---------------------------------------------------------------------**& Module STATUS_0100 OUTPUT*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*MODULE status_0100 OUTPUT.SET PF-STATUS 'STAN1'.PERFORM create_basic_objects USING'''''''' document_name. PERFORM output_to_excel.ENDMODULE. " STATUS_0100 OUTPUT*&---------------------------------------------------------------------**& Form create_basic_objects*&---------------------------------------------------------------------** text*----------------------------------------------------------------------** -->P_0130 text* -->P_0131 text* -->P_0132 text* -->P_0133 text* -->P_DOCUMENT_NAME text*----------------------------------------------------------------------*FORM create_basic_objects USING p_app_namep_classnamep_classtypep_obj_keyp_docname.DATA: l_app_name(200).CHECK initialized IS INITIAL.CALL METHODc_oi_container_control_creator=>get_container_controlIMPORTINGcontrol = controlerror = error.CALL METHOD error->raise_messageEXPORTINGtype = 'E'.CREATE OBJECT containerEXPORTINGcontainer_name = 'CONTAINER_NAME'. "输入屏幕0100的"容器“元素名IF p_app_name IS INITIAL.l_app_name = 'TEST1'.ELSE.l_app_name = p_app_name.ENDIF.CALL METHOD control->init_controlEXPORTINGr3_application_name = l_app_nameinplace_enabled = inplaceinplace_scroll_documents = 'X'"parent = containerregister_on_close_event = 'X'register_on_custom_event = 'X'no_flush = 'X'IMPORTINGerror = errors.APPEND errors.* save error object in collectionAPPEND errors.CLEAR item_url.DATA: bds_instance TYPE REF TO cl_bds_document_set. DATA: doc_signature TYPE sbdst_signature,wa_doc_signature LIKE LINE OF doc_signature,doc_components TYPE sbdst_components,doc_uris TYPE sbdst_uri,wa_doc_uris LIKE LINE OF doc_uris.*以下三个值为Tcode:OAOR里面新建模板文件的参数********************************DATA:doc_classname TYPE sbdst_classname VALUE'PICTURES', doc_classtype TYPE sbdst_classtype VALUE'OT',doc_object_key TYPE sbdst_object_keyVALUE'ZLHJEXCELTEMPLATE'."定义对象的key wa_doc_signature-prop_name = 'DESCRIPTION'.app = 'excel'.IF app = 'excel'.document_type = excel.wa_doc_signature-prop_value = p_docname.ELSE.ENDIF.APPEND wa_doc_signature TO doc_signature.CREATE OBJECT bds_instance.CALL METHOD bds_instance->get_infoEXPORTINGclassname = doc_classnameclasstype = doc_classtypeobject_key = doc_object_keyCHANGINGcomponents = doc_componentssignature = doc_signature.CALL METHOD bds_instance->get_with_urlEXPORTINGclassname = doc_classnameclasstype = doc_classtypeobject_key = doc_object_keyCHANGINGuris = doc_urissignature = doc_signature.FREE bds_instance.READ TABLE doc_uris INTO wa_doc_uris INDEX1.item_url = wa_doc_uris-uri.* ask the SAP DOI container for a i_oi_document_proxy for Excel CALL METHOD control->get_document_proxyEXPORTINGdocument_type = document_typeno_flush = 'X'IMPORTINGdocument_proxy = documenterror = errors.APPEND errors.* open a document saved in business document service. CALL METHOD document->open_documentEXPORTINGopen_inplace = inplacedocument_url = item_url.DATA: has TYPE i.CALL METHOD document->has_spreadsheet_interface EXPORTINGno_flush = ''IMPORTINGis_available = haserror = errors.APPEND errors.CALL METHOD document->get_spreadsheet_interface EXPORTINGno_flush = ' 'IMPORTINGsheet_interface = spreadsheeterror = errors.APPEND errors.* Activate sheet 1CALL METHOD spreadsheet->select_sheetEXPORTINGname = '表整理'* NO_FLUSH = ' 'IMPORTINGerror = errors.APPEND errors.LOOP AT errors.CALL METHOD errors->raise_messageEXPORTINGtype = 'E'.ENDLOOP.FREE errors.initialized = 'X'.ENDFORM. " create_basic_objects*&---------------------------------------------------------------------* *& Form output_to_excel*&---------------------------------------------------------------------* * text*----------------------------------------------------------------------* * --> p1 text* <-- p2 text*----------------------------------------------------------------------* FORM output_to_excel .perform fill_cell using21 v_title1.DATA: num TYPE i.num = 5.LOOP AT l_itab_stu INTO l_wa_stu .PERFORM fill_cell USING num 1 num .PERFORM fill_cell USING num 2 l_wa_stu-SPRAS .PERFORM fill_cell USING num 3 l_wa_stu-BSART.PERFORM fill_cell USING num 4 l_wa_stu-batxt.* PERFORM fill_cell USING num 2 l_wa_stu-sno .* PERFORM fill_cell USING num 3 l_wa_stu-sname. * PERFORM fill_cell USING num 4 l_wa_stu-ssex.num = num + 1.ENDLOOP.ENDFORM. " output_to_excel*&---------------------------------------------------------------------* *& Form fill_cell*&---------------------------------------------------------------------* * text*----------------------------------------------------------------------* * -->P_2 text* -->P_1 text* -->P_V_TITLE1 text*----------------------------------------------------------------------* FORM fill_cell USING i j value.DATA: columns_number TYPE i,rows_number TYPE i.columns_number = 1.rows_number = 1.CALL METHOD spreadsheet->insert_range_dimEXPORTINGname = 'cell'no_flush = 'X'top = ileft = jrows = rows_numbercolumns = columns_numberIMPORTINGerror = errors.APPEND errors.REFRESH: ranges, excel_input.rangeitem-name = 'cell'.rangeitem-columns = 1.rangeitem-rows = 1.APPEND rangeitem TO ranges.excel_input_wa-column = 1.excel_input_wa-row = 1.excel_input_wa-value = value.APPEND excel_input_wa TO excel_input.* set dataCALL METHOD spreadsheet->set_ranges_dataEXPORTINGranges = rangescontents = excel_inputno_flush = 'X'IMPORTINGerror = errors.APPEND errors.CALL METHOD spreadsheet->fit_widestEXPORTINGname = spaceno_flush = 'X'.REFRESH: ranges, excel_input.ENDFORM. " fill_cell*&---------------------------------------------------------------------* *& Module USER_COMMAND_0100 INPUT*&---------------------------------------------------------------------* * text*----------------------------------------------------------------------*MODULE user_command_0100 INPUT.flag = 'X'.save_ok = ok_code.CLEAR ok_code.CASE save_ok.WHEN'&F12'OR'&F15'. "'STOP' .IF NOT document IS INITIAL.CALL METHOD document->close_document.FREE document.ENDIF.IF NOT control IS INITIAL.CALL METHOD control->destroy_control.FREE control.ENDIF.LEAVE PROGRAM.WHEN'&F03'. "'BACK' .IF NOT document IS INITIAL.CALL METHOD document->close_document.FREE document.ENDIF.IF NOT control IS INITIAL.CALL METHOD control->destroy_control.FREE control.ENDIF.SET SCREEN0. " quit the program"set screen 1000.ENDCASE.ENDMODULE. " USER_COMMAND_0100 INPUT。