C# DataGrid按照表头写入excel对应表头的行列数据
时间: 2023-10-03 14:10:59 浏览: 195
将DataGrid数据写入Excel文件
可以使用 Microsoft.Office.Interop.Excel 库来实现将 DataGrid 中的数据写入到 Excel 中对应的表头行列中。
首先需要引用 Microsoft.Office.Interop.Excel 库,然后可以按照以下步骤进行操作:
1. 创建 Excel 应用程序对象和工作簿对象
```
Excel.Application excelApp = new Excel.Application();
Excel.Workbook workbook = excelApp.Workbooks.Add();
```
2. 获取工作簿中的第一个工作表对象
```
Excel.Worksheet worksheet = workbook.Worksheets[1];
```
3. 将 DataGrid 中的表头写入到 Excel 的第一行中
```
for (int i = 0; i < dataGrid.Columns.Count; i++)
{
worksheet.Cells[1, i + 1] = dataGrid.Columns[i].Header.ToString();
}
```
4. 将 DataGrid 中的数据写入到 Excel 中对应的行列中
```
for (int i = 0; i < dataGrid.Items.Count; i++)
{
for (int j = 0; j < dataGrid.Columns.Count; j++)
{
string value = (dataGrid.Items[i] as DataRowView)[j].ToString();
worksheet.Cells[i + 2, j + 1] = value;
}
}
```
5. 保存 Excel 文件并关闭应用程序对象
```
workbook.SaveAs("output.xlsx");
excelApp.Quit();
```
完整代码示例:
```
using System.Data;
using Excel = Microsoft.Office.Interop.Excel;
private void ExportToExcel(DataGrid dataGrid)
{
Excel.Application excelApp = new Excel.Application();
Excel.Workbook workbook = excelApp.Workbooks.Add();
Excel.Worksheet worksheet = workbook.Worksheets[1];
// 写入表头
for (int i = 0; i < dataGrid.Columns.Count; i++)
{
worksheet.Cells[1, i + 1] = dataGrid.Columns[i].Header.ToString();
}
// 写入数据
for (int i = 0; i < dataGrid.Items.Count; i++)
{
for (int j = 0; j < dataGrid.Columns.Count; j++)
{
string value = (dataGrid.Items[i] as DataRowView)[j].ToString();
worksheet.Cells[i + 2, j + 1] = value;
}
}
// 保存并关闭 Excel 应用程序
workbook.SaveAs("output.xlsx");
excelApp.Quit();
}
```
阅读全文