C# Winfrom将DataGridView数据导入Excel
发布人:shili8
发布时间:2024-12-05 20:01
阅读次数:0
**导出 DataGridView 数据到 Excel**
在 C# WinForm 应用程序中,DataGridView 是一个常用的控件,用来显示表格数据。有时,我们需要将这些数据导出到 Excel 文件中,以便进一步分析或处理。下面是如何实现这一功能的步骤和代码示例。
### 步骤1. **添加必要的 NuGet 包**:首先,需要在项目中添加 Microsoft.Office.Interop.Excel 和 EPPlus NuGet 包,这两个包分别提供了对 Excel 的 COM 接口和 EPPlus 库的支持。
2. **导入 DataGridView 数据**:使用 DataGridView 控件获取数据源,然后将其转换为 DataTable 或 DataSet 对象,以便于后续的操作。
3. **创建 Excel 文件**:使用 EPPlus 库或 Microsoft.Office.Interop.Excel 类库创建一个新的 Excel 文件,并设置工作簿、sheet 等属性。
4. **写入 DataGridView 数据到 Excel**:使用 DataTable 或 DataSet 对象将 DataGridView 的数据写入到 Excel 中。
###代码示例#### 步骤1:添加必要的 NuGet 包在 Visual Studio 中,右键点击项目名称,选择 "管理 NuGet 包",然后搜索并安装 Microsoft.Office.Interop.Excel 和 EPPlus NuGet 包。
#### 步骤2:导入 DataGridView 数据
csharp// 获取DataGridView控件DataGridView dgv = new DataGridView();
// 将数据源转换为DataTable对象DataTable dt = new DataTable();
dt.Columns.Add("ID", typeof(int));
dt.Columns.Add("Name", typeof(string));
dt.Columns.Add("Age", typeof(int));
// 添加数据行DataRow row1 = dt.NewRow();
row1["ID"] =1;
row1["Name"] = "John";
row1["Age"] =25;
dt.Rows.Add(row1);
DataRow row2 = dt.NewRow();
row2["ID"] =2;
row2["Name"] = "Alice";
row2["Age"] =30;
dt.Rows.Add(row2);
#### 步骤3:创建 Excel 文件
csharp// 使用EPPlus库创建Excel文件using OfficeOpenXml;
// 创建一个新的Excel文件var package = new ExcelPackage();
var workbook = package.Workbook;
// 添加工作簿workbook.Worksheets.Add("Sheet1");
// 设置工作簿属性var sheet = workbook.Worksheets["Sheet1"];
sheet.Cells["A1"].Value = "ID";
sheet.Cells["B1"].Value = "Name";
sheet.Cells["C1"].Value = "Age";
// 将DataTable数据写入Excel中int rowNumber =2;
foreach (DataRow row in dt.Rows)
{
sheet.Cells[rowNumber,0].Value = row["ID"];
sheet.Cells[rowNumber,1].Value = row["Name"];
sheet.Cells[rowNumber,2].Value = row["Age"];
rowNumber++;
}
#### 步骤4:写入 DataGridView 数据到 Excel
csharp// 使用Microsoft.Office.Interop.Excel类库创建Excel文件using Microsoft.Office.Interop.Excel;
// 创建一个新的Excel应用程序Application excelApp = new Application();
Workbook workbook = excelApp.Workbooks.Add(Missing.Value);
// 添加工作簿Worksheet sheet = (Worksheet)workbook.Sheets["Sheet1"];
// 将DataTable数据写入Excel中int rowNumber =2;
foreach (DataRow row in dt.Rows)
{
Range range = sheet.Cells[rowNumber,0];
range.Value = row["ID"];
range = sheet.Cells[rowNumber,1];
range.Value = row["Name"];
range = sheet.Cells[rowNumber,2];
range.Value = row["Age"];
rowNumber++;
}
//保存Excel文件workbook.SaveAs("C:UsersPublicDocumentsDataGridViewToExcel.xlsx", XlFileFormat.xlOpenXMLWorkbook);
以上是如何将 DataGridView 数据导出到 Excel 文件的步骤和代码示例。使用 EPPlus 库或 Microsoft.Office.Interop.Excel 类库都可以实现这一功能。

