SAP ABAP编程 数据库内容导出到excel

*&---------------------------------------------------------------------*

*& Report  Y0825_TXT_EXCEL_YBP

*&

*&---------------------------------------------------------------------*

*&    数据库内容导出到excel,

*&---------------------------------------------------------------------*

REPORT  Y0825_TXT_EXCEL_YBP MESSAGE-ID YQYZ_TXT_SQL_EXCEL.

************************** 定义数据***********************************************

TABLES SSCRFIELDS.

************************对应的数据库表结构************************

DATA: BEGIN OF ITAB,

MANDT TYPE C LENGTH 3,

MATNR TYPE C LENGTH 18,

ERSDA TYPE D,

ERNAM TYPE C LENGTH 12,

LAEDA TYPE D,

AENAM TYPE C LENGTH 12,

VPSTA TYPE C LENGTH 15,

PSTAT TYPE C LENGTH 15,

LVORM TYPE C ,

MTART TYPE C LENGTH 4,

MBRSH TYPE C,

END OF ITAB.

DATA: WA LIKE ITAB.

DATA: ITAB_DATA LIKE TABLE OF ITAB.

************************导出的结构************************

DATA: APPLICATION TYPE OLE2_OBJECT,   " excel object

WORKBOOK   TYPE OLE2_OBJECT,   " 工作簿

SHEET       TYPE OLE2_OBJECT,   " 工作表

COLUMNS     TYPE OLE2_OBJECT,   " 表格的行

ROWS        TYPE OLE2_OBJECT,   " 表格的列

RANGE       TYPE OLE2_OBJECT,

RANGE1      TYPE OLE2_OBJECT,

FONT        TYPE OLE2_OBJECT,

CELL        TYPE OLE2_OBJECT,

CELL1       TYPE OLE2_OBJECT,

SHEET1      TYPE OLE2_OBJECT,

SHEET2      TYPE OLE2_OBJECT,

BORDERS     TYPE OLE2_OBJECT.

DATA: INDEX TYPE I VALUE 0.

DATA TAB_DATA LIKE TABLE OF YTABLE_TXT_EXCEL.   "数据库数据的内表

DATA REC_DATA LIKE YTABLE_TXT_EXCEL.

*导出数据块

SELECTION-SCREEN BEGIN OF BLOCK STATUS2 WITH FRAME TITLE TEXT-F02.

SELECTION-SCREEN BEGIN OF LINE.

SELECTION-SCREEN COMMENT 1(20) TEXT-002.

SELECTION-SCREEN:   PUSHBUTTON 75(15) BUT2 USER-COMMAND CLI2. " 从系统中导出excel模板 到本地

SELECTION-SCREEN END OF LINE.

SELECTION-SCREEN END OF BLOCK STATUS2.

****初始化屏幕****

INITIALIZATION.

BUT2 = ‘开始导出‘.  " 数据库数据导出到本地的excel

AT SELECTION-SCREEN.

IF SSCRFIELDS-UCOMM EQ ‘CLI2‘.  "导出数据库内容到excel

PERFORM DEMO_FORMS.

ENDIF.

START-OF-SELECTION.

PERFORM DEMO_FORMS.  "数据库内容导出到excel

*************************************子程序**************************************

*----------------------------------------------------------------------*

*       数据库内容导出到excel

*----------------------------------------------------------------------*

FORM DEMO_FORMS.

SELECT * FROM YTABLE_TXT_EXCEL INTO TABLE ITAB_DATA. "取得数据库表内容

PERFORM CREATE_EXCEL. "创建excel

LOOP AT  ITAB_DATA INTO WA.

PERFORM INSERT_ROW USING 1. " 插入一行

PERFORM FILL_CELL USING 1 1 1 WA-MANDT.  "填充单元格

PERFORM FILL_CELL USING 1 2 1 WA-MATNR.

PERFORM FILL_CELL USING 1 3 0 WA-ERSDA.

PERFORM FILL_CELL USING 1 4 0 WA-ERNAM.

PERFORM FILL_CELL USING 1 5 0 WA-LAEDA.

PERFORM FILL_CELL USING 1 6 0 WA-AENAM.

PERFORM FILL_CELL USING 1 7 0 WA-VPSTA.

PERFORM FILL_CELL USING 1 8 0 WA-PSTAT.

PERFORM FILL_CELL USING 1 9 0 WA-LVORM.

PERFORM FILL_CELL USING 1 10 0 WA-MTART.

PERFORM FILL_CELL USING 1 11 0 WA-MBRSH.

INDEX = INDEX + 1.

ENDLOOP.

PERFORM FREE_OBJECT.

ENDFORM.                    "DEMO_FORMS

*****************************创建excel  *******************************************

FORM CREATE_EXCEL.

CREATE OBJECT APPLICATION ‘excel.APPLICATION‘.

IF SY-SUBRC <> 0.

MESSAGE ‘EXCEL ERROR‘ TYPE ‘S‘ DISPLAY LIKE ‘E‘.

STOP.

ENDIF.

CALL METHOD OF

APPLICATION

‘WORKBOOKS‘ = WORKBOOK.

SET PROPERTY OF APPLICATION ‘VISIBLE‘ = 1.

SET PROPERTY OF APPLICATION ‘SHEETSINNEWWORKBOOK‘ = 1.

CALL METHOD OF

WORKBOOK

‘ADD‘    = SHEET.

CALL METHOD OF

SHEET

‘ACTIVE‘.

ENDFORM.                    "CREATE_EXCEL

************************************************************************

*     根据行号插入一行                                                  *

*     -->I_ROW  行号                                                                 *

************************************************************************

FORM INSERT_ROW USING I_ROW.

CALL METHOD OF

APPLICATION

‘ROWS‘      = ROWS

EXPORTING

#1          = I_ROW.

CALL METHOD OF

ROWS

‘INSERT‘.

ENDFORM.                    "INSERT_ROW

************************************************************************

*     填充单元格                                                                 *

*     --> I_ROW 行号                                                                 *

*     --> I_COL 列号                                                                 *

*     --> BOLD 是否加粗   -->P_VALUE 赋值                                                                 *

************************************************************************

FORM FILL_CELL USING I_ROW I_COL BOLD P_VALUE.

CALL METHOD OF

APPLICATION

‘CELLS‘     = CELL

EXPORTING

#1          = I_ROW

#2          = I_COL.

SET PROPERTY OF CELL ‘VALUE‘ = P_VALUE.

SET PROPERTY OF CELL ‘HORIZONTALALIGNMENT‘ = 2.

GET PROPERTY OF CELL ‘FONT‘ = FONT.

SET PROPERTY OF FONT ‘BOLD‘ = BOLD.

SET PROPERTY OF FONT ‘COLORINDEX‘ = 41.

CALL METHOD OF

CELL

‘BORDERS‘ = BORDERS

EXPORTING

#1        = ‘2‘.

SET PROPERTY OF BORDERS ‘LINESTYLE‘ = ‘0‘.

SET PROPERTY OF BORDERS ‘WEIGHT‘ = 0.

ENDFORM.

************************************************************************

*     释放object                                                                   *

************************************************************************

FORM  FREE_OBJECT.

FREE OBJECT FONT.

FREE OBJECT RANGE.

FREE OBJECT RANGE1.

FREE OBJECT COLUMNS.

FREE OBJECT ROWS.

FREE OBJECT CELL.

FREE OBJECT CELL1.

FREE OBJECT SHEET.

FREE OBJECT SHEET1.

FREE OBJECT WORKBOOK.

FREE OBJECT APPLICATION.

ENDFORM.                    "FREE_OBJECT

时间: 2024-10-08 02:50:20

SAP ABAP编程 数据库内容导出到excel的相关文章

