abap导出excel代码
来源:互联网 发布:苹果5s怎么设置3g网络 编辑:程序博客网 时间:2024/06/05 19:20
子文件 ZYQJH_INCLUDE :
*INCLUDE OLE2INCL.INCLUDE OLE2INCL.DATA: EXCELOBJ TYPE OLE2_OBJECT, " Excel object WBOOKOBJ TYPE OLE2_OBJECT, " Workbook object WSHEETOBJ TYPE OLE2_OBJECT, " Worksheet object RANGEOBJ TYPE OLE2_OBJECT, " Range object RANGEOBJ2 TYPE OLE2_OBJECT, " Range object CELLOBJ TYPE OLE2_OBJECT, " Cell object SRCFILE31(128) TYPE C VALUE 'C:\sapworkdir\111.xls'. "source excelDEFINE CREATE_EXCEL. CREATE OBJECT EXCELOBJ 'Excel.Application'. " Create excel object IF SY-SUBRC NE 0. WRITE: / 'Excel init failed, return code is ', SY-SUBRC. EXIT. ELSE. SET PROPERTY OF EXCELOBJ 'Visible' = 1. " Set excel visible CALL METHOD OF EXCELOBJ " Create wbook object 'Workbooks' = WBOOKOBJ. CALL METHOD OF WBOOKOBJ 'Open' = WBOOKOBJ EXPORTING #1 = &1. "srcfile1. CALL METHOD OF WBOOKOBJ " Create wsheet object 'Worksheets' = WSHEETOBJ EXPORTING #1 = 'sheet1'. CALL METHOD OF WSHEETOBJ 'Activate'. ENDIF.END-OF-DEFINITION.DEFINE CREATE_EXCELA. CREATE OBJECT EXCELOBJ 'Excel.Application'. " Create excel object IF SY-SUBRC NE 0. WRITE: / 'Excel init failed, return code is ', SY-SUBRC. EXIT. ELSE. SET PROPERTY OF EXCELOBJ 'Visible' = 0. " Set excel visible CALL METHOD OF EXCELOBJ " Create wbook object 'Workbooks' = WBOOKOBJ. CALL METHOD OF WBOOKOBJ 'Open' = WBOOKOBJ EXPORTING #1 = &1. "srcfile1. CALL METHOD OF WBOOKOBJ " Create wsheet object 'Worksheets' = WSHEETOBJ EXPORTING #1 = 'sheet1'. CALL METHOD OF WSHEETOBJ 'Activate'. ENDIF.END-OF-DEFINITION.DEFINE SET_VISIBLE. SET PROPERTY OF EXCELOBJ 'Visible' = 1. " Set excel visibleEND-OF-DEFINITION.*---------------------------------------------------------------------** FORM fill_range **---------------------------------------------------------------------** ........ **---------------------------------------------------------------------** --> VALUE(F_RANGE) ** --> VALUE(F_VALUE) **---------------------------------------------------------------------*FORM FILL_RANGE USING VALUE(F_RANGE) VALUE(F_VALUE). CALL METHOD OF WSHEETOBJ 'Range' = RANGEOBJ EXPORTING #1 = F_RANGE. SET PROPERTY OF RANGEOBJ 'Value' = F_VALUE.ENDFORM. "fill_range*---------------------------------------------------------------------** FORM fill_cell **---------------------------------------------------------------------** ........ **---------------------------------------------------------------------** --> VALUE(F_RANGE) ** --> VALUE(F_VALUE) **---------------------------------------------------------------------*FORM FILL_CELL USING VALUE(F_RANGE) VALUE(F_VALUE). CALL METHOD OF WSHEETOBJ 'Cells' = CELLOBJ EXPORTING #1 = F_RANGE. SET PROPERTY OF RANGEOBJ 'Value' = F_VALUE.ENDFORM. "fill_cell*---------------------------------------------------------------------** FORM insert_row **---------------------------------------------------------------------** ........ **---------------------------------------------------------------------** --> VALUE(F_RANGE) **---------------------------------------------------------------------*FORM INSERT_ROW USING VALUE(F_RANGE). CALL METHOD OF WSHEETOBJ 'range' = RANGEOBJ EXPORTING #1 = F_RANGE. CALL METHOD OF RANGEOBJ 'copy'. CALL METHOD OF RANGEOBJ 'select'. CALL METHOD OF RANGEOBJ 'insert'. CALL METHOD OF RANGEOBJ 'clearcontents'.ENDFORM. "insert_row*插入后不清除内容,特别实用于题头和表头FORM INSERT_ROWA USING VALUE(F_RANGE). CALL METHOD OF WSHEETOBJ 'range' = RANGEOBJ EXPORTING #1 = F_RANGE. CALL METHOD OF RANGEOBJ 'copy'. CALL METHOD OF RANGEOBJ 'select'. CALL METHOD OF RANGEOBJ 'insert'.ENDFORM. "insert_rowa*插入后不清除内容,特别实用于题头和表头FORM DEL_ROW USING VALUE(F_RANGE1) VALUE(F_RANGE2). DATA:S_RANGE(20) TYPE C. CONCATENATE F_RANGE1 F_RANGE2 INTO S_RANGE. CALL METHOD OF WSHEETOBJ 'range' = RANGEOBJ EXPORTING #1 = S_RANGE. CALL METHOD OF RANGEOBJ 'delete'.ENDFORM. "del_rowDEFINE READ_DATA_FROM_LOCAL. CALL FUNCTION 'WS_UPLOAD' EXPORTING* CODEPAGE = ' ' FILENAME = &1 FILETYPE = 'DAT'* IMPORTING* FILELENGTH = TABLES DATA_TAB = &2 EXCEPTIONS CONVERSION_ERROR = 1 FILE_OPEN_ERROR = 2 FILE_READ_ERROR = 3 INVALID_TABLE_WIDTH = 4 INVALID_TYPE = 5 NO_BATCH = 6 UNKNOWN_ERROR = 7 OTHERS = 8. IF SY-SUBRC = 2. MESSAGE E005(ZYHY). ENDIF.END-OF-DEFINITION.*传票生成使用DATA: SESSION,CTU,GROUP(12),CTUMODE,USER(12),CUPDATE,KEEP, E_GROUP(12),HOLDDATE LIKE SY-DATUM,NODATA, E_USER(12),E_KEEP,E_HDATE LIKE SY-DATUM,NODATE,SMALLLOG.DATA: BDCDATA LIKE BDCDATA OCCURS 0 WITH HEADER LINE.* messages of call transactionDATA: MESSTAB LIKE BDCMSGCOLL OCCURS 0 WITH HEADER LINE.* error session opened (' ' or 'X')DATA: E_GROUP_OPENED.* message textsTABLES: T100.*&---------------------------------------------------------------------**& Form OPEN_GROUP*&---------------------------------------------------------------------** text*----------------------------------------------------------------------*FORM OPEN_GROUP. IF SESSION = 'X'. SKIP. WRITE: /(20) 'Create group'(I01), GROUP. SKIP.* open batchinput group CALL FUNCTION 'BDC_OPEN_GROUP' EXPORTING CLIENT = SY-MANDT GROUP = GROUP USER = USER KEEP = KEEP HOLDDATE = HOLDDATE. WRITE: /(30) 'BDC_OPEN_GROUP'(I02), (12) 'returncode:'(I05), SY-SUBRC. ENDIF.ENDFORM. "OPEN_GROUP*----------------------------------------------------------------------** end batchinput session ** (call transaction using...: error session) **----------------------------------------------------------------------*FORM CLOSE_GROUP. IF SESSION = 'X'.* close batchinput group CALL FUNCTION 'BDC_CLOSE_GROUP'. WRITE: /(30) 'BDC_CLOSE_GROUP'(I04), (12) 'returncode:'(I05), SY-SUBRC. ELSE. IF E_GROUP_OPENED = 'X'. CALL FUNCTION 'BDC_CLOSE_GROUP'. WRITE: /. WRITE: /(30) 'Fehlermappe wurde erzeugt'(I06). ENDIF. ENDIF.ENDFORM. "CLOSE_GROUP*----------------------------------------------------------------------** Start new transaction according to parameters **----------------------------------------------------------------------*FORM BDC_TRANSACTION USING TCODE. DATA: L_MSTRING(480). DATA: L_SUBRC LIKE SY-SUBRC. CTUMODE = 'E' .* batch input session IF SESSION = 'X'. CALL FUNCTION 'BDC_INSERT' EXPORTING TCODE = TCODE TABLES DYNPROTAB = BDCDATA. IF SMALLLOG <> 'X'. WRITE: / 'BDC_INSERT'(I03), TCODE, 'returncode:'(I05), SY-SUBRC, 'RECORD:', SY-INDEX. ENDIF.* call transaction using ELSE. REFRESH MESSTAB. CALL TRANSACTION TCODE USING BDCDATA MODE CTUMODE UPDATE CUPDATE MESSAGES INTO MESSTAB. L_SUBRC = SY-SUBRC. IF SMALLLOG <> 'X'. WRITE: / 'CALL_TRANSACTION', TCODE, 'returncode:'(I05), L_SUBRC, 'RECORD:', SY-INDEX. LOOP AT MESSTAB. SELECT SINGLE * FROM T100 WHERE SPRSL = MESSTAB-MSGSPRA AND ARBGB = MESSTAB-MSGID AND MSGNR = MESSTAB-MSGNR. IF SY-SUBRC = 0. L_MSTRING = T100-TEXT. IF L_MSTRING CS '&1'. REPLACE '&1' WITH MESSTAB-MSGV1 INTO L_MSTRING. REPLACE '&2' WITH MESSTAB-MSGV2 INTO L_MSTRING. REPLACE '&3' WITH MESSTAB-MSGV3 INTO L_MSTRING. REPLACE '&4' WITH MESSTAB-MSGV4 INTO L_MSTRING. ELSE. REPLACE '&' WITH MESSTAB-MSGV1 INTO L_MSTRING. REPLACE '&' WITH MESSTAB-MSGV2 INTO L_MSTRING. REPLACE '&' WITH MESSTAB-MSGV3 INTO L_MSTRING. REPLACE '&' WITH MESSTAB-MSGV4 INTO L_MSTRING. ENDIF. CONDENSE L_MSTRING. WRITE: / MESSTAB-MSGTYP, L_MSTRING(250). ELSE. WRITE: / MESSTAB. ENDIF. ENDLOOP. SKIP. ENDIF.** Erzeugen fehlermappe ************************************************ IF L_SUBRC <> 0 AND E_GROUP <> SPACE. IF E_GROUP_OPENED = ' '. CALL FUNCTION 'BDC_OPEN_GROUP' EXPORTING CLIENT = SY-MANDT GROUP = E_GROUP USER = E_USER KEEP = E_KEEP HOLDDATE = E_HDATE. E_GROUP_OPENED = 'X'. ENDIF. CALL FUNCTION 'BDC_INSERT' EXPORTING TCODE = TCODE TABLES DYNPROTAB = BDCDATA. ENDIF. ENDIF. REFRESH BDCDATA.ENDFORM. "BDC_TRANSACTION*----------------------------------------------------------------------** Start new screen **----------------------------------------------------------------------*FORM BDC_DYNPRO USING PROGRAM DYNPRO. CLEAR BDCDATA. BDCDATA-PROGRAM = PROGRAM. BDCDATA-DYNPRO = DYNPRO. BDCDATA-DYNBEGIN = 'X'. APPEND BDCDATA.ENDFORM. "BDC_DYNPRO*----------------------------------------------------------------------** Insert field **----------------------------------------------------------------------*FORM BDC_FIELD USING FNAM FVAL. IF FVAL <> NODATA. CLEAR BDCDATA. BDCDATA-FNAM = FNAM. BDCDATA-FVAL = FVAL. APPEND BDCDATA. ENDIF.ENDFORM. "BDC_FIELD
在程序里引用此文件:
*-----------------------------------------------------------**导入包含文件 **-----------------------------------------------------------*INCLUDE ZYQJH_INCLUDE."插入EXECL的
需要输出时调用代码:LINE1是自动生成序号,LINE2是输出每一行的定位。
CREATE_EXCEL 'C:\ZCOE010.xls'. SORT ITAB BY BANFN BNFPO. DATA: LINE1 TYPE I , LINE2 TYPE I , STR1(10) TYPE C, STR2(10) TYPE C, STR3(10) TYPE C, STR4(10) TYPE C, STR5(10) TYPE C, STR6(10) TYPE C, STR7(10) TYPE C, STR8(10) TYPE C, STR9(10) TYPE C, STR10(10) TYPE C. LINE2 = 4. LINE1 = 1. LOOP AT ITAB. ITAB-ZLINE = LINE1. WRITE LINE2 TO STR1. CONDENSE STR1 NO-GAPS. CONCATENATE 'A' STR1 INTO STR1. WRITE LINE2 TO STR2 NO-GAP. CONDENSE STR2 NO-GAPS. CONCATENATE 'B' STR2 INTO STR2. WRITE LINE2 TO STR3 NO-GAP. CONDENSE STR3 NO-GAPS. CONCATENATE 'C' STR3 INTO STR3. WRITE LINE2 TO STR4 NO-GAP. CONDENSE STR4 NO-GAPS. CONCATENATE 'D' STR4 INTO STR4. WRITE LINE2 TO STR5 NO-GAP. CONDENSE STR5 NO-GAPS. CONCATENATE 'E' STR5 INTO STR5. WRITE LINE2 TO STR6 NO-GAP. CONDENSE STR6 NO-GAPS. CONCATENATE 'F' STR6 INTO STR6. WRITE LINE2 TO STR7 NO-GAP. CONDENSE STR7 NO-GAPS. CONCATENATE 'G' STR7 INTO STR7. WRITE LINE2 TO STR8 NO-GAP. CONDENSE STR8 NO-GAPS. CONCATENATE 'H' STR8 INTO STR8. WRITE LINE2 TO STR9 NO-GAP. CONDENSE STR9 NO-GAPS. CONCATENATE 'I' STR9 INTO STR9. WRITE LINE2 TO STR10 NO-GAP. CONDENSE STR10 NO-GAPS. CONCATENATE 'K' STR10 INTO STR10. PERFORM FILL_RANGE USING STR1 ITAB-ZLINE. PERFORM FILL_RANGE USING STR2 ITAB-DSNAM. PERFORM FILL_RANGE USING STR3 ITAB-BANFN. PERFORM FILL_RANGE USING STR4 ITAB-BNFPO. PERFORM FILL_RANGE USING STR5 ITAB-TXZ01. PERFORM FILL_RANGE USING STR6 ''. PERFORM FILL_RANGE USING STR7 ITAB-MSEHL. PERFORM FILL_RANGE USING STR8 ITAB-MENGE. PERFORM FILL_RANGE USING STR9 ITAB-BADAT. PERFORM FILL_RANGE USING STR10 ITAB-AFNAM. PERFORM INSERT_ROW USING 'AA'. LINE1 = LINE1 + 1. LINE2 = LINE2 + 1. ENDLOOP.
- abap导出excel代码
- ABAP 内表导出到excel
- ABAP 导出到EXCEL(模板一)
- 导出到excel代码
- 导出EXCEL代码(C#)
- 导出EXCEL代码(C#)
- 导出EXCEL代码(C#)
- C# 导出Excel代码
- GridView导出Excel代码
- 导出Excel 代码
- java 导出excel代码
- Excel导出导入代码
- poi导出excel代码
- 【代码】C#导出Excel
- 【代码】VB导出Excel
- javaPOI导出excel代码
- 导出Excel(.NET 代码)
- ABAP动态生成代码上传EXCEL数据
- ubuntu下配置samba
- 百度面试(1)
- mkimage工具安装
- JSON数据格式
- How to install the Sun Java JDK on Ubuntu 10.10
- abap导出excel代码
- sql语句摘录
- 四个新的 HTTP 状态码
- Emacs实现C++ 语法高亮、自动补全、各种跳转
- 差距
- Java中几个容易犯错的地方
- 排序算法
- 在职研究生考试 ---北航
- 线性时间查找固定频率的元素