Python如何批量将图片以超链接的形式插入Excel

【研发背景】

在日常办公中,我们经常需要将图片插入进Excel中,但是如果插入的图片太多的话,就会导致Excel的文件内存越来越大,但是如果我直插入图片的路径,或者只是更改某一列的数据设置为超链接,这样的话,我们将大大减少文件的内存大小

第一步打开一个Excel

我的A列就是我的关键字,我想让它变成一个图片的超链接,如图1

前提条件:A列的每一个超链接文字,必须能通过这个文字找到这个图片!!,如图2

在这里插入图片描述
在这里插入图片描述

目录结构(根据自己实际情况自行修改!)

文件夹【数据源】——存放你想要设置超链接的源文件

文件夹【附件】——你的图片存放的文件夹

文件夹【结果】——保存后文件结果存放的文件夹

在这里插入图片描述

需要使用的第三方库,就一个openpyxl

安装
openpyxl pip install openpyxl

注意事项(一定要看啊 一定要看啊 一定要看啊 )

1、在代码的第5行,这里是插入附件的所在的路径,请您使用绝对路径!filePath = 'F:\随笔\测试\附件\\'

2、在代码的第8行,注意您操作的sheet,sheet1 = sheets[0] # 读取第一个表格

3、在代码的第10行,是指您想用哪一列的文字作为超链接,这里的A就是A列,根据实际情况修改!!for col in sheet1['A']: # 遍历表格第一列内容

4、在代码的12行,col1.append(col.value[13:]),这里我切片了,是因为我表格里是完整的路径,我需要切出附件的名字!!,请您根据实际情况修改!

完整版代码:

import os
import openpyxl  # 处理xlsx文件模块

fileName = './数据源/' + os.listdir('./数据源/')[0]  # xlsx文件相对路径
filePath = './附件/'  # 图片所在文件夹路径
wb = openpyxl.load_workbook(fileName)  # 加载表格
sheets = wb.worksheets  # 读取表格内容
sheet1 = sheets[0]  # 读取第一个表格
col1 = []  # 存放表格第一列内容
for col in sheet1['A']:  # 遍历表格第一列内容
    if col.value != None:
        col1.append(col.value[13:])  # 这里我切片了,是因为我表格里是完整的路径,我需要切出附件的名字!!
lists = os.listdir(filePath)  # 读取图片名称
ws = wb.active  # 激活
for l in lists:  # 遍历存放图片名称的数组
    if l in col1:  # 找到图片名对应的列表标签
        i = int(col1.index(l)) + 1  # 用index()获取元素下标
        path = os.path.join(filePath, l)
        ws.cell(i, 1).value = ('=HYPERLINK("{}","{}")'.format(path, ws.cell(i, 1).value))  # 以超链接方式写入表格单元
wb.save('./结果/res.xlsx')  # 一定要保存表格

视频展示

在这里插入图片描述

希望对大家有帮助,如有错误,欢迎指正

致力于办公自动化的小小程序员一枚

希望能得到大家的【一个免费关注】!感谢

猜你喜欢

转载自blog.csdn.net/weixin_42636075/article/details/131591231