使用ABAP編程實現對微軟Office Word文檔的操作

      網友投稿 897 2025-04-02

      SAP ABAP里提供了一個標準的類CL_DOCX_DOCUMENT,提供了本地以".docx"結尾的微軟Office word文檔的讀和寫操作。


      本文介紹了ABAP類CL_DOCX_DOCUMENT的簡單用法。

      Office OpenXML

      從微軟 Office2007開始, 當我們新建一個word文檔時,其擴展名從“.doc"變為了".docx",后者是基上遵循了一個開源的規范:Office openXML格式。

      使用ABAP編程實現對微軟Office Word文檔的操作

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

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

      于是發現這一個最簡單的word文檔實際上由如此多的xml和文件夾構成。

      使用CL_DOCX_DOCUMENT讀取word文件內容

      示例代碼如下:

      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等等,如下圖所示。

      要獲取更多Jerry的原創技術文章,請關注公眾號"汪子熙"。

      ABAP ERP XML

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      版權聲明:本文內容由網絡用戶投稿,版權歸原作者所有,本站不擁有其著作權,亦不承擔相應法律責任。如果您發現本站中有涉嫌抄襲或描述失實的內容,請聯系我們jiasou666@gmail.com 處理,核實后本網站將在24小時內刪除侵權內容。

      上一篇:excel表格自動生成分頁小計的方法
      下一篇:程序員帶你回味童年,一起用C語言做一個“推箱子”玩!【文末源碼】
      相關文章
      亚洲另类古典武侠| 亚洲av无码片在线观看| 精品国产日韩久久亚洲| 亚洲精品第一国产综合精品 | 亚洲无人区一区二区三区| 亚洲午夜精品久久久久久浪潮 | 亚洲欧美国产欧美色欲| 亚洲国产综合精品中文第一| 亚洲精品456人成在线| 亚洲色www永久网站| 亚洲日本VA中文字幕久久道具| 2020天堂在线亚洲精品专区| 亚洲久悠悠色悠在线播放| 亚洲砖码砖专无区2023| 亚洲最大的成人网站| 亚洲欧美第一成人网站7777| 亚洲第一第二第三第四第五第六| 蜜桃传媒一区二区亚洲AV| 国产亚洲精品成人久久网站| 亚洲AV无码专区日韩| 狠狠亚洲狠狠欧洲2019| 久久精品国产亚洲麻豆| 亚洲bt加勒比一区二区| 97se亚洲综合在线| 亚洲国产综合在线| 亚洲高清有码中文字| 亚洲精品无码不卡在线播放| WWW国产亚洲精品久久麻豆| 国产亚洲精品仙踪林在线播放| 亚洲黄片手机免费观看| 国产精品亚洲不卡一区二区三区| 亚洲综合伊人久久综合| 亚洲av无码潮喷在线观看| 99人中文字幕亚洲区 | 亚洲精品国精品久久99热| 亚洲色偷偷综合亚洲AVYP| 亚洲av日韩av无码| 亚洲大片免费观看| 亚洲国产综合AV在线观看| 亚洲无码日韩精品第一页| 亚洲成av人影院|