故如虹,知恩;故如月,知明
排名
6
文章
6
粉丝
16
评论
8
{{item.articleTitle}}
{{item.blogName}} : {{item.content}}
ICP备案 :渝ICP备18016597号-1
网站信息:2018-2024TNBLOG.NET
技术交流:群号656732739
联系我们:contact@tnblog.net
欢迎加群交流技术

使用OLEDB读取不同版本Excel的连接字符串设置

4453人阅读 2018/11/19 10:16 总访问:3915860 评论:0 收藏:0 手机
分类: .NET


   使用OleBD读取excel的时候,excel不同的版本,连接字符串的写法也会不一样。


 /// <summary>
        /// 读取excel
        /// </summary>
        /// <param name="pathName"></param>
        public void ReadExcel(string pathName)
        {
            DataTable tbContainer = new DataTable();
            string strConn = string.Empty;

            FileInfo file = new FileInfo(pathName);
            if (!file.Exists) { throw new Exception("文件不存在"); }
            string extension = file.Extension;
            switch (extension)
            {
                case ".xls":
                    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
                    break;
                //excel2007或者2010的连接字符串写法
                case ".xlsx":
                    strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + pathName + ";Extended Properties='Excel 12.0;HDR=Yes;IMEX=1;'";
                    break;
                default:
                    strConn = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + pathName + ";Extended Properties='Excel 8.0;HDR=Yes;IMEX=1;'";
                    break;
            }
            //链接Excel
            OleDbConnection cnnxls = new OleDbConnection(strConn);
            //读取Excel里面有 表Sheet1
            OleDbDataAdapter oda = new OleDbDataAdapter(string.Format("select * from [Sheet1$]"), cnnxls);
            DataSet ds = new DataSet();
            //将Excel里面有表内容装载到内存表中!
            oda.Fill(tbContainer);
        }


欢迎加群讨论技术,群:677373950(满了,可以加,但通过不了),2群:656732739

评价