2014-12-05 92 views

回答

2

如果你正在談論一個Windows應用程序,你可以使用像System.IO.Path.GetTempPath()。你可以從這裏得到更多的信息:

How to get temporary folder for current user

所以,這樣的事情:

[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(); 
} 
+0

認爲@Ernie,這就是我要找的東西 – YouneL 2014-12-05 22:48:53

相關問題