|
![]() |
#1 |
Administrator
|
и еще мааленькое добавление.
В Аксапте еще с 3.0 есть очень хорошее семейство классов SysExcel*. Начинать следует с SysExcelApplication. Это семейство очень упрощает работу с Excel, особенно если требуется учесть разные версии, в отличие от ComExcelDocument_RU. Конечно - это семейство далеко неполное и возможно его захочется расширить. Но у этого семейства классов есть пожалуй самый главный плюс - везде есть метод comObject - который всегда позволяет вернуться к COM-объектам и без лишнего модифицирования объектов - сделать свою задачу.
__________________
Возможно сделать все. Вопрос времени |
|
![]() |
#2 |
int 20h
|
to Gustav без обид:
Можно было конечно рассказать о существовании вывода в Ексель через механизмы прямого обращения через COM, используя операции с текстовым буфером и вставкой всех данных за раз, но за чем. Ведь человек просто спросил как должен был выглядеть метод копирования колонок. Он не требовал механизма оптимизации и прочего чудо программирования где можно было безусловно раскрыть Ваши способности.(кои не раз спасали жизнь мне, скажу честно пользовался Вашими советами) но для примера и начала разбора с механизмами подойдет способ предложенный ice и простенький метод копирования. Далее он сам все найдет. Мы же не сразу со знаниями рождаемся, а приобретаем их по ходу жизни. А вообще Вы как всегда правы в своем посте. ![]()
__________________
It's just my Unhopelessnessabilityerism ![]() Trying to debug my mind ![]() |
|
![]() |
#3 |
Moderator
|
Абсолютно. Я ж сразу предупредил - ничего личного. Мы просто делаем тихую революцию
![]() Цитата:
Спасибо, очень приятно ![]() Цитата:
Ну вот и смотрит человек и видит, аналогично как и в других методах этого класса, что чтобы выполнить простую операцию надо эвона сколько строк понаписать. Они все правильные - иначе ж бы не работало. Но они - лишние... Вот как уже достаточно (бог с ними пока с букмарками): X++: void copy(MSOfficeBookMark_RU bookMark1, MSOfficeBookMark_RU bookMark2, int _workSheet = 1) { Com range1,range2; if (m_comDocument) { range1 = this.findRange(bookMark1, _workSheet); range2 = this.findRange(bookMark2, _workSheet); range1.copy(range2); } } X++: void copy(COM range1, COM range2) { if (m_comDocument) { range1.copy(range2); } } Цитата:
Спасибо еще раз и простите, что еще раз тут повыступал. ![]() |
|
|
За это сообщение автора поблагодарили: zZ_TOP_Zz (1). |