Гость
Целевая тема:
Создать новую тему:
Автор:
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Ускорение формирования экселовского отчета / 6 сообщений из 6, страница 1 из 1
07.10.2005, 15:45:01
    #33312034
MsDatabaseru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорение формирования экселовского отчета
изначально отчет формировался втупую долбя значения ячеек и формат напрямую в эксель. (отчет сложный , около 4 мегабайт густо раскрашен и заполнен )
сегдня закончил оптимизацию

(замеры включают только время форматирования, исключено время запросов данных )

1 изначально каждая ячейка форматировалась отдельно = 40 минут/ лист

2 складывание адресов под однотипное форматирование в строковую переменную и объектом рэнж по адресу через запятую (разбивая по 250 символов ) 5 минут/ лист

3 создание листа на основании шаблона xlt с заготовленной функцией (у екселя по умолчанию в безопасности стоит разрешено коду шаблонов)
из управляющего приложения (аксесс) вызывается методом
XL.Run "Этакнига.ExcelOut ", OutRange, CellValue, CellFormat
40 секунд/ лист

4 внутри экселовской процедуры объеденил
передаваемые диапазоны в виде OutRange = "a1,a2,a3,a4,b1,b2,b3,b4"
в вид OutRange = "$a$1:$b$4"
при помощи встроенного метода приложения
excel.application.union (range1, range2)
результат 2,5 секунды / лист
...
Рейтинг: 0 / 0
07.10.2005, 15:46:15
    #33312040
MsDatabaseru
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорение формирования экселовского отчета
изначально каждая СТРАНИЦА
...
Рейтинг: 0 / 0
07.10.2005, 16:11:11
    #33312150
Ускорение формирования экселовского отчета
Леша, UNION - очень медленный метод. очень.

я как-то выкладывал классик в твой топик, он текстовый адрес формирует много быстрее униона. в паре с Evaluate работал.
если унионов много - ты ищо много времени съекономишь, если от него откажешся.
...
Рейтинг: 0 / 0
07.10.2005, 16:24:35
    #33312188
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорение формирования экселовского отчета
у меня юнион выполняется всего четыре раза дял каждого из форматов
всегда из самого экселя,

объединение которое было когда то пробовал - что то не получилось
...
Рейтинг: 0 / 0
07.10.2005, 22:56:34
    #33312785
100g
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорение формирования экселовского отчета
Забей на тактику.
Пересмотри стратегию.
...
Рейтинг: 0 / 0
08.10.2005, 10:59:18
    #33312917
АлексейК
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Ускорение формирования экселовского отчета
если пересматривать стратегию то может быть так:

пусть будет две коллекции
коллекция формата ячейки - связанная коллекция ренжей

все форматирование передаю в функцию наполнения коллекций

например надо добавить примечание aaa цвет зеленый значение 8 в ячейку а1

функция смотрит наличие такого формата в коллекции если нет то добавляет
и добавляет связанный рэнж, если уже есть просто добавляет связанный рэнж

после окончания расчета данных для отчета обе коллекции передаются в функцию отчета которая по каждому элементу коллекции форматирует диапазоны документа
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Ускорение формирования экселовского отчета / 6 сообщений из 6, страница 1 из 1
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]