wimform 导出数据 excel

导出数据版本2 ,个人精简了一下方法,并且通过测试,可是点击取消的时候还没弄清楚,亲,等待哈。。。

引用:      

     //连接数据库  ---全局
    SqlConnection conn = new SqlConnection(ConfigurationManager.ConnectionStrings["Loginthree"].ToString());

         /// <summary>
         /// 导出数据按钮
         /// </summary>
         /// <param name="sender"></param>
         /// <param name="e"></param>
         private void button2_Click(object sender, EventArgs e)
         {
             //需要打印的数据
             string sqlall = "select * from Student"; 
             DataTable dat = testone(sqlall);
             printAll(dat);
         }



testone()方法:
        /// <summary>
        /// 获取数据集返回数据库中的数据
        /// </summary>
        /// <param name="sql"></param>
        /// <returns>DataTable</returns>
        private DataTable testone(string sqlall)
        {       
            try
            {
                conn.Open();
                dapter = new SqlDataAdapter(sqlall,conn);

                //自动生成单表命令,用于将对 DataSet 所做的更改与关联的 SQL Server 数据库的更改相协调。无法继承此类。
                SqlCommandBuilder scb = new SqlCommandBuilder(dapter); 

                ds = new DataSet();
                dapter.Fill(ds);// dapter.Fill(ds, "class");//DataTable customerTable = dtc["Product"];
                return ds.Tables[0];
            }
            catch(Exception e)
            {
                Console.WriteLine("{0} Exception caught.", e);
            }
            finally
            {
                conn.Close();
            }
            return null ;
        }

printAll方法:

   

    	
        /// <summary>
        /// 导出excel 方法一
        /// </summary>
        /// <param name="dt"></param>
        public void printAll(System.Data.DataTable dt)
        {
            //导出到execl   
           
                //没有数据的话就不往下执行   
                if (dt.Rows.Count == 0)
                    return;
                //实例化一个Excel.Application对象   
                Microsoft.Office.Interop.Excel.Application excel = new Microsoft.Office.Interop.Excel.Application();

                //      Excel.Application excel = new Excel.Application();

                //新增加一个工作簿,Workbook是直接保存,不会弹出保存对话框,加上Application会弹出保存对话框,值为false会报错   
                Microsoft.Office.Interop.Excel.Workbook xls_book = excel.Workbooks.Add(Microsoft.Office.Interop.Excel.XlWBATemplate.xlWBATWorksheet);
                excel.Visible = true;
                try
                {
                    //让后台执行设置为不可见,为true的话会看到打开一个Excel,然后数据在往里写   
                    excel.Visible = false;
                    //生成Excel中列头名称   
                    for (int i = 0; i < dt.Columns.Count; i++)
                    {
                        excel.Cells[1, i + 1] = dagvtwo.Columns[i].HeaderText;//输出DataGridView列头名   
                    }

                    //把DataGridView当前页的数据保存在Excel中   
                    if (dt.Rows.Count > 0)
                    {
                        for (int i = 0; i < dt.Rows.Count; i++)
                        {
                            for (int j = 0; j < dt.Columns.Count; j++)
                            {
                                string str = dt.Rows[i][j].ToString();
                                excel.Cells[i + 2, j + 1] = "'" + str;
                            }
                        }
                    }
                    //设置禁止弹出保存和覆盖的询问提示框   
                    excel.DisplayAlerts = false;
                    excel.AlertBeforeOverwriting = false;

                    //保存工作簿,值为false会报错   
                    excel.Application.Workbooks.Add(true).Save();
                    //保存excel文件   
                    excel.Save("D:\\KKHMD.xls");

                }
                catch (Exception ex)
                {
                    MessageBox.Show(ex.Message, "错误提示");
                }
                finally
                {
                    //确保Excel进程关闭  
                    excel.Quit();
                    excel = null;
                }
}






   

你可能感兴趣的:(sql,exception,数据库,server,String,Excel,dataset)