WPF将DataGrid中的数据保存到CSV中
https://blog.csdn.net/flysh13/article/details/122528858
public class Export
{
public bool ExportToCSV(DataGrid dg)
{
try
{
//设置DataGrid(假设其名为dg)的选择模式为扩展模式,这意味着用户可以选择多个单元格。
dg.SelectionMode = DataGridSelectionMode.Extended;
//选择DataGrid中的所有单元格。
dg.SelectAllCells();
//清空剪贴板,确保在复制新内容之前剪贴板是空的。
Clipboard.Clear();
//执行复制命令,将DataGrid中当前选中的单元格内容复制到剪贴板。
ApplicationCommands.Copy.Execute(null, dg);
var saveFileDiaog = new SaveFileDialog
{
FileName = "Result",
DefaultExt = ".csv",
Filter = "Common Separated Document(.csv) | *.csv"
};
if (saveFileDiaog.ShowDialog() == true)
{
string clip2 = string.Empty;
//添加表头
foreach (DataGridColumn column in dg.Columns)
{
clip2 += column.Header.ToString();
clip2 += ",";
}
clip2 = clip2.TrimEnd(',');
clip2 += "\r\n";
//从剪贴板中获取文本内容。由于之前已经将DataGrid的内容复制到了剪贴板,所以这里获取的就是DataGrid的内容。
clip2 += Clipboard.GetText();
clip2 = clip2.Replace('\t', ',');
System.IO.File.WriteAllText(saveFileDiaog.FileName, clip2, Encoding.UTF8);
//使用默认程序打开刚刚保存的CSV文件。
Process.Start(saveFileDiaog.FileName);
}
//取消选择DataGrid中的所有单元格。
dg.UnselectAllCells();
//将DataGrid的选择模式设置回单选模式,这意味着用户现在只能选择一个单元格。
dg.SelectionMode = DataGridSelectionMode.Single;
return true;
}
catch (Exception ex)
{
LogOperator.Error(ex.Message);
Clipboard.Clear();
return false;
}
}
}