Соединение OleDb не читает все строки из файла Excel - PullRequest
3 голосов
/ 06 сентября 2011

Я использую соединение OleDb в C # для чтения данных из листа Excel. И заполните его в Datatable.

Лист содержит 275 строк и 27 столбцов. После того, как я прочитал это, строки 1,2 и 3 пусты. Все остальные строки заполнены правильно.

Кто-нибудь имеет представление о проблеме?

Вот мой код:

string connString = "Provider=Microsoft.ACE.OLEDB.12.0;" +
                "Data Source=" + "C:/Sheets/DataSheet.xls" + ";Extended Properties=Excel 12.0;";

objConn = new OleDbConnection(connString);

string Query = "SELECT * FROM [Sheet1$]";
OleDbCommand objCmd = new OleDbCommand(Query, objConn);

DataTable Table = new DataTable();
objAdapter1.SelectCommand = objCmd;
objAdapter1.Fill(Table);

Ответы [ 3 ]

4 голосов
/ 07 сентября 2011

Проблема заключалась в том, что мой лист содержал смешанные данные и считывал только цифры.Решение состоит в том, чтобы указать

Properties=\"Excel 12.0;IMEX=1\";"

IMEX = 1, позволяющий читателю импортировать все данные, а не только цифры

1 голос
/ 06 сентября 2011

Этот пост содержит некоторую информацию о первой строке, которая обрабатывается как заголовок, если только вы не укажете HDR=NO в строке подключения.

Я не уверен, почему 2-й и 3-йоднако строки могут быть пропущены;есть ли разница в их содержании, которое вы можете увидеть?

0 голосов
/ 03 октября 2017

Я просто добавил новую строку в верхнюю строку, и она появляется в наборе данныхПоэтому изменение порядка строк решено в моем случае

...