openpyxl读取图片和超链接-详细版

本文介绍了一种通过Python的openpyxl库实现从Excel的多个工作表中读取数据并按预设格式生成Word文档的方法。重点解决了如何利用超链接定位并读取指定单元格内容及图片数据的问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

网上资料比较少,自己的办法可能比较笨,但是坚持原创。

应用场景是通过读取excel格子的内容去按预定格式生成word文档,对于对文档格式要求严格的部分行业~~有一定的意义。

add_paragraph和add_run这类基础的不说,CSDN已经很多,主要解决openpyxl如何跨sheet读取表格、图片等数据

使用超链接

自己在xlsx中第二个sheet中创建一个表格,选中表格数据后右键-定义位置,即可看到引用位置

=Sheet2!$A$1:$B$5

我的程序是读取sheet1的内容,所以在sheet中插入一个超链接,选择本地文档位置-sheet2,将刚才的引用位置复制进去-确定。

这样在sheet1中的超链接,点击后将跳转到sheet2,并且通过openpyxl读取超链接时,才能得到这个引用位置。自己也可以试试不加引用位置的结果。(其实和锚点的作用类似)

这样得到引用位置后,可用正则表达式,得到python跳转打开sheet2后要读哪些格子内容,这个就是普通读取table的内容,不在赘述。

eval={'A':1,'B':2,'C':3,'D':4,'E':5,'F':6}  #翻译格子数的字典
wb=load_workbook('1.xlsx')
sheet=wb['Sheet1']
t=sheet.cell(7,5).hyperlink.location        #通过超链接得到引用位置
res1=re.findall("!(.*?):",t)[0]            #通过正则得到格子左上角
res2=re.findall(':(.*?)$',t)[0]            #通过正则得到格子右下角
r1=str(eval[res1[1]])+' '+res1[3:]        #翻译成第几行、第几列(可选)
r2=str(eval[res2[1]])+' '+res2[3:]        #同上

=============我是分割==============

图片的超链接比较简单

直接在sheet1中插入超链接,则超链接用python读出来的就是图片名称。

将图片放在与py程序同一个文件夹,直接就可插入到docx文件中。

 

有更好方法欢迎交流。

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值