wimform 导出数据 excel

来源:互联网 发布:廊坊银行网络账户 编辑:程序博客网 时间:2024/05/18 00:49

导出数据版本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;                }
}