Tôi có một datatable và muốn nó xuất nó sang tập tin excel, nó là một ứng dụng wpf và tất cả các giải pháp mà tôi đã tìm được cho ứng dụng web asp.net ...Làm thế nào để xuất từ tập tin dữ liệu thành excel trong wpf C#
6
A
Trả lời
8
chỉ để làm cho nó có thể nhìn thấy tốt hơn, cho tất cả
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());
}
4
Bạn có thể lưu tệp .csv (Tệp giá trị được phân tách bằng dấu phẩy) từ dữ liệu có thể định giá của bạn. Tệp này sau đó có thể được mở trong Excel.
Hơn nữa: Cho dù đó là WPF hay Winforms, chuyển đổi đều giống nhau bởi vì mã chuyển đổi của nó được viết bằng ngôn ngữ của bạn tức là C# và không dành riêng cho WPF hoặc Winforms.
2
Đối với tôi làm việc tốt cảm ơn bạn ... một số một như 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 Như 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
1
một cách
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
cảm ơn! ví dụ tuyệt vời. :) – asuciu