声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将追究法律责任!原文链接:http://www.cnblogs.com/jiangzhengjun/p/4265604.html

20.7.     OLE

CREATE OBJECT obj_name 'app'."创建APP应用类的一个对象obj_name实例
SET PROPERTY OF obj_name 'XXX' = f ."设置对象OBJ_NAME属性xxx为值f
GET PROPERTY OF obj_name 'xxx' = f ."将obj_name的属性xxx的值获取赋给f
CALL METHOD OF
    obj_name
    'xxx'    = f  "由f来接收返回值
  EXPORTING
    #1       = f1."调用Obj_name的方法xxx 传入参数f1…fn
FREE OBJECT obj_name. "释放obj_name.

*定义OLE变量
DATA:EXCEL TYPE OLE2_OBJECT,
     WORKBOOK TYPE OLE2_OBJECT,
     SHEETTYPE OLE2_OBJECT,
     CELL TYPE OLE2_OBJECT.

创建excel对象:

CREATEOBJECT EXCEL'EXCEL.APPLICATION'.

."使excel可见

."设置 Microsoft Excel 软件打开时,自动插入到新工作簿中的工作表数目(即初始sheet数目,默认名字依次为 Sheet1、Sheet2.....)

创建workbook

CALLMETHOD OF EXCEL 'WORKBOOKS' = WORKBOOK.

"由于Workbooks同时为属性,所以可以使用下面语句代替上面语句
*GET PROPERTY OF EXCEL 'Workbooks' = WORKBOOK .
CALL METHOD OF WORKBOOK 'ADD'.

CALL METHOD OF WORKBOOK 'OPEN'EXPORTING #1 = 'c:\1.xlsx'."开文件

添加sheet

CALL METHOD OF EXCEL 'sheets' = SHEET.
CALL METHOD OF SHEET 'Add'.

SETPROPERTY OF SHEET 'Name' = 'aaa'."sheet重命名

切换sheet

CALL METHOD OFEXCEL 'Worksheets' = SHEETEXPORTING #1 = 'sheet3'.
CALL METHOD OFSHEET 'Activate'.

给单元格赋值:

#2 .
SET  PROPERTY OF CELL 'value' =  xxxx.

执行宏:

CALL METHOD OF EXCEL 'RUN' EXPORTING #1 = 'ZMACRO2'.

保存和退出:

.
CALL METHOD OF WORKBOOK 'CLOSE'. "关闭工作区
CALL METHOD OF EXCEL 'QUIT'."退出excel

释放资源:

FREE OBJECT SHEET.
FREE OBJECT WORKBOOK.
FREE OBJECT EXCEL.

20.7.1.           导出Exel文件多种方式

FM函数 SAP_CONVERT_TO_XLS_FORMAT:

优点是快速,简单;缺点就是不能控制格式,导出的数据看起来不够美观,不能使用公式,宏等

OLE

这个方法使用对象OLE2_OBJECT,模拟手工来填写EXCEL的内容,所以基本上可以实现Excel的绝大部分功能,诸如特殊格式、函数、宏、图片等等

优点是功能强大,能做到用户指定的格式;缺点是复杂,速度慢。

OLE + Excel模板:

这个方法是在纯OLE的基础上增加使用Excel模板,原理是通过在Excel模板里面设定格式,公式等已知的内容,然后使用OLE去填充其它数据

优点是比纯OLE速度要快;缺点还是速度慢,虽然比第二种方法有所提高,但是如果数据量比较大的时候,比如超过1000行,速度方面还是不尽如人意

OLE + Excel模板 + TXT

这个方法在方法3的基础上增加使用TXT文本文件,原理是先将数据根据按照Excel行列准备好,导出到TXT文本文件中,然后在Excel模板中使用宏打开文本文件进行填充

优点是功能强,速度快;缺点是实现起来较为复杂,且需要懂VBA

[SAP ABAP开发技术总结]OLE的更多相关文章

  1. ABAP开发顾问必备:SAP ABAP开发技术总结

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  2. [SAP ABAP开发技术总结]OPEN SQL

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  3. [SAP ABAP开发技术总结]内表操作

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  4. ABAP开发顾问必备:SAP ABAP开发技术总结[转载]

    转载自SAP师太技术博客,原文链接:http://www.cnblogs.com/jiangzhengjun/p/4260224.html 在原文上增加了链接,此文及此文的链接版权都归SAP师太所有. ...

  5. [SAP ABAP开发技术总结]ABAP程序之间数据共享与传递

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  6. [SAP ABAP开发技术总结]字符串处理函数、正则表达式

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  7. [SAP ABAP开发技术总结]ALV

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  8. [SAP ABAP开发技术总结]面向对象OO

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

  9. [SAP ABAP开发技术总结]客户端文本文件、Excel文件上传下载

    声明:原创作品,转载时请注明文章来自SAP师太技术博客( 博/客/园www.cnblogs.com):www.cnblogs.com/jiangzhengjun,并以超链接形式标明文章原始出处,否则将 ...

随机推荐

  1. 【翻译】了解ASP.NET MVC的HTML助手

    原文:Understanding HTML Helpers in ASP.NET MVC 作 者:Shailendra Chauhan works as Software Analyst at rep ...

  2. Dynamics AX 2012 R2 在增强入站端口中找不到自定义服务操作

        Reinhard写好自定义服务A,添加好服务操作A1,A2,A3.....     然后,Reinhard在增强的入站端口,选择服务操作时,却找不到这些A1,A2,A3.     查找相关资料 ...

  3. source insight项目文件列表固定嵌入右侧

    项目文件列表悬浮出来,不是嵌入紧靠右边,先将该窗口最小化,然后往右拖放,就成功固定嵌入到右边了.

  4. 完整学习git三 查看暂存区目录树 git diff

    1显示暂存区中的目录树 git ls-files git ls-tree git diff 魔法 1工作区与暂存区比较 git diff 2工作区与HEAD比较 git diff HEAD 3暂存区与 ...

  5. 杭电1071-The area

    问题描述:   Ignatius bought a land last week, but he didn't know the area of the land because the land i ...

  6. js笔记----(运动)淡入淡出

    <!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <m ...

  7. c#中委托和事件(续)(转)

    本文将讨论委托和事件一些更为细节的问题,包括一些大家常问到的问题,以及事件访问器.异常处理.超时处理和异步方法调用等内容. 为什么要使用事件而不是委托变量? 在 C#中的委托和事件 中,我提出了两个为 ...

  8. Unity-Animator深入系列---FAQ

    回到 Animator深入系列总目录 Q: 如果想做角色负伤的一套动画,但是又和原有状态机不冲突,只是想换动画剪辑,应该怎么办? A: 新建一个层,设置为同步模式.这时候你不能在同步层添加状态,但你可 ...

  9. JAVA基础知识之网络编程——-网络基础(Java的http get和post请求,多线程下载)

    本文主要介绍java.net下为网络编程提供的一些基础包,InetAddress代表一个IP协议对象,可以用来获取IP地址,Host name之类的信息.URL和URLConnect可以用来访问web ...

  10. Python3发送post请求,自动记住cookie

    转载自:http://www.cnblogs.com/meitian/p/4607737.html 在做登录的post请求时,需要记住cookie,否则不能访问登录后的页面. 下面是登录的代码: #c ...