Ну, у вас нет листа под названием Sheet1?Кажется, что ваш лист называется "адрес электронной почты от имени пользователя", поэтому ваш запрос должен быть ....
Select * From ['email address from username$']
Также, пожалуйста, не используйте Microsoft.Jet.OLEDB.4.0, так как сейчас он в значительной степени устарел.Используйте Microsoft.ACE.OLEDB.12.0.Если вы укажете Excel 12.0 в расширенных свойствах, он откроет файлы .xls и .xlsx.
Вы также можете загрузить DataTable одной строкой ...
dt.Load(new System.Data.OleDb.OleDbCommand("Select * From ['email address from username$']", conn).ExecuteReader());
Для чтенияимена таблиц в файле используют ...
DataTable dtTablesList = conn.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
foreach (DataRow drTable in dtTablesList.Rows)
{
//Do Something
//But be careful as this will also return Defined Names. i.e ranges created using the Defined Name functionality
//Actual Sheet names end with $ or $'
if (drTable["Table_Name"].ToString().EndsWith("$") || drTable["Table_Name"].ToString().EndsWith("$'"))
{
Console.WriteLine(drTable["Table_Name"]);
}
}