1. 创建一个DataGrid
创建4列不同类型的列,Text,ComboBox, CheckBox,Hyperlink,基本覆盖了DataGrid的所有列类型。
SelectionMode="Extended" ItemsSource="{Binding}">
创建数据模型类型,再创建类的集合绑定到DataGird。
2. 导出DataGrid内容到CSV文件中
创建DataGrid导出的扩展方法。
using Excel = Microsoft.Office.Interop.Excel;
using Microsoft.Office.Interop.Excel;
using System.Windows;
using System.Windows.Input;
using System.Diagnostics;
using Microsoft.Win32;
using System.Windows.Controls;
using System.IO;
扩展方法必须是静态类:
//扩展方法
public static class ExportTools
{
public static void Export_To_Excel(this DataGrid dg, string filename = "")
{
try
{
dg.SelectionMode = DataGridSelectionMode.Extended;
dg.SelectAllCells();
Clipboard.Clear();
ApplicationCommands.Copy.Execute(null, dg);
var saveFileDiaog = new SaveFileDialog
{
FileName = filename != "" ? filename : "demo",
DefaultExt = ".csv",
Filter = "Common Separated Document(.csv)|*.csv"
};
if (saveFileDiaog.ShowDialog() == true)
{
var clip2 = Clipboard.GetText();
File.WriteAllText(saveFileDiaog.FileName, clip2.Replace('\t', ','), Encoding.UTF8);
Process.Start(saveFileDiaog.FileName);
}
dg.UnselectAllCells();
dg.SelectionMode = DataGridSelectionMode.Single;
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
Clipboard.Clear();
}
}
}
调用扩展方法:
//使用扩展方法将DataGrid数据导出到csv
this.dg.Export_To_Excel("Mydemo");
导出成功。