`

通过OLE操作写OFFICE文件(转)

阅读更多
本代码是通过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
分享到:
评论

相关推荐

    MS Office OLE Automation Using C++.

    操作word和excel文件,实现文件的读写

    vb中OLE之WORD

    OLE(Object Linking and Embedding,对象链接与嵌入)使VB应用程序可以访问Windows环境中其他应用程序的对象,例如Word文档、Excel工作表等,这类对象称为OLE对象。VB能够访问的OLE对象取决于用户系统所安装的...

    2012,我的C#全能Excel操作(无需Office,不使用XML)

    2012,我的C#全能Excel操作(无需Office,不使用XML) 有时候,Excel操作会成为我们程序员的痛处。 COM的方式处理?杀进程?需要安装Office? No,nononono!这些都不想了。 我只要OleDb就够用了。 读取内容产生...

    VC控制WORD(OLE自动化)

    WORD是最常用的office 软件,本文讨论了在vc中控制word的方法,ole自动化一篇很好的文章,读了之后就会掌握这个技术

    C#使用oledb操作excel文件的方法

    本文实例讲述了C#使用oledb操作excel文件的方法。分享给大家供大家参考。具体分析如下: 不管什么编程语言都会提供操作Excel文件的方式,C#操作Excel主要有以下几种方式: 1.Excel 说明:利用Office 的Excel组件来...

    office2010连接文件

    能够通过此文件实现对office2010,office2013,office2016的连接

    不依赖OLE的Excel导出类

    我们在程序中处理Office文档的时候,常用的方法是OLE。在此提供了一个不依赖于OLE的对Excel操作的类。经测试在各个版本的vc和Borland C++下都能使用。兼容windows 系列下office 97 到office 2007所有版本的Excel文档...

    delphi操作excel模块,图片,表格,读写删除

    Open Office Calc文档 CSV文件以及其他可以自动识别分隔符、小数分隔符和文本引用字符的文本文件 HTML表格(标签) 数据库 导出数据为… CSV文件 HTML文件 其他 自动过滤 单元验证 有条件的格式 合并单元 ...

    (ApachePOIHSSFandXSSF快速指南帮助文档

    Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和...

    POI操作WORD 官方测试案例 DEMO.zip

    HPSF:用于提取MS-Office文件的属性集。 HWPF:用于读取和写入MS-Word的.doc扩展文件。 XWPF(XML字处理器格式):用于读取和写入MS-Word的扩展文件 .docx 。 HSLF:用于阅读,创建和编辑PowerPoint演示文稿。 HDGF...

    poi导出excel的使用

    Apache POI 是创建和维护操作各种符合Office Open XML(OOXML)标准和微软的OLE 2复合文档格式(OLE2)的Java API。用它可以使用Java读取和创建,修改MS Excel文件.而且,还可以使用Java读取和创建MS Word和...

    NPOI 2.3.0.0.rar

    NPOI是一个开源项目,可以读/写xls、doc、ppt文件,有着广泛的应用。它构建在POI 3.x版本之上,可以在没有安装Office的情况下对Word/Excel文档进行读写操作。NPOI有着强大的导入和导出功能,尤其是支持OLE2文档结构...

    POI导入测试用数据users.xls

    Apache POI项目的任务是创建和维护Java API,以便根据Office Open XML标准(OOXML)和Microsoft的OLE 2复合文档格式(OLE2)操作各种文件格式。简而言之,您可以使用Java读写MS Excel文件。此外,您还可以使用Java...

    VC/C++操作Excel

    通过OLE对Excel的读写操作,下载后看头文件即可调用,本DLL在windows10 Office2016下使用VS2015编译且可正常读写Excel文件,其它版本的Excel调用上有某些细节上的不同,请自行更改。

    Npoi生成Excel 97-2003/ (xls)文件

    NPOI 是 POI 项目的 .NET 版本。POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。...NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作。

    NPOI库文件

    NPOI是构建在POI 3.x版本之上的,它可以在没有安装Office的情况下对Word/Excel文档进行读写操作。NPOI之所以强大,并不是因为它支持导出Excel,而是因为它支持导入Excel,并能"理解"OLE2文档结构,这也是其他一些...

    WPS Office-办公软件

    3、支持对文档进行查找替换、修订、字数统计、拼写检查等操作 4、编辑模式下支持文档编辑,文字、段落、对象属性设置,插入图片等功能 5、阅读模式下支持文档页面放大、缩小,调节屏幕亮度,增减字号等功能 6、...

    NPOI.Examples Excel、WORD读写

    NPOI.Examples Excel、WORD读写NPOI 是 POI 项目的 .NET ...POI是一个开源的Java读写Excel、WORD等微软OLE2组件文档的项目。 使用 NPOI 你就可以在没有安装 Office 或者相应环境的机器上对 WORD/EXCEL 文档进行读写。

    MS Office VBA参考手册(全套,27个帮助文档)

    Microsoft Office Object描述、定义、说明,以及编程范例,对VBA、VBScript、Jscript、Visual Basic,C/C++、C#,Delphi等OLE编程调用Excel操作有非常好的帮助作用。win7以上下载了打开不显示记得点击文件属性,解除...

    NPOI引用文件

    NPOI是一个开源的C#读写Excel、WORD等微软OLE2组件文档的项目。可以在没有安装Office的情况下对Word或Excel文档进行读写操作。

Global site tag (gtag.js) - Google Analytics