数据库内容导出为excel并下载

        /**          *Controller层          */         @RequestMapping("/downUserInfo") public void downUserInfo(HttpServletRequest request, HttpServletResponse response) { try { djsService.downUserInfo(request, response); } catch (Exception e) {

jsp 页面内容导出到Excel中

日常使用网络资源时经常需要把网页中的内容下载到本地,并且导出到Excel中,现在介绍一种非常简单的方式实现网络资源的下载.只需要讲jsp的最上面加上一句话 <% response.reset(); response.setContentType("application/vnd.ms-excel;charset=GBK"); %> 就可以将网页的内容导出为Excel. 目前给出的例子为了方便起见,就是使用了纯粹的静态页面,一个table其中有一行是标题,一行是内容,但是实际

SAP ABAP编程 弹出按选择对话框函数-&#39;POPUP_TO_CONFIRM&#39;

SAP  中很多时候是需要弹出式对话框的,提醒客户是否要进行某一个操作,我们可以调用CALL FUNCTION 'POPUP_TO_CONFIRM' 下面简单介绍常用的参数. DATA: G_RETURN TYPE C . CALL FUNCTION 'POPUP_TO_CONFIRM' EXPORTING *                                TITLEBAR                    = '弹出标题' *                        

Python实现数据库一键导出为Excel表格

依赖 Python2711 xlwt MySQLdb 数据库相关 连接 获取字段信息 获取数据 Excel基础 workbook sheet 案例 封装 封装之后 测试结果 总结 数据库数据导出为excel表格,也可以说是一个很常用的功能了.毕竟不是任何人都懂数据库操作语句的. 下面先来看看完成的效果吧. 数据源 导出结果  依赖 由于是Python实现的,所以需要有Python环境的支持 Python2.7.11 我的Python环境是2.7.11.虽然你用的可能是3.5版本,但是思想是一致的

使用原生php将数据库数据导出到excel文件中

最近在工作中遇到一个需求,需要将数据库中的数据导出到excel文件中,并下载excel文件.因为以前没做过,所以就百度了一下, 网上说的大多是使用PHPExcel类来操作excel文件,这还要去下载这个类才能使用,而我只想使用原生的php,不想那么麻烦,好在 也有网友说到关于原生php生成excel文件的方法,其实很简单,下面把我结合网上资料自己实践的代码分享一下. 一般我们这种导数据的操作都是通过用户在网页页面上点击某个按钮触发相应js方法,然后请求php接口来实现的,所以主要有两种 方法来完

[SAP ABAP开发技术总结]文本文件、Excel文件上传下传

声明:原创作品,转载时请注明文章来自SAP师太博客,并以超链接形式标明文章原始出处,否则将追究法律责任!原文出自: 20.22.1.      读取客户端Txt.Excel文件到内表:TEXT_CONVERT_XLS_TO_SAP TEXT_CONVERT_XLS_TO_SAP函数可以将本地的文本文件(列与列之间默认使用TAB键分开,但也可以指定)或真正的Excel文件上传到服务内表中,并且文件转换成内表中的数据是自动完成,不需要手动,这与ALSM_EXCEL_TO_INTERNAL_TABLE

PHP将Excel导入数据库以及数据库数据导出至Excel

一.导入 导入需要使用能读取Excel的组件,网上也有比较好的组件,这里分享我使用的:下载  提取码:vxyn.(注意两个文件有引用关系) <?php //传入要导入的Excel的文件名 function import_to_DB($filename) { require_once'reader.php'; $data = new Spreadsheet_Excel_Reader(); //创建读取Excel的对象 $data->setOutputEncoding('utf-8'); //设置

mysql数据库表格导出为excel表格

在本地数据库中操作如下: 由于excel表格的编码是GBK,所以导出时要加一个设置字符编码: select * from 某个表 into outfile 'd:/文件名.xls' CHARACTER SET gbk;

SAP ABAP编程 常用事物代码

屏幕录制事务代码:shdb  (跟新模式 异步) 比较两个代码事务代码:SE39 function module 事物代码: SE37 ABAP代码执行效率分析: SE30  (DB  tables,性能分析的重点)  左上角(相似功能代码比较) 打印单据样式 事物代码: smartstyles 打印表格        事物代码: Smartforms 定义纸张大小事物代码: spad message消息类的定义: SE91 维护事物代码:  SE93 表/视图的维护: SE54 批量修表视图数