powered by simpleCommunicator - 2.0.59     © 2025 Programmizd 02
Целевая тема:
Создать новую тему:
Автор:
Закрыть
Цитировать
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Экспорт картинок из Excel на диск
25 сообщений из 83, страница 1 из 4
Экспорт картинок из Excel на диск
    #36713290
artfulbag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Здравствуйте, уважаемые программисты.
Сразу хочу сказать, что я ни разу не программист и с Excel не очень дружу, но была поставлена задача написать макрос. Сама задача:
существует база данных в Excel, в ней в одной из колонок находятся значения (ID номера персонала), в колонке напротив фотографии (сами фотографии помещены в ячейки). Необходимо вытащить эти фотографии на диск из ячеек и присвоить этим фотографиям имена из столбца с ID номера персонала. Пример: допустим 5 строка, Вася Пупкин, 652314 (ID номер), :) (фото), необходимо сохранить фото на диск и чтобы имя фотки было 652314. Ручным способ делать это не вариант, так как таких Васей Пупкиных (т.е. строк) более 4 тыс. Скажите возможно ли написать такой макрос и если не сложно, то не могли бы вы мне в этом помочь, к сожалению, ссылки на литературу или просьба само обучиться не помогут.
Все откликнувшимся заранее спасибо!
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36713344
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Единственный вариант — сохранить файл в формате xlsx, который является zip-архивом. В нем будет папка worksheets c xml-файлами, обозначающими листы. Рисунок обозначается текстом <drawing r:id="rIdxxx" />, где xxx — идентификатор рисунка. В папке drawings находится xml с описанием рисунка, из которого можно вытащить ячейку, к которой он отностится. В папке drawings\rels находится xml с названием файла, содержащим картинку. Картинки хранятся в папке media.

Короче, задача нетривиальная.
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36713353
artfulbag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Antonariy,

Спасибо большое за оперативность, попробую разобраться с тем, что вы мне написали )
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36713368
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
В общем, макросом через объектную модель экселя это сделать нельзя.
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36713372
artfulbag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Жаль, но спасибо за ответ.
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36713376
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyВ общем, макросом через объектную модель экселя это сделать нельзя.

А может и можно....
Сохраняем документ как html-страницу. Все картинки выкладываются в определенную папку и нумеруются (условно) image001, image002, image003... и т.п. Скорее всего картинки будут располагаться в том порядке, в каком они встречаются в документе. После этого сделать цикл по ячейкам с кодами, параллельно переименовывая файлы в соответствии с кодами.

Надо попробовать.
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36713406
artfulbag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProAntonariyВ общем, макросом через объектную модель экселя это сделать нельзя.

А может и можно....
Сохраняем документ как html-страницу. Все картинки выкладываются в определенную папку и нумеруются (условно) image001, image002, image003... и т.п. Скорее всего картинки будут располагаться в том порядке, в каком они встречаются в документе. После этого сделать цикл по ячейкам с кодами, параллельно переименовывая файлы в соответствии с кодами.

Надо попробовать.

Может быть изначально не совсем полную информацию дал (уж простите, только не бейте), есть база данных по пропускам в парадоксе, после экспорта в Excel, фотки в итоге так и не получилось экспортировать в ячейки, их экспортировали через браузер на диск на как их привязать к ID понятия не имею, в общем сам запутался и вам мозг запудрил, ссори.
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36713430
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artfulbagМожет быть изначально не совсем полную информацию дал (уж простите, только не бейте), есть база данных по пропускам в парадоксе, после экспорта в Excel, фотки в итоге так и не получилось экспортировать в ячейки, их экспортировали через браузер на диск на как их привязать к ID понятия не имею, в общем сам запутался и вам мозг запудрил, ссори.
Так может файлы брать прям из базы?
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36713441
artfulbag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProartfulbagМожет быть изначально не совсем полную информацию дал (уж простите, только не бейте), есть база данных по пропускам в парадоксе, после экспорта в Excel, фотки в итоге так и не получилось экспортировать в ячейки, их экспортировали через браузер на диск на как их привязать к ID понятия не имею, в общем сам запутался и вам мозг запудрил, ссори.
Так может файлы брать прям из базы?

