2

xml sdkを開くのが初めてで、ワードプロセッシングドキュメントの関係性の仕組みがあまりよく分かりません。 Webtaskペインを削除するには、Webtaskペインが含まれている既存のドキュメントから、プログラムによって追加されたWebtaskペインを削除します。WordprocessingDocumentドキュメントからWebExtensionPartを削除した後に破損しました

openprocess xmlを使用してWordprocessingDocumentからWebExtensionPartを削除した後。

結果:ドキュメントが破損する。 理由:WebExtensionPartを削除した後にリレーションシップ部分が存在します。

コード:

public static void RemoveTaskPaneExt(WordprocessingDocument package) 
    { 
     WebExTaskpanesPart webExTaskpanesPart1 = package.GetPartsOfType<WebExTaskpanesPart>().FirstOrDefault(); 

     if (webExTaskpanesPart1 != null) 
     { 
      WebExtensionPart aWebExtension = 
       webExTaskpanesPart1.GetPartsOfType<WebExtensionPart>() 
        .Where(
         x => 
          x.WebExtension.WebExtensionStoreReference.Id == 
          System.Configuration.ConfigurationManager.AppSettings["PaneID"]) 
        .FirstOrDefault(); 
      if (aWebExtension != null) 
      { 
       bool result = package.WebExTaskpanesPart.DeletePart(aWebExtension); 
      }     
     } 
    } 

助けてください。 ありがとうございます。

答えて

0

以下は、すべてのWebExtensionTaskpanesを削除し、Wordファイルが有効になります。上記の方法の代わりにこれを呼び出します。

private static void RemoveWebExtensionPart(WordprocessingDocument package) 
    { 
     WebExTaskpanesPart webExTaskpanesPart1 = package.GetPartsOfType<WebExTaskpanesPart>().FirstOrDefault(); 

     if (webExTaskpanesPart1 != null) 
     { 
      bool result2 = package.DeletePart(webExTaskpanesPart1); 
     } 
    } 
2

私はタスクペインのすべての子を削除して答えを得ました。

public static void RemoveTaskPaneExt(WordprocessingDocument package) 
    { 
     WebExTaskpanesPart webExTaskpanesPart1 = package.GetPartsOfType<WebExTaskpanesPart>().FirstOrDefault(); 

     if (webExTaskpanesPart1 != null) 
     { 
      WebExtensionPart aWebExtension = 
       webExTaskpanesPart1.GetPartsOfType<WebExtensionPart>() 
        .Where(
         x => 
          x.WebExtension.WebExtensionStoreReference.Id == 
          System.Configuration.ConfigurationManager.AppSettings["PaneID"]) 
        .FirstOrDefault(); 
      if (aWebExtension != null) 
      { 
webExTaskpanesPart1.Taskpanes.RemoveAllChildren(); 
       bool result = package.WebExTaskpanesPart.DeletePart(aWebExtension); 
      }     
     } 
} 

ハッピーコーディング!

関連する問題