共计 1950 个字符,预计需要花费 5 分钟才能阅读完成。
本篇内容介绍了“使用 ABAP 操作 Excel 的方法有哪些”的有关知识,在实际案例的操作过程中,不少人都会遇到这样的困境,接下来就让丸趣 TV 小编带领大家学习一下如何处理这些情况吧!希望大家仔细阅读,能够学有所成!
在 SAPGUI 里根据关键字 OLE 搜索,能找到通过 ABAP 操作 Excel 的一种办法:
这段文档说的比较清楚,微软的 Word 和 Excel 这种 Office 应用,提供了一种所谓 automation 的接口,暴露的公有类的方法和属性可以被其他应用消费。
作为 ABAP 应用开发人员,我们通过调用 OLE 对象的方法 CALL METHOD, GET PROPERTY,SET PROPERTY 等来访问微软 Word 和 Excel 的 automation 接口,代码看起来像这样:
上面这个函数 RH_START_EXCEL_DATA_OLE 调用微软 Excel 的 automation 接口,新建一个 Excel workbook,然后准备把 ABAP 内表里的数据写到 Excel 里。
你也许会问,我咋知道 Excel 里有哪些公有的类和方法可以被 ABAP 调用呢?
在 Excel 里点击右键,选择 View Code:
打开 Microsoft Visual Basic Object Brower,所有可用的类和方法都列在这里了,上面 ABAP 代码第 218 行调用的 workbook 的 open 方法在列表里也能找到。
这个解决方案只在 windows 平台有效,并且需要运行 SAPGUI 的 Presentation Server 上安装有微软的 Excel 应用。
我们采用 OLE 的方式操作 Excel 时,打开 Windows 操作系统的任务管理器,会发现一个以 /automation -Embedding 参数启动的 Excel 进程。
这里的 -Embedding 参数,来自 OLE 的全称:Object Linking and Embedding 里的一部分。OLE 是微软的一项非常古老的技术了。
微软和 SAP 两位大佬,Bill Gates 和 Hasso Plattner 1993 年的照片:
关于 OLE,Jerry 知道的就这么点了,在 SAP 研究院里如今我们还是会和微软的技术打交道,比如微软的 Azure.
如果 Jerry 没记错的话, 微软 Office 从 2007 版本开始, 采用新的支持 Office Open XML 标准的格式来管理 Excel 和 Word 等文件。Jerry 2014 年在 SAP 成都研究院 CRM 开发团队负责 CRM Document Builder 这个模块,当时编写过使用 ABAP 操作 Word 文档的代码。
以 Word 为例,下图是我创建了一个最简单的 Word 文档,包含了一个 Header 区域,一个由三行彩色文字组成的段落,还有一张图片。
我们把这个 Word 文档的扩展名从.docx 改成.zip, 然后双击,就可以用解压软件比如 winrar 打开。
于是发现这一个最简单的按照 Office Open XML 协议实现的 Word 文档,实际上由如此多的 xml 和文件夹构成。
使用 SAP 标准的类 CL_DOCX_DOCUMENT 读取 Word 文件内容:
上述代码的简要说明:
(1) 将 word 文档的二进制内容传入方法 cl_docx_document= load_document,得到一个文档对象引用,然后就可以借助该对象引用调用各种方法了。
(2) word 文档的创建者,创建时间,最后修改时间等信息都存储在所谓的“Core property part”内,可以通过方法 lo_document- get_corepropertiespart 获得 Core property part 的引用,再使用该引用调用方法 get_data 获得实际内容。
下图是 get_data 返回的内容的一个例子,可以看出是 xml 格式。
(3) 现在我们准备读取 Word 文档的正文了。使用方法 lo_document- get_maindocumentpart 得到 Word 文档正文,文字的字体类型,颜色也包含在内。如下图所示:
(4) Word 文档里插入的图片的二进制内容当然也是可以读取出来的。使用方法:lo_image_parts- get_part 返回。
Excel 的例子我没有动手做过,不过原理类似,大家可以用开发包 S_OOXML_CORE 里的 CL_XLSX_DOCUMENT 来操作格式为 xlsx 的 Excel 文档。
除此之外,还有一个著名的开源项目,abap2xlsx, Jerry 没有试过,感兴趣的朋友可以试试。
最后,大家在 SE24 里使用关键字 XSLX 以及 SE38 里搜索_OLE,
可以从搜索列表里选一些点进去,参考 SAP 标准程序是如何操作 Excel 文档的。
“使用 ABAP 操作 Excel 的方法有哪些”的内容就介绍到这里了,感谢大家的阅读。如果想了解更多行业相关的知识可以关注丸趣 TV 网站,丸趣 TV 小编将为大家输出更多高质量的实用文章!