Domanda

Ne sono stato frustrato per l'intero fine settimana, più un giorno o due, quindi qualsiasi aiuto sarebbe molto apprezzato.

Sto provando a scrivere un programma che può andare a livello di programmazione in una raccolta documenti di SharePoint 2007, aprire un file, modificare il contenuto del file, quindi reinserirlo. Ho perso tutto tranne l'ultima parte. Il motivo per cui è coinvolto Office Open XML è che è così che apro il documento e lo modifico tramite Office Open XML SDK. La mia domanda è: come posso recuperarlo dal documento nella libreria?

Il problema a mio avviso è che non esiste alcuna funzione di salvataggio sull'oggetto WordprocessingDocument stesso. Questo mi impedisce di salvarlo nella funzione SaveBinary di SPFile.

È stato utile?

Soluzione

Dovresti usare gli stream per riscrivere il OOXML modificato nel file SP. Spero che questo esempio sia di aiuto!

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

Altri suggerimenti

Ieri ho visto un webcast con Andrew Connell in cui ha aperto un documento da una raccolta documenti, aggiunto una filigrana e salvato di nuovo il file. Sembra proprio che dovresti dare un'occhiata a quel webcast: https://msevents.microsoft.com/CUI/ ? WebCastRegistrationConfirmation.aspx cultura = it-IT & amp; RegistrationID = 1299758384 & amp; Convalida = falso

tra l'altro ho scoperto che tutti e 10 i web cast di quella serie erano molto buoni.

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top