Цитата:
Сообщение от
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, только что проверил...