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

我有一些信息的文本文件,我把它转换成ExcelPackage对象使用EPPlus,现在我想知道是否有一种方法来打开这个对象与Excel而不保存到本地文件? 如果不可能我可以使用临时目录来保存我的ExcelPackage到一个文件,然后打开它?

如果你正在谈论一个Windows应用程序,你可以使用像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); } 

如果你在网上聊天,你不需要把它全部保存,只需通过回应发送:

 using (ExcelPackage pck = new ExcelPackage()) { var ws = pck.Workbook.Worksheets.Add("Demo"); ws.Cells[1, 2].Value = "Excel Test"; var fileBytes = pck.GetAsByteArray(); Response.Clear(); Response.AppendHeader("Content-Length", fileBytes.Length.ToString()); Response.AppendHeader("Content-Disposition", String.Format("attachment; filename=\"{0}\"; size={1}; creation-date={2}; modification-date={2}; read-date={2}" , "temp.xlsx" , fileBytes.Length , DateTime.Now.ToString("R")) ); Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; Response.BinaryWrite(fileBytes); Response.End(); }