11

Word 2007 (docx) ドキュメントを開き、適切な CustomXmlPart を更新する (したがって、CustomXmlPart にマップされているドキュメント自体のコンテンツ コントロールを更新する) 少しのコードがありますが、これを次のように保存する方法がわかりません。新しいファイルです。確かに難しいことはありません!

私の現在の考えでは、テンプレートを開いてコンテンツを新しい空白のドキュメントにコピーする必要があります。ファイルごとに、CustomXmlPart を見つけたら更新します。私を昔風と呼んでください。

WordprocessingDocument.SaveAs(filename); を実行できないのはなぜですか。...?

ここで簡単なものが欠けていると教えてください。

前もって感謝します

4

4 に答える 4

16

OpenXml SDK について言及していますか? 残念ながら、OpenXml SDK 2.0 の時点では、SaveAs メソッドはありません。次のことを行う必要があります。

  1. テンプレート ファイルの一時コピーを作成し、任意の名前を付けます。
  2. 上記のファイルで OpenXml の変更を行います。
  3. myWordDocument.MainDocumentPart.Document.Save()適切なセクションを保存します (つまり、メイン コンテンツには . メソッドを使用しsomeHeaderPart.Header.Save()、特定のヘッダーには メソッドを使用します)。
于 2009-08-19T20:10:03.963 に答える
0

実際、少なくとも OpenXml SDK 2.5 では可能です。ただし、XML の変更は実際にはファイルに反映されるため、元のファイルのコピーを使用する場合は注意してください。ここに、私のカスタム クラスのメソッド Load と Save があります (いくつかの検証コードを削除した後...):

    public void Load(string pathToDocx)
    {
        _tempFilePath = CloneFileInTemp(pathToDocx);
        _document = WordprocessingDocument.Open(_tempFilePath, true);
        _documentElement = _document.MainDocumentPart.Document;
    }    

    public void Save(string pathToDocx)
    {
        using(FileStream fileStream = new FileStream(pathToDocx, FileMode.Create))
        {
            _document.MainDocumentPart.Document.Save(fileStream);
        }
    }

WordprocessingDocumentインスタンスとして「_document」を持つ。

于 2016-03-18T11:57:27.630 に答える
0

Open XML SDK 2.5 では、AutoSave が true の場合、Close は変更を保存します。ここで私の答えを参照してください: https://stackoverflow.com/a/36335092/3285954

于 2016-03-31T13:53:36.060 に答える