0

動的に生成された docx ファイルがあります。

ページの最後まで厳密にテキストを記述する必要があります。

Microsoft.Interop を使用して、テキストの前に段落を挿入します。

int kk = objDoc.ComputeStatistics(WdStatistic.wdStatisticPages, ref wMissing);
while (objDoc.ComputeStatistics(WdStatistic.wdStatisticPages, ref wMissing) != kk + 1)
                {
                    objWord.Selection.TypeParagraph();

                }
                objWord.Selection.TypeBackspace();

しかし、pages.count は単語だけで計算されるため、Open XML で同じコードを使用することはできません。非常に遅いため、相互運用を使用することは不可能ですwwww。

4

1 に答える 1

0

Open XML でこれを行うには 2 つのオプションがあります。

  1. ドキュメントの最後にある Microsoft Office Developer タブからコンテンツ プレース ホルダーを作成すると、このコンテンツ プレース ホルダーにプログラムでアクセスして、任意のテキストを配置できるようになります。

  2. テキストの最後に挿入されるワード文書に直接テキストを追加できます。このアプローチでは、最初にすべてのものをドキュメントに書き込む必要があり、完了したら、次の方法でドキュメントを追加できます

///

public void WriteTextToWordDocument()
{    
    using(WordprocessingDocument doc = WordprocessingDocument.Open(documentPath, true))
    {
        MainDocumentPart mainPart = doc.MainDocumentPart;
        Body body = mainPart.Document.Body;
        Paragraph paragraph = new Paragraph();
        Run run = new Run();
        Text myText = new Text("Append this text at the end of the word document");
        run.Append(myText);
        paragraph.Append(run);
        body.Append(paragraph);

        // dont forget to save and close your document as in the following two lines
        mainPart.Document.Save();
        doc.Close();
    }
}

上記のコードはまだテストしていませんが、OpenXML で Word 文書を処理する方法について理解を深めていただければ幸いです。よろしく、

于 2013-01-16T12:00:32.987 に答える