pandas使用HYPERLINK追加写入超链接-url、文件、图片

2023-10-19 15:20

本文主要是介绍pandas使用HYPERLINK追加写入超链接-url、文件、图片,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

pandas使用HYPERLINK追加写入超链接-url、文件、图片

使用HYPERLINK即可达到目的,可以写url、文件、图片、各种你自己能访问的路径

注意:HYPERLINK里面的字符长度不能超过255,否则无法写入超链接

调试目录结构

manFile(文件夹)

  • images(文件夹)
  • res1.png
  • test.txt
  • result(文件夹)
  • 生成excel文件.xlsx
  • test2.txt
  • main.py
  • draft.txt

主要代码段

#四个示例
textpath1 = r'../draft.txt' #写相对于表格的路径
textpath2 = r'..\images\test.txt'
textpath3 = r'test2.txt'
textpath4 = r'../images/res1.png'# print("--------------开始写入到表格中--------------------")
# 不加index会报错ValueError: If using all scalar values, you must pass an index
df = pandas.DataFrame(self.summary_title, index=[0])  # 字典数据,
df._set_value(0, 'UserCount', '=HYPERLINK("{}", "点击查看详情")'.format(textpath1))
df._set_value(0, 'IssueLink', '=HYPERLINK("{}", "点击查看详情")'.format(textpath2))
df._set_value(0, 'IssueCount', '=HYPERLINK("{}", "点击查看详情")'.format(textpath3))
df._set_value(0, 'Versions', '=HYPERLINK("{}", "点击查看详情")'.format(textpath4))

注意事项:

  • 关于路径:路径是以表格的路径为原点,进行写相对路径的,不是根据py文件所在的路径写相对路径
  • 关于调试:手动在excel中手写这个函数无法生效,必须要通过这套代码写才会生效
  • 关于file路径:不通过HYPERLINK,通过file也可以写文件,但只能写入绝对路径,格式file:///D:\D_Working\文档.txt
    • 手动写入也会生效,注意file后面有英文冒号顺斜杆,路径是反斜杆,这个写错是不生效的

可直接运行代码

# -*- coding: utf-8 -*-# @Time : 2022/2/24 10:24
# @Author : Vincent.xiaozai
# @Email : Lvan826199@163.com
# @File : demo11_pandas写入文件图片超链接.py
from datetime import datetimeimport pandas
import xlsxwriter as xlsxwriter
from openpyxl import load_workbookclass A():def __init__(self):passdef create_excel(self, game_name):# # print("-------------------------创建{}表格------------------------".format(project_name_list[project_index]))# # 以当前时间命名now_time = datetime.now().strftime('%Y-%m-%d-%H-%M-%S')self.excel_name = r"result/{}_{}.xlsx".format('mengwuji', now_time)workbook = xlsxwriter.Workbook(self.excel_name)# 新增sheet页sheet = workbook.add_worksheet(name=game_name)sheet.set_column(0, 0, 30)  # 设置第一列的宽度sheet.set_column(1, 1, 32)  # 设置第二列的宽度sheet.set_column(2, 2, 9)  # 设置第三列的宽度sheet.set_column(3, 3, 15)  # 设置第四列的宽度workbook.close()  # 保存book = load_workbook(self.excel_name)# 在AllCloseTime这个sheet中进行数据汇总self.summary_title = {"Versions": ["Versions"],"IssueCount": ["IssueCount"],"UserCount": ["UserCount"],"IssueLink": ["IssueLink"]}df = pandas.DataFrame(self.summary_title)  # 字典数据,按顺序,第一个为第一列,每个key后面的value长度必须一样,可以为空df1 = pandas.DataFrame(pandas.read_excel(self.excel_name, sheet_name="xiaozai"))  # 读取原数据文件和表writer = pandas.ExcelWriter(self.excel_name, engine='openpyxl')writer.book = book  # 写入指定给的表格writer.sheets = dict((ws.title, ws) for ws in book.worksheets)df.to_excel(writer, sheet_name="xiaozai", startrow=0, index=False,header=False)  # 将标题写入excel中Summary表writer.save()  # 保存print("-------------------------创建{}项目表格成功------------------------".format(self.excel_name))book = load_workbook(self.excel_name)self.summary_title['Versions'] = 'hell0'self.summary_title['IssueCount'] = 'hell0'self.summary_title['UserCount'] = '点击跳转'self.summary_title['IssueLink'] = '点击跳转'textpath1 = r'../draft.txt' #相对于表格的路径textpath2 = r'..\images\test.txt'textpath3 = r'test2.txt'textpath4 = r'../images/res1.png'# print("--------------开始写入到表格中--------------------")# 不加index会报错ValueError: If using all scalar values, you must pass an indexdf = pandas.DataFrame(self.summary_title, index=[0])  # 字典数据,df._set_value(0, 'UserCount', '=HYPERLINK("{}", "点击查看详情")'.format(textpath1))df._set_value(0, 'IssueLink', '=HYPERLINK("{}", "点击查看详情")'.format(textpath2))df._set_value(0, 'IssueCount', '=HYPERLINK("{}", "点击查看详情")'.format(textpath3))df._set_value(0, 'Versions', '=HYPERLINK("{}", "点击查看详情")'.format(textpath4))df1 = pandas.DataFrame(pandas.read_excel(self.excel_name, sheet_name="xiaozai"))  # 读取原数据文件和表writer = pandas.ExcelWriter(self.excel_name, engine='openpyxl')writer.book = book  # 写入指定给的表格writer.sheets = dict((ws.title, ws) for ws in book.worksheets)df_rows = df1.shape[0]  # 获取原数据的行数df.to_excel(writer, sheet_name="xiaozai", startrow=df_rows + 1,index=False,header=False)  # 将数据写入excel中对应的项目sheet表,从第一个空行开始写writer.save()  # 保存if __name__ == '__main__':run = A()run.create_excel('xiaozai')

