оптимизация формирования экселевского файла
От: Леонид  
Дата: 20.01.05 15:17
Оценка:
Доброе время суток

Формирую я с помощью VBSкрипта из хмл-евских файлов экселевский док. Док имеет большое кол-во строк, ячейки с коментариями, с разными цветами, размерами и пр. фигней
Так вот в связи с этим ищу возможные пути оптимизации данного процесса... Направьте плиз. если кому что либо такое встречалось, где можно почитать. "Свои" мысли также приветствуются!!!

Да и по ходу пара вопросов:
1) если Эксель.Visible=false, то на скорость формирования отчета уже не влияет вкл/отключение рефреша листа. Имеется ввиду Application.ScreenUpdating
2) отключить временно autoFit что либо даст?

В общем с миру по нитке...
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
---
С ув. Леонид
Re: оптимизация формирования экселевского файла
От: Sergey_SV  
Дата: 22.01.05 12:50
Оценка:
Если совсем поджимает время обработки, то обычно советуют использовать шаблоны. Есть даже примеры, когда эти файлы-шаблоны в бинарном виде храняться где-нибудь (в ресурсах, в базе данных — в бинарных полях), а потом вынимаются от туда, создают файл-шаблон на диске и его уже открывают — т.о. шаблон всегда с тобой.

Для убыстрения Excel'я можно еще такие настройки применять:
Application.Calculation = xlCalculationManual
Application.EnableAnimations = False
Application.EnableEvents = False

Ну и большое значение конечно имеет сам код форматирования — это целое поле для деятельности. Чем меньше будет лишних вызовов и обращений к ячейкам, тем лучше, ну и конечно никаких .Select Так что, код в студию
Re[2]: оптимизация формирования экселевского файла
От: Леонид  
Дата: 24.01.05 09:30
Оценка:
Здравствуйте, Sergey_SV, Вы писали:

S_S>Если совсем поджимает время обработки, то обычно советуют использовать шаблоны. Есть даже примеры, когда эти файлы-шаблоны в бинарном виде храняться где-нибудь (в ресурсах, в базе данных — в бинарных полях), а потом вынимаются от туда, создают файл-шаблон на диске и его уже открывают — т.о. шаблон всегда с тобой.

Что за шаблоны?

S_S>Для убыстрения Excel'я можно еще такие настройки применять:

S_S>Application.Calculation = xlCalculationManual
S_S>Application.EnableAnimations = False
S_S>Application.EnableEvents = False
Попробую, сообщу. Спасибо

S_S>Ну и большое значение конечно имеет сам код форматирования — это целое поле для деятельности. Чем меньше будет лишних вызовов и обращений к ячейкам, тем лучше, ну и конечно никаких .Select Так что, код в студию


Я бы с радостью, но... 1800 строк кода в скрипте, как то...
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
---
С ув. Леонид
Re[3]: оптимизация формирования экселевского файла
От: SergeySV2  
Дата: 24.01.05 13:55
Оценка:
Здравствуйте, Леонид, Вы писали:

Л>Здравствуйте, Sergey_SV, Вы писали:


S_S>>Если совсем поджимает время обработки, то обычно советуют использовать шаблоны. Есть даже примеры, когда эти файлы-шаблоны в бинарном виде храняться где-нибудь (в ресурсах, в базе данных — в бинарных полях), а потом вынимаются от туда, создают файл-шаблон на диске и его уже открывают — т.о. шаблон всегда с тобой.

Л> Что за шаблоны?

Берешь обычную книгу-xls, форматируешь ее как хочешь, заполняешь какими-нибудь данными (обычно это шапка таблицы, поля формы) и потм сохраняешь ее как "Шаблон" *.xlt, подробнее про шаблоны можно почитать в справке, вещь вообщем то приятная

Л>Я бы с радостью, но... 1800 строк кода в скрипте, как то...


