我正嘗試使用Open XML SDK 2.5在SharePoint 2013中生成一個簡單的docx文件。Open XML SDK 2.5 + SharePoint 2013 - docx-file empty
我的函數成功地在SharePoint庫中生成一個docx文件,但是當我嘗試打開它時,它是空的或損壞的。 我已經嘗試了很多,並使用了我在這裏和網上找到的不同工藝。
protected void generateDoc(string docName)
{
SPWeb spWeb = SPContext.Current.Web;
spWeb.AllowUnsafeUpdates = true;
spWeb.Lists.IncludeRootFolder = true;
SPList docLib = spWeb.Lists["test"];
string fileUrl = Microsoft.SharePoint.Utilities.SPUtility.GetFullUrl(SPContext.Current.Site, "/test/" + docName);
SPSecurity.CodeToRunElevated elevatedSubmit = new SPSecurity.CodeToRunElevated(delegate
{
// MediaStream erstellen
using (MemoryStream ms = new MemoryStream())
{
// Create a Wordprocessing document.
using (WordprocessingDocument package = WordprocessingDocument.Create(ms, WordprocessingDocumentType.Document))
{
// Add a new main document part.
package.AddMainDocumentPart();
// Create the Document DOM.
package.MainDocumentPart.Document = new Document();
package.MainDocumentPart.Document.Append(new Body());
package.MainDocumentPart.Document.Append(
new Paragraph(
new Run(
new Text("TEST"))));
ms.Position = 0;
byte[] content = ms.ToArray();
package.MainDocumentPart.Document.Save();
SPFile file = docLib.RootFolder.Files.Add(fileUrl, ms, true);
file.Update();
}
}
});
SPSecurity.RunWithElevatedPrivileges(elevatedSubmit);
}
這將是很好,如果有人可以給我一個提示。
在此先感謝!
謝謝。我將檢查Power Tool和存儲二進制文件的方式。它看起來很有趣。我知道我可以使用Productivity Tool來自動生成Open XML部分,但是如果我只用「Test」--Text將它用於文檔,它會生成大量的代碼。我只是想寫一個乾淨而小巧的解決方案,所以我可以肯定我明白它是如何工作的。 – user2145219