注意!!!下载器V2.0已发布,改善本版本(V1.0)的易崩溃问题,请点击此处跳转至下载器V2.0介绍页。
项目背景
作为大学的一名班委,经常要制作各种表格、统计各种信息,成为一名合格的“表哥”是一门必修课。其实Excel的文字信息和数字信息的统计和处理还并不算难题,很多信息可以通过问卷星、金数据、腾讯问卷等平台收集统计。但难点在于收集图片信息,信息填写者在上传完相关图片后,管理者在下载结果后,图片在Excel中都成了一个个的超链接。这使得下载不仅困难,命名也是麻烦。
当然,有些下载结果并不直接显示图片超链接地址,而是蓝色的有其他文本的超链接。
不过没有关系,可以通过复制一段VB代码,让超链接直接显示,下面将仔细介绍。
VB语言将超链接地址显示出来
首先打开Excel的“开发工具”选项卡,如果没有的,打开“开发工具”选项卡的方法如下:
首先左键单击菜单栏中的【文本】选项卡,然后左键单击【选项】,左键单击【Excel 选项】中的【自定义功能区】选项,然后将【开发工具】前的小方格打上对勾,然后左键单击【确定】按钮,此时菜单栏中对多出一个选项【开发工具】。
接着,自定义一个VBA函数GetAdrs。首先左键单击【开发工具】选项,然后左键单击【代码】功能区中的【Visual Basic编辑器】。右键单击【工程资源管理器】窗口,将鼠标指针移动至【插入(N)】选项,左键单击二级菜单中的【模块(M)】选项,插入【模块1】,并将以下代码复制粘贴到【模块1】的代码窗口后,最后关闭Visual Basic编辑器。
代码如下:
Function GetAdrs(Rng)
Application.Volatile True
With Rng.Hyperlinks(1)
GetAdrs = IIf(.Address = "", .SubAddress, .Address)
End With
End Function
最后,使用函数GetAdrs()。
使用方法如下:首先左键单击选中【B2】单元格,键入自定义函数【=GetAdrs(A1)】,按回车键进行计算。将鼠标指针移动至【B2】单元格右下角,当鼠标指针变成【+】号后,长按鼠标左键并向下拖动进行公式填充。
在这里,我们将蓝字超链接所在单元格作为GetAdrs()函数括号中的值,即可将蓝字所含超链接提取出来使用。
介绍下载器
国庆假期期间,我利用Python写了这个Excel超链接地址文件批量下载器,还有很多不足,欢迎各位试用后在下方留言交流反馈。
写出的界面如上图所示。
演示效果视频戳此处观看
下载步骤如下:
1)点击“文件”-“打开”:载入Excel,成功时,下方“状态信息”会显示“载入成功”,否则会显示“文件载入失败,请重试!”;
注意:Excel的超链接应当是一列为一类信息,同时除去标题行,下面应当均为超链接地址!
即:例如推文第一张图,不同同学的照片(1)的超链接应该位于一列,这样同属于照片(1)类的图片都会被下载收集至名为“照片(1)”的文件夹中,同理,照片(2)的一列链接图片下载后将放置在名称为”照片(2)“的文件夹中。达到对不同类型的图片进行分类整理的目的。
2)第一个输入超链接所在的工作表号(即sheet后的数字);
3)第二个输入超链接所在列号(A为1,B为2,后面以此类推),如果有多列超链接,可以用逗号分割开来。对每一列进行分类下载。
4)第三个是指分类创建文件夹时名称所在行数。如推文第一张图,分类标题为“照片(1)”、“照片(2)”、“照片(3)”,标题在第一行,所以填1,这样会创建三个文件夹,并以这几个单元格的内容命名。
5)第四个是解决下载图片的命名问题。同样以推文第一张图片为例,如果想让图片命名为“姓名+.jpg”,而姓名信息所在列在第1列,所以第一个选择“重命名的名称信息在 1 列”,后面选择“.jpg”后缀,这样下载的图片就会以“姓名+.jpg”的方式命名。
需要说明的是,对于不同列的图片,因为会分类在不同文件夹,所以同命名冲突是不会存在的。
如果对于不同列的图片命名要求有所不同,那么建议逐列下载,即每一次下载仅下载一列,下载完再修改命名规则后下载新一列。
5)修改下载图片保存的地址。
几点说明
-
下载器在下载爬取图片过程中会出现“未响应”,但实际上在后台已经在下载图片,可以进入图片保存地址查看状态,在无响应时等待下载完毕即可。有任何问题欢迎留言交流。
-
用于下载的Excel表有如下要求:
1)超链接地址所在列:除去标题行(标题行可以为多行),下面应当均为超链接地址,不能将超链接和其他文本混在一列之中。
2)Excel表中应包含文件命名信息列(即下载文件之后的命名信息),不同列的超链接应该有标题行,用于分类文件夹的命名。
Excel标准示例:
下载器下载地址
下载器V2.0已发布,改善本版本(V1.0)的易崩溃问题,请点击此处跳转至下载器V2.0介绍页。
链接:https://pan.baidu.com/s/1uenkwgU4tSVUS69gUaxBHQ
提取码:swwl
最后的最后,有任何问题和建议,欢迎各位试用后在下方留言交流反馈。