微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

C#如何使用 OleDbConnection 连接读取Excel?代码实例

本篇文章给大家带来的内容是C#如何使用 OleDbConnection 连接读取Excel?(代码实例)。有一定的参考价值,有需要的朋友可以参考一下,希望对你们有所助。

/// <summary>
        /// 读取Excel中数据
        /// </summary>
        /// <param name=strExcelPath></param>
        /// <param name=tableName></param>
        /// <returns></returns>
        public static DataTable GetExcelTableByOleDB(string strExcelPath, string tableName)
        {
            try
            {
                DataTable dtExcel = new DataTable();
                //数据表
                DataSet ds = new DataSet();
                //获取文件扩展名
                string strExtension = System.IO.Path.GetExtension(strExcelPath);
                string strFileName = System.IO.Path.GetFileName(strExcelPath);
                //Excel的连接
                OleDbConnection objConn = null;
                switch (strExtension)
                {
                    case .xls:
                        objConn = new OleDbConnection(Provider=Microsoft.Jet.OLEDB.4.0;Data Source= + strExcelPath + ; + Extended Properties=\Excel 8.0;HDR=yes;IMEX=1;\);
                        break;
                    case .xlsx:
                        objConn = new OleDbConnection(Provider=Microsoft.ACE.OLEDB.12.0;Data Source= + strExcelPath + ; + Extended Properties=\Excel 12.0;HDR=yes;IMEX=1;\);//此连接可以操作.xls与.xlsx文件 (支持Excel2003 和 Excel2007 的连接字符串)  备注: HDR=yes;是说Excel文件的第一行是列名而不是数,HDR=No;正好与前面的相反。IMEX=1 如果列中的数据类型不一致,使用IMEX=1可必免数据类型冲突。 
                        break;
                    default:
                        objConn = null;
                        break;
                }
                if (objConn == null)
                {
                    return null;
                }
                objConn.open();
                //获取Excel中所有Sheet表的信息
                //System.Data.DataTable schemaTable = objConn.GetoleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, null);
                //获取Excel的第一个Sheet表名
                // string tableName1 = schemaTable.Rows[0][2].ToString().Trim();
                string strsql = select * from [ + tableName + $];
                //获取Excel指定Sheet表中的信息
                OleDbCommand objCmd = new OleDbCommand(strsql, objConn);
                OleDbDataAdapter myData = new OleDbDataAdapter(strsql, objConn);
                myData.Fill(ds, tableName);//填充数据
                objConn.Close();
                //dtExcel即为excel文件中指定表中存储的信息
                dtExcel = ds.Tables[tableName];
                return dtExcel;
            }
            catch (Exception ex)
            {
                Console.WriteLine(ex.Message + \r\n + ex.StackTrace);
                return null;
            }
        }

总结:以上就是本篇文的全部内容,希望能对大家的学习有所帮助。更多相关教程请访问C#视频教程

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