我的问题是我将1..n文件合并到一个文件中。我在Sharepoint服务器上有一个目标SPFile。我已经编写了一个基于OpenXML网站的方法,它运行时没有错误,但在我查看它时结果是空白。
这是方法
private void InsertSPFileInto(SPFile target, SPFile source, int index)
{
Stream targetStream = target.OpenBinaryStream();
using (WordprocessingDocument myDoc = WordprocessingDocument.Open(targetStream, true))
{
string altChunkId = "AltChunkId" + index.ToString();
MainDocumentPart mainPart = myDoc.MainDocumentPart;
AlternativeFormatImportPart chunk =
mainPart.AddAlternativeFormatImportPart(
AlternativeFormatImportPartType.WordprocessingML,
altChunkId);
Stream sourceStream = source.OpenBinaryStream();
chunk.FeedData(sourceStream);
AltChunk altChunk = new AltChunk();
altChunk.Id = altChunkId;
mainPart.Document
.Body
.InsertAfter(altChunk,mainPart.Document.Body.LastChild);
mainPart.Document.Save();
}
}
它再次只返回一个空白文档,但它也不会破坏它。
感谢。
蒂姆丹尼尔斯答案 0 :(得分:0)
在玩完之后我发现了我需要在“maindocument.Documents.Save()”行后面的方法中添加以下三行的问题
targetDoc.Close();
targetStream.Flush();
target.SaveBinary(targetStream);