【研发背景】
在日常办公中,我们经常需要将图片插入进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' )
视频展示
希望对大家有帮助,如有错误,欢迎指正
致力于办公自动化的小小程序员一枚
希望能得到大家的【一个免费关注】!感谢