表格展示

请添加图片描述

欢迎关注我的微信公众号:
梦无矶的测试开发之路

这篇关于pandas使用HYPERLINK追加写入超链接-url、文件、图片的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/240645

相关文章

vue使用docxtemplater导出word

《vue使用docxtemplater导出word》docxtemplater是一种邮件合并工具,以编程方式使用并处理条件、循环,并且可以扩展以插入任何内容,下面我们来看看如何使用docxtempl... 目录docxtemplatervue使用docxtemplater导出word安装常用语法 封装导出方

Linux换行符的使用方法详解

《Linux换行符的使用方法详解》本文介绍了Linux中常用的换行符LF及其在文件中的表示,展示了如何使用sed命令替换换行符,并列举了与换行符处理相关的Linux命令,通过代码讲解的非常详细,需要的... 目录简介检测文件中的换行符使用 cat -A 查看换行符使用 od -c 检查字符换行符格式转换将

Python FastAPI+Celery+RabbitMQ实现分布式图片水印处理系统

《PythonFastAPI+Celery+RabbitMQ实现分布式图片水印处理系统》这篇文章主要为大家详细介绍了PythonFastAPI如何结合Celery以及RabbitMQ实现简单的分布式... 实现思路FastAPI 服务器Celery 任务队列RabbitMQ 作为消息代理定时任务处理完整

使用Jackson进行JSON生成与解析的新手指南

《使用Jackson进行JSON生成与解析的新手指南》这篇文章主要为大家详细介绍了如何使用Jackson进行JSON生成与解析处理,文中的示例代码讲解详细,感兴趣的小伙伴可以跟随小编一起学习一下... 目录1. 核心依赖2. 基础用法2.1 对象转 jsON(序列化)2.2 JSON 转对象(反序列化)3.

使用Python实现快速搭建本地HTTP服务器

《使用Python实现快速搭建本地HTTP服务器》:本文主要介绍如何使用Python快速搭建本地HTTP服务器,轻松实现一键HTTP文件共享,同时结合二维码技术,让访问更简单,感兴趣的小伙伴可以了... 目录1. 概述2. 快速搭建 HTTP 文件共享服务2.1 核心思路2.2 代码实现2.3 代码解读3.

Elasticsearch 在 Java 中的使用教程

《Elasticsearch在Java中的使用教程》Elasticsearch是一个分布式搜索和分析引擎,基于ApacheLucene构建,能够实现实时数据的存储、搜索、和分析,它广泛应用于全文... 目录1. Elasticsearch 简介2. 环境准备2.1 安装 Elasticsearch2.2 J

使用C#代码在PDF文档中添加、删除和替换图片

《使用C#代码在PDF文档中添加、删除和替换图片》在当今数字化文档处理场景中,动态操作PDF文档中的图像已成为企业级应用开发的核心需求之一,本文将介绍如何在.NET平台使用C#代码在PDF文档中添加、... 目录引言用C#添加图片到PDF文档用C#删除PDF文档中的图片用C#替换PDF文档中的图片引言在当

详解C#如何提取PDF文档中的图片

《详解C#如何提取PDF文档中的图片》提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使用,下面我们就来看看如何使用C#通过代码从PDF文档中提取图片吧... 当 PDF 文件中包含有价值的图片,如艺术画作、设计素材、报告图表等,提取图片可以将这些图像资源进行单独保存,方便后续在不同的项目中使

Java中List的contains()方法的使用小结

《Java中List的contains()方法的使用小结》List的contains()方法用于检查列表中是否包含指定的元素,借助equals()方法进行判断,下面就来介绍Java中List的c... 目录详细展开1. 方法签名2. 工作原理3. 使用示例4. 注意事项总结结论:List 的 contain

C#使用SQLite进行大数据量高效处理的代码示例

《C#使用SQLite进行大数据量高效处理的代码示例》在软件开发中,高效处理大数据量是一个常见且具有挑战性的任务,SQLite因其零配置、嵌入式、跨平台的特性,成为许多开发者的首选数据库,本文将深入探... 目录前言准备工作数据实体核心技术批量插入:从乌龟到猎豹的蜕变分页查询:加载百万数据异步处理:拒绝界面