Я пытаюсь прочитать файл «.xlsx» с помощью OleDbDataAdapter. Пожалуйста, прочитайте до конца сообщения перед ответом. Вот код, который я использую:C# Ошибка чтения файла Excel с OleDbDataAdapter
private DataTable ExtractDataFromFile(string fileName)
{
DataTable sheetData = new DataTable();
using (OleDbConnection conn = this.returnConnection(fileName))
{
try{
conn.Open();
OleDbDataAdapter sheetAdapter = new OleDbDataAdapter("select * from [Sheet1$]", conn);
sheetAdapter.Fill(sheetData);
}
catch(Exception e)
{
Console.WriteLine(e);
Console.ReadLine();
}
}
return sheetData;
}
private OleDbConnection returnConnection(string fileName)
{
return new OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + fileName + ";Extended Properties=Excel 12.0;");
}
Но я получаю странную ошибку. Файлы Excel У меня есть для запроса были даны мне клиентом, и я получаю следующее сообщение об ошибке при попытке открыть их
External table is not in the expected format
Вот улов: Я заметил, что если я откройте один из файлов Excel и вручную сохраните его один раз и закройте файл, затем я могу запросить файл с помощью моей программы!
Попытайтесь не обмануть расширение. Откройте файл в текстовом редакторе, если вы можете прочитать содержимое, а может быть, это файл CSV, а не XLS – Steve
Спасибо за ваш ответ. Однако открытие файла с помощью Notepad ++ дает мне XML-код, а не истинный контент файла «.xlsx». –