オブジェクト モデルを使用せずに Word 2007 文書を作成したいと考えています。したがって、オープン xml 形式を使用して作成することをお勧めします。ここまでで、ドキュメントを作成できました。ここで、コンテンツ コントロールを追加して、xml にマップします。誰でも同じことについて私を案内できますか???
2 に答える
アヌープ、
OpenXmlSdk を使用してドキュメントを作成できるとのことでした。その前提で、次のコードを使用して、ドキュメントの Wordprocessing.Body 要素に追加するコンテンツ コントロールを作成できます。
//praragraph to be added to the rich text content control
Run run = new Run(new Text("Insert any text Here") { Space = StaticTextConstants.Preserve });
Paragraph paragraph = new Paragraph(run);
SdtProperties sdtPr = new SdtProperties(
new Alias { Val = "MyContentCotrol" },
new Tag { Val = "_myContentControl" });
SdtContentBlock sdtCBlock = new SdtContentBlock(paragraph);
SdtBlock sdtBlock = new SdtBlock(sdtPr, sdtCBlock);
//add this content control to the body of the word document
WordprocessingDocument wDoc = WordprocessingDocument.Open(path, true); //path is where your word 2007 file is
Body mBody = wDoc.MainDocumentPart.Document.Body;
mBody.AppendChild(sdtBlock);
wDoc.MainDocumentPart.Document.Save();
wDoc.Dispose();
これがあなたの質問の一部に答えることを願っています。「Map it to XML」という言葉の意味がわかりませんでした。CustomXmlBlock を作成し、そこに ContentControl を追加するということですか?
www.codeplex.com で Word Content Control Toolkit を探してください。
これは、あなたが試みていることを行う方法に関する非常に簡単な説明です。
Word リボンの開発者タブにアクセスできる必要があります。これを機能させるには、左上隅にある Office (丸いもの) をクリックし、メニューの下部にある [Word のオプション] を選択します。最初のオプション ページには、開発者ツールバーを表示するためのチェックボックスがあります。
開発者ツールバーを使用して、ページに必要なコンテンツ コントロールを追加します。開発者バーの [コンテンツ コントロール] セクションにある [プロパティ] ボタンをクリックし、名前とタグのプロパティを設定します (私は、名前とタグ フィールドに同じ名前を付けることに固執しています)。
Word 文書を保存して閉じます。
コンテンツ コントロール ツールキットを開き、ツールキットでドキュメントを開きます。左側のペインを使用してカスタム xml を作成し、コントロールにリンクします。
バインド ビューを使用して、カスタム xml とツールキットの右側のパネルに表示されるカスタム コントロールとの間のマッピングをドラッグ アンド ドロップします。
openxml sdk 1.0 または 2.0 (まだ ctp) を使用して、Word 文書をコードで開き、Word 文書の一部として含まれているカスタム xml ファイルにアクセスできます。
Word 文書が xml としてどのように見えるかを確認したい場合。Word ドキュメントのコピーを作成し、名前を「a.zip」に変更します。zip ファイルをダブルクリックし、フォルダー構造をナビゲートします。Word 文書の主な内容は、Word フォルダーの下の「document.xml」というファイルに保持されます。ドキュメントのカスタム xml 部分は、customXml フォルダーの下に保持され、通常は「item1.xml」という名前のファイルにあります。
この簡単な説明が、あなたを元気づけてくれることを願っています。