WPF 导出DataGrid内容到CSV文件

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




导出成功。

你可能感兴趣的:(WPF 导出DataGrid内容到CSV文件)