try this , you could always play with datatypes once you have data in your table..
string constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\\Documents\\Book1_3.xlsx;Extended Properties='Excel 12.0;HDR=NO;'";
OleDbConnection con = new OleDbConnection(constr);
con.Open();
DataTable dt = con.GetOleDbSchemaTable(OleDbSchemaGuid.Columns,null);
con.Close();
SqlConnection sqlcon = new SqlConnection("Server=servername;Database=dbname;Trusted_Connection=True;Integrated Security=SSPI;");
string tblcreate = "Create Table ##TEMP_Excel(";
foreach (DataRow dr in dt.Select("TABLE_NAME='Sheet1$'"))
{
tblcreate = tblcreate + dr["COLUMN_NAME"].ToString() + " varchar(32)" + ",";
}
tblcreate=tblcreate.Substring(0, tblcreate.Length - 1);
tblcreate = tblcreate + " );";
sqlcon.Open();
SqlCommand cmd = new SqlCommand(tblcreate, sqlcon);
cmd.ExecuteNonQuery();
sqlcon.Close();