MS Word 文書から表を取得し、その表を別の文書に追加して書式を設定したいと考えています。これを行うためにOOXMLを使用しています。特定のテーブルを識別するために、「代替テキスト -> タイトル」を割り当てました。ソース ドキュメントからテーブルとそのコンテンツを取得できます。特定の「代替テキスト - >タイトル」を使用して宛先ドキュメントにテーブルを追加し、それも取得できました。
以下のコードを使用して、宛先ドキュメントにテーブルを追加しました。ただし、宛先ドキュメントを開くと、MS Word エラー メッセージが表示されます。
MS Word エラー -> 「ファイルが壊れているため、開くことができません。」
このエラーに対して [OK] をクリックすると、「Word で .docx に判読できないコンテンツが見つかりました。このドキュメントのコンテンツを回復しますか? このドキュメントのソースを信頼する場合は、[はい] をクリックしてください。」というメッセージが表示されます。はいをクリックすると。
テーブルとそのすべての書式設定を含む宛先ドキュメントが表示されます。
このエラー/警告メッセージを削除するにはどうすればよいですか? このエラーの原因となっているコードの何が間違っていますか?
注:私がコピーしようとしているテーブルには、ハイパーリンク付きのテキストが含まれており、それが問題を引き起こしています。ハイパーリンクを削除すると、正常に動作します。
TableProperties tableProperty = sourceDocument.Document.Body.Descendants<TableProperties>().Where(tp => tp.TableCaption != null && tp.TableCaption.Val.InnerText.Contains("sourceTable")).FirstOrDefault();
TableProperties destTableProperty = destinationDocument.Document.Body.Descendants<TableProperties>().Where(tp => tp.TableCaption != null && tp.TableCaption.Val.InnerText.Contains("destinationTable")).FirstOrDefault();
sourceTable = (Table)tableProperty.Parent;
destinationTable = (Table)destTableProperty.Parent;
destinationTable.InsertBeforeSelf<Table>((Table)sourceTable.CloneNode(true));
destinationTable.Remove();