첫번째 Sheet의 Excel Data 읽어오기

iamgun(46)
Published in
#it
Words
37
Reading
1 min
9y
Listen to this post
~1 min



작업을 하다가 첫번째 Sheet의 데이터를 읽어 오는 일이 있었다.


기존에 대부분  작업은 Sheet이름이 있어 그 이름으로 쿼리를 해서


읽어왔는데 Sheet이름이 유동적으로 변경되어


다음과 같이 했다.


 string connectionString = string.Format("Provider=Microsoft.Jet.OLEDB.4.0; data source={0}; Extended Properties="Excel 8.0;Imex=1;HDR=No;"", path);

            var ds = new DataSet();
            using (OleDbConnection conn = new OleDbConnection(connectionString))
            {
                conn.Open();
                var dtSchema = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
                string sheet1 = dtSchema.Rows[0].Field<string>("TABLE_NAME");
                OleDbCommand cmd = new OleDbCommand(String.Format("SELECT * FROM [{0}]", sheet1), conn);
                OleDbDataAdapter adp = new OleDbDataAdapter();
                adp.SelectCommand = cmd;
                adp.Fill(ds);
            }
            return ds;