溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

怎么使用ABAP編程實(shí)現(xiàn)對(duì)微軟Office Word文檔的操作

發(fā)布時(shí)間:2021-12-18 16:45:37 來源:億速云 閱讀:241 作者:柒染 欄目:互聯(lián)網(wǎng)科技

這期內(nèi)容當(dāng)中小編將會(huì)給大家?guī)碛嘘P(guān)怎么使用ABAP編程實(shí)現(xiàn)對(duì)微軟Office Word文檔的操作,文章內(nèi)容豐富且以專業(yè)的角度為大家分析和敘述,閱讀完這篇文章希望大家可以有所收獲。

SAP ABAP里提供了一個(gè)標(biāo)準(zhǔn)的類CL_DOCX_DOCUMENT,提供了本地以".docx"結(jié)尾的微軟Office word文檔的讀和寫操作。

Office OpenXML

從微軟 Office2007開始, 當(dāng)我們新建一個(gè)word文檔時(shí),其擴(kuò)展名從“.doc"變?yōu)榱?quot;.docx",后者是基上遵循了一個(gè)開源的規(guī)范:Office openXML格式。

例如下圖,我創(chuàng)建了一個(gè)最簡單的word文檔,包含了一個(gè)Header 區(qū)域,一個(gè)由三行彩色文字組成的段落,還有一張圖片。

怎么使用ABAP編程實(shí)現(xiàn)對(duì)微軟Office Word文檔的操作

我們把這個(gè)文檔保存到本地,將其擴(kuò)展名從.docx改成.zip, 然后雙擊,就可以用解壓軟件比如winrar打開。

于是發(fā)現(xiàn)這一個(gè)最簡單的word文檔實(shí)際上由如此多的xml和文件夾構(gòu)成。

怎么使用ABAP編程實(shí)現(xiàn)對(duì)微軟Office Word文檔的操作

使用CL_DOCX_DOCUMENT讀取word文件內(nèi)容

示例代碼如下:

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文檔的二進(jìn)制內(nèi)容傳入方法cl_docx_document=>load_document,得到一個(gè)文檔對(duì)象引用,然后就可以借助該對(duì)象引用調(diào)用各種方法了。

2. word文檔的創(chuàng)建者,創(chuàng)建時(shí)間,最后修改時(shí)間等信息都存儲(chǔ)在所謂的“Core property part”內(nèi),可以通過方法lo_document->get_corepropertiespart獲得"Core property part"的引用,再使用該引用調(diào)用方法get_data獲得實(shí)際內(nèi)容。

下圖是get_data返回的內(nèi)容的一個(gè)例子,可以看出是xml格式。

怎么使用ABAP編程實(shí)現(xiàn)對(duì)微軟Office Word文檔的操作

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

怎么使用ABAP編程實(shí)現(xiàn)對(duì)微軟Office Word文檔的操作

怎么使用ABAP編程實(shí)現(xiàn)對(duì)微軟Office Word文檔的操作

4. Word文檔里插入的圖片的二進(jìn)制內(nèi)容當(dāng)然也是可以讀取出來的。使用方法:lo_image_parts->get_part返回。

同樣的思路,微軟Office 2007之后版本的其他格式的辦公文檔,比如Powerpoint和Excel等,均遵循Office OpenXML標(biāo)準(zhǔn),因此將其后綴名改為.zip后同樣可以看到大量xml和文件夾。ABAP也同樣提供了標(biāo)準(zhǔn)代碼來讀寫這些Office文檔,例如CL_PPTX_DOCUMENT, CL_XLSX_DOCUMENT等等,如下圖所示。

怎么使用ABAP編程實(shí)現(xiàn)對(duì)微軟Office Word文檔的操作

上述就是小編為大家分享的怎么使用ABAP編程實(shí)現(xiàn)對(duì)微軟Office Word文檔的操作了,如果剛好有類似的疑惑,不妨參照上述分析進(jìn)行理解。如果想知道更多相關(guān)知識(shí),歡迎關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場,如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI