Python批量下载excel表中超链接图片

news/2025/2/22 3:56:31/

目录

背景

数据格式

 处理步骤

1.使用xlrd读取excel表格数据

 2.详细代码

①引入相关库

②实例代码


背景

导出数据到excel,数据中有图片,需求是批量下载图片的指定文件夹

数据格式

数据类型有直接是文本,也有显示图片,存在多张图片的情况,需要做的是批量获取Json格式数据中的pic,并进行下载

 处理步骤

1.使用xlrd读取excel表格数据

pip install xlrd

注:高版本的xlrd目前去除了xlsx格式的支持,支持xls格式

目前使用有两种方式

1.删除高版本,重装xlrd

xlrd.biffh.XLRDError: Excel xlsx file; not supportedpip install xlrd==1.2.0

2.打开xlsx文件,另存为xls格式

在这里插入图片描述

 2.详细代码

①引入相关库

import xlrd
import requests
import json

②实例代码

# 读取excel
read_path = r"xx\xx.xls"  # excel文件路径
bk = xlrd.open_workbook(read_path)# 获取所有sheet,取第1个sheet页,如果有多个sheet也可以使用sheet_by_name()方法
try:sh = bk.sheets()[0]
except:print("no sheet in %s" % read_path)# 获取表中的总行数
nrows = sh.nrows
print("nrows:", nrows)# 由于数据存在文本和json格式数据,需要先进行判断
# 判断是否是json格式数据
def is_json(msg):if isinstance(msg, str):  # 判断是否是字符串try:json.loads(msg)except ValueError:return Falsereturn Trueelse:return False# 表中第一行有标题,需要从第2行开始
for i in range(1, nrows):# print("下载第 %d 个图片" % i)picList = []  # 定义存放图片的list# 读取C列数据C_name = sh.cell_value(i, 2)print('C_name: ', C_name)# 读取D列数据  excel表中存在一行有多个图片情况,使用“;”对数据进行分隔,分别拿到每一个json格式数据D_name = sh.cell_value(i, 3).split(";")print('D_name: ', D_name)# 循环获取所有的jsonfor d_value in D_name:print('d_value:', d_value)if is_json(d_value):# 先对json进行判断picList = json.loads(d_value)['pic'] # 如果是json数据就直接取pic里的值if len(picList):  # 为空不打印print("picList:", picList)# 循环取出图片地址 使用enumerate获取每个图片下标for j, picUrl in enumerate(picList):# 根据URL下载到本地f = requests.get(picUrl)# 需要先创建文件夹pic_name = r"D:\xxx\Downloads\文件夹\\" + C_name + "_" + str(j + 1) + ".png"  # 构造完整文件路径+名称with open(pic_name, "wb") as code:code.write(f.content)


http://www.ppmy.cn/news/249276.html

相关文章

excel计算机系统验证方案,Excel公式计算数据完整性验证方案

Excel公式计算数据完整性验证方案Excel公式数据完整性验证协议第1页,共9页审核和批准协议的审核和批准页面协议的审核和批准的页面第2页,共9页1.验证目的此验证基于风险评估RA-1610005-01(适用于Excel公式计算表),它是否可以满足数据完整性的…

2016版excel_【重磅分享】最完整EXCEL教程,视频+PPT下载

肉眼品世界导读: 小编作为一个研发,曾经认为Excel就是和办公人员打字一样,多年以后才发觉各种好用的scrumworks管理工具还不太有Excel好用,曾经遇到一个项目经理,把jira里的bug导出来,三下五除二&#xff0…

EXCEL必备工具箱(EXCELtool)官方免费版V17.0 | 超级excel插件工具箱下载 | 完整的excel办公自动化工具箱

EXCEL必备工具箱是一款大部分功能免费且齐全可还能同时支持微软EXCEL和国产的金山WPS Office办公软件的excel插件工具箱,功能类似Kutools for Excel、Excel易用宝以及ASAP Utilities这些较为知名的Excel增强插件,该excel办公自动化插件自带免费多标签&am…

Java Web利用poi导出Excel2003、2007完整解决方案

1997-2003版行列数量限制:行-65535,列-256 2007-2010版行列数量限制:行-1048576,列-16384 根据自己的业务需求来选择版本,这里注意一下,03版本的后缀是.xls ,07版是.xlsx ,注意。本文以07版为例…

总结Python设置Excel单元格样式的一切,比官方文档还详细。

Python对Excel表格处理非常方便,本文专门对Excel单元格样式设置进行总结,日常用到的设置基本都可以用openpyxl库完成。 创建一个表格 openpyxl是第三方库,如果你还没有安装,输入下方命令安装。 pip install openpyxl 在开始设置单…

Office2016官方下载 | Microsoft Office Professional Plus 2016完整版下载

哪里下载Office2016官方最新版?Microsoft Office是微软开发的办公软件套装,常用组件有 Word、Excel、Powerpoint等。最新版是Office2016,其中Microsoft Office Professional Plus 2016(office专业增强版)是功能比较全的,下面小编跟…

利用EasyExcel完整的springboot +vue前后端导出并下载excel表格

文章目录 写在前面正文1. springboot后端引入easyexcel及使用1.1 引入依赖1.2 接口serviceImpl方法1.3 提供一个对list集合去重的方法(根据相同key,去除重复,合并value值)1.4 BizMergeStrategy合并策略类1.5 自定义ExcelUtil工具类…

POI导出excel(Java完整版代码)

1.pom.xml引入依赖 <dependency><groupId>org.apache.poi</groupId><artifactId>poi</artifactId><version>3.6</version></dependency>2.页面发送请求 window.location.href “/exportInfoList?”param; 3.后台Controlle…