代替コンテンツ管理OpenXML
-
27-09-2019 - |
質問
いものとしてのプレースホルダー.うになったコンテンツ管理ソリューションとしてがんの一部の問題です。
そして見を加えCustomXML ーになります。docking pane、xtreme property gridなどの高度な機能がオンから離れることがi4i訴訟手続への
たかだの変更、テキストのコンテンツ制御によOpenXML SDK2.0てもそのコンテンツのコントロールが効かなくなった。ではないかと思い知らないは、テキストを変更しない限りが。
いかだけを取り外しCCやテキスト代わりにも私の問題形式およびスタイルで、このような枠にとらわれず、常に目的のコンテンツ。
それでいいを定義して、自分のプレースホルダで実装する言葉です。をブロックなものかもしれない。いいものを除きが簡単に利用OpenXMLを死守しなければならなtaggableいかに置き換えます。んだよってどのようなことができるかブロックが今もない-させることができます。
など解決することになりかかって必ず閉じてください:
a)というのは、とても簡単にテンプレートも定義済みのコンテンツの制御プレースホルダで実装できる場所湾なスタイルとしてます。
プロトタイプシステムのデータが追加されたすすべて削除しプレースホルダで実装しれません再度修正。このスタイルで定義された形式のプレースホルダー.
をおさらいして、回答のいずれか
たいのですが編集コンテンツ管理OpenXML SDKからは少し離れていますが撤去された後のテキストが追加されます。
-または-
できるかを定義し、自分のカスタムOpenXMLタグのための資料を、Wordドキュメントこそ交換?
解決
おそらくこれはあなたを助けることができます、
private void DeleteSdtBlockAndKeepContent(MainDocumentPart mainDocumentPart, string sdtBlockTag)
{
List<SdtBlock> sdtList = mainDocumentPart.Document.Descendants<SdtBlock>().ToList();
SdtBlock sdtA = null;
foreach (SdtBlock sdt in sdtList)
{
if (sdt.SdtProperties.GetFirstChild<Tag>().Val.Value == sdtBlockTag)
{
sdtA = sdt;
break;
}
}
OpenXmlElement sdtc = sdtA.GetFirstChild<SdtContentBlock>();
OpenXmlElement parent = sdtA.Parent;
OpenXmlElementList elements = sdtc.ChildElements;
var mySdtc = new SdtContentBlock(sdtc.OuterXml);
foreach (OpenXmlElement elem in elements)
{
string text = parent.FirstChild.InnerText;
parent.Append((OpenXmlElement)elem.Clone());
}
sdtA.Remove();
}
他のヒント
フィールドの使用をご覧ください。メールマージフィールドは、まさにこの目的のために設計されています。
う必要はありませんからの質問の場合に最も人気のあるものを明らかになったことによって、自動的に削除しますContentControl/SDTに変更する場合につきましてOpenXML SDKるかどうか、思い通りの後しばらくすると消滅するコンテンツはmodifedプログラムまたはユーザーです。
場合、あるい"という思いを大切にしていない自分が取り付けられています。 としてBilelことを示唆.場合、後者の方にしておくとよいでしょうこの施設: ContentControl.仮設 (ContentControlは自動的に削除されますが、ユーザーの種類を制御する場合は、テキストの制御プログラムに変更.がContentControlは自動的に削除されますから、ドキュメントでは、テキストの管理は、document.")