【研发背景】
在日常办公中,我们经常需要将图片插入进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
fileName = './数据源/' + os.listdir('./数据源/')[0]
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
path = os.path.join(filePath, l)
ws.cell(i, 1).value = ('=HYPERLINK("{}","{}")'.format(path, ws.cell(i, 1).value))
wb.save('./结果/res.xlsx')
视频展示
希望对大家有帮助,如有错误,欢迎指正
致力于办公自动化的小小程序员一枚
希望能得到大家的【一个免费关注】!感谢