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;
         }
     }
 }

 

posted @ 2023-10-25 17:27  时而有风  阅读(109)  评论(0编辑  收藏  举报