Как ускорить выгрузку в эксель? #529346


#0 by zzerro
Тема конечно забитая, но никак не могу увеличить скорость записи в эксель большого объема данных (около 100 тыс строк). Пробовал через ТабличныйДокумент.Записать, но насколько я понял 8.1 не может записывать в xlsx, а в формате xls не входит по количесву строк. Пробовал через Новый COMОбъект("Excel.Application"), но заполнение файла через Лист.Cells(НомерСтроки, 1).Value = Значение;  работает ужасно медленно, хоть и снимается ограничение по количесву строк, т.к. установлен 2010 офис. Подскажите, чем еще можно записать данные в эксель, желательно с примером.
#1 by izekia
можно записать в хмл таблицу с хслт форматированием минус - не поддерживаются группировки
#2 by Nexux
через ADO, возможно
#3 by skunk
2010 само по себе было "снятно" ограничение на количество строк ... хотя по факту ограничение есть
#4 by izekia
получается апдейтить каждую строчку, не медленно получится?
#5 by skunk
хотя данное ограничение еще 2007 снялось
#6 by skunk
нет не получается ... ну можно ускорить работу самого екселя и по оле ... правда не так сильно как с адо ...
#7 by mikecool
присвоение не тормозит обычно, оформляешь наверное тут же при выводе?
#8 by mikecool
+7 рисовал как то вывод в эксель из 7-ки 8-10 листов по 30-40 тыщ записей сам вывод - занимал минуты 2-3 оформление - уже массово после вывода
#9 by skunk
надо отключать в екселе видимость ... перерисовку экрана ...
#10 by mikecool
кстати да, важный момент а насчет оформления после вывода - замерял, производительность вырастает в 10-20 раз
#11 by zzerro
Мне оформление не нужно, ничего такого не делаю, просто присваиваю значения ячейкам. Отключал, никакой разницы ощутимой не заметил Вот собственно код:
#12 by zzerro
80 тыс записей выводит минут 30 а то и больше... многовато
#13 by Happy Bear
через ADO скорость увеличивается существенно, сам проверял
#14 by zzerro
А можно пример?
#15 by simol
В DBF, а его открыть в Excel?
#16 by zzerro
Можно пример, а то считывание через ADO делал, а вот с записью не сталкивался еще
#17 by zzerro
DBF не подойдет... уж лучше тогда csv
#18 by КМ155
тот же рекордсет + AddNew
#19 by izekia
попробую накидать, ты, кстати, зачем дату форматируешь?
#20 by izekia
кстати, еще есть вариант напрямую в эксель тащить с сиквела, но здесь проблема с безопасностью, как я понимаю
#21 by Happy Bear
#22 by Tatitutu
сохрани таблицу как копию в формате htm а потом открой в ексели и сохрани как нужно в разы скорость изменится.
#23 by izekia
в общем логика такая, самому пока некогда:
#24 by izekia
просто дома все ссылки
#25 by ado
А как насчет Йокселя? Или он с новыми форматами офиса не дружит?
#26 by AversDik2
Выгрузить в SQL (отдельную базу) и из нее взять данные в Excel
#27 by ado
По идее, не быстрее ADO будет.
#28 by asady
поиск рулит
#29 by izekia
через COMSafeArray конечно быстрее вот простой пример с использованием XML и XSL:
Тэги:
Ответить:
Комментарии доступны только авторизированным пользователям

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