| Предыдущая тема :: Следующая тема   | 
	
	
	
		| Автор | 
		Сообщение | 
	
	
		Blackmore64 Профи
 
  Вступление в Клуб: 17.01.2017
  | 
		
			
				 Вт Апр 23, 2019 08:38   Гиперссылка при выводе EXCEL-отчета через OOXML | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Добрый день.
 
Создана операция по выводу групп доступа с доступными объектами:
 
- на первом листе - список групп
 
- на каждом последующем листе - доступные объекты одной из существующих групп доступа.
 
На первом листе есть колонка со ссылкой на лист с соответствующей группой.
 
Конструкция 
 
 	  | Код: | 	 		  | &xl.hyperlink(cur_row, 3, '"#"&B' || cur_row || '&"!A1";">>>"', null, 1); | 	  выводит подчеркнутые возрастающие числа (5, 137, 186 и т.д.), т.е. ссылка не получается. Плюс при формировании отчета выходит ощибка "В книге обнаружено содержимое, которое не удалось прочитать. попробовать восстановить содержимое?". Затем
 
"Была выполнена проверка на уровне файла с последующим восстановлением файла. Некоторые фрагменты документа могли быть восстановлены либо удалены.
 
Восстановленный компонент: Компонент /xl/worksheets/sheet1.xml. 
 
Удаленное свойство: Гиперссылки из части /xl/worksheets/sheet1.xml".
 
Если переделать так  	  | Код: | 	 		  | &xl.cell(cur_row, 3, ('=ГИПЕРССЫЛКА("#"&B' || cur_row || '&"!A1";">>>")'|| NL$)); | 	  то ссылка, например, на 2-й лист выводится так
 
=ГИПЕРССЫЛКА("#"&B2&"!A1";">>>")
 
И ссылка начинает работать только если в зайти ячейку по F2 и нажать Enter.
 
Примеров использования &xl.hyperlink в дистрибутиве не нашел.
 
Что не так делаем? | 
			 
		  | 
	
	
		  | 
	
	
		Volod Эксперт
 
  Вступление в Клуб: 19.09.2007
  | 
		
			
				 Вт Апр 23, 2019 11:34    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				| я бы попробовал сравнить sheet1 с корректным линком и sheet1 с некорректным линком | 
			 
		  | 
	
	
		  | 
	
	
		Blackmore64 Профи
 
  Вступление в Клуб: 17.01.2017
  | 
		
			
				 Вт Апр 23, 2019 13:48    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				Пример сформированного файла с конструкцией
 
=ГИПЕРССЫЛКА("#"&B2&"!A1";">>>") 
 
Ячейки C2 и C3 стали корректными после ручного F2 и нажатия Enter. Ячейку С4 не трогали.
 
Мне, правда, интересней чтоб заработало с &xl.hyperlink... | 
			 
		  | 
	
	
		  | 
	
	
		Blackmore64 Профи
 
  Вступление в Клуб: 17.01.2017
  | 
		
			
				 Вт Апр 23, 2019 13:59    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				| Или может есть способ, чтобы прямо в операции можно было запрограммировать нажатие F2 и Enter | 
			 
		  | 
	
	
		  | 
	
	
		Gobur Профи
 
  Вступление в Клуб: 06.11.2012
  | 
		
			
				 Вт Апр 23, 2019 16:18    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Blackmore64 пишет: | 	 		  | Или может есть способ, чтобы прямо в операции можно было запрограммировать нажатие F2 и Enter | 	  
 
Не знаю как сейчас, но раньше в эксель программно в ячейку надо было писать английское название функции, т.е. не ГИПЕРССЫЛКА.
 
Иначе тоже начинало работать только после F2 и enter. | 
			 
		  | 
	
	
		  | 
	
	
		Blackmore64 Профи
 
  Вступление в Клуб: 17.01.2017
  | 
		
			
				 Ср Апр 24, 2019 07:34    | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | Gobur пишет: | 	 		  раньше в эксель программно в ячейку надо было писать английское название функции, т.е. не ГИПЕРССЫЛКА.
 
Иначе тоже начинало работать только после F2 и enter. | 	  
 
Попробовал =HYPERLINK("#"&B2&"!A1";">>>") - почему-то вообще не работает. После нажатия F2 и Enter ошибка #ИМЯ? | 
			 
		  | 
	
	
		  | 
	
	
		kai Профи
 
  Вступление в Клуб: 16.08.2012
  | 
		
			
				 Пт Апр 26, 2019 13:19   [OOXML]::[API_XL].hyperlink | 
				     | 
			 
			
				Полезность: 1 
  | 
			 
			
				Сейчас в [OOXML]::[API_XL].hyperlink реализовано создание ссылок для переходов по url наружу, а внутри файла нет. Чтобы было, нужно дорабатывать... по заявке.
 
 
Если везде понажимать F2 и Enter, то  изменения такие
 
1. В файле xl\calcChain.xml добавились строки
 
 
<?xml version="1.0" encoding="UTF-8" standalone="yes" ?>
 
<calcChain xmlns="http://schemas.openxmlformats.org/spreadsheetml/2006/main">
 
 	  | Код: | 	 		   <c i="4" l="1" r="D1"/>
 
 <c i="3" r="D1"/>
 
 <c i="1" r="C4"/>
 
 <c r="C3" i="1"/> | 	  
 
 <c r="D1" i="2"/>
 
 <c r="C2" i="1"/>
 
</calcChain>
 
 
 
2. В xl\sharedStrings.xml исчезло
 
   =ГИПЕРССЫЛКА("#Оглавление!A1";"Назад в оглавление")
 
   =ГИПЕРССЫЛКА("#"&B4&"!A1";">>>")
 
 
В xl\worksheets\sheet1.xml вместо
 
 	  | Код: | 	 		     <c r="C4" t="s">
 
    <v>
 
     12
 
    </v>
 
   </c> | 	  
 
 
стало
 
 
 	  | Код: | 	 		     <c s="2" r="C4" t="str">
 
    <f>
 
     HYPERLINK("#"&B4&"!A1",">>>")
 
    </f>
 
    <v>
 
     >>>
 
    </v>
 
   </c> | 	  
 
 
 
3. В xl\worksheets\sheet3.xml и в  xl\worksheets\sheet4.xml вместо
 
 	  | Код: | 	 		     <c r="D1" t="s">
 
    <v>
 
     3
 
    </v>
 
   </c> | 	  
 
 
стало
 
 
 	  | Код: | 	 		     <c s="2" r="D1" t="str">
 
    <f>
 
     HYPERLINK("#Оглавление!A1","Назад в оглавление")
 
    </f>
 
    <v>
 
     Назад в оглавление
 
    </v>
 
   </c> | 	 
  | 
			 
		  | 
	
	
		  | 
	
	
		Blackmore64 Профи
 
  Вступление в Клуб: 17.01.2017
  | 
		
			
				 Пн Апр 29, 2019 07:14   Re: [OOXML]::[API_XL].hyperlink | 
				     | 
			 
			
				Полезность: Нет оценки 
  | 
			 
			
				 	  | kai пишет: | 	 		  | Сейчас в [OOXML]::[API_XL].hyperlink реализовано создание ссылок для переходов по url наружу, а внутри файла нет. Чтобы было, нужно дорабатывать... по заявке. | 	  
 
Понятно, жаль)
 
Быстрый способ сделать все ссылки работающими в самом Excel - Найти и заменить (Ctrl+H) знак равенства на него же во всей книге | 
			 
		  | 
	
	
		  | 
	
	
		 |