| 0
    
        ЧессМастер   15.07.14✎ 17:05 | 
        Всем доброе время суток !
 Делаю загрузку из файла Excel в 1С. Возник вопрос.
 
 ВыбФайл - реквизит на форме.
 
 Делаю так:
 
 Connection =Новый COMОбъект("ADODB.Connection");
 
 флХедер = 0; // в первой строке будут не данные для заголовков (если флХедер=1, то имена полей будут взяты из первой строки таблицы)
 
 
 СтрокаПодключения = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + СокрЛП(ВыбФайл) + ";Extended Properties=""Excel 12.0;"+?(флХедер=1,"","HDR=NO;")+"IMEX=1;""";
 
 в результате получаю колонки в стиле "F1","F2" (как и надо) (за что в описании отвечает параметр "HDR=NO"
 
 Но все значения в ячейках при таком запросе приводятся к строковому значению. В результате по числовому значению ячейки "4600822005076" я получаю "4,6008220051e+012"
 
 Как можно сделать так чтобы запрос вытаскивал данные в том виде в котором они хранятся (без перевода в строки) ?
 
 В документации указано что за приведение всех значений к строке отвечает параметр IMEX=1
 
 Но если делать запрос без него - ничего не меняется.
 
 Например
 СтрокаПодключения = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + СокрЛП(ВыбФайл) + ";Extended Properties=""Excel 12.0;"+?(флХедер=1,"","HDR=NO;")+"""";
 
 выдает такой же результат.
 |  | 
    
        | 2
    
        МихаилМ   15.07.14✎ 19:06 | 
        oledb  провайдер excel опрделяет тип данных по первым 8 сточкам выборки.
 надеюсь,  Range в запросе указваете.
 
 скорее всего в выборку попадают строки : или заголовки , или
 неправильный тип данных в  ячейках.
 
 
 |  |