C#获取Excel数据

来源:互联网 发布:gson解析json 编辑:程序博客网 时间:2024/05/07 14:04
 
一:添加COM引用
根据本机安装的office版本不同,导入的Library库版本也不同。
office2010 => Microsoft Excel 14.0 Object Library

获取Excel数据返回DataSet。
代码如下:经过本人测试无问题。
        /// <summary>
        /// 读取Excel返回DataSet
        /// Author:earon
        /// Time:2011:11:29 17:29
        /// LastUpdateTime:2011:11:29 17:29
        /// LastUpdateAuthor:earon
        /// </summary>
        /// <param name="filePath">Excel文件路径</param>
        /// <returns>DataSet集合</returns>
        public DataSet ExcelToDataSet(string filePath)
        {
            DataSet dataSet = null;
            string ConnectionStr = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + filePath + ";Extended Properties=Excel 8.0;";
            OleDbConnection connection = null;
            OleDbDataAdapter adapter = null;
            try
            {
                connection = new OleDbConnection(ConnectionStr);
                connection.Open();
                string strExcel = "select * from [TestSheet$]";
                adapter = new OleDbDataAdapter(strExcel, ConnectionStr);
                dataSet = new DataSet();
                adapter.Fill(dataSet, "testData");
            }
            catch
            {
                return null;
            }
            finally
            {
                try
                {
                    if (connection != null)
                    {
                        connection.Close();
                        connection.Dispose();
                    }
                    if (adapter != null)
                        adapter.Dispose();
                }
                catch { }
            }
            return dataSet;
        }

在做的过程中,在打开连接(connection.Open())的时候抛了异常。
异常信息:
未在本地计算机上注册“Mircosoft.Jet.OleDB.4.0”
解决方法:
一:检查连接字符串
二:打开运行输入注册dll
regsvr32 msjetoledb40.dll

如果字符串出现错误还有可能出现如下
异常信息:
找不到可安装的 ISAM。
出现此错误,有可能是连接字符串出现错误,请仔细检查。

注意:select * from [TestSheet$]
是Excel中的Sheet名称,如果不对将会抛出异常如下
异常信息:
'Sheet1$' 不是一个有效名称。请确认它不包含无效的字符或标点,且名称不太长。
出现此错误,请检查Sheet名称是否和Excel中的Sheet名称一致
原创粉丝点击