Как прочитать электронную таблицу Excel 2007 с более чем 65535 строками? - PullRequest
2 голосов
/ 19 октября 2010

Вот как выглядит моя строка подключения ..

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 есть как минимум 100 000.Как я читаю остальные строки.Примечание. Сейчас мне нужно использовать OLEDB, никаких сторонних инструментов.

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

edit: это файлы Excel 2007/2010, с которыми я работаю

edit2: Казалось бы, я действительно могу выбрать все строки в электронной таблице, если я сделаю «Выбрать * из рабочего листа», а не «Выбрать * из рабочего листа ГДЕ-то»

Я предполагаю, что при реализации предложения WHEREрезультирующие строки ограничены 65535

Ответы [ 3 ]

1 голос
/ 19 октября 2010

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

РЕДАКТИРОВАТЬ # 1

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

1 голос
/ 19 октября 2010

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

0 голосов
/ 14 декабря 2010

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

...