1

私は週末全体に加えて 1 日か 2 日、これに不満を感じていたので、何か助けていただければ幸いです。

プログラムで SharePoint 2007 ドキュメント ライブラリに移動し、ファイルを開き、ファイルの内容を変更してから、ファイルを元に戻すことができるプログラムを作成しようとしています。私はこれの最後の部分を除いてすべてを手に入れました。Office Open XML が関与する理由は、Office Open XML SDK を使用してドキュメントを開いて変更する方法だからです。私の質問は、ドキュメントからライブラリに戻すにはどうすればよいですか?

私が見た問題は、WordprocessingDocument オブジェクト自体に保存機能がないことです。これにより、SPFile の SaveBinary 関数に保存できなくなります。

4

2 に答える 2

2

ストリームを使用して、変更された OOXML を SPFile に書き戻す必要があります。この例がお役に立てば幸いです。

Stream fs = mySPFile.OpenBinaryStream();

using (WordprocessingDocument ooxmlDoc = WordprocessingDocument.Open(fs, true))
{

    MainDocumentPart mainPart = wordDoc.MainDocumentPart;
    XmlDocument xmlMainDocument = new XmlDocument();
    xmlMainDocument.Load(mainPart.GetStream());

   // change the contents of the ooxmlDoc / xmlMainDocument

   Stream stream = mainPart.GetStream(FileMode.Open, FileAccess.ReadWrite);
   xmlMainDocument.Save(stream);
   // the stream should not be longer than the DocumentPart
   stream.SetLength(stream.Position); 
}
mySPFile.SaveBinary(fs);
fs.Dispose();
于 2008-11-24T14:17:26.390 に答える
0

昨日、Andrew Connell がドキュメント ライブラリからドキュメントを開き、透かしを追加して、ファイルを再度保存する Web キャストを見ました。その Web キャストを見る必要があるように思えます: https://msevents.microsoft.com/CUI/WebCastRegistrationConfirmation.aspx?culture=en-US&RegistrationID=1299758384&Validate=false

ところで、そのシリーズの 10 の Web キャストはすべて非常に優れていることがわかりました。

于 2008-11-23T23:16:45.447 に答える