Verwenden markierter Inhaltssteuerelemente zum Lösen von Szenarios mit strukturierten Dokumenten in Word 2010 (maschinell übersetzt)

Wichtig

Dieser Artikel wurde maschinell übersetzt. Bitte beachten Sie den Haftungsausschluss. Die englische Version des Artikels ist als Referenz hier verfügbar: here.

Zusammenfassung: Erfahren Sie, wie Sie markierte Inhaltssteuerelemente in Microsoft Word 2010-Softwarelösungen verwenden können.

Letzte Änderung: Montag, 11. April 2011

Gilt für: Office 2010 | Open XML | Visual Studio Tools for Microsoft Office | Word 2007 | Word 2010

Inhalt dieses Artikels
Grundlegendes zu Dokument-Lösungsszenarios
Grundlegendes zu Tagged Inhaltssteuerelemente
Suchen ein mit Tags versehenen Inhaltssteuerelement programmgesteuert
Schlussbemerkung
Weitere Ressourcen

Veröffentlicht: Februar 2011

Zur Verfügung gestellt von: Stephen D. Oliver, Microsoft Corporation | Tristan Davis, Microsoft Corporation

Inhalt

Grundlegendes zu Dokument-Lösungsszenarios

In Szenarien, die im Allgemeinen beschreiben, wie die Lösung mit dem Dokument interagiert, können Software-Lösungen, die Bearbeitung von Microsoft Word Dokumente beinhalten kategorisiert werden. Ein Dokument Generation Szenario umfasst Dokumente programmgesteuert generieren. Eine Daten-Extraktion-Szenario umfasst programmgesteuert aus einem Dokument extrahieren bestimmter Inhalte.

Inhaltssteuerelemente sind ein Feature von Word 2007 und Word 2010. Ein Inhaltssteuerelement ist eine berandete und potenziell gekennzeichneten Bereich in einem Dokument, das als Container für bestimmte Arten von Inhalten dient. Einzelne Inhaltssteuerelemente können Inhalt wie Bilder, Daten, Listen oder Absätze mit formatiertem Text enthalten. Mit derselben Technik, die zuvor im Blogbeitrag beschrieben: Die einfache Möglichkeit, mehrere Word-Dokumente zusammenstellen. Inhaltssteuerelemente werden in diesem Beispiel verwendet, finden Sie die Teile des Dokuments, an die einzelnen Dokumenten eingefügt. In diesem technische Artikel wird beschrieben, wie getaggte Inhaltssteuerelemente als eine Technik in beiden Szenarien verwenden.

Ein Vorteil der Verwendung dieser Technik im Gegensatz zum Verwenden der XML-Zuordnung-Funktion ist, dass nach dem Tag das Inhaltssteuerelement befindet, können Sie das WordprocessingML-Markup, das das Inhaltssteuerelement enthaltenen abrufen oder push-Content in das Steuerelement eine Vielzahl von Word. Betrachten Sie das Beispiel ein Szenario, das Extrahieren von Inhalt aus in ein Rich-Text-Inhaltssteuerelement, das rich-Text und mehrere Absätze umfasst erfordert. Mithilfe von XML-Mapping, können Sie Daten zwischen einem einzelnen XML-Knoten im Datenspeicher Dokuments und einem Inhaltssteuerelement im Dokument nur übertragen und rich-Text und mehrere Absätze sind nicht zulässig. Also in diesem Fall die entsprechende Alternative mit Tags versehenen Content-Steuerelemente verwendet werden.

Hinweis

Weitere Informationen über das Zuordnen von XML in Word-Feature finden Sie unter wie: Binden eines Inhaltssteuerelements an einen Knoten im Datenspeicher. Weitere Informationen zu Word-Inhaltssteuerelement Entwicklungsszenarien finden Sie unter das Wort Inhalte Steuerelemente Developer Resource Center.

Grundlegendes zu Tagged Inhaltssteuerelemente

Ein Content-Steuerelement verfügt über mehrere Eigenschaften, einschließlich der Tag-Eigenschaft. Die Tag-Eigenschaft können Sie eindeutig identifiziert werden, oder markieren, das Steuerelement, um es innerhalb des Dokuments zu finden. Der Tag-Wert wird vom Endbenutzer normalerweise ausgeblendet, aber ist immer verfügbar, um Codes, wodurch es ideal für Software-Lösungen verwenden.

Tagged Inhaltssteuerelemente können effektiv als Teil eines Dokument-Generation-Szenarios verwendet werden. In diesem Szenario Geben Sie markierte Inhaltssteuerelemente Bereiche, in denen Daten in das Dokument verschoben werden, die von der Projektmappe generiert.

Hinweis

