先从数据库中获取数据,绑定在datagridview中,再从dategridview中导出为excel文件

1、新建窗体,把控件datagridview和按钮设置好,如图

2、设置datagridview绑定数据表的字段

1)点击datagriview右上角,弹出编辑列,添加列

2)点击添加列,新建数据,跟数据库中数据表的列名一样

3、获取数据库中数据表的方法

SqlConnection conn = null;
        /// <summary>
        /// 查询事件
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnSelect_Click(object sender, EventArgs e)
        {
            conn = DBHelp.GetConnection();  //获取数据库连接,并开启连接
            string sql = "select * from UseTab";   //查询数据表的 sql语句
            DataSet ds = new DataSet();
            SqlDataAdapter sda = new SqlDataAdapter(sql,conn);
            sda.Fill(ds);
            DataTable dt = ds.Tables[0];   //获取数据表的数据
            this.dgvUseName.DataSource = dt;  //把dattable绑定datagridview
            DBHelp.CloseConnection(conn);   //关闭连接
            //选择整行显示数据
            this.dgvUseName.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
           //选择是否只读
            this.dgvUseName.ReadOnly = true;
        }

4、导出为excel文件的方法

private void btnExport_Click(object sender, EventArgs e)
        {
            SaveFileDialog saveFileDialog = new SaveFileDialog();
            saveFileDialog.Filter = "Excel files (*.xls)|*.xls";
            saveFileDialog.FilterIndex = 0;
            saveFileDialog.RestoreDirectory = true;
            saveFileDialog.CreatePrompt = true;
            saveFileDialog.Title = "导出Excel文件到";

DateTime now = DateTime.Now;
            saveFileDialog.FileName = now.Year.ToString().PadLeft(2)
            + now.Month.ToString().PadLeft(2, '0')
            + now.Day.ToString().PadLeft(2, '0') + "-"
            + now.Hour.ToString().PadLeft(2, '0')
            + now.Minute.ToString().PadLeft(2, '0')
            + now.Second.ToString().PadLeft(2, '0');
            saveFileDialog.ShowDialog();
 
            Stream myStream = saveFileDialog.OpenFile();
            StreamWriter sw = new StreamWriter(myStream, System.Text.Encoding.GetEncoding("gb2312"));
            string str = "";
            try
            {
                //写标题     
                for (int i = 0; i < this.dgvUseName.ColumnCount; i++)
                {
                    if (i > 0)
                    {
                        str += "\t";
                    }
                    str += this.dgvUseName.Columns[i].HeaderText;
                }
                sw.WriteLine(str);
                 //写内容   
                for (int j = 0; j < this.dgvUseName.Rows.Count; j++)
                {
                    string tempStr = "";
                    for (int k = 0; k < this.dgvUseName.Columns.Count; k++)
                    {
                        if (k > 0)
                        {
                            tempStr += "\t";
                        }
                        tempStr += this.dgvUseName.Rows[j].Cells[k].Value.ToString();
                    }
                    sw.WriteLine(tempStr);
                }
                sw.Close();
                myStream.Close();
            }
            catch (Exception ex)
            {
                //MessageBox.Show(ex.ToString());
            }
            finally
            {
                sw.Close();
                myStream.Close();
            }
        }

5、数据库辅助类

class DBHelp
    {
        //连接字符串
        static String str = "server=.;database=TestDB;uid=sa;pwd=sa";
        static SqlConnection conn = null;
        static SqlCommand cmd = null;
        static int result=0;
       
        /// <summary>
        /// 获取可用连接
        /// </summary>
        /// <returns>数据库连接对象</returns>
        public static SqlConnection GetConnection() {
            conn = new SqlConnection(str);
            conn.Open();
            return conn;
        }
        /// <summary>
        /// 关闭连接对象
        /// </summary>
        /// <param name="conn">连接对象</param>
        public static void CloseConnection(SqlConnection conn) {
            if (conn != null && conn.State == System.Data.ConnectionState.Open) {
                conn.Close();
            }    
        }

}

6、最后导出的效果图

保存时,弹出的窗体

打开excel文件查看数据

参考的导出方法来自这个地址:http://www.cnblogs.com/hfzsjz/archive/2013/05/07/3064231.html

最新文章

  1. webstorm配置scss自动编译路径
  2. dd命令使用详解
  3. C++之STL之string
  4. 用js读、写、删除Cookie
  5. [原创]Android中LocationManager的简单使用,获取当前位置
  6. 原生javascript添加引用js文件
  7. UVa12096.The SetStack Computer
  8. memcache研究
  9. 解决getElementsByClassName兼容问题
  10. JavaScript JSON timer(计时器) AJAX HTTP请求 同源策略 跨域请求
  11. Linux 重启和关机命令
  12. 深度学习菜鸟的信仰地︱Supervessel超能云服务器、深度学习环境全配置
  13. 016-类与对象-OC笔记
  14. SQL中关于不能显示count为0的行的问题
  15. Spring 完成自动注入(autowire)
  16. HTTP深入浅出 http请求完整过程
  17. php Excel 导入功能
  18. React Router路由传参方式总结
  19. cookie VS localstorage
  20. 最详细安装Esxi

热门文章

  1. Android学习之AsyncTask
  2. 重建 windows 图标缓存
  3. Swift 自动布局框架-SnapKit
  4. eclipse新建一个Android项目,就会报错android.support.v7.app.ActionBarActivity
  5. HTTP协议学习
  6. 顺序执行到来的消息 actor
  7. 何为.Net Remoting【转】
  8. 为什么这样写js:(function ($) { })(jQuery);
  9. Hashing Trick
  10. 理解RxJava:(二)Operator,Operator