python 使用openpyxl实现对excel表格相对路径的超链接的创建

python 使用openpyxl实现对excel表格相对路径的超链接的创建

 # 这个是相对路径,可以修改父文件夹(images这个文件夹名不能更改)
 # img_path: images路径下的图片名
sheet.cell(row=img_site1_2 + 1, column=img_site2_2).hyperlink = 'images\\' + img_path

其他相关代码

# 设置居中靠底部显示
    align2 = Alignment(horizontal='right', vertical='justify')
    try:
    	# 使用tqdm库进行进度条显示
        with tqdm(iterable=images, desc='图片导入', unit='张', total=len(images)) as pgbr:
            for img_path in images:
                # 处理图片名称(获取插入地址)
                img_sites = img_path.split('_')
                # 行数(需要+1)
                img_site1 = int(img_sites[0])
                img_site1_2 = img_site1
                # sheet.row_dimensions[img_site1+1].height=40
                img_site1 = str(img_site1+1)
                # 转换为int,方便使用这个值当数组下标去取clos的值,列数
                img_site2 = int(img_sites[1])
                # if img_site2 == 0:
                #     img_site2 = int(img_sites[2])
                img_site2_2 = img_site2 + 11
                # 数组取值从0开始,而获取到的值是从1开始,真正的列值
                img_site2 = cols[img_site2 - 1]
                # 图片真正的地址
                img_path_real = savepath2 + '\\' + img_path
                # 插入图片本地地址
                # 这个是绝对路径(换一台电脑就不好使了)
                # file_name = 'file:///' + img_path_real # 这个是多余的,链接生成自动会产生
                # 使用相对路径,换一台电脑也可以正常访问图片)
                sheet.column_dimensions[img_site2].width=18
                # sh = sheet.row_dimensions[img_site1_2+1].height
                # print("sh: ",sh)
                # 插入到excel中的位置
                position = img_site2 + img_site1
                # 这个是绝对路径,修改文件夹名称就不能用了
                # sheet.cell(row=img_site1_2 + 1, column=img_site2_2).hyperlink = img_path_real 
                # 这个是相对路径,可以修改父文件夹(images这个文件夹名不能更改)
                sheet.cell(row=img_site1_2 + 1, column=img_site2_2).hyperlink = 'images\\' + img_path
                sheet.cell(row=img_site1_2 + 1, column=img_site2_2).style = "Hyperlink"
                sheet.cell(row=img_site1_2 + 1, column=img_site2_2).value = '详情'
                sheet.cell(row=img_site1_2 + 1, column=img_site2_2).alignment = align2
                # 可能存在插入的是视频(视频就直接以文件形式插入)
                try:
                    img = Image(img_path_real)
                    img.width = 50
                    img.height = 50
                    # 插入图片
                    sheet.add_image(img, position)
                except Exception as e:
                    sheet.cell(row=img_site1_2 + 1, column=img_site2_2).value = '视频' + str(img_site1_2) + '_' + str(img_site2_2 - 11)
                    sheet.cell(row=img_site1_2 + 1, column=img_site2_2).alignment = Alignment(horizontal='center', vertical='center')
                # 进度条
                pgbr.update(1)
                pass
        path_filename2 = savepath + '\\' + 'xxx年xx月_' + '.xlsx'
        wb.save(path_filename2)
    except Exception as e:
        print(e)
        return e
  • 1
    点赞
  • 4
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值