当前位置: 首页 > news >正文

VBA-Excel图片下载到本地文件夹

方法实现根据excel款号图片url下载图片款号保存本地

操作步骤

  1. 打开包含商品信息和图片url的excel
  2. Alt+F11进入vba

   3. 复制VBA代码并修改对应的:

        1.图片保存路径,要求路径不存在或者要清空(清空是因为如果已存在对应图片则不会更新)一定要在路径末尾添加“\”

            2. url所在列(建议使用默认形式,第第二列为图片URL列)

            3. 图片宽和高也可修改,默认宽为500,长为550

            4. vba代码

    Sub DownloadImages()Dim rng As Range, cell As RangeDim imgUrl As String, savePath As String, fileName As StringDim http As Object, stream As ObjectDim tempFilePath As StringDim img As ObjectDim FSO As Object Set http = CreateObject("MSXML2.XMLHTTP")Set stream = CreateObject("ADODB.Stream")Set img = CreateObject("WIA.ImageFile")Set FSO = CreateObject("Scripting.FileSystemObject")savePath = "C:\商品图片\" '修改为实际保存路径,路径末尾一定要加上\If Not FSO.FolderExists(savePath) Then FSO.CreateFolder(savePath) tempFilePath = Environ("Temp") & "\ExcelImages\"If Not FSO.FolderExists(tempFilePath) Then FSO.CreateFolder(tempFilePath)On Error Resume NextFor Each cell In Range("B2:B" & Cells(Rows.Count, 2).End(xlUp).Row) '图片URL所在列imgUrl = cell.ValuefileName = savePath & cell.Offset(0, -1).Value & ".jpg" '款号列为url列向左偏移一列Dim tempFile As StringtempFile = tempFilePath & "temp_" & cell.Offset(0, -1).Value & ".jpg"http.Open "GET", imgUrl, Falsehttp.SendIf http.Status = 200 Thenstream.Openstream.Type = 1stream.Write http.responseBodystream.SaveToFile tempFile, 2stream.CloseIf FSO.FileExists(fileName) ThenFSO.DeleteFile fileName, True End Ifimg.LoadFile tempFileDim ip As ObjectSet ip = CreateObject("WIA.ImageProcess")ip.Filters.Add ip.FilterInfos("Scale").FilterIDWith ip.Filters(1).Properties.Item("MaximumWidth") = 500 ' 设置最大宽度.Item("MaximumHeight") = 550 ' 设置最大高度.Item("PreserveAspectRatio") = FalseEnd WithDim processedImg As ObjectSet processedImg = ip.Apply(img)processedImg.SaveFile fileNameIf FSO.FileExists(tempFile) ThenFSO.DeleteFile tempFile, TrueEnd IfEnd IfNext cellIf FSO.FolderExists(tempFilePath) ThenFSO.DeleteFolder tempFilePath, TrueEnd IfMsgBox "图片下载完成!"
    End Sub

    1. 点击运行,完成状态显示如下:

    对应文件位置自动生成文件夹图片图片大小url实际图片大小

    http://www.lryc.cn/news/609789.html

    相关文章:

  1. 基于知识图谱增强的RAG系统阅读笔记(一)提升大语言模型的准确性
  2. 从exec到Shell:深度解析Linux进程等待,程序替换与自主Shell实现
  3. Assistant API——构建基于大语言模型的智能体应用
  4. 在 C++ 中实现类似 Vue 3 的 Pinia 状态管理库
  5. 反转字符串中的元音字母:Swift 双指针一步到位
  6. 数据在内存中的存储深度解析
  7. 【基础完全搜索】USACO Bronze 2019 January - 猜动物Guess the Animal
  8. [找出字符串中第一个匹配项的下标]
  9. OCR 精准识别验讫章:让登记与校验更智能
  10. 嵌入式 - 数据结构:查找至双向链表
  11. 用户管理——配置文件和命令
  12. 【数据库】使用Sql Server创建索引优化查询速度,一般2万多数据后,通过非索引时间字段排序查询出现超时情况
  13. Linux-Shell脚本基础用法
  14. 【VSCode】 使用 SFTP 插件实现多服务器同步
  15. 随机森林知识点整理:从原理到实战
  16. 区块链基础之Merkle树
  17. 数据结构——单向链表
  18. CMakeLists.txt学习
  19. 《JavaScript高级程序设计》读书笔记 35 - 代理捕获器、反射方法以及代理模式
  20. React 19 + Next.js 15 中实现混合布局
  21. React配置proxy跨域
  22. ref和reactive的区别
  23. 通过 Flink 和 CDC 从 Oracle 数据库获取增量数据,并将这些增量数据同步到 MySQL 数据库中
  24. [GESP202306 四级] 2023年6月GESP C++四级上机题超详细题解,附带讲解视频!
  25. Spring Boot + ShardingSphere 实现分库分表 + 读写分离实战
  26. AWS VPC Transit Gateway 可观测最佳实践
  27. 【物联网】基于树莓派的物联网开发【23】——树莓派安装SQLite嵌入式数据库
  28. 16_OpenCV_漫水填充(floodFill)
  29. Nginx vs Spring Cloud Gateway:限流功能深度对比与实践指南
  30. Spring Cloud Gateway 实现登录校验:构建统一认证入口