Ein weiteres Beispiel für die Verwendung mit Tags versehenen Inhaltssteuerelemente als Teil einer Lösung für die Entwicklung finden Sie unter Einfügen von wiederholten von Datenelementen in einem Word 2007-Tabelle mithilfe der Open XML-API.

Tagged Inhalte, die auch können als Teil einer Daten-Extraktion-Szenarios verwendet werden, in denen werden mit Tags versehenen Inhaltssteuerelemente in einem Dokument verwendet, um Inhalte zu suchen, die Sie extrahieren möchten.

In beiden Szenarien wird der Wert der Tag-Eigenschaft verwendet, um ein bestimmtes Inhaltssteuerelement im Dokument zu suchen.

Suchen ein mit Tags versehenen Inhaltssteuerelement programmgesteuert

Um ein Inhaltssteuerelement mit Tags in beiden Szenarios zu verwenden, müssen Sie zuerst festlegen Sie die Tag-Eigenschaft für das Inhaltssteuerelement. Sie können festlegen, dass die Tag-Eigenschaft, die über die Benutzeroberfläche, die im Dialogfeld Eigenschaften von Inhaltssteuerelementen in Word 2010 bereitgestellt wird, wie in Abbildung 2 dargestellt.

Abbildung 1. Rich-Text-Inhaltssteuerelement in die Dokumentoberfläche

Screenshot eines Steuerelements für Rich-Text-Inhalt

 

Abbildung 2. Content-Steuerelement-Eigenschaften (Dialogfeld)

Eigenschaften von Inhaltssteuerelementen (Dialogfeld)

Die Content-Tag-Eigenschaft des Steuerelements festlegen

Das folgende Verfahren zeigt, wie den Wert der Tag-Eigenschaft für ein Rich-Text-Inhaltssteuerelement festgelegt.

Die Tag-Eigenschaft eines Inhaltssteuerelements festlegen

  1. Klicken Sie in Word 2010 auf der Registerkarte " Entwickler " aus, und klicken Sie auf Entwurfsmodus.

  2. Klicken Sie auf der Registerkarte " Entwickler " auf Rich-Text-Inhaltssteuerelement, in der Gruppe Steuerelemente .

    Hinweis

    Sie müssen möglicherweise die Anzeige der Registerkarte " Entwickler " zu aktivieren, wenn Sie nicht bereits angezeigt wird. Um Entwickler in der Multifunktionsleiste anzeigen möchten, klicken Sie auf Datei, klicken Sie auf Optionen, klicken Sie auf die Menüband anpassenund wählen Sie dann die Entwickler unter Menüband anpassen. Klicken Sie auf OK , um die Änderungen zu übernehmen.

  3. Mit der rechten Maustaste das Rich-Text-Inhaltssteuerelement ein, und wählen Sie dann Eigenschaften.

  4. Geben Sie im Textfeld Titel einen Titel für das Inhaltssteuerelement (z. B. Richtliniennummer). Der Titel ist immer an den Endbenutzer sichtbar und ist sehr nützlich, um die Informationen, die in das Inhaltssteuerelement eingefügt werden sollen.

  5. Geben Sie in das Textfeld " Tag " einen eindeutigen Namen (z. B. IdPolicyNumber). Das Tag ist nur für den Benutzer sichtbar, wenn das Dokument im Entwurfsmodus befindet. Andernfalls wird es nicht angezeigt.

    Hinweis

    Word erzwingt keine eindeutige Benennung. Ein bestimmtes Szenario andere Inhaltssteuerelemente in einem Dokument haben eindeutige Tagwerte erfordert, muss der Ersteller eines Dokuments sicher, dass Tags eindeutig sind.

  6. Klicken Sie auf OK , um die Titel und Tag-Eigenschaften festlegen. Das Inhaltssteuerelement zeigt den Titel und Tag-Text.

  7. Klicken Sie auf der Registerkarte Entwickler auf Entwurfsmodus , um Sie den Entwurfsmodus umschalten, und klicken Sie dann auf das Inhaltssteuerelement, das Sie erstellt haben. Der Titeltext wird und der Kennzeichnungstext nicht mehr angezeigt wird.

Wenn die Tag-Eigenschaft des Steuerelements mit einem eindeutigen Bezeichner festgelegt ist, können Sie programmgesteuert mithilfe des Tag-Wert suchen.

Abbildung 3. Im Dialogfeld Steuerelementeigenschaften mit Titel und Tag eingegebenen Werte Content

Dialogfeld 'Eigenschaften von Inhaltssteuerelementen' mit festgelegten Werten

 

Abbildung 4. Rich-Text-Inhaltssteuerelement mit Titel und Tag eingegebenen Werte

Inhaltssteuerelement in der Ansicht 'Entwurfsmodus'

Mithilfe der Word-Automatisierung mit Visual Basic für Applikationen ein Inhaltssteuerelement vom Tag suchen

