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