In ur case ! represents by _ in .net like
string firstSheetName = "Test- Sheet_"
Why u r harcoding excelname
U can retreive it using like this
dtExcelsheetname = excelcon.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, new object[] { null, null, null, "TABLE" });
string[] excelSheets = new String[dtExcelsheetname.Rows.Count];
int j = 0;
foreach (DataRow row in dtExcelsheetname.Rows)
{
excelSheets[j] = row["TABLE_NAME"].ToString();
j++;
}