您好,登錄后才能下訂單哦!
這期內容當中小編將會給大家帶來有關怎么使用ABAP編程實現對微軟Office Word文檔的操作,文章內容豐富且以專業的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。
SAP ABAP里提供了一個標準的類CL_DOCX_DOCUMENT,提供了本地以".docx"結尾的微軟Office word文檔的讀和寫操作。
從微軟 Office2007開始, 當我們新建一個word文檔時,其擴展名從“.doc"變為了".docx",后者是基上遵循了一個開源的規范:Office openXML格式。
例如下圖,我創建了一個最簡單的word文檔,包含了一個Header 區域,一個由三行彩色文字組成的段落,還有一張圖片。
我們把這個文檔保存到本地,將其擴展名從.docx改成.zip, 然后雙擊,就可以用解壓軟件比如winrar打開。
于是發現這一個最簡單的word文檔實際上由如此多的xml和文件夾構成。
示例代碼如下:
DATA: lv_content TYPE xstring, lo_document TYPE REF TO cl_docx_document. PERFORM get_doc_binary USING 'C:Usersi042416Desktop est.docx' CHANGING lv_content. lo_document = cl_docx_document=>load_document( lv_content ). CHECK lo_document IS NOT INITIAL. DATA(lo_core_part) = lo_document->get_corepropertiespart( ). DATA(lv_core_data) = lo_core_part->get_data( ). DATA(lo_main_part) = lo_document->get_maindocumentpart( ). DATA(lo_image_parts) = lo_main_part->get_imageparts( ). DATA(lv_image_count) = lo_image_parts->get_count( ).DO lv_image_count TIMES. DATA(lo_image_part) = lo_image_parts->get_part( sy-index - 1 ). DATA(lv_image_data) = lo_image_part->get_data( ). ENDDO. DATA(lo_header_parts) = lo_main_part->get_headerparts( ). DATA(lv_header_count) = lo_header_parts->get_count( ).DO lv_header_count TIMES. DATA(lo_header_part) = lo_header_parts->get_part( sy-index - 1 ). DATA(lv_header_data) = lo_header_part->get_data( ). ENDDO.
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返回。
同樣的思路,微軟Office 2007之后版本的其他格式的辦公文檔,比如Powerpoint和Excel等,均遵循Office OpenXML標準,因此將其后綴名改為.zip后同樣可以看到大量xml和文件夾。ABAP也同樣提供了標準代碼來讀寫這些Office文檔,例如CL_PPTX_DOCUMENT, CL_XLSX_DOCUMENT等等,如下圖所示。
上述就是小編為大家分享的怎么使用ABAP編程實現對微軟Office Word文檔的操作了,如果剛好有類似的疑惑,不妨參照上述分析進行理解。如果想知道更多相關知識,歡迎關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。