wpf C#

2012-06-23 9 views
6

में डेटाटेबल से एक्सेल फ़ाइल से निर्यात करने के लिए कैसे करें मेरे पास एक डाटाटेबल है और इसे एक्सेल फ़ाइल में निर्यात करना चाहते हैं, यह एक डब्ल्यूपीएफ एप्लीकेशन है और मुझे जो समाधान मिले हैं वे वेब एप्लिकेशन एएसपीनेट के लिए हैं कृपया मदद करें ...wpf C#

उत्तर

8

बस, यह बेहतर दृश्यमान बनाने के लिए सभी

Microsoft.Office.Interop.Excel.Application excel = null; 
Microsoft.Office.Interop.Excel.Workbook wb = null; 

object missing = Type.Missing; 
Microsoft.Office.Interop.Excel.Worksheet ws = null; 
Microsoft.Office.Interop.Excel.Range rng = null;  

try 
{ 
    excel = new Microsoft.Office.Interop.Excel.Application(); 
    wb = excel.Workbooks.Add(); 
    ws = (Microsoft.Office.Interop.Excel.Worksheet)wb.ActiveSheet; 

    for (int Idx = 0; Idx < dt.Columns.Count; Idx++) 
    { 
     ws.Range["A1"].Offset[0, Idx].Value = dt.Columns[Idx].ColumnName; 
    } 

    for (int Idx = 0; Idx < dt.Rows.Count; Idx++) 
    { // <small>hey! I did not invent this line of code, 
     // I found it somewhere on CodeProject.</small> 
     // <small>It works to add the whole row at once, pretty cool huh?</small> 
     ws.Range["A2"].Offset[Idx].Resize[1, dt.Columns.Count].Value = 
     dt.Rows[Idx].ItemArray; 
    } 

    excel.Visible = true; 
    wb.Activate(); 
} 
catch (COMException ex) 
{ 
    MessageBox.Show("Error accessing Excel: " + ex.ToString()); 
} 
catch (Exception ex) 
{ 
    MessageBox.Show("Error: " + ex.ToString()); 
} 
+3

धन्यवाद! महान उदाहरण :) – asuciu

4

आप अपने डेटाटेबल से एक .csv (कॉमा सेपरेटेड वैल्यू फ़ाइल) सहेज सकते हैं। यह फ़ाइल एक्सेल में खोला जा सकता है।

इसके अलावा: चाहे यह डब्ल्यूपीएफ या विनफॉर्म है, कनवर्ट करना दोनों में समान है क्योंकि इसका रूपांतरण कोड आपकी भाषा में लिखा गया है यानी सी # और WPF या Winforms के लिए विशिष्ट नहीं है।

2

के लिए मुझे ठीक मेहनत के लिए धन्यवाद ... vb.net जैसे कुछ एक?

Dim excel As Microsoft.Office.Interop.Excel.Application = Nothing 
Dim wb As Microsoft.Office.Interop.Excel.Workbook = Nothing 

Dim missing As Object = Type.Missing 
Dim ws As Microsoft.Office.Interop.Excel.Worksheet = Nothing 
Dim rng As Microsoft.Office.Interop.Excel.Range = Nothing 

उप ExcelFile (DataTable के रूप में डीटी ByVal)

Try 
     excel = New Microsoft.Office.Interop.Excel.Application() 
     wb = excel.Workbooks.Add() 
     ws = DirectCast(wb.ActiveSheet, Microsoft.Office.Interop.Excel.Worksheet) 

     For Idx As Integer = 0 To dt.Columns.Count - 1 
      ws.Range("A1").Offset(0, Idx).Value = dt.Columns(Idx).ColumnName 
     Next 

     For Idx As Integer = 0 To dt.Rows.Count - 1 
      ' <small>hey! I did not invent this line of code, 
      ' I found it somewhere on CodeProject.</small> 
      ' <small>It works to add the whole row at once, pretty cool huh?</small> 
      ' YES IT'S COOL Brother ... 
      ws.Range("A2").Offset(Idx).Resize(1, dt.Columns.Count).Value = dt.Rows(Idx).ItemArray 
     Next 

     excel.Visible = True 
     wb.Activate() 
    Catch ex As Exception 
     MessageBox.Show("Error accessing Excel: " & ex.ToString()) 

    End Try 

End Sub