Вот эти мозг себе и выносим, эксель был как промежуточный этапом между парадоксам и эскуэлем. Всем спасибо за ответы, буду капать в др. направлении.
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36713442
Фотография Antonariy
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProСохраняем документ как html-страницу.Собственно, на этом заканчивается использование объектной модели )))
При сохранении в html рисунки дублируются в форматах gif и png, причем нумерация у них сквозная невзирая на тип. И это 2007, а 2003 сохраняет только текущий лист без всяких рисунков.
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36713463
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyShocker.ProСохраняем документ как html-страницу.Собственно, на этом заканчивается использование объектной модели )))
При сохранении в html рисунки дублируются в форматах gif и png, причем нумерация у них сквозная невзирая на тип. И это 2007, а 2003 сохраняет только текущий лист без всяких рисунков.
Я к тому, что это можно сделать самим экселем, не разбирая файл внешними средствами. Кроме того, а почему пробежка по ячейкам не является использованием объектной модели?

Что касается сохранения - вот я сейчас попробовал из 2000-го экселя - все нормально сохранилось с картинками.
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36713470
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
что- то явно не то ТС затеял. надо напрямую работать с базой парадокса и оттуда вытягивать данные.
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36713481
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Konst_Oneчто- то явно не то ТС затеял. надо напрямую работать с базой парадокса и оттуда вытягивать данные.
Это-то понятно...
Мы уже тут в академическую область ушли
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36713486
Фотография Konst_One
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Shocker.ProKonst_Oneчто- то явно не то ТС затеял. надо напрямую работать с базой парадокса и оттуда вытягивать данные.
Это-то понятно...
Мы уже тут в академическую область ушли

что-то часто в последнее время вас туда заносит
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36713505
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
Есть ещё вариант с вытаскиванием рисунка через clipboard, но недостатков в нём тоже достаточно.
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36714363
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
БенедиктЕсть ещё вариант с вытаскиванием рисунка через clipboard, но недостатков в нём тоже достаточно.

Ну, когда потребовалось, я тоже сохранял через Clipboard. Правда недостатков не заметил - все требуемые картинки выдернулись на ура...

Код: plaintext
\n                        Dim oPic As IPictureDisp\n...\n                        Set es = ex.Shapes(rs!n)\n                        \'Copy a picture on the chart with the correct format to the clipboard\n                        es.CopyPicture xlPrinter, xlPicture\n                        \'Retrieve the picture from the clipboard...\n                        Set oPic = PastePicture(xlPicture)\n...\n                        SavePictureToFile oPic, "D:\\....\\GIF\\" & s & ".gif", GIF\n

PastePicture, насколько помню, брал отсюда: здесь ...
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36714621
Фотография Shamanus
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrF,

Попробовал, весьма кошерно, правда придется доработать напильничком. Но вариант супер. В копилку.. спасибо
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36714653
AndrF
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AntonariyПри сохранении в html рисунки дублируются в форматах gif и png, причем нумерация у них сквозная невзирая на тип. И это 2007, а 2003 сохраняет только текущий лист без всяких рисунков.

2007-ой в этом плане мне дюже нравится - собственно его файл это ZIP-архив в котором все красиво разложено. Потому, при желании, его можно и весьма просто читать/создавать самому без Excel-я на компьютере - структура проекта понимается достаточно просто...
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36714782
Фотография Бенедикт
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
AndrFНу, когда потребовалось, я тоже сохранял через Clipboard. Правда недостатков не заметил - все требуемые картинки выдернулись на ура...Выдёргиваются, да. Недостатков по меньшей мере два: 1) (непростительный с моей ТЗ, хотя - хум хау) потеря оригинальных свойств (формат, размер, и т. д.), 2) работа через clipboard. Но есть плюс в виде возможности "бесплатной" конвертации в JPEG, PNG, GIF, метафайл (WMF, EMF).
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36714863
artfulbag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shamanus,

