如何从数据表导出到Excel文件在WPF c#

我有一个数据表,并希望它将其导出到Excel文件,这是一个WPF应用程序,所有的解决scheme,我已经find了Web应用程序的asp.net请帮助…

只是为了让所有人都看得更清楚

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

您可以从数据表中保存.csv(逗号分隔值文件)。 这个文件可以在Excel中打开。

而且:无论是WPF还是Winforms,转换都是一样的,因为它的转换代码是用你的语言编写的,比如C#,而不是WPF或Winforms特有的。

对我来说,工作很好,谢谢你…有人像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 

Sub ExcelFile(ByVal dt As DataTable)

  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 

单程

 ArrayList arr = (ArrayList)dataGridView.DataSource; dt = ArrayListToDataTable(arr); dataTable2Excel(dt, dataGridView, pFullPath_toExport, nameSheet); 

http://www.codeproject.com/Articles/30169/Excel-export-from-DatagridView

http://support.microsoft.com/default.aspx?scid=kb;en-us;317719