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

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

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

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

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

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

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

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

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

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

что-то часто в последнее время вас туда заносит
...
Рейтинг: 0 / 0
29.06.2010, 16:49
    #36713505
Бенедикт
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт картинок из Excel на диск
Есть ещё вариант с вытаскиванием рисунка через clipboard, но недостатков в нём тоже достаточно.
...
Рейтинг: 0 / 0
30.06.2010, 01:22
    #36714363
AndrF
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт картинок из Excel на диск
БенедиктЕсть ещё вариант с вытаскиванием рисунка через 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
30.06.2010, 10:06
    #36714621
Shamanus
Участник
Скрыть профиль Поместить в игнор-лист Сообщения автора в теме
Экспорт картинок из Excel на диск
AndrF,

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

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

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

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


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