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 в запросе указваете.
скорее всего в выборку попадают строки : или заголовки , или
неправильный тип данных в ячейках.
|
|