Загрузка фото по ссылкам excel

Загрузка файлов (изображений) из интернета

Макрос предназначен для загрузки изображений (или любых других файлов) из интернета, и сохранения скачанных файлов в одну папку.

Исходные данные для работы макроса:

таблица, в которой содержатся по меньшей мере 2 столбца — один с гиперссылками, второй — с именами файлов.

Особенности макроса:

  • создаваемым файлам присваиваются имена из выбранного столбца листа 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

Преобразование ссылок на изображения в картинки в файле Excel является простой задачей, которую можно решить без использования платных модулей и настроек, а лишь выполнив простую инструкцию ниже.

  • Скачивание;
  • Возврат к таблице Microsoft.

Видеоинструкция

Преобразование ссылок на изображения в картинки в таблице Excel

Среди базовых возможностей MS Excel нет такой функции, однако, можно легко скопировать всю таблицу в Google таблицу, после чего выполнить данную работу. Для этого создаем Google аккаунт и переходим на сайт:

https://www.google.ru/sheets/about/

Главная страница Google Таблиц

Создаем новый документ.

Создание нового документа в Google Таблицах

Даем название файлу и копируем туда таблицу из обычного Экселя.

Таблица Excel с ссылками на картинки

Далее используем формулу:

=IMAGE([ссылка]; [тип], [высота], [ширина])

Формула IMAGE в Excel и пример скачивания картинки по сссылке

Где

  • [ссылка] — ссылка, которая может быть просто прописана или же взята из ячейки;
  • [высота] – ширина изображения в пикселях (не обязательное);
  • [ширина] – высота изображения в пикселях (не обязательное);
  • [тип] – модификация, может принимать, значения от 1 до 4.

В случае с модификацией каждое число будет обозначать:

  1. Изображение будет растягивать до размеров ячейки с сохранением пропорций сторон;
  2. Растягивание будет происходить без сохранения пропорций сторон;
  3. Загрузка картинки с оригинальным размером;
  4. Требуется самостоятельно указать размер при помощи [высота] и [ширина]

Пример можно посмотреть здесь:

https://docs.google.com/spreadsheets/d/1yIW7LOghVldP3TcMLyD_HY_bnhCPDIfeLHftZA-AIZA/edit#gid=0

Далее можно переходить к превращению файла обратно в стандартную версию.

Преобразование ссылок на изображения в картинки в таблице обратно в МС Эксель

Выполнить эту задачу можно скопировав, выделив нужный диапазон и кликнув правой клавишей мыши (сочетание клавиш CTRL+C).

Копирование преобразованных картинок из ссылок в Google Таблице

После вставляем данные в стандартную таблицу.

Копирование таблицы со скачанными изображениями с ссылок на картинки в Excel

Все готово.

Пример скачивания картинки по ссылке на изображение в Excel

В дальнейшем можно скачать данные изображения при помощи инструкции.

Пример можно скачать ниже.

 

Виталий

Пользователь

Сообщений: 256
Регистрация: 01.01.1970

Добрый день всем! Как написать макрос для автоматизации следующей задачи? Из колонки В по гиперссылке скачать фото на рабочий стол в папку «Фото» с именем из колонки А пять цифр — соответственно Коду товара. Таких позиций около тысячи и в ручную очень долго эту операцию делать.  Я понимаю, что это делается с помощью цикла, а как взаимодействовать с браузером и вообще возможно ли это?

Изменено: Виталий10.01.2016 16:52:34

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

Изменено: Андрей VG11.01.2016 05:00:15

 

Виталий

Пользователь

Сообщений: 256
Регистрация: 01.01.1970

Спасибо, я как раз это и нашел. Жаль что демо-версия на 5 запусков только.

 

Игорь

Пользователь

Сообщений: 3631
Регистрация: 23.12.2012

Какая демоверсия? какие 5 запусков?
Вам дали ссылку на бесплатный макрос, решающий вашу задачу
Возможно, надо только немного доработать макрос под вас (задав столбец с ссылками, и задав путь к папке с фото)

А ссылка на готовое решение (которое платное) — это на случай, если вам лень разбираться в коде, внося правки,
и вы хотите настроить все через интерфейс готовой программы.

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#5

11.01.2016 16:35:36

При некотором желании можно сделать из без макроса ;)  Формируете часть html формулами

Код
="<tr><td><img src="""&Аркуш1!B12&"""></td></tr>"

Протягивая на всё количество изображений.
В блокноте делаете html файл со следующим содержанием.

Код
<html>
<head><title>for upload</title></head>
<body>
<table>
<!--Вставляете ниже этой строки всё что получили формулами-->
</table>
</body></html>

Сохраняете и открываете этот html-файл, например, в firefox. Выбираете в нём сохранить как и тип web-страница полностью. В подпапке for upload_files папки где сохранили страницу будут ваши файлы картинок.
Успехов.

 

Виталий

Пользователь

Сообщений: 256
Регистрация: 01.01.1970

Ух, ты прям волшебство какое-то. Спасибо огромное.

 

Даже проще — копируем столбец со ссылками, вставляем в Блокнот, копируем из Блокнота (чтобы в буфере обмена получился чистый текст). Запускаем

FlashGet

, он подхватывает ссылки из буфера обмена — поехали :)

 

Андрей VG

Пользователь

Сообщений: 11878
Регистрация: 22.12.2012

Excel 2016, 365

#8

12.01.2016 05:26:49

оброе время суток.

Цитата
Казанский написал:
он подхватывает ссылки из буфера обмена — поехали

Алексей, мы не ищем уж совсем простых путей ;) . С другой стороны, Виталий теперь может смело сказать, что он начинающий web-разработчик :) — создана первая страница!

 

arvidservis

Пользователь

Сообщений: 9
Регистрация: 18.12.2016

#9

18.12.2016 21:31:56

Здравствуйте, Это в самом макросе вставляется код?

Группа: Пользователи

Ранг: Новичок

Сообщений: 29


Репутация:

1

±

Замечаний:
20% ±


Excel 2013

Здравствуйте!
Никак не могу найти решение задачи:
— в ячейках есть ссылки на конкретные фото с сайта (http://sofme.ru/UploadedFiles/Image_ROWIQFABCCHOUTJ.jpg)
— можно ли как-то быстро загрузить изображения по этим ссылкам в соседние ячейки?

Заранее благодарен за ответы.

К сообщению приложен файл:

0927723.xlsx
(45.2 Kb)

Загрузка файлов по URL ссылкам

Загрузка файлов по URL ссылкам – инструмент для импорта файлов с веб ресурсов по URL ссылкам, в выбранную папку на компьютере.

С возможностью их переименования при импорте.

Инструкция по использованию:

  • Диапазон ссылок на файлы  – ссылки на файлы. Должна содержать протокол (например, http://).
  • Выбор папки для файлов – путь к папки для сохранения файлов.

Загрузка файлов по URL ссылке

Загрузка файлов по URL ссылке

Пример использования инструмента загрузки файлов по URL ссылкам

Загрузка файлов по URL

Загрузка файлов по URL

URL файла – кнопка выбора диапазона ячеек с ссылками URL, на файлы для скачивания. Если в соседнем столбце с ссылками указать новые названия файлов, то при загрузке они будут переименованы. Если в соседнем столбце пусто, то название файлов останется без изменения.

Выбор папки для сохранения – кнопка выбора папки, в которую будут загружены файлы.

Понравилась статья? Поделить с друзьями:
  • Загрузка файлов txt в excel
  • Загрузка файлов microsoft office word
  • Загрузка файла на лист excel
  • Загрузка файла excel в еис
  • Загрузка пакета анализа excel