Question

Cela m'a frustré pendant tout le week-end, plus un jour ou deux, donc toute aide serait grandement appréciée.

J'essaie d'écrire un programme pouvant aller par programmation dans une bibliothèque de documents SharePoint 2007, ouvrir un fichier, modifier le contenu du fichier, puis le replacer. J'ai tout sauf la dernière partie. La raison pour laquelle Office Open XML est impliqué est que j'ouvre et modifie le document via le kit de développement Office Open XML. Ma question est la suivante: comment puis-je le récupérer du document dans la bibliothèque?

Le problème, à mon avis, est qu'il n'y a pas de fonction de sauvegarde sur l'objet WordprocessingDocument lui-même. Cela m'empêche de l'enregistrer dans la fonction SaveBinary du SPFile.

Était-ce utile?

La solution

Vous devez utiliser les flux pour réécrire le fichier OOXML modifié dans le fichier SPFile. J'espère que cet exemple aide!

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();

Autres conseils

Hier, j’ai assisté à une diffusion Web avec Andrew Connell au cours de laquelle il ouvrait un document depuis une bibliothèque de documents, ajoutait un filigrane et enregistrait à nouveau le fichier. Cela ressemble certainement à ce que vous devriez regarder cette webémission: https://msevents.microsoft.com WebCastRegistrationConfirmation.aspx? Culture = fr-FR & amp; RegistrationID = 1299758384 & Validate = false

J'ai découvert que les 10 émissions Web de cette série étaient très bonnes.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top