簡體   English   中英

如何在整個powerpoint文件中獲得相同的形狀或圖片並替換它們?

[英]How to get the same shape or picture in the whole powerpoint file and replace them?

我正在使用Visual Studio並開發一個Office 插件 我需要識別相同的形狀和圖片並替換它們。

我嘗試使用OpenXml來做到這一點,但似乎無法在使用中的文件中進行修改 它似乎不能用作 office 插件,因為它不適用於已經打開的文件

我在互聯網上搜索了很多小時,但沒有找到方法。 請幫幫我。

謝謝

TL; DR: OpenXMLOffice 加載項(包括VSTO )是針對不同用例的競爭技術,如果結合使用可能會導致運行時問題。 最好堅持一個。


我正在...開發一個辦公室插件。 我需要識別相同的形狀和圖片並替換它們。 我嘗試使用OpenXml來做到這一點,但似乎無法在使用中的文件中進行修改

OpenXML是一種用於創建/讀取/修改Office 文檔(確切地說是Office 2010+ )的 API,它遵循現代 XML 文檔格式,例如Word 2010 它通過直接在文件級別而不是使用COM操作文檔來實現。 事實上,它根本不需要在機器上安裝 Word! 這使得 OpenXML 成為一種與 Office 文檔交互的輕量級方法。

不幸的是,如果 OpenXML(或其他基於文件的方法)都針對同一個文檔,則它們不適合 Office 加載項(VSTO 或其他)。 這是因為該文檔已加載到 Word 中,並且 Word 正在托管您的加載項。 任何修改表示加載的文檔的基礎文件(包括通過 Word 或 Word API 以外的任何內容的 OpenXML)的嘗試都會遇到:

共享違規

換句話說:

  1. 為了運行您的 Office 加載項,需要先運行 Office 應用程序。 這稱為托管
  2. 由加載項編排的 Office 文檔操作需要先將文檔加載到 Office 應用程序中
  3. 沒有任何外部Windows 進程或進程內(加載項)操作可以直接更改在 Office 應用程序中打開的基礎 Office 文檔文件。 (加載項可以使用 Office API間接保存到文件並要求 Office 應用程序保存,盡管通常此類 API 不會向調用者公開任何原始文件接口,因此后者可能不是一回事)

該怎么辦?

我的建議是:

a)使用純 OpenXML 方法並丟棄 Office 加載項或...

b)使用純 Office 加載項 (VSTO) 方法並丟棄 OpenXML 代碼

考慮到您似乎已經通過 OpenXML 方法獲得了形狀和圖片的代碼,也許選項a)是最好的。

也可以看看

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM