C#将dataGridView中的数据导出excel存到本地文件夹
时间: 2024-10-10 21:15:14 浏览: 181
在C#中,可以使用`Microsoft.Office.Interop.Excel`库来实现DataGridView中的数据导出到Excel文件。以下是基本步骤:
1. 首先,需要添加对`Microsoft.Office.Interop.Excel`的引用。如果还没有安装Office组件,可以在NuGet包管理器中搜索并安装`EPPlus`库作为替代,它提供了一种更轻量级的方式来操作Excel。
```csharp
using System.Data;
using Microsoft.Office.Interop.Excel; // 或者 using EPPlus;
```
2. 对于使用`Microsoft.Office.Interop.Excel`的情况:
- 创建一个新的Excel应用实例,并创建一个新的工作簿。
- 从DataGridView获取数据,通常会将其转换为DataTable或DataRowCollection。
- 将数据填充到新的工作表中。
- 保存到指定的本地路径。
```csharp
// 示例代码(假设 dataGridView1 的 DataSource 是 DataTable dt)
string filePath = @"C:\Temp\output.xlsx";
var excelApp = new Application();
var workbook = excelApp.Workbooks.Add();
var worksheet = workbook.ActiveSheet;
worksheet.Cells[1, 1] = "标题1"; // 设置列头
// 循环遍历数据,设置单元格值
for (int i = 0; i < dt.Columns.Count; i++)
{
worksheet.Cells[i + 1, 1].Value = dt.Columns[i].ColumnName;
}
for (int i = 0; i < dt.Rows.Count; i++)
{
for (int j = 0; j < dt.Columns.Count; j++)
{
worksheet.Cells[i + 1, j + 1].Value = dt.Rows[i][j];
}
}
workbook.SaveAs(filePath);
workbook.Close();
excelApp.Quit();
```
3. 对于使用`EPPlus`的情况:
- 引入EPPlus命名空间。
- 创建一个新的ExcelPackage,并添加一个新的工作表。
- 同样地,将数据填充到工作表的相应行和列。
- 保存到指定路径。
```csharp
using OfficeOpenXml;
...
string excelFilePath = @"C:\Temp\output.xlsx";
using var package = new ExcelPackage(new FileInfo(excelFilePath));
ExcelWorksheet ws = package.Workbook.Worksheets.Add("Sheet1");
ws.Cells["A1"].LoadFromDataTable(dt, true); // 使用表格数据填充
package.Save();
```
阅读全文
相关推荐












