內表数据导出到EXCEL模板示例
来源:互联网 发布:软件开发营销方案 编辑:程序博客网 时间:2024/06/17 15:10
运行效果:
模板:
导出数据:
第一步:上传EXCEL模板
事务码:SMW0
程序代码:
REPORT ztest_sy04.TYPE-POOLS ole2.DATA: l_name LIKE wwwdatatab, l_mime LIKE w3mime OCCURS 0.DATA: fullpath TYPE string. " 全路径DATA: v_excel TYPE ole2_object, v_book TYPE ole2_object, v_cell TYPE ole2_object, v_font TYPE ole2_object.DATA: BEGIN OF gs_data, matnr TYPE mara-matnr, maktx TYPE makt-maktx, meins TYPE mara-meins, END OF gs_data.DATA: gt_data LIKE TABLE OF gs_data.DEFINE fill_cell. call method of v_excel 'CELLS' = v_cell " 单元格位置 exporting #1 = &1 #2 = &2. set property of v_cell 'value' = &3. " 单元格内容 call method of v_cell 'FONT' = v_font. set property of v_font 'size' = &4. " 设置字体大小END-OF-DEFINITION.PERFORM get_data.PERFORM download_excel.*&---------------------------------------------------------------------**& Form get_data*&---------------------------------------------------------------------** text 获取数据*----------------------------------------------------------------------*FORM get_data. gs_data-matnr = '10001'. gs_data-maktx = '商品01'. gs_data-meins = 'KG'. APPEND gs_data TO gt_data. gs_data-matnr = '10002'. gs_data-maktx = '商品02'. gs_data-meins = 'KG'. APPEND gs_data TO gt_data. gs_data-matnr = '10003'. gs_data-maktx = '商品03'. gs_data-meins = 'KG'. APPEND gs_data TO gt_data.ENDFORM. "get_data*&---------------------------------------------------------------------**& Form download_excel*&---------------------------------------------------------------------** text 下载EXCEL模板*----------------------------------------------------------------------*FORM download_excel. l_name-relid = 'MI'. l_name-objid = 'ZTEST_MARA'. " 上传的excel的对象名称* l_name-text = sy-title. CALL FUNCTION 'WWWDATA_IMPORT' EXPORTING key = l_name TABLES mime = l_mime EXCEPTIONS wrong_object_type = 1 import_error = 2 OTHERS = 3. IF sy-subrc <> 0.* Implement suitable error handling here ENDIF. fullpath = 'E:\商品信息表.XLS'. IF v_excel IS INITIAL. CALL FUNCTION 'GUI_DOWNLOAD' EXPORTING filename = fullpath " 文件下载到指定路径 filetype = 'BIN' TABLES data_tab = l_mime EXCEPTIONS file_write_error = 1 no_batch = 2 gui_refuse_filetransfer = 3 invalid_type = 4 no_authority = 5 unknown_error = 6 header_not_allowed = 7 separator_not_allowed = 8 filesize_not_allowed = 9 header_too_long = 10 dp_error_create = 11 dp_error_send = 12 dp_error_write = 13 unknown_dp_error = 14 access_denied = 15 dp_out_of_memory = 16 disk_full = 17 dp_timeout = 18 file_not_found = 19 dataprovider_exception = 20 control_flush_error = 21 OTHERS = 22. IF sy-subrc = 0. PERFORM fill_content. " 文件下载成功时,执行数据写入 ENDIF. ENDIF.ENDFORM. "download_excel*&---------------------------------------------------------------------**& Form fill_content*&---------------------------------------------------------------------** text 数据写入EXCEL文件中*----------------------------------------------------------------------*FORM fill_content. FIELD-SYMBOLS: <wa> TYPE any, <field> TYPE any. DATA: lv_txt(50) TYPE c. DATA: row_i TYPE i, col_i TYPE i. " 创建EXCEL对象 CREATE OBJECT v_excel 'EXCEL.APPLICATION'. CALL METHOD OF v_excel 'WORKBOOKS' = v_book. " 打开下载的EXCEL模板 CALL METHOD OF v_book 'OPEN' EXPORTING #1 = fullpath. " 文件全路径 IF sy-subrc <> 0. MESSAGE '打开文件失败!' TYPE 'S' DISPLAY LIKE 'E'. STOP. ENDIF.* " 从內表循环数据,按顺序填到单元格中 LOOP AT gt_data ASSIGNING <wa>. row_i = sy-tabix + 3. " 行 DO 3 TIMES. col_i = sy-index + 1. " 列 ASSIGN COMPONENT sy-index OF STRUCTURE <wa> TO <field>. lv_txt = <field>. fill_cell row_i col_i lv_txt 10. ENDDO. ENDLOOP. SET PROPERTY OF v_excel 'VISIBLE' = 1. " 打开文件ENDFORM. "fill_content
注: (1). CSDN博客的插入代码功能不支持ABAP语言,故选了JAVA语言替代,关键字无法高亮显示;
(2). 如有疏漏之处,还请不吝赐教!
参考资料:《SAP实用程序开发进阶》,唐嘉、彭功涛、方玉凤 编著,兵器工业出版社;
0 0
- 內表数据导出到EXCEL模板示例
- 內表数据导出到EXCEL-OLE示例(带格式导出)
- 利用模板导出数据到Excel中
- C# 导出数据到Excel模板中
- C#导出Excel|导出数据到Excel模板文件里
- C# 实现Excel导出 加载模板 导入数据到模板
- c# 导出table中的数据到模板excel中
- asp.net 导出数据到Excel模板分页
- C# 简单将数据导出到Excel模板流程
- 使用excel现成模板导出mysql数据到浏览器
- java 导出数据到指定的excel模板中。
- 利用POI将数据导出到EXCEL模板
- struts2导出数据到excel中方法(模板方法)
- jxl按照模板导出数据到excel报错问题
- java中使用poi导出数据到EXCEL模板中。
- 数据导出到Excel
- 数据导出到Excel
- 导出数据到EXCEL
- SAT写作高级词汇有哪些
- 线上项目
- pdf什么软件打开
- PyQt4官方手册翻译-01
- Linux_2.6字符设备驱动实例
- 內表数据导出到EXCEL模板示例
- IO流总结(三)
- mysql统计当月的数据量
- Spring声明式事务配置管理方法详解
- 强烈推荐转载-Android 性能测试
- linux命令查看系统汉字编码
- JavaScript SUM and GROUP BY of JSON data
- oracle运用(一) oracle数据库使用 TIMESTAMP()类型查询数据
- FATAL: could not load /lib/modules/2.6.XXX/modules.dep No such file or directory