Вход | Регистрация


Excel добавить изображение со ссылкой

Excel добавить изображение со ссылкой
Я
   myr4ik07
 
17.08.18 - 11:53
Ex = Новый COMObject("Excel.Application");

как через 1с программно на лист екселя добавить изображение со при нажатии на которую переход осуществляеться на следующий лист?

простую текстовую ссылку добавил, а вот ссылку из изображение не выходит
 
 
   shadow_sw
 
1 - 17.08.18 - 11:55
словарь  - дорого!
   Deon
 
2 - 17.08.18 - 12:21
(0) Добавь сначала изображение, потом добавь ссылку
   myr4ik07
 
3 - 17.08.18 - 15:21
(2) на словах звучит на раз два, пример есть?
   myr4ik07
 
4 - 17.08.18 - 15:23
(1) ты че тупишь?
   myr4ik07
 
5 - 17.08.18 - 16:21
вроде и нашел https://stackoverflow.com/questions/43466649/vba-add-hyperlink-to-a-picture но не могу понять как описать с 1с, кто подскажет?
   sitex
 
6 - 17.08.18 - 16:27
(0) ПРочитал не понял что нужно итого .
   myr4ik07
 
7 - 17.08.18 - 16:32
(6) ексел из множества листов, стрелкой выделено изображение на листе, при нажатии на него должно переход быть на первый лист
http://prntscr.com/kjsevw
   myr4ik07
 
8 - 17.08.18 - 16:33
ексел формируеться полностью программно из 1с
   myr4ik07
 
9 - 17.08.18 - 16:33
для текстовой ссылки сделал http://prntscr.com/kjsfh0
   sitex
 
10 - 17.08.18 - 17:04
ну код то скинь , телепаты ушли в отпуск.
 
 Рекламное место пустует
   sitex
 
11 - 17.08.18 - 17:04
(0) Либо через VBA (макрос ), либо вроде  ActiveSheet.Pictures.Insert.
2-ой вариант предпочтительней
   myr4ik07
 
12 - 17.08.18 - 17:37
(10) какой код? я как раз кодом и прошу чот бы поделились
   myr4ik07
 
13 - 17.08.18 - 17:38
(11) Pictures нет такого свойства или метода Листе, пробовал
   Deon
 
14 - 17.08.18 - 17:46
(13) А вот тут ты лукавишь. Есть у листа Pictures
Код-то уже покажи
   Deon
 
15 - 17.08.18 - 17:49
Excel = Новый COMОбъект("Excel.Application");
Book = Excel.Workbooks.Open(ИмяФайлаXLSX);
Лист = Excel.ActiveSheet;

Лист.Pictures.Insert("C:\Картинка.png");
   Tatitutu
 
16 - 17.08.18 - 17:55
   trdm
 
17 - 18.08.18 - 00:16
ИначеЕсли Лев(Зн1С,2) = "##" Тогда

                // Картинка

                ЯЧейка1 = вЛистХЛС.Cells(СчРядов,СчКолонок);
                ЯЧейка1.Value = "";
                вИмяФайла = Сред(Зн1С,3);
                вИмяФайла = СокрЛП(вИмяФайла);
                вСтрокаСообщ = "";
                Если ПустоеЗначение(вИмяФайла) = 0 Тогда
                    вСтрокаСообщ = "Строка: " +СчРядов+"/"+счКолонок +" => "+ вИмяФайла;
                    Если ФС.СуществуетФайл(вИмяФайла) = 1 Тогда
                        //вЛистХЛС.Shapes.AddPicture(вИмяФайла,"","",вЛистХЛС.Cells(СчРядов,СчКолонок).Left);

                        ЯЧейка1 = вЛистХЛС.Cells(СчРядов,СчКолонок);
                        ЯЧейка1.Value = "";
                        ЯЧейка1.Select();
                        гНомерКолонкиСКартинками = СчКолонок;
                        
                        //вСелект = вЛистХЛС.Range("A6").Select

                        //вКартинка = вЛистХЛС.Pictures.Insert(вИмяФайла); /// Работает.

                        Попытка
                            вКартинка = ЯЧейка1.Parent.Pictures.Insert(вИмяФайла);
                            вОффСет = гОффсетКартинки;
                            вКартинка.Top = ЯЧейка1.Top + вОффСет; вКартинка.Left = ЯЧейка1.Left + вОффСет;
                            вВыделение = вКартинка.Select();
                            вRowHeight  = вКартинка.Height;
                            вWidth = Цел(вКартинка.Width);
                            вМасштаб = гМасштабКартинки;
                            вСтрокаСообщ = Шаблон("Выс: [вRowHeight] шир: [вWidth]");
                            Если гМаксРеброКартинки>0 Тогда
                                вМаксРебро = Макс(вКартинка.Height, вКартинка.Width);
                                вМасштаб = гМаксРеброКартинки *100 / вМаксРебро;
                                //вМасштаб = Цел(вМасштаб); // есть картинка у которой мастаб получился 0.3012, т.е. цел(масштаб) = 0 - плохо, картинка не смасштабируется

                                вМасштаб = Окр(вМасштаб,2,1);
                                вСтрокаСообщ = вСтрокаСообщ + Шаблон(" м.ребро: [вМаксРебро] => масштаб: [вМасштаб]");
                            КонецЕсли; 
                            
                            Если вМасштаб > 0 Тогда
                                вRowHeight  = Цел(вКартинка.Height * вМасштаб / 100);
                                вКартинка.Height = вRowHeight;
                                вWidth = Цел(вКартинка.Width * вМасштаб / 100);
                                вWidth = Цел(вWidth);
                                вКартинка.Width = вWidth;
                                вСтрокаСообщ = вСтрокаСообщ + Шаблон(" стало: '[вRowHeight]'[вWidth]'");
                            КонецЕсли;
                            //Если гМасштабКартинки<>100 Тогда

                            гМаксШиринаКолСКартинками = Макс(вWidth,гМаксШиринаКолСКартинками);
                            вТаблаУстРазмСтрок.НоваяСтрока();
                            вТаблаУстРазмСтрок.Колонка = счКолонок;
                            вТаблаУстРазмСтрок.Строка = счРядов;
                            вТаблаУстРазмСтрок.Высота = вRowHeight;
                            вТаблаУстРазмСтрок.ИмяФайла = вИмяФайла;
                            //Сообщить(вСтрокаСообщ);

                        Исключение
                            вСтрокаОшибки = ОписаниеОшибки() + " [20140617-1106]";
                            глСообщитьОбОшибке(вСтрокаОшибки,"!");
                            глЗаписатьВЛогФайлУпрощенно(глИмяЛогаОшибокОбщего, вСтрокаОшибки);
                            глЗаписатьВЛогОшибокВерсиюExcel(вЕксил);
                        КонецПопытки;
                    КонецЕсли; 
                КонецЕсли; 
                
                //} © ТрДм 27.05.2013 21:33:58

            КонецЕсли;
   Cyberhawk
 
18 - 18.08.18 - 11:40
Если xlsx, то однозначно нативно
   myr4ik07
 
19 - 19.08.18 - 00:04
   Cyberhawk
 
20 - 19.08.18 - 00:41
(19) Правильный ответ там в посте номер 5

Список тем форума
Рекламное место пустует  Рекламное место пустует
ВНИМАНИЕ! Если вы потеряли окно ввода сообщения, нажмите Ctrl-F5 или Ctrl-R или кнопку "Обновить" в браузере.
Рекламное место пустует