共計 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 小編將為大家輸出更多高質量的實用文章!