日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 编程资源 > 编程问答 >内容正文

编程问答

officeopenxml excelpackage 需要安装excel嘛_使用ABAP操作Excel的几种方法

發(fā)布時間:2024/10/6 编程问答 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 officeopenxml excelpackage 需要安装excel嘛_使用ABAP操作Excel的几种方法 小編覺得挺不錯的,現(xiàn)在分享給大家,幫大家做個參考.
這篇文章本來不在我計劃之內,因為最近一個朋友微信上問到我這個問題,但我平時在SAP研究院工作中從沒遇到過需要用ABAP操作Excel的需求,因此也沒有太多技術實現(xiàn)細節(jié)可以分享給大家,只能泛泛寫一些。用ABAP操作Excel這個需求算是比較常見,所以Jerry希望這篇文章能起到拋磚引玉的效果。在這個話題上有多年工作經(jīng)驗的朋友們,歡迎留言,指出Jerry文章中不足或者錯誤之處。在SAPGUI里根據(jù)關鍵字OLE搜索,能找到通過ABAP操作Excel的一種辦法:

這段文檔說的比較清楚,微軟的Word和Excel等Office應用,提供了一種所謂automation的接口,暴露的公有類的方法和屬性可以被其他應用消費。

作為ABAP應用開發(fā)人員,我們通過調用OLE對象的方法CALL METHOD, GET PROPERTY,SET PROPERTY等來訪問微軟Word和Excel的automation接口,代碼看起來像這樣:

上面這個函數(shù)RH_START_EXCEL_DATA_OLE調用微軟Excel的automation接口,新建一個Excel workbook,然后準備把ABAP內表里的數(shù)據(jù)寫到Excel里。你也許會問,我咋知道Excel里有哪些公有的類和方法可以被ABAP調用呢?在Excel里點擊右鍵,選擇View Code:

打開Microsoft Visual Basic Object Brower,所有可用的類和方法都列在這里了,上面ABAP代碼第218行調用的workbook的open方法在列表里也能找到。

這個解決方案只在windows平臺有效,并且需要運行SAPGUI的Presentation Server上安裝有微軟的Excel應用。我們采用OLE的方式操作Excel時,打開Windows操作系統(tǒng)的任務管理器,會發(fā)現(xiàn)一個以/automation -Embedding參數(shù)啟動的Excel進程。

這里的-Embedding參數(shù),來自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開發(fā)團隊負責CRM Document Builder這個模塊,當時編寫過使用ABAP操作Word文檔的代碼。以Word為例,下圖是我創(chuàng)建了一個最簡單的Word文檔,包含了一個Header區(qū)域,一個由三行彩色文字組成的段落,還有一張圖片。

我們把這個Word文檔的擴展名從.docx改成.zip, 然后雙擊,就可以用解壓軟件比如winrar打開。于是發(fā)現(xiàn)這一個最簡單的按照Office Open XML協(xié)議實現(xiàn)的Word文檔,實際上由如此多的xml和文件夾構成。

使用SAP標準的類CL_DOCX_DOCUMENT讀取Word文件內容:

上述代碼的簡要說明:(1) 將word文檔的二進制內容傳入方法cl_docx_document=>load_document,得到一個文檔對象引用,然后就可以借助該對象引用調用各種方法了。(2) word文檔的創(chuàng)建者,創(chuàng)建時間,最后修改時間等信息都存儲在所謂的“Core property part”內,可以通過方法lo_document->get_corepropertiespart獲得"Core property part"的引用,再使用該引用調用方法get_data獲得實際內容。下圖是get_data返回的內容的一個例子,可以看出是xml格式。

(3) 現(xiàn)在我們準備讀取Word文檔的正文了。使用方法lo_document->get_maindocumentpart得到Word文檔正文,文字的字體類型,顏色也包含在內。如下圖所示:

(4) Word文檔里插入的圖片的二進制內容當然也是可以讀取出來的。使用方法:lo_image_parts->get_part返回。Excel的例子我沒有動手做過,不過原理類似,大家可以用開發(fā)包S_OOXML_CORE里的CL_XLSX_DOCUMENT來操作格式為xlsx的Excel文檔。

除此之外,還有一個著名的開源項目,abap2xlsx, Jerry沒有試過,感興趣的朋友可以試試。https://github.com/sapmentors/abap2xlsx

