Форум программистов, компьютерный форум, киберфорум
Наши страницы
1С: Собственные программы
Войти
Регистрация
Восстановить пароль
 
Рейтинг 4.71/7: Рейтинг темы: голосов - 7, средняя оценка - 4.71
GoodLife
9 / 9 / 3
Регистрация: 23.10.2012
Сообщений: 195
1

Считывание с Excel через adodb

11.12.2014, 16:06. Просмотров 1358. Ответов 7
Метки нет (Все метки)

подключаюсь к Эксельке, выбираю запросом все строки, в переборе загружаю. Все вроде норм, но иногда встречаются числа типа 1.232323*Е22. В файлике загрузки все типы ячеек строковые. 1с не может определеить что это Число, при выполнении Число("1.22323*Е22"); аццки ругается. Можно как-то загружать с эксель числа (которые на самом деле текст) в норм виде без этих "Е" ??? В самом Эксель когда тыкаешь на ячейку с таким числом сверху вылазит полная его запись. Запрос щас выглядит как Select From [Все ячейки от А1 до AA99999], как то конкретно тип может задавать?
0
QA
Эксперт
41792 / 34177 / 6122
Регистрация: 12.04.2006
Сообщений: 57,940
11.12.2014, 16:06
Ответы с готовыми решениями:

считывание данных из Excel
Здравствуйте. вот возникла такая проблема (1с 77). Есть книга Excel со множеством листов. Надо...

ADODB.Connection средствами Excel
Всем здрасте! Подскажите как загрузить данные из .xls файла если количество строк и столбцов...

Работа с Adodb.recordset Excel. Выборка
Доброго всем дня. Вот мучаюсь уже некоторое время, никак не могу разобраться. Видимо не замечаю...

Обращение к данным в БД. Ошибка: Объект не является ни ADODB.RecordSet, ни ADODB.Record
при созданиие приложения в коде у меня возникла ошибка подскажите суть проблемы ...

Импорт данных из Access в Excel с использованием объекта Recordset библиотеки ADODB
'Option Explicit Sub AccessToXL() Dim cnn As ADODB.Connection Dim rst As ADODB.Recordset Dim...

7
Xomych
813 / 626 / 102
Регистрация: 01.11.2012
Сообщений: 2,258
11.12.2014, 20:44 2
А ты из ячейки Value читаешь?
1
Dethmontt
Модератор
Эксперт 1С
2685 / 2465 / 428
Регистрация: 10.03.2011
Сообщений: 8,850
Записей в блоге: 1
Завершенные тесты: 1
11.12.2014, 21:50 3
Строку подключения к Эксель покажи
1
GoodLife
9 / 9 / 3
Регистрация: 23.10.2012
Сообщений: 195
12.12.2014, 08:33  [ТС] 4
Раньше всегда подключался так
1C
1
Excel = Новый COMОбъект("Excel.Application");
И читал построчно, но сейчас надо считать 15 000 строк. Все бы ничего, но после получасового ожидания пока все загрузится выскочила ошибка. кот надо отладить, пришлось искать другой способ , нашел вот такой

1C
1
2
3
4
СтрокаПодключения = "Provider=Microsoft.ACE.OLEDB.12.0; Data Source = "+ИмяФайла; 
СтрокаПодключения = СтрокаПодключения + "; Extended Properties = "+"""Excel 12.0"+";HDR=NO;IMEX=1"";"; 
Об_Конект = Новый COMОбъект("ADODB.Connection");
Об_Конект.Open(СтрокаПодключения);
Дальше запрос ко всем ячейкам, было написано что он вернет все ячейки в кот есть записи, собсно
1C
1
2
3
4
СтрЗапроса = " 
    |SELECT * 
    |FROM [A"+КолСтраницШапки+":CZ99999] 
    |";
И читаю
1C
1
2
3
Пока НЕ RecordSet.EOF() Цикл
Значение = RecordSet.Fields(НомерСтолбца-1).value;
КонецЦикла;
0
12.12.2014, 08:33
GoodLife
9 / 9 / 3
Регистрация: 23.10.2012
Сообщений: 195
12.12.2014, 08:49  [ТС] 5
Цитата Сообщение от Xomych Посмотреть сообщение
А ты из ячейки Value читаешь?
Да value , там два других значения ошибка чтения написано, вот скрин ...
Считывание с Excel через adodb
0
Xomych
813 / 626 / 102
Регистрация: 01.11.2012
Сообщений: 2,258
12.12.2014, 09:01 6
Ну на скрине я вижу Число и твои триллионы, так что всё нормально должно быть.
Давай тогда весь код и скрин ошибки
1
GoodLife
9 / 9 / 3
Регистрация: 23.10.2012
Сообщений: 195
12.12.2014, 10:13  [ТС] 7
Цитата Сообщение от Xomych Посмотреть сообщение
Ну на скрине я вижу Число и твои триллионы, так что всё нормально должно быть.
Действительно нету ... просто грузить 15к строк, долго поэтому я открывал в либрОфисе, копипастил около 1к и вставлял в Эксель. Там то эти числа и появились, а так все норм. Еще вопрос остался с запросом, он щас читает все ячейки из таблицы с А[КолЯчеекШапки] по CZ9999999. Т.е. если в документе 10 строк и указать, что шапка равна 1 строке, запрос отработает, в обходе пробежит 9 строк, потом RecordSet.EOF() встанет в истину и цикл прервется, все отработает на ура. Но если указать в этом же документе, что шапка равна 20... (в доке 10 строк)
1C
1
2
3
4
СтрЗапроса = " 
    |SELECT * 
    |FROM [A"+КолСтраницШапки+":CZ99999] 
    |";
то RecordSet.EOF() будет ложью пока не дойдет до посл строки, что ужасно, при чем все строки будут пустые.
0
Dethmontt
Модератор
Эксперт 1С
2685 / 2465 / 428
Регистрация: 10.03.2011
Сообщений: 8,850
Записей в блоге: 1
Завершенные тесты: 1
12.12.2014, 10:53 8
IMEX=1
А без этого параметра такой же результат?
0
12.12.2014, 10:53
Answers
Эксперт
37091 / 29110 / 5898
Регистрация: 17.06.2006
Сообщений: 43,301
12.12.2014, 10:53

Подключить файлик через AdoDB
добрый день есть файлик с разделителями chr(9) помогите составить строку подключения этого файла,...

Подключение к SQL серверу через ADODB
Форумчане, подскажите как правильно прописать ConnectionString при подключении к SQL серверу. При...

XML->ADODB.Stream->ADODB.Recordset
Пытаюсь настроить XML->ADODB.Stream->ADODB.Recordset Подаю ПРАВИЛЬНЫЙ XML на вход ниже...


Искать еще темы с ответами

Или воспользуйтесь поиском по форуму:
8
Ответ Создать тему
Опции темы

КиберФорум - форум программистов, компьютерный форум, программирование
Powered by vBulletin® Version 3.8.9
Copyright ©2000 - 2019, vBulletin Solutions, Inc.
Рейтинг@Mail.ru