чтение файла Excel через ado - разные типы данных #571774


#0 by fimanich
Всем привет! Читаю данные из файла Excel через ado. Все читается нормально, но: есть колонка "Счет", и счет может быть представлен как строка, например, "60.01", а может как число, например 76. Так вот, которые как строка - нормально считываются, а которые как число - те равны Null. Есть ли какой-то выход в данной ситуации?
#1 by fimanich
Отзовитесь, спецы!
#2 by zladenuw
Null когда читаешь с excel  или когда ?
#3 by fimanich
Null при чтении, т.е. если в ячейке число (например,76), то rs.Fields.value = Null а если в ячейке строка, например "60.2", то rs.Fields.value = "60.2"
#4 by ado
Да, через меня нормально только строки читаются. По крайней мере в 1С. Делай в запросе преобразование к строке.
#5 by ado
+ Через CAST, например.
#6 by fimanich
!!!! ты именно тот, кто может помочь !!! помоги, пожалуйста, не соображу, как мне в данном случае запрос переделать, сейчас код такой:        Сообщить("Не удалось выполнить запрос к файлу Excel
#7 by ado
Звездочку убери, перечисли поля поименно и заключи каждое вот в такую конструкцию: CAST(имя_поля AS char)
#8 by Kerk
Вопрос под тему: АДО поймет русское название колонок?
#9 by ado
А фик его знает. По идее должен.
#10 by ado
+ Вообще, это, конечно, от драйвера источника зависит.
#11 by shuhard
зависит от провайдера, во многих случаях помогает [] на крайний случай есть индекс колонки
#12 by fimanich
Поменял запрос на такой (никакой код, кроме текста запроса не менял): В итоге ошибка: {Форма.Форма.Форма}: Ошибка при получении значения атрибута контекста (EOF)    Пока НЕ rs.EOF Цикл по причине: Произошла исключительная ситуация (ADODB.Recordset): Операция не допускается, если объект закрыт.
#13 by Kerk
) Спасибо, Попробую. Если не взлетит, буду делать классическим способом.
#14 by Kerk
Еще вопросик: через dll-ку "ёсел.dll" будет не медленнее читать файл Excel, чем COMОбъект("Excel.Application")?
#15 by shuhard
строку подключения поменяй поставь в ней заветные ;HDR=No;IMEX=1" и убери CAST
#16 by fimanich
наверное, это тестировать надо. У меня всё же просьба ответить на , а то начинаем немного от темы отходить.
#17 by fimanich
ты не мог бы строку подключения полностью привести? Моя первоначальная: А то вот так пишу - ошибку выдает: ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" + ИмяФайлаЗагрузки + ";Extended Properties=" + "Excel 8.0;HDR=No;IMEX=1";
#18 by shuhard
...
#20 by fimanich
Огромное спасибо, взлетело!!! Спасибо всем участникам!!!
#21 by shuhard
вот что IMEX животворящий делает
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

В этой группе 1С