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");