2016-06-13 5 views
1

내 앱에서는 웹 양식 + ext.net, EPPlus를 사용합니다. 나는 Excel에서 수출이 같은 파일을 만들고 싶어 :ext.net 버튼을 통한 Excel 파일 다운로드

내 C# 코드에서
<ext:Button 
           runat="server" 
           Text="Экспорт в Excel" 
           Icon="PageExcel" 
           Padding="5"> 
           <DirectEvents> 
            <Click OnEvent="ExportDataToExcel"> 
             <EventMask ShowMask="true" Msg="Exporting..."></EventMask>           
            </Click> 
           </DirectEvents> 
          </ext:Button> 

는 다음과 같이이다 : 여기

private void CreateExcelFile(JournalEventItemDto[] data) 
    { 
     var tempFolderPath = Path.GetTempPath(); 
     var filePath = tempFolderPath + "export.xlsx"; 

     FileInfo newFile = new FileInfo(filePath); 
     if (newFile.Exists) 
     { 
      try 
      { 
       newFile.Delete(); 
       newFile = new FileInfo(filePath); 
      } 
      catch (IOException) 
      { 
       X.Msg.Alert("Error!", "File is opened in another program").Show(); 
       return; 
      } 
     } 

     using (ExcelPackage package = new ExcelPackage(newFile)) 
     { 
      var workSheet = package.Workbook.Worksheets.Add("Export"); 

      DataTable dataTable = new DataTable { Locale = CultureInfo.CurrentCulture }; 

      dataTable.Columns.Add("FullName", typeof(string)); 
      dataTable.Columns.Add("GuestName", typeof(string)); 
      dataTable.Columns.Add("Email", typeof(string)); 
      dataTable.Columns.Add("Date", typeof(string)); 
      dataTable.Columns.Add("Event", typeof(string)); 
      dataTable.Columns.Add("Page", typeof(string)); 
      dataTable.Columns.Add("Type", typeof(string)); 

      foreach (var item in data) 
      { 
       dataTable.Rows.Add(item.UserFullName, item.GuestName, item.Email, 
        item.EventDate.ToString("dd.MM.yyyy HH:mm:ss"), item.EventTypeText, item.EventPlaceText, item.ObjectTypeText); 
      } 

      workSheet.Cells["A1"].LoadFromDataTable(dataTable, true); 
      workSheet.Cells.AutoFitColumns(0); 
      package.Save();            
     } 

     X.Msg.Alert("", "Successful export in " + filePath).Show(); 
    } 
} 

, 난 그냥 서버 측에서이 파일을 저장합니다. 나는이 같은이 파일을 다운로드 할 때

는하지만 :

Response.BinaryWrite(package.GetAsByteArray()); 
     Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; 
     Response.AddHeader("content-disposition", "attachment; filename=export.xlsx"); 

를 오류가 발생합니다. 나는 그 문제가 ext.net 이벤트에 있다고 생각한다. 누군가 나를 도울 수 있습니까?

Awfull error

답변

1

O'k ... 해결책은 간단합니다 - 우리가 볼 수 있듯이 Why is the file not downloading?

, 우리는 우리의 영문 파일 이벤트 IsUpload = "true"를에 플래그를 추가해야합니다.