Können Sie ein mit Tags versehenen Inhaltssteuerelement mithilfe der Automatisierung entweder Word oder ohne die Word-Automatisierung, indem Sie Code schreiben, ändert das Dateiformat direkt. Wenn die Word-Automatisierung verwenden, stehen zwei Word Objektmodellelemente, die Sie verwenden können, um ein Inhaltssteuerelement mit Tags zu suchen.

Die Document.SelectContentControlsByTag -Methode ist eine Möglichkeit, die Sie verwenden können, um ein Inhaltssteuerelement mithilfe den Tag-Wert zu suchen. Die Document.SelectContentControlsByTag -Methode gibt ein ContentControls -Auflistungsobjekt, die alle Inhaltssteuerelemente mit dem angegebenen Tagwert, wie im folgenden Codebeispiel gezeigt.

Sub GetCCByTag()
Dim cc As ContentControl
Dim docCCs As ContentControls

' Get the collection of all content controls with this tag.
Set docCCs = ActiveDocument.SelectContentControlsByTag("idPolicyNumber")

' If any content controls are found iterate through them and give the type.
If docCCs.Count <> 0 Then
    For Each cc In docCCs
        MsgBox cc.PlaceholderText
    Next
Else
    MsgBox "No content controls found with that tag value."
End If
End Sub

Das Word-Objektmodell bietet darüber hinaus die Document.ContentControls -Eigenschaft, die eine Auflistung von alle Inhaltssteuerelemente im Dokument ist. Sie können diese Auflistung durchlaufen und suchen Sie ein bestimmtes Inhaltssteuerelement über die Tag-Eigenschaft, wie im folgenden Beispiel gezeigt.

Sub GetCCByTag()
Dim cc As ContentControl
Dim docCCs As ContentControls
Dim ccTag As String

' Iterate through all the content controls in the document
' and select those having the specified tag value.
If ActiveDocument.ContentControls.Count <> 0 Then
    For Each cc In ActiveDocument.ContentControls
        If cc.Tag = "idPolicyNumber" Then
            MsgBox cc.PlaceholderText
        Else
            MsgBox "No content control found using that tag value."
        End If
    Next
End If
End Sub

Unter Verwendung der Open XML-SDK und LINQ um ein Inhaltssteuerelement von Tag zu suchen.

Word Automatisierung funktioniert gut für Szenarien mit ist, in denen Ausführung der Anwendung Word kein Problem. Um viele Dokumente schnell verarbeiten zu können, ist es in der Regel schneller arbeiten direkt gegen das Dateiformat des Dokuments anstatt mithilfe der Automatisierung von Word. Hierzu müssen Sie wissen, wie die zugrunde liegenden XML-Daten in das Dateiformat Inhaltssteuerelemente darstellt.

Verwenden Inhaltssteuerelemente in WordprocessingML

Das geöffnete Datei Format WordprocessingML-Schema stellt Inhaltssteuerelemente in einem Dokument Word als strukturierte Dokumentelemente Tag (<sdt>). Die Tag-Eigenschaft des Inhaltssteuerelements wird durch das <tag>-Element ein untergeordnetes Element des Inhaltssteuerelements Eigenschaft (<sdtPr> ist) dargestellt Element.

<w:sdt>
        <w:sdtPr>
          <w:alias w:val="Policy Number"/>
          <w:tag w:val="idPolicyNumber"/>
          <w:id w:val="651797572"/>
          <w:placeholder>
            <w:docPart w:val="45F4EF9575044CEDAC3AA9542E3BE792"/>
          </w:placeholder>
          <w:text/>
        </w:sdtPr>
        <w:sdtEndPr/>
        <w:sdtContent>
          <w:r w:rsidR="00E333BD">
            <w:t>123456</w:t>            
          </w:r>
        </w:sdtContent>
      <w:sdt>

In den Microsoft .NET Framework bereitgestellten Klassen können Sie im Allgemeinen mit XML arbeiten. Allerdings ist die Open XML SDK 2.0-API entwickelt direkt gegen die Open XML-Formate. Die Open XML SDK 2.0-API können Sie finden <sdt>-Elemente im Dokument, das einen angegebene Tag-Attribut-Wert haben.

Unter Verwendung der Open XML-SDK und LINQ

Die Open XML SDK 2.0,-API bietet eine stark, typisierten Klassen, die Elemente in der Open XML-Formate-Schemas darstellen. In der Open XML SDK 2.0 wird durch mehr als eine Klasse das WordprocessingML-<sdt>-Element dargestellt. Open XML SDK 2.0 API-Klasse, mit denen Sie hängt von der Position das Inhaltssteuerelement in das Dokument und die Art des Inhalts, die es enthält.

