ExportToExcel

做WinForm开发离不开一些基本的控件,作为数据列表显示控件中,其中最为重要的要数 DataGridView,以前用的是一些第三方控件,提供了比较灵活和方便的功能,比如:根据所见即所得导出数据到Excel 或者 文本,没办法自力更生才是生存之道。

     DataGridView的数据导出功能在网络上搜索后,有一些同仁实现过,但有些是需要依赖Excel ,这种方式不但耦合性强,性能也差,为了一劳永逸的解决这个问题,特改写了代码,在此提供给各位同仁,欢迎斧正。

1、首先,看使用方法:

 dgvProjectList.ExportToExcel();

或者

 dgvProjectList.ExportToExcel("项目列表");

        如果不使用数据导出功能,不会对现有 DateGridView控件产生任何负作用,也不占用内存;

2、扩展方法定义:

代码Code highlighting produced by Actipro CodeHighlighter (freeware)http://www.CodeHighlighter.com/-->        /// <summary>
        /// 将表格数据导出到csv表格文件中
        /// </summary>
        /// <param name="dgv"></param>
        public static void ExportToExcel(this DataGridView dgv)
        {
            ExportToExcel(dgv, "表格数据");
        }
        /// <summary>
        /// 将表格数据导出到csv表格文件中
        /// </summary>
        /// <param name="dgv"></param>
        public static void ExportToExcel(this DataGridView dgv, string fileName)
        {
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Filter = "表格数据文件(*.csv)|*.csv";
            sfd.FileName = string.Format("{0}.csv", fileName);
            if (sfd.ShowDialog() == DialogResult.OK)
            {
                fileName = sfd.FileName;
                ExportHelper.ExportDetails(dgv.GetDataTable(), ExportHelper.ExportFormat.CSV, fileName, ExportHelper.ApplicationType.WindowsForm);


            }
        }
        /// <summary>
        /// 将表格数据导出到文本文件中
        /// </summary>
        /// <param name="dgv"></param>
        public static void ExportToText(this DataGridView dgv)
        {
            ExportToText(dgv, "表格数据");
        }

        /// <summary>
        /// 将表格数据导出到文本文件中
        /// </summary>
        /// <param name="dgv"></param>
        public static void ExportToText(this DataGridView dgv, string fileName)
        {
            SaveFileDialog sfd = new SaveFileDialog();
            sfd.Filter = "文本文件(*.txt)|*.txt";
            sfd.FileName = string.Format("{0}.txt", fileName);
            if (sfd.ShowDialog() == DialogResult.OK)
            {
                fileName = sfd.FileName;
                ExportHelper.ExportDetails(dgv.GetDataTable(), ExportHelper.ExportFormat.TXT, fileName, ExportHelper.ApplicationType.WindowsForm);
            }
        }

  

3、导出类定义:

   1 //导出辅助类

原文地址:https://www.cnblogs.com/ArRan/p/2815176.html