C#中将dataGridView1中数据按“业务员”列的值(中文),相同的值对应的行放入一张新表,最后导出一份EXCEL,新表为该EXCEL中的工作表,并命名工作表为“业务员”列的值的C#代码
时间: 2024-11-12 14:35:32 浏览: 18
在C#中,你可以通过以下几个步骤实现这个功能:
1. 创建新的DataTable或DataSet来存储分组后的数据。
2. 遍历dataGridView1的数据,根据"业务员"列的值进行分组。
3. 使用GroupBy方法将数据分组并计算每个组的信息。
4. 将结果添加到新表中。
5. 导出到Excel文件。
这是一个示例代码片段:
```csharp
using System.IO;
using System.Data;
using Excel = Microsoft.Office.Interop.Excel;
// 分组并创建新表
DataTable groupedData = dataTable.AsEnumerable()
.GroupBy(row => row.Field<string>("业务员"))
.ToDataTable();
// 检查是否有数据需要导出
if (groupedData.Rows.Count > 0)
{
// 创建Excel应用实例
Application excelApp = new Application();
// 创建一个新的工作簿并选择第一个工作表
Workbook workbook = excelApp.Workbooks.Add();
Worksheet worksheet = workbook.Worksheets[1];
// 设置工作表名称
worksheet.Name = groupedData.Columns["业务员"].ToString();
// 将分组后的数据写入Excel
for (int i = 0; i < groupedData.Rows.Count; i++)
{
DataRow groupRow = groupedData.Rows[i];
worksheet.Cells[i + 2, 1] = groupRow["业务员"];
// 将其他列复制到对应位置,假设这里有两列(如果更多,增加循环)
worksheet.Cells[i + 2, 2] = groupRow["列2"];
worksheet.Cells[i + 2, 3] = groupRow["列3"]; // 请替换为实际列名
}
// 保存并关闭Excel文件
string filePath = "路径/your_file.xlsx";
workbook.SaveAs(filePath);
workbook.Close();
excelApp.Quit();
}
else
{
Console.WriteLine("没有数据需要导出");
}
阅读全文