Всем спасибо за ответы, задача несколько изменилась. Поясню, что для чего нужно, а потом дам задачу, а вы, если пожелаете, подскажите возможно это сделать или нет, а если возможно, то может быть поможете :). Одна организация меняет ПО охранной системы, ранее (и пока, по сей день) там установлена PERCo (система контроля пропусков, турникетов и т.п., она работает на базе данных парадокс, в ней содержаться ФИО, номера пропусков, фото и т.п. сотрудников), сейчас организация решила перейти на сименский SiPas (Сипас работает уже не с парадоксом, а с sql), поэтому глобальная задача такова: перенести базу из PERCo в SiPAS. В самом SiPase импорт из парадокса не предусмотрен, просто тупо конвертировать (с помощью конвертеров) саму базу из парадокса в sql, а затем sql подкладывать под SiPAS не получается, т.к. конвертируются не все данные корректно, поэтому решили использовать третий вариант. В SiPASe есть возможность импорта из Excel, а парадокс можно залить в excel, только к сожалению без фото. А теперь локальная задача:
Есть база в EXCEL из парадокса, но в этой базе не хватает фото. Фото выдернули на диск из парадокса с помощью утилиты (выдернули в том порядке в котором они есть в базе, т.е. на диске они выглядят так: image000001 соответствует первой колонке Excel, image000002, соответствует второй колонке и т.п., имя фото повышается на 1, т.е. все по порядку). Необходимо поместить в соответствующие ячейки Excel, ссылки на фото, т.е. в ячейку первой строки ссылка на путь image000001, в ячейке следующей строки ссылка на image000002 и т.д. почти 4 тысячи строк.
Понимаю, что все это запутано и похоже на смерть через мабуту, но все же может кто поможет.
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36714877
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artfulbag,

ну задача поместить ссылки вроде бы не сложная, но вы уверены, что результат вы сможете затянуть в MSSQL? Я думаю, что нет. Или нужно, чтобы в MSSQL оказались именно ссылки, а не сами картинки?
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36714896
artfulbag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
В Сипасе (молюсь Одину и надеюсь, что все получится) есть встроенный импорт из Excel, через этот импорт он Excel базу дернет себе и конвертнет (опять молюсь) как надо, для себя в sql
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36714904
artfulbag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Конечно выглядит это не очень, самого аж передергивает, но ничего лучше не придумали, сами мы не местные (программисты), поэтому извращаемся как умеем, но задачу решить надо нам, таковы реалии суровой рыночной экономики :)
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36714907
Фотография Shocker.Pro
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Участник
artfulbagВ Сипасе (молюсь Одину и надеюсь, что все получится) есть встроенный импорт из Excel, через этот импорт он Excel базу дернет себе и конвертнет (опять молюсь) как надо, для себя в sql
Так вы сначала вручную сделайте тестовый файл, проверьте, а потом извращайтесь.
А то импорт бинарников - дело тонкое....
...
Рейтинг: 0 / 0
Экспорт картинок из Excel на диск
    #36714914
artfulbag
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Гость
Shocker.ProartfulbagВ Сипасе (молюсь Одину и надеюсь, что все получится) есть встроенный импорт из Excel, через этот импорт он Excel базу дернет себе и конвертнет (опять молюсь) как надо, для себя в sql
Так вы сначала вручную сделайте тестовый файл, проверьте, а потом извращайтесь.
А то импорт бинарников - дело тонкое....
Спасибо за наводку, по результатам тестов отпишусь.
...
Рейтинг: 0 / 0
25 сообщений из 83, страница 1 из 4
Форумы / Visual Basic [игнор отключен] [закрыт для гостей] / Экспорт картинок из Excel на диск
Найденые пользователи ...
Разблокировать пользователей ...
Читали форум (0):
Пользователи онлайн (0):
x
x
Закрыть


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