Betrachten Sie beispielsweise das weiter oben in diesem Artikel gezeigten Word-Dokument. Das Word-Dokument kann verwendet werden als ein Formular, in dem ein Inhaltssteuerelement, der eine Richtliniennummer enthält das Formular. Das Inhaltssteuerelement hat einen Tagwert von IdPolicyNumber.

Der zugrunde liegenden XML-Code im Dokument zeigt, dass das Inhaltssteuerelement innerhalb eines Absatzes.

<w:p w:rsidR="00951B81"
         w:rsidRDefault="00D5228A">
      <w:sdt>
        <w:sdtPr>
          <w:alias w:val="Policy Number"/>
          <w:tag w:val="idPolicyNumber"/>
          <w:id w:val="651797572"/>
          <w:placeholder>
            <w:docPart w:val="45F4EF9575044CEDAC3AA9542E3BE792"/>
          </w:placeholder>
          <w:text/>
        </w:sdtPr>
        <w:sdtEndPr/>
        <w:sdtContent>
          <w:r w:rsidR="00E333BD">
            <w:t>123456</w:t>            
          </w:r>
        </w:sdtContent>
      </w:sdt>
    </w:p>

Da das Inhaltssteuerelement innerhalb eines Absatzes (<p>) ist, verwenden Sie die SdtRun-Klasse aus der Open XML SDK 2.0-API. Die SdtRun-Klasse stellt Inhaltssteuerelemente, um Inline-Level-Datenstrukturen, z. B. ausgeführt wird (<r>), die in einem Absatz. Die Open XML SDK 2.0-API SdtContentRun-Klasse stellt ein <sdtContent>-Element innerhalb eines <sdt>-Elements, das Zeilenebenen-Inhalt enthält. Innerhalb des Elements <sdtcontent> führen Sie <r> Geben Sie die Elemente an Ausführungen von Text aus. In diesem Beispiel ist nur eine einzelne mit einem Textelement <t> ausführen. Die Open XML SDK 2.0-API-Klassen können Sie arbeiten direkt mit den XML-Code des Dokuments Word auf ein bestimmtes Inhaltssteuerelement von seinem Tag suchen und dann Elemente in das Markup für das Inhaltssteuerelement zu durchlaufen.

Im folgenden Codebeispiel wird veranschaulicht, wie mithilfe der Word des Dokuments im vorherigen Beispiel hierfür.

public static string GetContentControlValueByTag(string location, string tag)
        {
            // Open the Word document specified by "location".
            using (WordprocessingDocument theDoc = WordprocessingDocument.Open(location, true))
            {
                // Get the package part that holds the main document content.
                MainDocumentPart mainPart = theDoc.MainDocumentPart;

                // Find the content content control whose Tag value == tag.
                // In this case, the tag value is "idPolicyNumber".
                SdtRun policyNumberCC = mainPart.Document.Body.Descendants<SdtRun>().Where(r => r.SdtProperties.GetFirstChild<Tag>().Val == tag).SingleOrDefault();

                // Find the <sdtContent> element of the content control.
                SdtContentRun contentRun = policyNumberCC.GetFirstChild<SdtContentRun>();

                // Get the string inside the content control.
                string policyNumber = contentRun.GetFirstChild<Run>().GetFirstChild<Text>().InnerText;

                return policyNumber;
            }
         }

Hinweis

Aus Gründen der Übersichtlichkeit enthält der vorhergehenden Beispielcode keine Fehlerbehandlungs-Code in der Regel in einer Produktionsumgebung verwendet.

Die [GetContentControlValueByTag]-Methode öffnet das Word-Dokument, das durch location angegeben wird, sucht ein Inhaltssteuerelement mithilfe den Tagwert des Steuerelements (angegeben durch tag) und ruft dann den Text innerhalb des Content-Steuerelements ab.

Schlussbemerkung

Dieser Artikel wurde wie die Tag-Eigenschaft eines Inhaltssteuerelements verwenden, um innerhalb eines bestimmten Word-Dokument zu suchen diskutiert. Weitere Informationen über die programmgesteuerte Interaktion mit Inhaltssteuerelementen die Open XML-Formate und die Verwendung der Open XML SDK 2.0 finden Sie unter die folgenden Ressourcen.

Weitere Ressourcen

Hinweis

Haftungsausschluss für maschinelle Übersetzungen: Dieser Artikel wurde mithilfe eines Computersystems und ohne jegliche Bearbeitung durch Personen übersetzt. Microsoft bietet solche maschinellen Übersetzungen als Hilfestellung für Benutzer ohne Englischkenntnisse an, damit Sie von den Informationen zu Produkten, Diensten und Technologien von Microsoft profitieren können. Da es sich bei diesem Artikel um eine maschinelle Übersetzung handelt, enthält er möglicherweise Fehler in Bezug auf (Fach-)Terminologie, Syntax und/oder Grammatik.