用epplus创build一个临时的excel文件?

添加所有我想要一个新创build的Excel文件与epplus后,我怎么打开它只? 我不想先保存文件然后打开它,这可能吗? 我想让它打开,让用户决定是否要保存它。

唯一的代码我已经find并尝试到目前为止生成一个文件名,保存Excel文件,然后打开它。

Byte[] bin = p.GetAsByteArray(); string file = Guid.NewGuid().ToString() + ".xlsx"; File.WriteAllBytes(file, bin); ProcessStartInfo pi = new ProcessStartInfo(file); Process.Start(pi); 

EPPlus正在重命名的zip文件中生成xml,所以没有任何机制将其转移到Excel而不保存在某个地方。 但是你总是可以保存到用户的临时文件夹中 – 这是大多数程序为了在彼此之间传输文件而必须做的事情。 可以使用System.IO.Path.GetTempPath()来做这样的事情:

 [TestMethod] public void TempFolderTest() { var path = Path.Combine(Path.GetTempPath(), "temp.xlsx"); var tempfile = new FileInfo(path); if (tempfile.Exists) tempfile.Delete(); //Save the file using (var pck = new ExcelPackage(tempfile)) { var ws = pck.Workbook.Worksheets.Add("Demo"); ws.Cells[1, 2].Value = "Excel Test"; pck.Save(); } //open the file Process.Start(tempfile.FullName); } 

(取自: 使用Excel应用程序打开ExcelPackage对象,而不将其保存在本地文件path中 )

这是不可能的,你不能用epplus创build一个临时的excel文件