项目背景

作为大学的一名班委,经常要制作各种表格、统计各种信息,成为一名合格的“表哥”是一门必修课。其实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)修改下载图片保存的地址。

几点说明

  1. 下载器在下载爬取图片过程中会出现“未响应”,但实际上在后台已经在下载图片,可以进入图片保存地址查看状态,在无响应时等待下载完毕即可。有任何问题欢迎留言交流。

  2. 用于下载的Excel表有如下要求:

    1)超链接地址所在列:除去标题行(标题行可以为多行),下面应当均为超链接地址,不能将超链接和其他文本混在一列之中。

    2)Excel表中应包含文件命名信息列(即下载文件之后的命名信息),不同列的超链接应该有标题行,用于分类文件夹的命名。

Excel标准示例:

下载器下载地址

链接:https://pan.baidu.com/s/1uenkwgU4tSVUS69gUaxBHQ

提取码:swwl

最后的最后,有任何问题和建议,欢迎各位试用后在下方留言交流反馈。

收集的照片信息都是Excel超链接?批量命名很困难?来试试这个自制的下载器吧!的更多相关文章

  1. 收集计算机分区信息,去除列中的重复值(Excel)(空行)

    收集计算机分区信息 $servers = gc D:\serverlist.txt $result = $results = $null $results = @() foreach ($server ...

  2. 6. 堪比JMeter的.Net压测工具 - Crank 实战篇 - 收集诊断跟踪信息与如何分析瓶颈

    目录 堪比JMeter的.Net压测工具 - Crank 入门篇 堪比JMeter的.Net压测工具 - Crank 进阶篇 - 认识yml 堪比JMeter的.Net压测工具 - Crank 进阶篇 ...

  3. 收集oracle统计信息

    优化器统计范围: 表统计: --行数,块数,行平均长度:all_tables:NUM_ROWS,BLOCKS,AVG_ROW_LEN:列统计: --列中唯一值的数量(NDV),NULL值的数量,数据分 ...

  4. 用python抓取智联招聘信息并存入excel

    用python抓取智联招聘信息并存入excel tags:python 智联招聘导出excel 引言:前一阵子是人们俗称的金三银四,跳槽的小朋友很多,我觉得每个人都应该给自己做一下规划,根据自己的进步 ...

  5. DataGrid列表信息保存为EXCEL到指定的路径 ---------继续DataGrid在WPF的数据绑定

    一.许多WPF或者Winform程序在保存数据时,会以EXCEL或者文本的形式展现可视化界面的数据,本文就简单介绍下将DataGrid列表信息保存为EXCEL到指定的路径下,例子很简单,用的着的直接用 ...

  6. Android 后台发送邮件 (收集应用异常信息+Demo代码)

    上一次说了如何收集我们已经发布的应用程序的错误信息,方便我们调试完善程序.上次说的收集方法主要是把收集的信息通过Http的post请求把相关的异常信息变成请求参数发送到服务器.这个对做过web开发的人 ...

  7. 自动化收集SQLSERVER诊断信息

      自动化收集SQLSERVER诊断信息 相信很多人都遇到过当SQLSERVER出现问题的时候,而你又解决不了需要DBA或者微软售后支持工程师 去帮忙解决问题,那么他们一般需要你收集一些系统信息和SQ ...

  8. Oracle的自动统计信息不收集直方图的信息

    Oracle的自动统计信息不收集直方图的信息 在oracle9i中,默认的统计信息收集是不收集直方图信息的,也就是说默认的MOTHOD_OPT模式为FOR ALL COLUMNS SIZE 1 在10 ...

  9. JAVA IO流的简单总结+收集日志异常信息

    1.字节流: IuputStream 所有字节输出流的超类 . 抽象类 ---- FileInputStream ---- BufferedInputStream:提供数据的读取效率,拓展方法(内部维 ...

随机推荐

  1. Google Code Jam 2020 Round1B Expogo

    题意 你初始位于\((0,0)\),然后你想要到\((x,y)\)去,第\(i\)步的步长是\(2^{i-1}\),要求用最少的步数走到\((x,y)\). 解题思路 首先可以推出,走\(i\)步可以 ...

  2. 小程序开发-使用xpath解析网页html中的数据

    最新有个微信小程序的开发需求,需要从网页中提取一些元素信息,获取有效数据 1. 了解到微信小程序里面不能直接操作dom元素,所以我们需要使用一些其他的npm包 2. 经过查到各方面的文档,最新决定用x ...

  3. Ajax请求携带Cookie

    目录 xhr ajax cookie跨域处理 客户端 服务端 服务端设置跨域的几种方式 方式一 重写addCorsMappings方法 方式二 对单个接口处理 方式三 @CrossOrigin注解 方 ...

  4. upstream--负载

    语法格式: upstream 负载名 { [ip_hash;] server ip:port  [weight=数字]  [down]; server ip:port  [weight=数字]; } ...

  5. SpringBoot打Jar包在命令行运行

    首先写一个测试文件 然后点击IDEA右侧的maven,然后选择package,之后点击上面运行或者直接双击即可, 等下方控制台构建成功即可: 然后找到项目目录下target下即可看到打的jar包 然后 ...

  6. 【高并发】Redis如何助力高并发秒杀系统,看完这篇我彻底懂了!!

    写在前面 之前,我们在<[高并发]高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!>一文中,详细讲解了高并发秒杀系统的架构设计,其中,我们介绍了可以使用Redis存储秒杀商品的库存数量.很 ...

  7. Linux下 ls 命令的高级用法8例

    Linux下 ls 命令的高级用法8例 在Linux下,ls这个命令大家肯定太熟悉了,良许相信只要是Linux工程师,每天都会离不开这个命令,而且一天会使用个几百次.但是,除了 ls -l 以外,你还 ...

  8. oracle之二redo日志

    redo 日志 4.1 redo (重做) log 的功能:数据recovery4.2 redo log 特征:     1)记录数据库的变化(DML.DDL)     2)用于数据块的recover ...

  9. 深度理解volatile关键字

    最轻量的同步机制 获取被volatile修饰的变量的时候,每次都要从主内存中获取 设置被volatile修饰的变量的时候,每次都要刷回主内存当中 当其他线程调用的时候,会将自己线程当中保存的变量值置为 ...

  10. 第1课 - make和makefile

    第1课 - make 和 makefile 1. make make 是一个应用程序,位于 /usr/bin/make 目录下,make 有如下的功能: (1)解析源程序之间的依赖关系 (2)根据依赖 ...