2010-10-19 2 views
2

Вот что моя строка соединения выглядит ..Как прочитать таблицу Excel 2007 с более чем 65535 строками?

m_conn = new OleDbConnection(String.Format("Provider=Microsoft.ACE.OLEDB.12.0;Data Source={0};Extended Properties=" + (char)34 + "Excel 12.0;HDR=YES" + (char)34, m_fileName)); 

Когда я делаю выбор, я получаю только 65535 строк назад, но я знаю, что электронная таблица Excel имеет, по крайней мере, 100000. Как читать остальные строки. Примечание. Сейчас я должен использовать OLEDB, никаких сторонних инструментов.

Спасибо большое!

редактировать: Это Excel 2007/2010 файлы, я работаю с

EDIT2: Казалось бы, что я могу на самом деле выбрать все строки в таблице, если я делаю «Select * из листа» в отличие от " Выберите * из рабочего листа, где что»

Я думаю, когда вы реализуете ИНЕК, результирующие строки ограничены в 65535

ответ

1

Согласно моему опыту, рабочий лист Excel ограничен 65535 строками (Excel до 2003 года, я не знаю о версии 2007 года).

EDIT # 1

Мое предположение о том, что поставщик данных OleDB возможно нуждается в обновлении, чтобы исправить эту проблему, выданную от изменения лимита этого в Excel.

+2

Похоже, что предел в 2007 году составляет 1,048,576 строк в соответствии с http://www.free-training-tutorial.com/how-to/excel-row-limit.html – Tom

+0

@Tom: Спасибо, что предоставил мне эту информацию , это приятное изменение, о котором мне никогда не говорили. =) –

+1

Обновлено основное сообщение, чтобы отразить лимиты, которые я нашел, используя оператор select в oledb & excel 2007 – Tom

1

Если вы хотите, чтобы прочитать файл Excel, я рекомендую попробовать с открытым исходным кодом Excel Data Reader.

0

Вы должны открыть такие файлы и сохранить их в отключенном режиме совместимости. Вы получите более 64 тыс. Запросов.

Смежные вопросы