最后,大家在SE24里使用關鍵字XSLX以及SE38里搜索_OLE,

可以從搜索列表里選一些點進去,參考SAP標準程序是如何操作Excel文檔的。希望這些內容對大家有用,感謝閱讀。

更多閱讀

  • Jerry的ABAP, Java和JavaScript亂燉

  • ABAP開發(fā)人員未來應該學些什么

  • Jerry 2017年的五一小長假:8種經(jīng)典排序算法的ABAP實現(xiàn)

  • Jerry的ABAP原創(chuàng)技術文章合集

  • 300行ABAP代碼實現(xiàn)一個最簡單的區(qū)塊鏈原型

  • 使用Java+SAP云平臺+SAP Cloud Connector調用ABAP On-Premise系統(tǒng)里的函數(shù)

  • 在SAP云平臺的CloudFoundry環(huán)境下消費ABAP On-Premise OData服務

  • ABAP vs Java, 蛙泳 vs 自由泳

  • 聊聊C語言和ABAP

  • 動手使用ABAP Channel開發(fā)一些小工具,提升日常工作效率

  • 我用ABAP做過的那些無聊的事情

  • 不喜歡SAP GUI?那試試用Eclipse進行ABAP開發(fā)吧

  • 使用Visual Studio Code編寫和激活ABAP代碼

  • 你的ABAP程序給佛祖開過光么?來試試Jerry這個小技巧

  • 在SAP云平臺ABAP編程環(huán)境上編寫第一段ABAP程序

  • SAP官方發(fā)布的ABAP編程規(guī)范

  • ABAP Code Inspector那些隱藏的功能,您都知道嗎?

  • 還在用ABAP進行SAP產品的二次開發(fā)?來了解下這種全新的二次開發(fā)理念吧

  • ABAP Netweaver體內的那些寄生式編程語言

  • 從SAP社區(qū)上的一篇博客開始,聊聊SAP產品命名背后的那份情懷

  • 云端的ABAP Restful服務開發(fā)

  • 如何在SAP云平臺ABAP編程環(huán)境里把CDS view暴露成OData服務

  • 使用abapGit在ABAP On-Premises系統(tǒng)和SAP云平臺ABAP環(huán)境之間進行代碼傳輸

  • 30分鐘用Restful ABAP Programming模型開發(fā)一個支持增刪改查的Fiori應用

  • Jerry帶您了解Restful ABAP Programming模型系列之二:Action和Validation的實現(xiàn)

  • Jerry帶您了解Restful ABAP Programming模型系列之三:云端ABAP應用調試

  • SAP云平臺上的ABAP編程環(huán)境里如何消費第三方服務

  • ABAP開發(fā)者上云的時候到了 - 現(xiàn)在大家可以免費使用SAP云平臺ABAP環(huán)境的試用版了

  • 學而不思則罔 - SAP云平臺ABAP編程環(huán)境的由來和適用場景

  • SAP云平臺里的三叉戟應用

  • 如何基于Restful ABAP Programming模型開發(fā)并部署一個支持增刪改查的Fiori應用

  • SAP 2019 TechEd Key Note解讀:云時代下SAP從業(yè)人員如何做二次開發(fā)?

  • 有哪些ABAP關鍵字和語法,到了ABAP云環(huán)境上就沒辦法用了?

  • ABAP開發(fā)環(huán)境終于支持以駝峰命名法自動格式化ABAP變量名了

  • 利用ABAP 740的新關鍵字REDUCE完成一個實際工作任務

  • 一段讓人瑟瑟發(fā)抖的ABAP代碼

  • 昨日萬圣節(jié)ABAP怪獸級代碼謎團,公布答案啦

  • 介紹一種在ABAP內核態(tài)進行內表高效拷貝的方法

  • 使用SAP Cloud Application Programming模型開發(fā)OData的一個實際例子

  • 當ABAP遇見普羅米修斯

  • 使用ABAP繪制可伸縮矢量圖

  • ABAP開發(fā)環(huán)境語法高亮的那些事兒

  • SAP錯誤消息調試之七種武器:讓所有的錯誤消息都能被定位

總結

以上是生活随笔為你收集整理的officeopenxml excelpackage 需要安装excel嘛_使用ABAP操作Excel的几种方法的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網(wǎng)站內容還不錯,歡迎將生活随笔推薦給好友。