Гость
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel VBA сохранить Picture / 4 сообщений из 4, страница 1 из 1
18.05.2018, 11:30
    #39646594
Dimonka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA сохранить Picture
Есть шаблон документа, настройки которого сохраняются в XML. Сохраняется всё, цвета, эффекты, положение элементов, содержимое ячеек итд.
Что хочется: На шаблоне имеется место под логотип (Picture) и этот логотип тоже хочется сохранять в XML со всеми остальными настройками.

Перерыл весь гугл и не смог найти нормального способа сохранить элемент Picture ни в поток ни даже в файл из VBA.
Нашёл один извращённый способ экспорта через создание графика.
Хотелось бы экспортировать изображение "как есть" с изначальным разрешением и со всеми прозрачностями итд.

Excel 2010
...
Рейтинг: 0 / 0
18.05.2018, 11:37
    #39646600
Shocker.Pro
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA сохранить Picture
Я не смог понять, где именно исходно находится картинка?
Если речь идет о файле xlsx - то можно ее достать прямо из этого файла, ибо он представляет собой zip-архив и изображения сам хранятся как обычные файлы.
...
Рейтинг: 0 / 0
18.05.2018, 11:41
    #39646603
Dimonka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA сохранить Picture
Shocker.Pro,
Картинка находится на листе Excel, файл открыт пользователем. Но это в принципе идея. Можно попробовать насильно сохранить файл и лезть в архив.

Есть какой-нибудь пример подобного кода на VBA?
...
Рейтинг: 0 / 0
18.05.2018, 12:14
    #39646621
Dimonka
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Excel VBA сохранить Picture
В общем логика понятна:

открывается .\xl\workbook.xml , ищется нужный лист по имени и запоминается его r:id

открывается .\xl\_rels\workbook.xml.rels и в нём ищется имя листа (Target) по Id

открывается файл указанный в Target (предыдущий шаг) и в нём ищется элемент drawing и запоминается r:id

открывается файл \xl\worksheets\_rels\ & Target & ".rel" в нём ищется элемент и в нём ищется Relationship по Id = r:id и запоминается Target

открывается файл указанный в Target (предыдущий шаг) и в нём ищется элемент с именем <xdr:cNvPr name="Имя Элемента"

относительно найденного элемента надо найти элемент ..\..\xdr:blipFill\a:blip и в нём прочитать свойство r:embed

открывается файл Target & ".rel" и в нём ищется Relationship по Id = r:embed и и в нём Target указывает на местоположение файла картинки

Легко и просто :-) Может у кого есть готовый код? :D
...
Рейтинг: 0 / 0
Форумы / Microsoft Office [игнор отключен] [закрыт для гостей] / Excel VBA сохранить Picture / 4 сообщений из 4, страница 1 из 1
Целевая тема:
Создать новую тему:
Автор:
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


Просмотр
0 / 0
Close
Debug Console [Select Text]