思路為:全選中datagrid表格中的內容,直接拷貝出來。
在導出按鈕的Click事件中寫入以下代碼:
DataGrid dataGrid = paramArray as DataGrid;
string fileName = System.AppDomain.CurrentDomain.BaseDirectory+"開關量" +DateTime.Now.ToString("yyyy-MM-dd HHmmss")+".csv";
string strFormat = fileName;
dataGrid.SelectAllCells();
dataGrid.ClipboardCopyMode = DataGridClipboardCopyMode.IncludeHeader;
ApplicationCommands.Copy.Execute(null, dataGrid);
dataGrid.UnselectAllCells();
string result = (string)System.Windows.Clipboard.GetData(System.Windows.DataFormats.CommaSeparatedValue);
File.AppendAllText(strFormat, result, UnicodeEncoding.UTF8); Clipboard.Clear();//清空粘貼板
MessageBox.Show("導出成功");
//注釋部分是導出后提示是否打開查看功能
// var messageBoxResult = System.Windows.MessageBox.Show("導出成功,是否查看報告?", "提示",
// MessageBoxButton.YesNo, MessageBoxImage.Information, System.Windows.MessageBoxResult.No, System.Windows.MessageBoxOptions.ServiceNotification);
//if (messageBoxResult == MessageBoxResult.Yes)
//{
// Process.Start(fileName);
//}