本代码是通过OLE技术操作EXCEL,将SAP的数据填写到本地EXCEL中,Office运行在SAP的GUI界面外,注意红色代码。
REPORT ZRSDEMO01 NO STANDARD PAGE HEADING.
* this report demonstrates how to send some ABAP data to an
* EXCEL sheet using OLE automation.
*必须包含
INCLUDE OLE2INCL.
* handles for OLE objects
*申明相关的OFFICE的OLE对象
DATA: H_EXCEL TYPE OLE2_OBJECT, " Excel object
H_MAPL TYPE OLE2_OBJECT, " list of workbooks
H_MAP TYPE OLE2_OBJECT, " workbook
H_ZL TYPE OLE2_OBJECT, " cell
H_F TYPE OLE2_OBJECT. " font
TABLES: SPFLI.
DATA H TYPE I.
* table of flights
DATA: IT_SPFLI LIKE SPFLI OCCURS 10 WITH HEADER LINE.
*&---------------------------------------------------------------------*
*& Event START-OF-SELECTION
*&---------------------------------------------------------------------*
START-OF-SELECTION.
* read flights
SELECT * FROM SPFLI INTO TABLE IT_SPFLI UP TO 10 ROWS.
* tell user what is going on
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
* PERCENTAGE = 0
TEXT = TEXT-007
EXCEPTIONS
OTHERS = 1.
* start Excel(创建对象)
CREATE OBJECT H_EXCEL 'EXCEL.APPLICATION'.
PERFORM ERR_HDL.
*设置office对象是否显示
SET PROPERTY OF H_EXCEL 'Visible' = 1.
PERFORM ERR_HDL.
* tell user what is going on
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
* PERCENTAGE = 0
TEXT = TEXT-008
EXCEPTIONS
OTHERS = 1.
* get list of workbooks, initially empty
CALL METHOD OF H_EXCEL 'Workbooks' = H_MAPL.
PERFORM ERR_HDL.
* add a new workbook
CALL METHOD OF H_MAPL 'Add' = H_MAP.
PERFORM ERR_HDL.
* tell user what is going on
CALL FUNCTION 'SAPGUI_PROGRESS_INDICATOR'
EXPORTING
* PERCENTAGE = 0
TEXT = TEXT-009
EXCEPTIONS
OTHERS = 1.
* output column headings to active Excel sheet
PERFORM FILL_CELL USING 1 1 1 'Flug'(001).
PERFORM FILL_CELL USING 1 2 1 'Nr'(002).
PERFORM FILL_CELL USING 1 3 1 'Von'(003).
PERFORM FILL_CELL USING 1 4 1 'Nach'(004).
PERFORM FILL_CELL USING 1 5 1 'Zeit'(005).
LOOP AT IT_SPFLI.
* copy flights to active EXCEL sheet
H = SY-TABIX + 1.
PERFORM FILL_CELL USING H 1 0 IT_SPFLI-CARRID.
PERFORM FILL_CELL USING H 2 0 IT_SPFLI-CONNID.
PERFORM FILL_CELL USING H 3 0 IT_SPFLI-CITYFROM.
PERFORM FILL_CELL USING H 4 0 IT_SPFLI-CITYTO.
PERFORM FILL_CELL USING H 5 0 IT_SPFLI-DEPTIME.
ENDLOOP.
* disconnect from Excel
*
CALL METHOD OF H_EXCEL 'QUIT'.
FREE OBJECT H_EXCEL.
PERFORM ERR_HDL.
*---------------------------------------------------------------------*
* FORM FILL_CELL *
*---------------------------------------------------------------------*
* sets cell at coordinates i,j to value val boldtype bold *
*---------------------------------------------------------------------*
FORM FILL_CELL USING I J BOLD VAL.
*get cell
CALL METHOD OF H_EXCEL 'Cells' = H_ZL EXPORTING #1 = I #2 = J.
PERFORM ERR_HDL.
*set cell value
SET PROPERTY OF H_ZL 'Value' = VAL .
PERFORM ERR_HDL.
*Get cell font
GET PROPERTY OF H_ZL 'Font' = H_F.
PERFORM ERR_HDL.
*set cell font
SET PROPERTY OF H_F 'Bold' = BOLD .
PERFORM ERR_HDL.
ENDFORM.
*&---------------------------------------------------------------------*
*& Form ERR_HDL
*&---------------------------------------------------------------------*
* outputs OLE error if any *
*----------------------------------------------------------------------*
* --> p1 text
* <-- p2 text
*----------------------------------------------------------------------*
FORM ERR_HDL.
IF SY-SUBRC <> 0.
WRITE: / 'Fehler bei OLE-Automation:'(010), SY-SUBRC.
STOP.
ENDIF.
ENDFORM. " ERR_HDL
原文地址:http://blog.csdn.net/compassbutton/archive/2007/10/20/1833898.aspx
分享到:
相关推荐
OLE(Object Linking and Embedding)自动化允许开发人员利用Office套件的功能,如创建、编辑和操作文档,而无需用户手动打开应用程序。这在需要集成Office功能到自定义应用或自动化工作流程时非常有用。 本文将...
OLE的主要目的是实现跨应用的数据共享和交互,使VB应用程序能直接操作这些外部对象,从而增强功能和用户体验。 在VB中使用OLE,首先需要了解OLE控件。OLE控件是VB工具箱中的一种,它充当一个容器,用于在VB界面中...
通过Win32::OLE,Perl程序员可以在不依赖特定平台的情况下,对Excel文档进行读取和写入操作,这对于跨平台的数据处理非常有用。 **使用Perl和Win32::OLE模块读写Excel的优势** 1. **跨平台兼容性**:Perl语言本身...
1. **Microsoft ACE.OLEDB驱动程序**:这是由Microsoft提供的一个数据库引擎,用于读取和写入Microsoft Office文件格式,包括Excel 2007及以后版本的.xlsx和.xlsm文件。它取代了早前的Jet Engine,支持更高级的数据...
以上就是使用C++Builder通过OLE操作Word和Excel的基本步骤和示例。这个过程中,你需要注意错误处理,因为COM接口调用可能会失败,需要适当捕获和处理异常。同时,了解Word和Excel的VBA接口可以帮助你找到更多可用的...
然而,需要注意的是,直接操作Office组件可能会影响性能,并且在多线程环境中需要特别小心,以避免冲突或异常。因此,在处理大量数据或复杂逻辑时,考虑使用专门的数据处理库或API可能是更优的选择。
Asp.net可以通过COM互操作调用Microsoft Office应用程序(如Excel)来创建和编辑Excel文件。首先,需要在服务器上安装Office,并启用COM组件。然后,通过创建Excel对象,添加工作表,设置单元格值等步骤,可以生成...
当我们需要在VC++程序中操作Excel文件时,OLE自动化是一种常用的方法。本篇将详细介绍如何利用VC++ MFC的OLE方式读写Excel 2003文件,并探讨相对于ODBC方式的优势。 首先,理解OLE自动化。OLE自动化允许一个应用...
通过OLE自动化技术,开发者能够利用VC编写代码来创建和编辑Word文档,实现复杂的数据报表生成等功能。 #### 三、关键技术点详解 ##### 3.1 创建Word文档 要实现在VC中创建Word文档,首先需要通过OLE技术创建一个...
在PB中,我们可以创建一个OLE对象,将它绑定到支持TIF文件的外部应用程序,如Adobe Acrobat Reader或Microsoft Office中的图片查看器,以便在PB应用中查看和操作TIF文件。 以下是实现这个功能的步骤: 1. **创建...
通过OLE,你可以直接在文档中创建、编辑和操作这些对象,而无需离开当前的应用程序。 2. **VC++与OLE**:Visual C++(VC++)是微软提供的一个集成开发环境,支持C++编程,也包括对OLE的全面支持。开发者可以使用MFC...
本示例探讨了如何使用C#通过OLEDB(Object Linking and Embedding, Database)接口来操作Microsoft Excel文件。OLEDB是微软提供的一种数据访问技术,允许程序与各种类型的数据源进行交互,包括Excel工作簿。 首先,...
通过研究这些代码,你可以更深入地了解如何在C++Builder 2010中使用OLE技术操作Excel,并且可能也能学习到如何封装和复用二进制文件操作的代码。这将极大地提升你的C++编程能力和跨应用集成技能。
3. 使用OLE读取Excel文件:要以OLE方式读取Excel文件,首先需要在编程环境中导入相关的库或模块,例如在VBScript、VBA或.NET框架中的`Microsoft.Office.Interop.Excel`。然后,你可以创建一个Excel Application对象...
OLE是微软提出的一种技术,它使得不同程序能够共享数据和功能,如在Word文档中嵌入Excel电子表格。OLE自动化则进一步扩展了这个概念,允许通过编程语言(如VBA、Python、C#等)控制支持OLE的对象,例如Microsoft ...
通过学习ABAP OLE技术,开发者能够控制其他程序,使得SAP系统能够自动化执行其他程序的任务,例如Microsoft Office应用程序的操作,这种技术在数据导入导出、自动化报告生成等方面尤为有用。 知识点概述如下: 1. ...
通过这个库,开发者可以创建、查询和操作COM对象,实现自动化任务,例如与Excel、Word等Office应用进行交互,或者控制其他支持OLE的软件。 【标签】"Go开发-其它杂项"表明这是一门关于Go语言编程的特殊主题,不归属...
总的来说,理解并正确使用 Microsoft.ACE.OLEDB.12.0 提供程序对于需要与 Office 文件进行数据操作的开发人员至关重要。通过安装 AccessDatabaseEngine.exe,可以解决无法注册提供程序的错误,从而能够无缝地在应用...
本文将详细介绍如何使用Java编程语言实现"Office转PDF"的方法,主要涉及Word、Excel和PowerPoint这三种Office文件类型的转换。 首先,我们需要理解的是,Office文档与PDF之间的转换涉及到对文件格式的解析和重新...
它允许开发人员在无需安装完整Office套件的情况下,从.NET Framework中读取和写入Office文件。在本文中,我们将深入探讨如何使用OleDb驱动程序在ASP.NET应用程序中进行Excel文件的导入和导出,以及优化其性能。 ###...