Как скачать фото через эксель по ссылкам
Argument ‘Topic id’ is null or empty
Сейчас на форуме
© Николай Павлов, Planetaexcel, 2006-2023
info@planetaexcel.ru
Использование любых материалов сайта допускается строго с указанием прямой ссылки на источник, упоминанием названия сайта, имени автора и неизменности исходного текста и иллюстраций.
ООО «Планета Эксел» ИНН 7735603520 ОГРН 1147746834949 |
ИП Павлов Николай Владимирович ИНН 633015842586 ОГРНИП 310633031600071 |
Как скачать все фото по ссылкам с csv?
Как можно массово скачать все изображения в одну папку? может есть какая функция или макрос?
- Вопрос задан более двух лет назад
- 1026 просмотров
3 комментария
Простой 3 комментария
Мне кажется, это проще без екселя решить
WebforSelf @WebforSelf Автор вопроса
Василий Банников, ссылок на изображение просто около 1500.
WebforSelf, ну да. Скрипт на питоне в три строчки
Решения вопроса 0
Ответы на вопрос 2
Григорий Боев @ProgrammerForever Куратор тега Excel
Учитель, автоэлектрик, программист, музыкант
Можно так, например. Для небольших объёмов — самое то. Список файлов в list.txt
Код сохранить как bat или cmd
mkdir downloads wget -x -i list.txt --secure-protocol=auto -nc -c -P downloads>log.txt
Ответ написан более двух лет назад
Нравится 1 3 комментария
WebforSelf @WebforSelf Автор вопроса
а куда сохранятся картинки? это получается винда сделает?
Григорий Боев @ProgrammerForever Куратор тега Excel
WebforSelf, в папку downloads, которую сам же скрипт и сделает
винда сделает?
Надо установить wget для windows
Григорий Боев, в win10 есть curl
Krasnoarmeec @Krasnoarmeec
На Экселе получается не сильно длиннее, чем на питоне:
Public Declare Function URLDownloadToFile Lib "urlmon" Alias _ "URLDownloadToFileA" (ByVal pCaller As Long, _ ByVal szURL As String, _ ByVal szFileName As String, _ ByVal dwReserved As Long, _ ByVal lpfnCB As Long) As Long ' http://site.ru/images/site/site_ru_logo.png Sub Start() Call DownloadToFile("http://site.ru/images/site/site_ru_logo.png", "D:\123.png") End Sub Public Sub DownloadToFile(url$, FileName$) Dim lngRetVal& lngRetVal = URLDownloadToFile(0, url, FileName, 0, 0) If lngRetVal <> 0 Then MsgBox "Error in DownloadToFile: Can't download from " & url & " to " & FileName End If End Sub
Загрузка изображений из интернета по ссылкам в одну папку
Макрос предназначен для загрузки изображений (или любых других файлов) из интернета, и сохранения скачанных файлов в одну папку.
Исходные данные для работы макроса:
таблица, в которой содержатся по меньшей мере 2 столбца — один с гиперссылками, второй — с именами файлов.
- создаваемым файлам присваиваются имена из выбранного столбца листа Excel
- макрос корректно работает со ссылками, содержащими символы кириллицы
- автоматическое добавление расширения для скачиваемых файлов (если имя файла из ячейки его не содержит)
Если вам требуется вставлять много изображений на лист Excel, — то вам поможет надстройка, позволяющая производить поиск изображений в заданной папке, и производить вставку картинок в ячейки или примечания
Кроме того, надстройка для вставки изображений в Excel умеет загружать картинки из интернета (по ссылкам в таблице Excel)
Настройки макроса легко выполнить, изменив в коде значения констант:
Const НазваниеПапкиДляФайлов$ = "Фотографии" ' так будет называться создаваемая папка Const НомерСтолбцаСГиперссылками = 6 ' из этого столбца макрос берет гиперссылки для загрузки файлов Const НомерСтолбцаСИменамиФайлов = 4 ' из этого столбца макрос берет имена для создаваемых файлов Const НомерПервойСтрокиСДанными = 2 ' с какой строки листа начинаем обрабатывать данные Const РасширениеФайлов$ = ".jpg" ' этот текст добавляется справа к именам создаваемых файлов
Смотрите также аналогичный (более сложный) макрос загрузки изображений
Код основного макроса:
Sub СкачатьИзображения() Const НазваниеПапкиДляФайлов$ = "Фотографии" ' так будет называться создаваемая папка Const НомерСтолбцаСГиперссылками = 6 ' из этого столбца макрос берет гиперссылки для загрузки файлов Const НомерСтолбцаСИменамиФайлов = 4 ' из этого столбца макрос берет имена для создаваемых файлов Const НомерПервойСтрокиСДанными = 2 ' с какой строки листа начинаем обрабатывать данные Const РасширениеФайлов$ = ".jpg" ' этот текст добавляется справа к именам создаваемых файлов Dim sh As Worksheet, cell As Range, ra As Range: Application.ScreenUpdating = False ПапкаДляФайлов$ = ThisWorkbook.Path & "\" & НазваниеПапкиДляФайлов$ & "\" On Error Resume Next: MkDir ПапкаДляФайлов$ ' создаём папку, если её ещё нет Dim pi As New ProgressIndicator pi.Show "Загрузка файлов из интернета" Set sh = ActiveSheet ' обрабатываем только активный лист ' диапазон заполненных ячеек в столбце НомерСтолбцаСГиперссылками (без строк заголовка таблицы) Set ra = sh.Range(sh.Cells(НомерПервойСтрокиСДанными, НомерСтолбцаСГиперссылками), _ sh.Cells(sh.Rows.Count, НомерСтолбцаСГиперссылками).End(xlUp)) pi.StartNewAction , , "Загрузка файлов", , , ra.Cells.Count For Each cell In ra.Cells ' перебираем все ячейки диапазона ' формируем путь к новому файлу, заменяя запрещённые символы в имени файла на _подчеркивание_ ИмяФайла$ = ПапкаДляФайлов$ & Replace_symbols(cell.EntireRow.Cells(НомерСтолбцаСИменамиФайлов)) If Not ИмяФайла$ Like "*" & РасширениеФайлов$ Then ИмяФайла$ = ИмяФайла$ & РасширениеФайлов$ ' обрабатываем ссылку, преобразуя её в URLEncode Ссылка$ = RussianStringToURLEncode(cell.Text) pi.SubAction , "Строка: " & cell.Row, "Файл: " & ИмяФайла$ ' сохраняем очередную ссылку в виде файла в папку If DownLoadFile(Ссылка, ИмяФайла) Then FilesCount% = FilesCount% + 1 ' Debug.Print "Скачан файл: " & Ссылка Else MsgBox "Не удалось загрузить файл " & Ссылка, vbCritical End If Next cell pi.Hide ' закрываем прогресс-бар Application.ScreenUpdating = True msg = "Обработано ссылок: " & ra.Cells.Count & ". Загружено файлов: " & FilesCount% & vbNewLine msg = msg & "Файлы помещены в папку """ & ПапкаДляФайлов$ & """" MsgBox msg, vbInformation, "Загрузка файлов завершена" End Sub
- 75674 просмотра
Извлечение изображения из документа Microsoft Excel
При работе с файлами Excel бывают не только случаи, когда нужно вставить изображение в документ, но и обратные ситуации, когда рисунок, наоборот, нужно извлечь из книги. Для достижения данной цели существует два способа. Каждый из них является наиболее актуальным при тех или иных обстоятельствах. Давайте подробно рассмотрим каждый из них, чтобы вы могли определить, какой из вариантов лучше применить в конкретном случае.
Извлечение картинок
Главным критерием выбора конкретного способа является тот факт, хотите ли вы вытащить одиночное изображение или произвести массовое извлечение. В первом случае можно удовлетвориться банальным копированием, а вот во втором придется применить процедуру конвертации, чтобы не терять время на извлечении каждого рисунка по отдельности.
Способ 1: копирование
Но, прежде всего, давайте все-таки рассмотрим, как произвести извлечение изображения из файла методом копирования.
- Для того чтобы скопировать изображение, прежде всего его нужно выделить. Для этого кликаем по нему один раз левой кнопкой мыши. Затем выполняем щелчок правой кнопкой мыши по выделению, тем самым вызывая контекстное меню. В появившемся списке выбираем пункт «Копировать».
Можно также после выделения изображения перейти во вкладку «Главная». Там на ленте в блоке инструментов «Буфер обмена» щелкаем по пиктограмме «Копировать».
Существует и третий вариант, при котором после выделения нужно нажать на комбинацию клавиш Ctrl+C.
- После этого запускаем любой редактор изображений. Можно, например, воспользоваться стандартной программой Paint, которая встроена в Windows. Производим вставку в эту программу любым из тех способов, которые в ней доступен. В большинстве вариантов можно воспользоваться универсальным способом и набрать комбинацию клавиш Ctrl+V. В Paint, кроме этого, можно нажать на кнопку «Вставить», расположенную на ленте в блоке инструментов «Буфер обмена».
- После этого картинка будет вставлена в редактор изображений и её можно сохранить в виде файла тем способом, который доступен в выбранной программе.
Преимущество данного способа заключается в том, что вы сами можете выбрать формат файла, в котором сохранить картинку, из поддерживаемых вариантов выбранного редактора изображений.
Способ 2: массовое извлечение изображений
Но, конечно, если изображений больше десятка, а то и несколько сотен, и их всех нужно извлечь, то вышеуказанный способ представляется непрактичным. Для этих целей существует возможность применить конвертацию документа Excel в формат HTML. При этом все изображения автоматически будут сохранены в отдельной папке на жестком диске компьютера.
- Открываем документ Excel, содержащий изображения. Переходим во вкладку «Файл».
- В открывшемся окне щелкаем по пункту «Сохранить как», который находится в левой его части.
- После этого действия запускается окно сохранения документа. Нам следует перейти в ту директорию на жестком диске, в которой желаем, чтобы разместилась папка с картинками. Поле «Имя файла» можно оставить без изменения, так как для наших целей это не важно. А вот в поле «Тип файла» следует выбрать значение «Веб-страница (*.htm; *.html)». После того, как вышеуказанные настройки произведены, щелкаем по кнопке «Сохранить».
- Возможно, при этом появится диалоговое окно, в котором будет сообщаться, что файл может иметь возможности, несовместимые с форматом «Веб-страница», и при конвертации они будут утеряны. Нам следует согласиться, нажав на кнопку «OK», так как единственной целью является извлечение картинок.
- После этого открываем Проводник Windows или любой другой файловый менеджер и переходим в директорию, в которой сохранили документ. В этой директории должна образоваться папка, которая содержит наименование документа. Именно в этой папке и содержатся изображения. Переходим в неё.
- Как видим, картинки, которые были в документе Excel, представлены в этой папке в виде отдельных файлов. Теперь с ними можно выполнять те же манипуляции, что и с обычными изображениями.
Вытащить картинки из файла Excel не так уж сложно, как могло показаться на первый взгляд. Это можно сделать либо путем простого копирования изображения, либо путем сохранения документа, как веб-страницы, встроенными инструментами Эксель.