C# WinForm中把DataTable导出到Excel中去

/// <summary>

        /// DataTable内容导出为excel并返回客户端

        /// </summary>

        /// <param name="dtData">待导出的DataTable</param>

        public bool DataTableToExcelTow(DataTable dtData)

        {

            SaveFileDialog saveFileDlg = new SaveFileDialog();

            try

            {

                //Select Excel File

                saveFileDlg.InitialDirectory = "c://";

                saveFileDlg.Filter = "Excel files (*.xls)|*.xls";

                saveFileDlg.FilterIndex = 2;

                saveFileDlg.RestoreDirectory = true;

 

                if (saveFileDlg.ShowDialog() != DialogResult.OK)

                    return false;

 

                //Create OleDbConn

                string connStr = "Provider=Microsoft.Jet.OLEDB.4.0;"

                               + "Data Source=" + saveFileDlg.FileName + ";"

                               + "Extended Properties=/"Excel 5.0;HDR=YES/"";

 

                OleDbConnection OleDbConn = new OleDbConnection();

                OleDbConn.ConnectionString = connStr;

                OleDbConn.Open();

 

 

                OleDbCommand cmd = new OleDbCommand();

                cmd.Connection = OleDbConn;

 

                //Create Table Of Excel

                string createTableStr = "Create Table [" + dtData.TableName + "](";

                int i, j, k;

                for (i = 0; i < dtData.Columns.Count - 1; i++)

                {

                    createTableStr += "[" + dtData.Columns[i].ColumnName + "] text,";

                }

                createTableStr += dtData.Columns[i].ColumnName + " text)";

 

                cmd.CommandText = createTableStr;

                cmd.ExecuteNonQuery();

 

                //Save Data To Excel File

                string insertStr = "";

                for (j = 0; j < gv.RowCount; j++)

                {

                    insertStr = "INSERT INTO [" + dtData.TableName + "] values('";

                    for (k = 0; k < dtData.Columns.Count - 1; k++)

                    {

                        insertStr += dtData.Rows[k].ToString() + "','";

                    }

                    insertStr += dtData.Rows[k].ToString() + "')";

 

                    cmd.CommandText = insertStr;

                    cmd.ExecuteNonQuery();

                }

 

                //Close OleDbConn

                OleDbConn.Close();

            }

            catch (Exception Ex)

            {

                throw new Exception(Ex.Message);

            }

            finally

            {

                if (saveFileDlg != null)

                {

                    saveFileDlg.Dispose();

                }

            }

        }

 

评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值