• 欢迎访问搞代码网站,推荐使用最新版火狐浏览器和Chrome浏览器访问本网站!
  • 如果您觉得本站非常有看点,那么赶紧使用Ctrl+D 收藏搞代码吧

C# EXCEL 导入导出类(OLEDB的方式)的示例代码详情

c# 搞代码 4年前 (2022-01-09) 12次浏览 已收录 0个评论
public static class ExcelHelper    {        #region 导入        /// <summary>        /// 导入EXCEL(默认的sheet)        /// </summary>        /// <param name="fileName"></param>        /// <returns></returns>        public static System.Data.DataTable ImpExcelDt(string fileName)         {            return ImpExcelDt(fileName, "Sheet1");        }        /// <summary>        /// excel 导入        /// </summary>        /// <param name="fileName"></param>        /// <param name="sheetName"></param>        /// <returns></returns>        public static System.Data.DataTable ImpExcelDt(string fileName, string sheetName)        {            try            {                if (!File.Exists(fileName))                 {                    return null;                }                string strCon = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + fileName + ";Extended Properties='Excel 8.0;HDR=False;IMEX=1'";                OleDbConnection myConn = new OleDbConnection(strCon);                string strCom = " SELECT * FROM [" + sheetName + "$] ";                myConn.Open();                OleDbDataAdapter myCommand = new OleDbDataAdapter(strCom, myConn);                DataSet myDataSet = new DataSet();                myCommand.Fill(myDataSet, "[" + sheetName + "$]");                myConn.Close();                System.Data.DataTable dt = myDataSet.Tables[0];                return dt;            }            catch(Exception ex)            {                throw ex;            }        }        #endregion        #region 导出到EXCEL        /// <summary>        /// 将数据导出到指定的Excel文件中        /// </summary>        /// <param name="listView">System.Windows.Forms.ListView,指定要导出的数据源</param>        /// <param name="destFileName">指定目标文件路径</param>        /// <param name="tableName">要导出到的表名称</param>        /// <param name="overWrite">指定是否覆盖已存在的表</param>        /// <returns>导出的记录的行数</returns>        public static int ExportToExcel(System.Data.DataTable dt, string destFileName, string tableName)        {            if (File.Exists(destFileName))             {                File.Delete(destFileName);            }            //得到字段名            string szFields = "";            string szValues = "";            for (int i = 0; i < dt.Columns.Count; i++)            {                szFields += "[" + dt.Columns[i] + "],";            }            szFields = szFields.TrimEnd(',');            //定义数据连接            OleDbConnection connection = new OleDbConnection();            connection.ConnectionString = GetConnectionString(destFileName);            OleDbCommand command = new OleDbCommand();            command.Connection = connection;            command.CommandType = CommandType.Text;            //打开数据库连接            try            {                connection.Open();            }            catch            {                throw new Exception("目标文件路径错误。");            }            //创建数据库表            try            {                command.CommandText = GetCreateTableSql("[" + tableName + "]", szFields.Split(','));                command.ExecuteNonQuery();            }            catch (Exception ex)            {                //如果允许覆盖则删除已有数据                throw ex;            }            try            {                //循环处理数据-------------------------------------<span>本文来源gaodai#ma#com搞*!代#%^码网5</span>-----                int recordCount = 0;                for (int i = 0; i < dt.Rows.Count; i++)                {                    szValues = "";                    for (int j = 0; j < dt.Columns.Count; j++)                    {                            szValues += "'" + dt.Rows[i][j] + "',";                                           }                    szValues = szValues.TrimEnd(',');                    //组合成SQL语句并执行                    string szSql = "INSERT INTO [" + tableName + "](" + szFields + ") VALUES(" + szValues + ")";                    command.CommandText = szSql;                    recordCount += command.ExecuteNonQuery();                }                connection.Close();                return recordCount;            }            catch (Exception ex)            {                throw ex;            }        }        //得到连接字符串        private static String GetConnectionString(string fullPath)        {            string szConnection;            szConnection = "Provider=Microsoft.JET.OLEDB.4.0;Extended Properties=Excel 8.0;data source=" + fullPath;            return szConnection;        }        //得到创建表的SQL语句        private static string GetCreateTableSql(string tableName, string[] fields)        {            string szSql = "CREATE TABLE " + tableName + "(";            for (int i = 0; i < fields.Length; i++)            {                szSql += fields[i] + " VARCHAR(200),";            }            szSql = szSql.TrimEnd(',') + ")";            return szSql;        }        #endregion    }

以上就是C# EXCEL 导入导出类(OLEDB的方式)的示例代码详情的内容,更多相关内容请关注搞代码(www.gaodaima.com)!


搞代码网(gaodaima.com)提供的所有资源部分来自互联网,如果有侵犯您的版权或其他权益,请说明详细缘由并提供版权或权益证明然后发送到邮箱[email protected],我们会在看到邮件的第一时间内为您处理,或直接联系QQ:872152909。本网站采用BY-NC-SA协议进行授权
转载请注明原文链接:C# EXCEL 导入导出类(OLEDB的方式)的示例代码详情
喜欢 (0)
[搞代码]
分享 (0)
发表我的评论
取消评论

表情 贴图 加粗 删除线 居中 斜体 签到

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址