Ексел из множества листов, стрелкой выделено изображение на листе, при нажатии на него должно переход быть на первый лист
http://prntscr.com/kjsevw
ексел формируеться полностью программно из 1с
как это реализовать?
ексел формируеться полностью программно из 1с
как это реализовать?
По теме из базы знаний
- MS Office Excel для пользователей. Подводные камни и полезные возможности
- Работа с Excel через COM
- Загрузка изображений (картинок) по ссылке из файла форматов YML (Yandex Market Format) или XML (управляемые формы)
- Загрузка из Excel в Розницу 2.3 Приходной накладной
- Выгрузка прайса в EXCEL, с изображениями в облаке, с рассылкой на почту клиенту. УТ 11.4
Найденные решения
&НаКлиенте
Процедура Сформировать(Команда)
ПриложениеЭксель = Новый COMОбъект("Excel.Application");
ПриложениеЭксель.Visible = Истина;
КнигаЭксель = ПриложениеЭксель.Workbooks.Add();
КоличествоЛистов = КнигаЭксель.Sheets.Count;
АдресПервогоЛиста = КнигаЭксель.Sheets(1).Name + "!A1";
Для Сч = 2 По КоличествоЛистов Цикл
ЛистЭксель = КнигаЭксель.Sheets(Сч);
Стрелка = ЛистЭксель.Shapes.AddShape(34, 100, 10, 160, 56);
Стрелка.Fill.ForeColor.RGB = RGB(255, 160, 64);
Стрелка.Line.ForeColor.RGB = RGB(128, 80, 32);
Надпись = Стрелка.TextFrame.Characters();
Надпись.Text = "Оглавление";
Надпись.Font.Size = 14;
Надпись.Font.Bold = True;
Стрелка.TextFrame.HorizontalAlignment = -4108;
ЛистЭксель.Hyperlinks.Add(Стрелка, , АдресПервогоЛиста);
КонецЦикла;
КнигаЭксель.Sheets(КоличествоЛистов).Activate();
ПриложениеЭксель.ActiveWindow.Activate();
ПриложениеЭксель.WindowState = 2;
ПриложениеЭксель.WindowState = 1;
КонецПроцедуры
&НаКлиенте
Функция RGB(r, g, b)
Возврат b * 65536 + g * 256 + r
КонецФункции
ПоказатьОстальные ответы
Подписаться на ответы
Инфостарт бот
Сортировка:
Древо развёрнутое
Свернуть все
&НаКлиенте
Процедура Сформировать(Команда)
ПриложениеЭксель = Новый COMОбъект("Excel.Application");
ПриложениеЭксель.Visible = Истина;
КнигаЭксель = ПриложениеЭксель.Workbooks.Add();
КоличествоЛистов = КнигаЭксель.Sheets.Count;
АдресПервогоЛиста = КнигаЭксель.Sheets(1).Name + "!A1";
Для Сч = 2 По КоличествоЛистов Цикл
ЛистЭксель = КнигаЭксель.Sheets(Сч);
Стрелка = ЛистЭксель.Shapes.AddShape(34, 100, 10, 160, 56);
Стрелка.Fill.ForeColor.RGB = RGB(255, 160, 64);
Стрелка.Line.ForeColor.RGB = RGB(128, 80, 32);
Надпись = Стрелка.TextFrame.Characters();
Надпись.Text = "Оглавление";
Надпись.Font.Size = 14;
Надпись.Font.Bold = True;
Стрелка.TextFrame.HorizontalAlignment = -4108;
ЛистЭксель.Hyperlinks.Add(Стрелка, , АдресПервогоЛиста);
КонецЦикла;
КнигаЭксель.Sheets(КоличествоЛистов).Activate();
ПриложениеЭксель.ActiveWindow.Activate();
ПриложениеЭксель.WindowState = 2;
ПриложениеЭксель.WindowState = 1;
КонецПроцедуры
&НаКлиенте
Функция RGB(r, g, b)
Возврат b * 65536 + g * 256 + r
КонецФункции
Показать
(4)
да, работает, спасибо, а если у меня уже есть своя картинка, как сделать что бы на свою картинку при нажатии на главную попадать?
Стрелка = ЛистЭксель.Shapes.AddShape(34, 100, 10, 160, 56);
Стрелка.Fill.ForeColor.RGB = RGB(255, 160, 64);
Стрелка.Line.ForeColor.RGB = RGB(128, 80, 32);
Надпись = Стрелка.TextFrame.Characters();
Надпись.Text = "Оглавление";
Надпись.Font.Size = 14;
Надпись.Font.Bold = True;
Стрелка.TextFrame.HorizontalAlignment = -4108;
ЛистЭксель.Hyperlinks.Add(Стрелка, , АдресПервогоЛиста);
Стрелка.Fill.ForeColor.RGB = RGB(255, 160, 64);
Стрелка.Line.ForeColor.RGB = RGB(128, 80, 32);
Надпись = Стрелка.TextFrame.Characters();
Надпись.Text = "Оглавление";
Надпись.Font.Size = 14;
Надпись.Font.Bold = True;
Стрелка.TextFrame.HorizontalAlignment = -4108;
ЛистЭксель.Hyperlinks.Add(Стрелка, , АдресПервогоЛиста);
да, работает, спасибо, а если у меня уже есть своя картинка, как сделать что бы на свою картинку при нажатии на главную попадать?
Может быть сделать шаблон excel с кнопкой и макросом, до работы в 1с т.е. заранее.
И его заполнять из 1с. А далее открывать.
Хотя, кажется можно всё делать в 1с
https://infostart.ru/public/340826/
И его заполнять из 1с. А далее открывать.
Хотя, кажется можно всё делать в 1с
Стрелка = ПутьКПапкеНаСервере + "Стрелка.png";
Верх = Ячейка.Top+10;
Лево = Ячейка.Left+200;
ВысотаКартинки = 50;
ШиринаКартинки = 150;
Изображение =ДобавленныйЛист.Shapes.AddPicture(Стрелка, Истина, Истина, Лево, Верх, ШиринаКартинки, ВысотаКартинки);
ДобавленныйЛист.Hyperlinks.Add(Изображение, , "ГЛАВНАЯ!R1C");
стрелка со своим изобаржением
Верх = Ячейка.Top+10;
Лево = Ячейка.Left+200;
ВысотаКартинки = 50;
ШиринаКартинки = 150;
Изображение =ДобавленныйЛист.Shapes.AddPicture(Стрелка, Истина, Истина, Лево, Верх, ШиринаКартинки, ВысотаКартинки);
ДобавленныйЛист.Hyperlinks.Add(Изображение, , "ГЛАВНАЯ!R1C");
стрелка со своим изобаржением
Для получения уведомлений об ответах подключите телеграм бот:
Инфостарт бот