V7: быстрая загрузка данных из Excel #126399


#0 by Чучундер
Идея проста: открываем в Экселе, преобразуем в ДБФ, грузим из ДБФа.В примере, приведенном ниже - прайс с шапкой в 11 строк, в 12 - заголовки столбцов на русском, код - в 1 колонке, цена - в 6 колонке (надо еще посмотреть, как эксель будет преобразовывать в ДБФ рассчитываемые ячейки).Итого: прайс в 9000 строк из экселя грузится порядка 40 секунд, после преобразования в ДБФ - 1-2 сек.Пример тестового кода..
#1 by Чучундер
К чему это я...?А! вот!Может кому и полезно будет...
#2 by Партизан
Пригодится - код в копилку с позволения автора ;)
#3 by snif
и я вчера эту идею развивалЯ еще вот чего придумал: бывает, что в Excel, названия колонок на русском и с пробелами. Тогда я в DBF переименовываю колонки на P1,P2 и т.д. и создаю дополнительную колонку colnames, куда запихиваю исходные имена колонок.Есть идея покрасивее?
#4 by Vladis
Сильный ход :)А через ADO не быстрей (и проще код)? ;)
#5 by snif
2 а куда быстрее?2(Чучундер) еще можно вмнсте подумать, как генерировать имена временных dbf-файлов
#6 by Vladis
Телодвижений меньше
#7 by snif
так если один раз толковую процедуру сделать, потом её можно всегда и юзать
#8 by Чучундер
Приведи код, плиз, если можно - в эту же процедуру, чтоб сравнить по скорости.Что надо для использования ADO на компе? В - только Эксель. имена временных файлов - не проблема.
#9 by MaxS
не помню точной команды, но у меня получалось быстрее, если строки читать не по одной ячейке, а блоком, из которого вытаскиваются данные по конкретной ячейке...
#10 by Vladis
В VBS есть функция для получения имени временного файла завтра найду. MDAC только, при наличии офиса должен быть.В другой ветке дал тебе запись, чтение аналогично. Сравни, напиши, самому интересно.
#11 by Vladis
#12 by Чучундер
Пока ускорение в достаточно, из чисто академического интереса - когда время будет - тогда и буду смиотреть., времени не особо...
#13 by snif
2 "Идея проста: открываем в Экселе, преобразуем в ДБФ"Там еще одна фишка есть - я пол-дня искал баг, думал с ума сойду. Excel некорректно создает DBF когда не вся колонка видна визуально. Делал AutoFit (автоширина) - не помогает. Нашел пока такое решение: для всех колонок на листе Excel применяем автоширину, а потом еще Ширина=Ширина+2, тогда DBF создается нормально.
#15 by snif
2 Изобретатели велосипедов..."Компании «Центр автоматизации РиК» удалось решить данную проблему."Это мы должны этой великой компании денег что-ли заплатить?
#16 by snif
Кстати, а почему некоторые ссылки, например, "Скачать картинки (примеры использования Crystal Reports в 1 C )" не работают? ;) Открывал и IE и Оперой - ничего.
#18 by Шухер
16) Мозилла тоже не рулит
#19 by Чучундер
А и не надо ссылки давать, которые только ДЕКЛАРИРУЮТСЯ.Я, вообще-то, написал систему типа 1С, только все для свободного использования и гораздо лучше - только сайт пока не доделал еще...
#20 by snif
вообщем, садись двойка
#22 by snif
Может быть то, что здесь конкретные люди обсуждают конкретный вопрос, а не морковкой на рынке торгуют :)
#23 by Шухер
21) не, точно двойка, садись. + доплати сперва сюда за рекламу
#25 by snif
во, другое делотеперь еще исходники RiK_SQL.dll выложи и будем считать, что ты пропиарился
#28 by snif
СохранитьТаблицуВЕксел и ЗагрузитьТаблицуИзЕкселя - маловато :)у меня есть уже:ЗаписатьДБФ(<ТЗ>,<ПутьДБФ>,<СвойстваПолей>)ОткрытьДБФ(<Путь>,<ИменаКолонок>)ВыводШапки(<НазваниеОтчета>,<Условие1,Условие2...>)ИтогиПоКолонкам(<СверхуИлиСнизу>,<КолонкиДляИтогов>)ИтогиЧистоЁксельныйПрикол(<КолонкиИтогов>)СводнаяТаблица(<Столбцы>,<Строки>,<Данные>)ПечатьСохранитьКакDBF(<Что>,<Куда>,<НомерЛиста>)
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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