OleDb игнорирует тексты, начинающиеся с 0

Я использую OleDbDataAdapter.

Я пытаюсь получить данные из Excel в DataTable, вот мой код;

var conn = new OleDbConnection(strConn);
        var myCommand = new OleDbDataAdapter(" SELECT * FROM [UPLOADFILE$] ", strConn);
        var inputTable = new DataTable();
        try
        {
            myCommand.Fill(inputTable);
        }

Вот моя Конн Стрит;

"Provider=Microsoft.Jet.OLEDB.4.0;" +
                          "Data Source=" + "MyPath" + ";" +
                          "Extended Properties=\"Excel 8.0;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text\"";

Каким-то образом он удаляет строки, начинающиеся с «0», но с другими все в порядке.

Я также использовал следующие комбинации;

"Provider=Microsoft.Jet.OLEDB.4.0;" +
                      "Data Source=" + "MyPath" + ";" +
                      "Extended Properties=\"Excel 8.0;IMEX=0;TypeGuessRows=0;ImportMixedTypes=Text\"";

"Provider=Microsoft.Jet.OLEDB.4.0;" +
                      "Data Source=" + "MyPath" + ";" +
                      "Extended Properties=\"Excel 8.0;HDR=No;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text\"";

"Provider=Microsoft.Jet.OLEDB.4.0;" +
                      "Data Source=" + "MyPath" + ";" +
                      "Extended Properties=\"Excel 8.0;HDR=Yes;IMEX=1;TypeGuessRows=0;ImportMixedTypes=Text\"";

Заранее спасибо!

Мои попытки;

Excel 8.0;HDR=No;IMEX=1;

person Community    schedule 28.12.2018    source источник
comment
Что вы пытаетесь сделать с соединением, чтобы сказать, что оно каким-то образом удаляет строки, начинающиеся с 0? Пожалуйста, опубликуйте минимальный, но полный код, чтобы люди могли его выполнить и увидеть. Что вы ожидаете от кода?   -  person shahkalpeshp    schedule 28.12.2018
comment
Привет @shahkalpesh, я пытаюсь прочитать данные из Excel.   -  person    schedule 28.12.2018
comment
каково значение ячейки в строке формул Excel?   -  person Slai    schedule 28.12.2018
comment
@Slai, в Excel 0323, в DataTable. Другое бывшее; в Excel 1234, в DataTable 1234. Удаляется только текст, начинающийся с 0.   -  person    schedule 28.12.2018
comment
вы можете попробовать без TypeGuessRows=0;ImportMixedTypes=Text stackoverflow.com/questions/9936646/   -  person Slai    schedule 28.12.2018
comment
@Slai Спасибо за ответ! Я пытался. На этот раз пропущенные значения отображаются правильно, но другие значения отображаются неправильно. Результаты; 2.3305e+009 0730311111 3051411111 1.44091e+010. Результат с e неверен, но другие (0730311111) верны.   -  person    schedule 31.12.2018
comment
@ ÖzerErdönmez OLEDB обычно получает только фактическое значение без числового формата, который вы, вероятно, видите в ячейке. Вот почему я попросил проверить значение в строке формул Excel, а не в ячейке. Чтобы получить числовой формат, вы можете попробовать Office Interop или некоторые библиотеки .xlsx, такие как OpenXML, ClosedXML, EPPlus и т. д.   -  person Slai    schedule 31.12.2018


Ответы (1)


Что бы это ни стоило, это моя строка подключения для чтения Excel через OleDb.

strConn = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" +
    filename + ";Extended Properties='Excel 8.0;HDR=YES;IMEX=1'; ";

Что бы это ни стоило, я попробовал это на некоторых данных и не имел проблем, когда у меня был текст с ведущими нулями.

Ваши данные в таблице или это просто стандартный диапазон? У него есть заголовки? Можете ли вы показать некоторые примеры данных, которые выдают ошибку?

person Hambone    schedule 29.12.2018
comment
Не стандартный диапазон. Он колеблется от 7 до 11 цифр. Да, у него есть заголовок. - person ; 31.12.2018