Вот настройки:
У меня есть таблица Excel с очень простой страницей. Это выглядит так:

Я использую следующую строку подключения для доступа к этому файлу:
string.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=\"Excel 8.0;HDR=NO\";", fn)
Моя функция для доступа к файлу выглядит так:
try
{
string select = string.Format("SELECT * FROM [{0}$]", tab.PageName);
OleDbDataAdapter adapter = new OleDbDataAdapter(select, con);
DataSet ds = new DataSet();
adapter.Fill(ds, tab.PageName);
// DEBUG: Let's just see what it is getting...
for (int x = 0; x < 13; x++)
{
for (int y = 0; y < 3; y++)
{
Console.Write(ds.Tables[0].Rows[x][y].ToString() + "\t");
}
Console.WriteLine("");
}
}
catch
{ ... }
ВОПРОС
Почему код НЕ читает некоторые ячейки? Обратите внимание, что на C5 есть текст «Прибыль». Я могу читать B5 просто отлично, как «Доход». Я могу читать C6 просто отлично, как целочисленное значение. Но прибыль, кажется, исчезает.
Это не такая большая проблема с информацией заголовка, но целые блоки реальных данных не читаются. Вместо этого он возвращает DBNull, даже когда ячейка содержит реальные, действительные, пригодные для использования данные. Все ячейки отформатированы одинаково между ячейками, которые могут читать, и ячейками, которые возвращают DBNull.
Я действительно в замешательстве !!!
Есть мысли?