如何直接从流中打开文件,通过crystal report export导出到流功能?我正在使用vs2010和sap crystal报告。
MemoryStream m = (MemoryStream)(PReport.ExportToStream(CrystalDecisions.Shared.ExportFormatType.PortableDocFormat));
FileStream f = new FileStream(purchaseCombo.SelectedItem.ToString(),FileMode.Create,System.IO.FileAccess.Write);
byte[] bytes = new byte[m.Length];
m.Read(bytes, 0, (int)m.Length);
f.Write(bytes, 0, bytes.Length);
f.Close();
m.Close();
答案 0 :(得分:0)
这取决于您要导出的文件。由于Crystal Reports可以导出许多不同的文件类型,并且每个文件类型都有一个可以处理它的特定程序,因此您需要搜索您感兴趣的确切文件类型。例如,在互联网上快速搜索,我发现可以使用NavigateToStream方法直接在WebBrowser组件(在WPF应用程序中)中预览html文件流。也许有一些第三方组件公开了直接从内存中打开文件的方法。
尽管如此,最简单的方法是使用ExportToDisk方法将临时文件导出到磁盘而不是内存,并在使用后将其删除,因为许多组件都是从路径而不是内存中读取的。在导出文件之前,您可以使用GetTempFileName方法创建并命名临时文件。