C#导出datagridview数据为Excel
时间: 2023-11-26 18:05:49 浏览: 45
你可以使用 Microsoft.Office.Interop.Excel 库来将 DataGridView 中的数据导出到 Excel 文件中。以下是一个示例代码:
```csharp
using Excel = Microsoft.Office.Interop.Excel;
private void ExportToExcel(DataGridView dgv)
{
Excel.Application excel = new Excel.Application();
Excel.Workbook workbook = excel.Workbooks.Add();
Excel.Worksheet worksheet = workbook.ActiveSheet;
// 将表头写入 Excel
for (int i = 1; i <= dgv.Columns.Count; i++)
{
worksheet.Cells[1, i] = dgv.Columns[i - 1].HeaderText;
}
// 将数据写入 Excel
for (int i = 0; i < dgv.Rows.Count; i++)
{
for (int j = 0; j < dgv.Columns.Count; j++)
{
worksheet.Cells[i + 2, j + 1] = dgv.Rows[i].Cells[j].Value.ToString();
}
}
// 弹出保存文件对话框,将 Excel 文件保存到本地
SaveFileDialog saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Excel 文件|*.xlsx";
saveFileDialog.Title = "保存 Excel 文件";
saveFileDialog.ShowDialog();
if (saveFileDialog.FileName != "")
{
workbook.SaveAs(saveFileDialog.FileName);
MessageBox.Show("导出成功!", "提示");
}
// 释放 Excel 对象
workbook.Close();
excel.Quit();
System.Runtime.InteropServices.Marshal.ReleaseComObject(worksheet);
System.Runtime.InteropServices.Marshal.ReleaseComObject(workbook);
System.Runtime.InteropServices.Marshal.ReleaseComObject(excel);
worksheet = null;
workbook = null;
excel = null;
GC.Collect();
}
```
在这段代码中,我们首先创建了一个 Excel 应用程序对象和一个 Excel 工作簿对象,然后将 DataGridView 中的表头和数据逐行逐列地写入 Excel 中。接着弹出保存文件对话框,让用户选择保存的文件名和路径,最后将 Excel 文件保存到本地。最后,我们释放了 Excel 对象,以避免内存泄漏。