Мне пришлось сделать это недавно из файла, который будет загружать пользователь.Я заставил его работать, временно сохранив файл, затем выполнив следующие действия:
string fileTempPath = Path.Combine(Server.MapPath("~/temp"), fileUploader.FileName);
fileUploader.SaveAs(fileTempPath);
fileTempPathHiddenField.Value = fileTempPath;
System.Data.DataTable excelDataTable = LoadData();
Далее в коде:
protected System.Data.DataTable LoadData()
{
string connectionString = "Provider=Microsoft.Jet.OLEDB.4.0;" +
"Data Source=" + fileTempPathHiddenField.Value + ";" +
"Extended Properties=Excel 8.0;";
OleDbDataAdapter dataAdapter = new OleDbDataAdapter(string.Format("Select * from [{0}$]", sheetNameTextBox.Text), connectionString);
DataSet excellDataSet = new DataSet();
dataAdapter.Fill(excellDataSet, "ExcelInfo");
return excellDataSet.Tables["ExcelInfo"];
}
Затем, как только вы закончите работу с временным файлом, продолжайте иудалите его, если хотите.