Показать сообщение отдельно
Старый 03.10.2006, 16:19   #8  
mmm is offline
mmm
Участник
 
33 / 43 (2) +++
Регистрация: 10.07.2002
Адрес: Ukraine
Цитата:
Сообщение от Gustav Посмотреть сообщение
Да, вынужден признать, что замечательного excel'ного метода PasteSpecial (чтобы скопировать только формат первой строки на все остальные) я у OWC.Spreadsheet, увы, не нашёл. Совет мой имел, конечно, "чисто эксельные корни"...

Тем не менее предлагаю следующую альтернативу - развертывать формат на следующую строку в цикле по мере вывода данных, т.е.

- стираете содержимое 1-й строки (если в ней есть какие-то старые или шаблонные данные)
- копируете 1-ю строку во 2-ю (поскольку 1-я пустая, то копируется только формат)
- выводите данные в 1-ю строку
- копируете 2-ю строку в 3-ю
- выводите данные в 2-ю строку
- копируете 3-ю строку в 4-ю
- и т.д. до последней записи в наборе данных
- по окончании можно удалить последнюю пустую строку после последней строки данных (в случае, если была цветная заливка или бордеры, иначе - можно и не удалять)
Я пользовался таким методом:
- В шаблоне присвоил имена, тем ячейкам, в которые нужно выводить информацию.
- Шаблон открывается отдельно, лист отчета отдельно.
- Вывожу первую строку данных в шаблон.
- Копирую ее и вставляю в лист отчета.
- Вывожу вторую строку данных в шаблон.
- Копирую ее и вставляю в лист отчета.
и т.д. до последней строки.

Цитата:
Сообщение от Gustav Посмотреть сообщение
Попробуйте победить так:

Spreadsheet.ScreenUpdating( false );
..... (выводим данные).................
Spreadsheet.ScreenUpdating( true );

(для способа 1 это, кстати, тоже актуально!)
уже пробывал не помогло, это видать где то в Windows нужно отключать, т.к. мерцание мыши происходит при вставке любых данных в Excel, только что проверил...