C#读取不规则的EXcel数据

        ///

//From:www.uzhanbao.com
        /// 读取不规则的EXcel数据
        ///

        ///
        ///
        protected DataSet ReadExcelData(string filepath)
        {
            string connStr = "Provider=Microsoft.Jet.OleDb.4.0;" + "Data Source=" + filepath + ";Extended Properties='Excel 8.0; HDR=YES; IMEX=1'";
            string sql_F = "SELECT * FROM [{0}]";
            System.Data.OleDb.OleDbConnection conn = null;
            System.Data.OleDb.OleDbDataAdapter da = null;
            System.Data.DataTable tblSchema = null;
            System.Collections.Generic.IList tblNames = null;
            conn = new System.Data.OleDb.OleDbConnection(connStr);
            conn.Open();
            tblSchema = conn.GetOleDbSchemaTable(System.Data.OleDb.OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
            tblNames = new System.Collections.Generic.List();
            foreach (DataRow row in tblSchema.Rows)
            {
                tblNames.Add((string)row["TABLE_NAME"]); // 读取表名
            }
            da = new System.Data.OleDb.OleDbDataAdapter();
            DataSet ds = new DataSet();
            foreach (string tblName in tblNames)
            {
                da.SelectCommand = new System.Data.OleDb.OleDbCommand(String.Format(sql_F, tblName), conn);
                try
                {
                    da.Fill(ds, tblName);
                }
                catch
                {
                    if (conn.State == ConnectionState.Open)
                    {
                        conn.Close();
                    }
                }
            }
            ds.Tables[0].TableName = "book";

            return ds;

        }

你可能感兴趣的:(C#读取不规则的EXcel数据)