| Предыдущая тема :: Следующая тема | 
	
	
		| Автор | Сообщение | 
	
		| cymtu Участник - экстремал
 
 
 Вступление в Клуб: 26.03.2008
 
 | 
			
				|  Чт Июл 08, 2010 08:38   Изменение высоты строки в Excel |   |  
				| Полезность: Нет оценки 
 |  
				| Кто - нибудь может уже занималься разработкой функций изменения высоты в строки Excel, наподобие функций SET_COLUMN_WIDTH??? Поделитесь кодом, а то разрабатывать лень    . P.S.
 И совсем уж экзотический вариант может кто разрабатывал функцию для считывания высоты строки в Excel??? То же было бы неплохо подкинуть код.
 |  | 
	
		|  | 
	
		| r00st Эксперт
 
 
 Вступление в Клуб: 14.09.2007
 
 | 
			
				|  Чт Июл 08, 2010 08:52    |   |  
				| Полезность: 2 
 |  
				|  	  | Код: |  	  | excel.cmd('Sheet.Rows ("' || :row || '").RowHeight = :height'); | 
 |  | 
	
		|  | 
	
		| jeel Участник
 
 
 Вступление в Клуб: 26.06.2008
 
 | 
			
				|  Чт Июл 08, 2010 08:58    |   |  
				| Полезность: 1 
 |  
				| Можно сделать через скрипты Visual Basic: Изменение высоты строки примерно будет выглядеть так:
 [EXCEL].cmd('sheet.cells.RowHeight = 20');
 |  | 
	
		|  | 
	
		| cymtu Участник - экстремал
 
 
 Вступление в Клуб: 26.03.2008
 
 | 
			
				|  Чт Июл 08, 2010 09:03    |   |  
				| Полезность: Нет оценки 
 |  
				| Как мне подсказали оказывается такая функция уже есть в пакете Excel называется SET_ROW_HEIGHT, но почему то она не указана в документаций. |  | 
	
		|  | 
	
		| Andry Участник - экстремал
 
 
 Вступление в Клуб: 14.01.2009
 
 | 
			
				|  Ср Окт 06, 2010 16:47    |   |  
				| Полезность: Нет оценки 
 |  
				| Была ли у кого-нибудь проблема с тем неверной установкой высоты строки? ни через
 EXCEL.SET_ROW_HEIGHT(20,20,100);
 ни через
 EXCEL.AutoFitRow(20,1);
 
 - каждый раз высота сбрасывается самостоятельно в ненужный мне маленький размер.
 |  | 
	
		|  | 
	
		| omela Участник со стажем
 
 
 Вступление в Клуб: 01.07.2008
 
 | 
			
				|  Вс Ноя 14, 2010 22:04    |   |  
				| Полезность: Нет оценки 
 |  
				|  	  | Andry пишет: |  	  | Была ли у кого-нибудь проблема с тем неверной установкой высоты строки? ни через
 EXCEL.SET_ROW_HEIGHT(20,20,100);
 ни через
 EXCEL.AutoFitRow(20,1);
 
 - каждый раз высота сбрасывается самостоятельно в ненужный мне маленький размер.
 | 
 
 excel.cmd ('Sheet.Rows("'||row||'").RowHeight = Sheet.Rows("'||row||'").RowHeight * ' || to_char(ceil(length(TEXT) /N)));
 
 где
 TEXT - это текст, который выводите
 N  - число, ширина колонки, на которую стоит ориентироваться, чтобы правильно подобрать высоту строки
 _________________
 Трехглазый передает привет банкирам, и желает им долгого здравия (:.
 |  | 
	
		|  | 
	
		| .СергейПанин Участник - экстремал
 
 
 Вступление в Клуб: 24.06.2008
 
 | 
			
				|  Пн Ноя 15, 2010 08:41    |   |  
				| Полезность: Нет оценки 
 |  
				|  	  | omela пишет: |  	  | excel.cmd ('Sheet.Rows("'||row||'").RowHeight = Sheet.Rows("'||row||'").RowHeight * ' || to_char(ceil(length(TEXT) /N))); 
 | 
 
 не отработает если строка состоит из:
 ШШШШШШШШШШШШШШШШШШ
 или
 IIIIIIIIIIIIIIIIIIII
 |  | 
	
		|  | 
	
		| omela Участник со стажем
 
 
 Вступление в Клуб: 01.07.2008
 
 | 
			
				|  Вт Ноя 16, 2010 21:20    |   |  
				| Полезность: Нет оценки 
 |  
				|  	  | DC_Sergey пишет: |  	  |  	  | omela пишет: |  	  | excel.cmd ('Sheet.Rows("'||row||'").RowHeight = Sheet.Rows("'||row||'").RowHeight * ' || to_char(ceil(length(TEXT) /N))); 
 | 
 
 не отработает если строка состоит из:
 ШШШШШШШШШШШШШШШШШШ
 или
 IIIIIIIIIIIIIIIIIIII
 | 
 Что-то я такого не заметила. Только что попробовала - все ОК. Все переносит.
 А что буква "Ш" или "I" перестали быть символом в тексте? Мы же по сути тут length(TEXT) считаем длину текста и все равно что там за символы.
 _________________
 Трехглазый передает привет банкирам, и желает им долгого здравия (:.
 |  | 
	
		|  | 
	
		| .СергейПанин Участник - экстремал
 
 
 Вступление в Клуб: 24.06.2008
 
 | 
			
				|  Ср Ноя 17, 2010 09:18    |   |  
				| Полезность: Нет оценки 
 |  
				|  	  | omela пишет: |  	  | А что буква "Ш" или "I" перестали быть символом в тексте? Мы же по сути тут length(TEXT) считаем длину текста и все равно что там за символы. | 
 
 гы гы гы
  а я думал length('II') и length('ШШ') разные по длине... у первго 2 сиивола, а у второго - символа 2   
 я о том, что, к примеру, если у Вас ширина ячейки = 10
 строка из 'IIIIIIIIII' уместится в одну строчку
 а 'ШШШШШШШШШШ' уже в 2.
 |  | 
	
		|  | 
	
		| .СергейПанин Участник - экстремал
 
 
 Вступление в Клуб: 24.06.2008
 
 | 
			
				|  Чт Фев 17, 2011 09:49   мысли с утра... |   |  
				| Полезность: 1 
 |  
				| т.к. автоподбор высоты не работает если есть объедиенния в ячейках ( иначе все проблемм не было ) можно поступить так : - в шаблоне создаем tmp-лист ( переносить по словам у ячеек - "Да" )
 - при формировании строки, параллельно на tmp-лист пишем значения в необъединенные ячейки
 - затем
 
  	  | Код: |  	  | EXCEL.CMD('My_Height = Sheet.Rows("'||i||':'||i||'").RowHeight');
 EXCEL.Open_Sheet(1);
 EXCEL.CMD('Sheet.Rows("'||i||':'||i||'").RowHeight = My_Height);
 
 | 
 -----
 Скандалы, интриги, расследования ? всмысле замечания, предложения ?
 |  | 
	
		|  | 
	
		| omela Участник со стажем
 
 
 Вступление в Клуб: 01.07.2008
 
 | 
			
				|  Ср Мар 23, 2011 22:21   Re: мысли с утра... |   |  
				| Полезность: Нет оценки 
 |  
				|  	  | .СергейПанин пишет: |  	  | т.к. автоподбор высоты не работает если есть объедиенния в ячейках ( иначе все проблемм не было ) можно поступить так : - в шаблоне создаем tmp-лист ( переносить по словам у ячеек - "Да" )
 - при формировании строки, параллельно на tmp-лист пишем значения в необъединенные ячейки
 - затем
 
  	  | Код: |  	  | EXCEL.CMD('My_Height = Sheet.Rows("'||i||':'||i||'").RowHeight');
 EXCEL.Open_Sheet(1);
 EXCEL.CMD('Sheet.Rows("'||i||':'||i||'").RowHeight = My_Height);
 
 | 
 -----
 Скандалы, интриги, расследования ? всмысле замечания, предложения ?
 | 
 
 А зачем на другом листе? Почему нельзя дублировать данные объеденных ячеек на том же листе, но в другой колонке, где ячейки не объеденные, стоит перенос по словам и сделать на этой колонке автофит, а потом эту колонку удалить в конце вывода отчета.
 _________________
 Трехглазый передает привет банкирам, и желает им долгого здравия (:.
 |  | 
	
		|  | 
	
		| lki Участник со стажем
 
 
 Вступление в Клуб: 18.03.2008
 
 | 
			
				|  Пн Дек 19, 2011 17:15    |   |  
				| Полезность: Нет оценки 
 |  
				| есть у меня один могильничек...(с) 
  	  | Код: |  	  | --Объединение ячеек в строке с автоподбором высоты --x строка, y1..y2 интервал объединяемых в строке ячейки
 procedure AutoFitMerge(x in integer,y1 in integer,y2 in integer)
 is
 begin
 excel.print_array;
 excel.cmd(
 'With Sheet.Range(Sheet.Cells('||x||','||y1||'),Sheet.Cells('||x||','||y2||'))
 .Select
 If .MergeCells=true Then
 .MergeCells=false
 End If
 al=.HorizontalAlignment
 .HorizontalAlignment=7
 .WrapText=true
 .EntireRow.AutoFit
 End With
 i=Sheet.Rows("'||x||':'||x||'").RowHeight
 With Sheet.Range(Sheet.Cells('||x||','||y1||'),Sheet.Cells('||x||','||y2||'))
 .HorizontalAlignment=al
 .WrapText=true
 .MergeCells=true
 End With
 sheet.Rows("'||x||':'||x||'").RowHeight=i');
 excel.print_array;
 end;
 
 | 
 как-то так, может кому поможет
 |  | 
	
		|  | 
	
		|  |