5

OpenXMLを使用してpargraphノードにテキストを追加しています。OpenXMLメソッドをラップしていて、テキストを追加するための次のメソッドがあります。これは、マークアップなしのテキストで正常に機能します。

    public void AddPlainParagraphText(string text)
    {
        m_wordprocessingDocument.MainDocumentPart.Document.Body.AppendChild(
            new Paragraph(
                new Run(
                    new Text(text))));
    }

タブなどの特殊文字の場合は、OpenXMLのTabCharクラスを使用して、それをTextアイテムに追加する必要があることを知っています。これを自動化できるかどうかを調べようとしています。OpenXMLではテキストに「\t」が表示され、。を介してタブをサポートするようにXMLが自動的に設定されます。文字列を\tでトークン化できると思いますが、その場合は、すべてのタイプのマークアップ文字を検索する必要があります。これは自動的に実行できますか?

4

1 に答える 1

6

テキストを受け取ったらそれらを分割し、すべての'\t'に追加します

var stringArray = text.Split('\t');

var paragraph = new Paragraph();

for(var i = 0; i <= stringArray.Length; i++)
{
    paragraph.Append(new Run(new Text(stringArray[i])));

    if(i != stringArray.Length)
       paragraph.Append(new Run(new TabChar()));
}

m_wordprocessingDocument.MainDocumentPart.Document.Body.AppendChild(paragraph);

Runコメント後に編集:確かにそれらはsに入れられるべきです

于 2012-08-13T14:04:11.803 に答える