| 
			
			 | 
		#1 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
			
			 
			
			Добрый день! 
		
		
		
		
		
		
		
	Есть такая проблема: мне надо определять высоту ячейки в Excel через Com объекты. В общем случае у меня выбирается какой-то диапазон ячеек, который принадлежит заданному bookmark. Если в этом bookmark всего одна строка, то все отрабатывает и я получаю высоту строчки, но если там, к примеру, 10 строк, то ничего не возвращает (что логично). Реализация сейчас: X++: void execute(str _bookmark) { COM currentRange, currentRange1; COMVariant rowHeightVariant; real rowHeight; int rowsNumber, row; int i; currentRange = mapSection.lookup(_bookmark); currentRange1 = currentRange.rows(); //row = currentRange.row(); rowsNumber = currentRange1.count(); rowHeightVariant = currentRange1.RowHeight(); rowHeight = rowHeightVariant.double(); this.fillData(_bookmark); document.insertBookmarkAfterRow(currentRange,currentRow); currentHeight += rowHeight; currentRow += rowsNumber; }  | 
| 
	
 | 
| 
			
			 | 
		#2 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			Добрый день! 
		
		
		
		
		
		
		
		
			Зачем это нужно, на листы делите? Что необходимо получить в конечном результате? Сделать это можно, например, через X++: ComExcelDocument_RU.findRange Последний раз редактировалось Товарищ ♂uatr; 12.11.2016 в 01:06.  | 
| 
	
 | 
| 
			
			 | 
		#3 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 Цитата: 
	
Да, хочу делить отчет на листы и нужно знать, когда высота превышает допустимую величину. Сейчас попробую это реализовать, спасибо.  | 
| 
	
 | 
| 
			
			 | 
		#4 | 
| 
			
			 Участник 
		
			
	 | 
	
	
	
		
		
		
		 
			
			COM Excel умеет сам разбивать на листы, там надо какое то свойство выставить, что то вроде pagebreak = auto или вроде того, задать параметры печати - А4 и т.п. Дальше можно посмотреть куда ексель вставил pageBreak и вставить туда PageFooter и PageHeader. Если не ошибаюсь, пример использования можно посмотреть в AX2009 в отчётах по ОСам - МБ-2, МБ-4 - RassetReport семейство классов в общем. В случае OpenXML эти значения взять неоткуда - там приложения нет которое всё само корректно посчитает, поэтому и приходится считать самому - такое ощущение что Вы переписываете OpenXML под COM, очень код напоминает. Интересно было бы узнать зачем.
		 
		
		
		
		
		
		
		
	 | 
| 
	
 | 
| 
	
	 | 
	
		
  |