请帮我写一段代码,将WPF中的datagrid导出为excel并保存
时间: 2023-05-28 15:03:50 浏览: 208
以下是一个示例代码,可以将WPF中的Datagrid导出为Excel并保存:
```csharp
private void ExportToExcel(DataGrid grid)
{
// 创建Excel应用程序对象
var excelApp = new Microsoft.Office.Interop.Excel.Application();
excelApp.Visible = false;
// 创建新的工作簿
var workbook = excelApp.Workbooks.Add(Type.Missing);
// 获取第一个工作表
var worksheet = (Microsoft.Office.Interop.Excel.Worksheet)workbook.Worksheets[1];
// 设置单元格的值,从Datagrid中获取数据
for (int i = 1; i < grid.Columns.Count + 1; i++)
{
worksheet.Cells[1, i] = grid.Columns[i - 1].Header;
}
for (int i = 0; i < grid.Items.Count; i++)
{
var row = grid.Items[i];
for (int j = 0; j < grid.Columns.Count; j++)
{
var cellValue = grid.Columns[j].GetCellContent(row);
worksheet.Cells[i + 2, j + 1] = cellValue != null ? cellValue.ToString() : "";
}
}
// 保存Excel文件
var saveFileDialog = new SaveFileDialog();
saveFileDialog.Filter = "Excel files (*.xlsx)|*.xlsx";
if (saveFileDialog.ShowDialog() == true)
{
workbook.SaveAs(saveFileDialog.FileName);
}
// 关闭Excel应用程序
excelApp.Quit();
}
```
使用方法:
```csharp
ExportToExcel(myDataGrid);
```
其中,`myDataGrid`是要导出为Excel的Datagrid对象。在导出时会弹出一个保存对话框,让用户选择要保存的Excel文件路径和名称。
阅读全文