Моя програма генерирует отчеты в Excel. Примерно такого вида:
предприятие 1
цех 1
бригада 1
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
* * * * * * * * * *
-------------------
всего по бригаде 1
бригада 2
* * * * * * * * * *
* * * * * * * * * *
-------------------
всего по бригаде 2
всего по цеху 1
цех 2
бригада 1
* * * * * * * * * *
* * * * * * * * * *
-------------------
всего по бригаде 1
бригада 2
* * * * * * * * * *
-------------------
всего по бригаде 2
всего по цеху 2
всего по предприятию 1
... и т.д.
То что выделено * -- это числа. Они оформляются в виде масива и целым куском експортируются. Потом для этой выделеной области рисуется левая, правая, нижняя и верхняя граници.
Названия предприятий, цехов, бригад просто записываются в определенные ячейки, которые потом объеденяются, выделяются жирным и центрируются. Тормоза проявляются больше всего здесь и при рисовании границ.
Использую шаблон с шапкой таблицы и названием. Отключаю всевозможные события, видимость и т.д.
Подскажите советы для увеличения скорости експорта. Експорт в 450 строк длится 1 мин 5 сек
Уважаемые авторы вопросов! Большая просьба сообщить о результатах решения проблемы на этой странице. Иначе, следящие за обсуждением, возможно имеющие аналогичные проблемы, не получают ясного представления об их решении. А авторы ответов не получают обратной связи. Что можно расценивать, как проявление неуважения к отвечающим от автора вопроса.
19-01-2006 02:14 | Комментарий к предыдущим ответам
Показывайте ход формирования в StatusBar'е Excel'я или на форме - это отвлекает пользователя от "тяжкого ожидания" окончания построения отчета ;)
19-01-2006 01:47 | Комментарий к предыдущим ответам
ЗЫ Вообще для 450 строк в Excel'е эта скорость очень даже ничего! Показывайте ход формирования в StatusBar'е Excel'я или на форме - это отвлекает пользователя от "тяжкого ожидания" окончания построения отчета ;)
Это на машине 1Гб ОЗУ WinXP, а у заказчика 128 Мб Win98 где-то в 5 раз медленее
Я делаю примерно так же за исключением "объеденяются, выделяются жирным и центрируются". Сначала формирую все данные и записываю без шапок (в вашем случае цехов, бригад), а потом в отдельном цикле по массиву (не по ячейкам!) просто вставляю пустые строки, копирую форматирование из "эталона" (Templ.Range.EntireRow.Copy(Dist.Range)) и записываю данные шапки, т.е. форматирование уже готово зараннее. Скорость вполне приемлемая. Самые большие тормоза получаются при разбивании на страницы (например след. цех с новой страницы) и при добавлении колонтитула (он формируется тоже из БД). В вашем случае тормоза могут быть и в "Итого по цеху" - попробуйте отключить автокалкуляцию и включить после завершения формирования отчета.
ЗЫ Вообще для 450 строк в Excel'е эта скорость очень даже ничего! Показывайте ход формирования в StatusBar'е Excel'я или на форме - это отвлекает пользователя от "тяжкого ожидания" окончания построения отчета ;)
Если вы заметили орфографическую ошибку на этой странице, просто выделите ошибку мышью и нажмите Ctrl+Enter. Функция может не работать в некоторых версиях броузеров.