您应该将文件作为流打开,使用open xml sdk打开它(您需要具有Open XML SDK:here)。
如果您对Open XML SDK不熟悉,您还可以查看博客文章here,该博文也是从您已引用的博客中提取的。
下面的代码是一个示例代码,我如何使用Open XML SDK和ASP.NET创建报表并发送给客户端。我希望这会有所帮助。
public void SendReport()
{
using (Stream stream = GetReportStream())
{
stream.Position = 0;
byte[] buffer = new byte[(int)stream.Length];
stream.Read(buffer, 0, (int)stream.Length);
System.Web.HttpContext.Current.Response.Clear();
System.Web.HttpContext.Current.Response.Buffer = true;
System.Web.HttpContext.Current.Response.AddHeader("Content-Type", "application/pptx");
System.Web.HttpContext.Current.Response.AddHeader("Content-Disposition", "attachment;filename=Report;");
System.Web.HttpContext.Current.Response.BinaryWrite(buffer);
System.Web.HttpContext.Current.Response.Flush();
System.Web.HttpContext.Current.Response.Close();
}
}
private Stream GetReportStream()
{
MemoryStream stream = new MemoryStream();
using (FileStream file = File.Open(@"TemplateFileLocation", FileMode.Open))
{
byte[] buffer = new byte[file.Length];
file.Read(buffer, 0, (int)file.Length);
stream.Write(buffer, 0, buffer.Length);
}
using (PresentationDocument presentationDocument = PresentationDocument.Open(stream, true))
{
// Doing manipulations explained in your reference document link.
presentationDocument.PresentationPart.Presentation.Save();
}
return stream;
}
不要忘记下载并检查您引用的链接上的整个解决方案。
这个问题需要一个openxml-sdk标签 – 2010-09-22 12:19:26