2014-09-24 67 views
0

我一直在與.NET桌面項目epplus(C#),並使用模板的工作是這樣的:Epplus使用模板上的Web項目

var package = new ExcelPackage(new FileInfo("C:\\Templates\\FormatoReporteSamsung.xlsx")) 

但現在與.NET Web項目I'working(C#)我不知道該怎麼做來指代存在像網絡資源,其中像這樣的資源的URI模板:

http://myownweb:29200/Content/excelTemplates/Formato.xlsx 
+1

您是否嘗試過這個?: 'var package = new ExcelPackage(「http:// myownweb:29200/Content/excelTemplates/Formato.xlsx」)' – Donal 2014-09-24 14:48:21

+0

是的,它顯示一個錯誤:URI格式a不支持。 – Kenar716 2014-09-24 14:55:26

回答

0

最後我通過Excel模板爲使用此代碼流。

using (var package = new ExcelPackage(new MemoryStream(GetBytesTemplate(FullyQualifiedApplicationPath + "Content/excelTemplates/Format.xlsx")))) 
    { 
     //Write data to excel 

     //Read file like byte array to return a response 
     Response.Clear(); 
     Response.ContentType = "application/xlsx"; 
     Response.AddHeader("content-disposition", "attachment; filename=" + "myFileName" + ".xlsx"); 
     Response.BinaryWrite(package.GetAsByteArray()); 
     Response.End(); 
    } 

要讀取Excel文件有個字節我用這個 Error "This stream does not support seek operations" in C#

private byte[] GetBytesTemplate(string url) 
     { 
      HttpWebRequest myReq = (HttpWebRequest)WebRequest.Create(url); 
      WebResponse myResp = myReq.GetResponse(); 

      byte[] b = null; 
      using (Stream stream = myResp.GetResponseStream()) 
      using (MemoryStream ms = new MemoryStream()) 
      { 
       int count = 0; 
       do 
       { 
        byte[] buf = new byte[1024]; 
        count = stream.Read(buf, 0, 1024); 
        ms.Write(buf, 0, count); 
       } while (stream.CanRead && count > 0); 
       b = ms.ToArray(); 
      } 

      return b; 
     } 

並獲得該網站的名稱,我使用 http://devio.wordpress.com/2009/10/19/get-absolut-url-of-asp-net-application/

public string FullyQualifiedApplicationPath 
     { 
      get 
      { 
       //Return variable declaration 
       string appPath = null; 

       //Getting the current context of HTTP request 
       HttpContext context = HttpContext.Current; 

       //Checking the current context content 
       if (context != null) 
       { 
        //Formatting the fully qualified website url/name 
        appPath = string.Format("{0}://{1}{2}{3}", 
         context.Request.Url.Scheme, 
         context.Request.Url.Host, 
         context.Request.Url.Port == 80 
         ? string.Empty : ":" + context.Request.Url.Port, 
         context.Request.ApplicationPath); 
       } 
       if (!appPath.EndsWith("/")) 
        appPath += "/"; 
       return appPath; 
      } 
     }