2012-12-02 38 views
56

के साथ एक्सेल करने के लिए डेटाटेबल निर्यात करें मैं ईपीप्लस के साथ एक्सेल फ़ाइल में डेटा टेबल निर्यात करना चाहता हूं कि डेटा टेबल में इंट टाइप के साथ संपत्ति है, इसलिए मैं एक्सेल फ़ाइल में जाना चाहता हूं, वही प्रारूप होगा। क्या कोई इनके साथ एक्सेल में डेटाटेबल निर्यात करने का तरीका जानता है?ईपीप्लस

उत्तर

114
using (ExcelPackage pck = new ExcelPackage(newFile)) 
{ 
    ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Accounts"); 
    ws.Cells["A1"].LoadFromDataTable(dataTable, true); 
    pck.Save(); 
} 

यह आपके लिए चाल चलाना चाहिए। यदि आपके फ़ील्ड को इंटेल ईपीप्लस के रूप में परिभाषित किया गया है तो कॉलम को सही संख्या में या फ्लोट में डाला जाएगा।

+1

कैसे निर्यात करते समय डेटाटेबल के हेडर प्रारूपित करने के लिए ?? –

+0

हां। यह ठीक काम कर रहा है। लेकिन जब डेटाटेबल में लाखों में पंक्तियां होती हैं। यह काम नहीं कर रहा है। – thevan

+1

शायद आपको उस विशिष्ट मामले के लिए एक प्रश्न खोलना चाहिए? – wegginho

10

और आप ब्राउज़र प्रतिक्रिया

Response.Clear(); 
Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; 
Response.AddHeader("content-disposition", "attachment;filename=" + HttpUtility.UrlEncode("Logs.xlsx", System.Text.Encoding.UTF8)); 

using (ExcelPackage pck = new ExcelPackage()) 
{ 
    ExcelWorksheet ws = pck.Workbook.Worksheets.Add("Logs"); 
    ws.Cells["A1"].LoadFromDataTable(dt, true);     
    var ms = new System.IO.MemoryStream(); 
    pck.SaveAs(ms); 
    ms.WriteTo(Response.OutputStream);       
} 
+0

स्निपेट के लिए धन्यवाद शामिल किया जाएगा! Urlencode "Logs.xlsx" की आवश्यकता नहीं है :) –

2

में डाउनलोड करने के लिए ब्राउज़र उपयोग HttpContext.Current.ResponseResponse के बजाय में excelsheet को डाउनलोड करने के लिए चाहते हैं, तो अन्यथा आप मिल जाएगा Response is not available in this context. error.Here मेरी कोड है

public void ExporttoExcel(DataTable table, string filename) 
     { 
      HttpContext.Current.Response.Clear(); 
      HttpContext.Current.Response.ClearContent(); 
      HttpContext.Current.Response.ClearHeaders(); 
      HttpContext.Current.Response.Buffer = true; 
      HttpContext.Current.Response.ContentEncoding = System.Text.Encoding.UTF8; 
      HttpContext.Current.Response.Cache.SetCacheability(HttpCacheability.NoCache); 
      HttpContext.Current.Response.ContentType = "application/vnd.openxmlformats-officedocument.spreadsheetml.sheet"; 
      HttpContext.Current.Response.AddHeader("content-disposition", "attachment;filename=GridData.xlsx"); 


      using (ExcelPackage pack = new ExcelPackage()) 
      { 
       ExcelWorksheet ws = pack.Workbook.Worksheets.Add(filename); 
       ws.Cells["A1"].LoadFromDataTable(table, true); 
       var ms = new System.IO.MemoryStream(); 
       pack.SaveAs(ms); 
       ms.WriteTo(HttpContext.Current.Response.OutputStream); 
      } 

      HttpContext.Current.Response.Flush(); 
      HttpContext.Current.Response.End(); 

     } 
+0

'System.Web.HttpContextBase' प्राप्त करने वाले किसी भी व्यक्ति के लिए 'वर्तमान' की परिभाषा नहीं है: HttpContext.Current का संदर्भ प्राप्त करने के लिए आपको HttpContext.Current के साथ प्रतिस्थापित करने की आवश्यकता है सिस्टम.Web.HttpContext.Current http://stackoverflow.com/questions/19431820/system-web-httpcontextbase-does-not-contain-a-definition-for-current-mvc-4-wi –

 संबंधित मुद्दे

  • कोई संबंधित समस्या नहीं^_^