Ну тогда, в качестве общих совета: стараться свести код к меньшему кол-ву строк — это показатель, если с какой-то группой ячеек надо проделать одинаковые действия, то не применять их к каждой ячейке по отд., а использовать диапазон ячеек, в Range() можно объединять и несвязанные между собой ячейки
Re[4]: оптимизация формирования экселевского файла
От: Леонид  
Дата: 24.01.05 15:58
Оценка:
Здравствуйте, SergeySV2, Вы писали:



S_S>>>Если совсем поджимает время обработки, то обычно советуют использовать шаблоны. Есть даже примеры, когда эти файлы-шаблоны в бинарном виде храняться где-нибудь (в ресурсах, в базе данных — в бинарных полях), а потом вынимаются от туда, создают файл-шаблон на диске и его уже открывают — т.о. шаблон всегда с тобой.

Л>> Что за шаблоны?

SSV>Берешь обычную книгу-xls, форматируешь ее как хочешь, заполняешь какими-нибудь данными (обычно это шапка таблицы, поля формы) и потм сохраняешь ее как "Шаблон" *.xlt, подробнее про шаблоны можно почитать в справке, вещь вообщем то приятная


Л>>Я бы с радостью, но... 1800 строк кода в скрипте, как то...


SSV>Ну тогда, в качестве общих совета: стараться свести код к меньшему кол-ву строк — это показатель, если с какой-то группой ячеек надо проделать одинаковые действия, то не применять их к каждой ячейке по отд., а использовать диапазон ячеек, в Range() можно объединять и несвязанные между собой ячейки


Ха. а вот по поводу Range() — дельный совет, сам что то не додумался, спасибо!
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
---
С ув. Леонид
Re[5]: оптимизация формирования экселевского файла
От: Леонид  
Дата: 25.01.05 07:07
Оценка:
Здравствуйте, Леонид, Вы писали:

Л>Здравствуйте, SergeySV2, Вы писали:




S_S>>>>Если совсем поджимает время обработки, то обычно советуют использовать шаблоны. Есть даже примеры, когда эти файлы-шаблоны в бинарном виде храняться где-нибудь (в ресурсах, в базе данных — в бинарных полях), а потом вынимаются от туда, создают файл-шаблон на диске и его уже открывают — т.о. шаблон всегда с тобой.

Л>>> Что за шаблоны?

SSV>>Берешь обычную книгу-xls, форматируешь ее как хочешь, заполняешь какими-нибудь данными (обычно это шапка таблицы, поля формы) и потм сохраняешь ее как "Шаблон" *.xlt, подробнее про шаблоны можно почитать в справке, вещь вообщем то приятная


Л>>>Я бы с радостью, но... 1800 строк кода в скрипте, как то...


SSV>>Ну тогда, в качестве общих совета: стараться свести код к меньшему кол-ву строк — это показатель, если с какой-то группой ячеек надо проделать одинаковые действия, то не применять их к каждой ячейке по отд., а использовать диапазон ячеек, в Range() можно объединять и несвязанные между собой ячейки


Л>Ха. а вот по поводу Range() — дельный совет, сам что то не додумался, спасибо!


Гы. Сразу наткнулся на проблему. Есть у меня строка адресов одинаковых ячеек. Хотелось бы получить её Range(), так нет такую длинну он не принимает Хочет строку покороче... Что делать? Резать строку? Не очень то хотелось бы... А ведь у меня строки и подлиннее в несколько раз есть...

Это для примера. Может я сам метод не так вызвываю?

Set oRange =Range("G59:BB59,V25,AM25,V41,AN25,V42,AO25,V43,AP25,V44,AQ25,V45,AR25,V46,AS25,V47,AT25,V48,AV25,V50,AW25,V51,AX25,V52,AU25,V49,AE25,V34,AM41,AN41,AM42,AO41,AM43,AP41,AM44,AQ41,AM45,AR41")
... << RSDN@Home 1.1.4 beta 3 rev. 185>>
---
С ув. Леонид
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.