You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

基于Excel表格中图片URL批量下载指定图片的方案咨询

基于Excel表格中图片URL批量下载指定图片的方案咨询

Hey Jim, 我刚好处理过类似的需求,给你几个实用的方案,你可以根据自己的技术熟练度选:

方案一:Excel VBA宏(自定义程度高)

这个适合有一点点VBA基础,或者愿意复制代码改参数的朋友。步骤如下:

  • 打开你的Excel文件,按下Alt + F11打开VBA编辑器
  • 右键点击左侧的工作簿名称,选择「插入」→「模块」
  • 复制下面的代码到模块里,然后重点修改代码里的保存路径和URL列参数
Sub DownloadImagesFromURL()
    Dim ws As Worksheet
    Dim lastRow As Long
    Dim i As Long
    Dim savePath As String
    Dim url As String
    Dim fileName As String
    
    ' 设置保存路径,记得最后要加斜杠
    savePath = "C:\Your\Save\Folder\"
    ' 设置包含URL的工作表和列,比如Sheet1的A列
    Set ws = ThisWorkbook.Sheets("Sheet1")
    lastRow = ws.Cells(ws.Rows.Count, "A").End(xlUp).Row
    
    ' 如果保存文件夹不存在,自动创建
    If Dir(savePath, vbDirectory) = "" Then
        MkDir savePath
    End If
    
    ' 循环下载每一行的图片(假设第一行是表头,从第二行开始)
    For i = 2 To lastRow
        url = ws.Cells(i, "A").Value
        If url <> "" Then
            ' 从URL里提取文件名,你也可以改成用单元格内容当文件名
            fileName = Mid(url, InStrRev(url, "/") + 1)
            ' 尝试下载图片,失败的话跳过并标记状态
            On Error Resume Next
            With CreateObject("MSXML2.XMLHTTP")
                .Open "GET", url, False
                .Send
                If .Status = 200 Then
                    Open savePath & fileName For Binary Access Write As #1
                    Put #1, , .responseBody
                    Close #1
                    ws.Cells(i, "B").Value = "已下载" ' 在B列标记下载状态
                Else
                    ws.Cells(i, "B").Value = "下载失败"
                End If
            End With
            On Error GoTo 0
        End If
    Next i
    MsgBox "图片下载完成!"
End Sub
  • 修改完参数后,按F5运行宏,或者回到Excel里添加一个按钮触发(开发工具→插入→按钮,关联这个宏)
  • 小提示:如果遇到HTTPS的URL下载失败,可以试试把代码里的MSXML2.XMLHTTP改成MSXML2.ServerXMLHTTP

方案二:Power Query(无需代码,可视化操作)

这个适合完全不想碰代码的同学,操作很直观:

  • 选中你的URL列(包括表头),点击Excel顶部的「数据」选项卡→「从表格/区域」,把数据导入Power Query编辑器
  • 在编辑器里,点击「添加列」→「自定义列」,输入公式:=Web.Contents([你的URL列名])(比如你的列叫「图片URL」,就写=Web.Contents([图片URL])
  • 点击新生成的自定义列的下拉箭头,选择「提取」→「提取到文件」,然后选择你指定的保存文件夹
  • 确认后,Power Query会自动把所有图片下载到目标文件夹,文件名默认是URL里的原始文件名,你也可以在Power Query里先修改自定义文件名再导出

方案三:本地批量下载工具(零Excel操作)

如果上面两种都觉得麻烦,你可以用正规的本地批量下载工具,步骤超简单:

  • 把Excel里的URL列复制出来,粘贴到记事本里,确保每行只有一个URL
  • 打开批量下载工具,导入这个记事本文件,设置好你要保存的路径
  • 点击开始下载即可,大部分工具还支持过滤重复URL、跳过已下载文件这类实用功能

备注:内容来源于stack exchange,提问作者Jim

火山引擎 最新活动