当前位置:实例文章 » C#开发实例» [文章]C# Winfrom将DataGridView数据导入Excel

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 类库都可以实现这一功能。

相关标签:excelc#开发语言
其他信息

其他资源

Top