Долгое программное заполнение листа Excel в 2010 офисе #702420


#0 by fisher
Не могу понять, в чем дело. На 2007 - всё нормально. Под 2010 - в разы медленнее. Включая простую запись значения в ячейку. Кто сталкивался и как лечил?
#1 by МихаилМ
в "На"(На 2007) и "Под"(Под 2010)
#2 by fisher
Вернее, разница больше чем на порядок. Простая запись значения в ячейку в 2007 занимает меньше 2 мс, в 2010 - 28 мс. Простейшее формирование сраной странички стало занимать минуты вместо секунд. Куда копать - не представляю.
#3 by МойКодУныл
Формировать таб документ и его сохранять в excel уже заполненным.
#4 by fisher
Не вариант. Ты думаешь, я это от нечего делать себе руки выкручиваю? Результирующий док надо формировать на основе екселевского шаблона.
#5 by fisher
Сначала думал - дело в совместимых форматах. Пересохранил шаблоны в 2010 екселе - без толку.
#6 by fvadim
а если попробовать перед заполнением екселю сделать EnableEvents = Ложь? ну и лист не показывать пока идёт заполнение.
#7 by Jaap Vduul
Может там куча формул пересчитывается? И в 2007 Calculation = Manual а в 2010 Automatic?
#8 by fisher
Всё без толку...
#9 by Jaap Vduul
Условное форматирование?
#10 by fisher
Статическое. Шаблон содержит шапку и шаблоны строк разных видов. В обработке происходит копирование вставка шаблонов строк и заполнение значений. Всё.
#11 by fisher
Причем тупняк даже простом заполнении значения ячейки, см.
#12 by elCust
При работе с масштабными данными в Excel используй COMSafeArray. В разы быстрее.
#13 by fisher
Слыхал. Но у меня несчастных 5 циферок на строку и до двухсот строк. Производительность вполне устраивала. Не думаю, что смогу получить существенный выигрыш при своей проблеме.
#14 by fisher
Хм... Похоже, что производительность от количества строк зависит нелинейно. Это наводит на мысли...
#15 by fisher
Короче, накопительные тормоза появляются при использовании копирования/вставки строк шаблона. Если просто заполнять данные в неоформленные строки - то запись значения в ячейку в среднем идет 4 мс. Копирование/вставку и так и эдак переписывал. Тормоза не уходят. Последний вариант: Sheet.Rows(НомерНовойСтроки + ":" + НомерНовойСтроки).Insert(-4121); Как еще это можно обыграть? У меня фантазия кончилась.
#16 by МихаилМ
макрос создать и испольнить
#17 by fisher
Да это целое дело. Доступ к макросам разрешать... И далеко не факт что полечит.
#18 by fvadim
способ через ж: использовать xlsx и работать с xml напрямую, вроде и либы есть.
#19 by fisher
Установка сервис-паков проблему не решила :(
#20 by fvadim
в надстройках лишнего не включено? если антивирь вырубить что-нибудь меняется?
#21 by fvadim
вот ещё интересное наблюдение отсюда "В итоге покопались в настройках Excel - для листов на которые происходит выгрузка, в случае, если установлен режим просмотра страницы "Разметка страницы" или "Страничный", то выгрузка идет намного медленнее, если же поставить значение "Обычный", то время выгрузки существенно уменьшается."
Тэги: 1С 8
Ответить:
Комментарии доступны только авторизированным пользователям

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