powered by simpleCommunicator - 2.0.61     © 2026 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Ускорение формирования экселовского отчета
6 сообщений из 6, страница 1 из 1
Ускорение формирования экселовского отчета
    #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
Ускорение формирования экселовского отчета
    #33312040
MsDatabaseru
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
изначально каждая СТРАНИЦА
...
Рейтинг: 0 / 0
Ускорение формирования экселовского отчета
    #33312150
Леша, UNION - очень медленный метод. очень.

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

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

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

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

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

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

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


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