zoukankan      html  css  js  c++  java
  • 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 //导出辅助类

  • 相关阅读:
    Java开发中的23种设计模式详解(转)
    主表和从表
    MyBatis开发中解决返回字段不全的问题
    个人常用配置文件解析
    SpringMVC+MyBatis开发中指定callSettersOnNulls,可解决返回字段不全的问题
    mybatis之sql执行有数据但返回结果为null
    Hadoop window win10 基础环境搭建(2.8.1)
    什么水平算精通C++ Builder?
    Delphi中取得汉字的首字母(十分巧妙)
    全部的Windows消息对应值
  • 原文地址:https://www.cnblogs.com/ArRan/p/2815176.html
Copyright © 2011-2022 走看看