python写入Excel时,将路径或链接以超链接的方式写入

Python61

python写入Excel时,将路径或链接以超链接的方式写入

原创

CorwinPC博主文章分类:Python ©著作权

文章标签 python 开发语言 后端 文件路径 perl 文章分类 Python 后端开发

©著作权归作者所有:来自51CTO博客作者CorwinPC的原创作品,请联系作者获取转载授权,否则将追究法律责任

我们希望做到的是,如果单元格内容是一个文件路径或者链接的时候,能够直接在Excel中以超链接的方式打开。

将text转为url链接def excel_text2url(link_url):    ''' 把一个网址字符串转换为excel公式 '''    return f'=HYPERLINK("{link_url}","点击查看")'

只需要在写入到Excel之前,将需要转换的列通过改函数转换一下即可。

  • 收藏
  • 评论
  • *举报

上一篇:Python logging模块实现同时向控制台和文件打印日志

下一篇:若依表格中单元格内容过长显示处理方法?

Original: https://blog.51cto.com/YangPC/5483038
Author: CorwinPC
Title: python写入Excel时,将路径或链接以超链接的方式写入



相关阅读1

Title: pandas 基于日期的统计

概要

分析时间序列数据时,按照日期的维度进行统计几乎是必备的需求。
基于pandas,可以方便的进行各种日期维度(年份,季度,月,周等等)的统计,不用去遍历每行数据去统计。

示例-销售数据统计

演示数据来源一些销售数据,可以点击 这里 下载。

每行数据包括日期,国家,城市,地区,销售额和利润等字段,我们主要使用日期,销售额和利润3个字段。

下面的演示代码,我是在 jupyter notebook 中运行的。

导入数据

导入数据比较简单,下载的压缩包解压后,有个excel文件,可以通过 pandas 直接导入。

import pandas as pd

xlsx_path = "./通讯产品销售数据.xlsx"

df_sales = pd.read_excel(xlsx_path, sheet_name="SalesData")
df_sales

python写入Excel时,将路径或链接以超链接的方式写入

df_sales.dtypes

python写入Excel时,将路径或链接以超链接的方式写入

按【年份】统计

df_year_sales = df_sales[["日期", "地区","销售额", "利润"]].copy(deep=True)

df_year_sales["日期"] = df_year_sales["日期"].apply(lambda x: x.year)
df_year_sales.groupby(["日期", "地区"]).sum()

python写入Excel时,将路径或链接以超链接的方式写入

按【季度】统计

df_quarter_sales = df_sales[["日期", "地区", "销售额", "利润"]].copy(deep=True)

df_quarter_sales["日期"] = df_quarter_sales["日期"].apply(lambda x: "{}Q{}".format(x.year, x.quarter))
df_quarter_sales.groupby(["日期", "地区"]).sum()

python写入Excel时,将路径或链接以超链接的方式写入

按【月份】统计

df_month_sales = df_sales[["日期", "地区", "销售额", "利润"]].copy(deep=True)

df_month_sales["日期"] = df_month_sales["日期"].apply(lambda x: "{}-{}".format(x.year, x.month))
df_month_sales.groupby(["日期", "地区"]).sum()

python写入Excel时,将路径或链接以超链接的方式写入

按【周】统计

# 周的数据比较多,这里只取2020年的数据
df_week_sales = df_sales[["日期", "地区", "销售额", "利润"]].copy(deep=True)
df_week_sales = df_week_sales[df_week_sales["日期"] > '2019-12-31']

df_week_sales["日期"] = df_week_sales["日期"].apply(lambda x: "{}年第{:02d}周".format(x.year, x.week))
df_week_sales.groupby(["日期", "地区"]).sum().sort_values(["日期"])

python写入Excel时,将路径或链接以超链接的方式写入

Original: https://www.cnblogs.com/wang_yb/p/15856256.html
Author: wang_yb
Title: pandas 基于日期的统计

相关阅读2

Title: 数据分析----numpy数组的三种创建方式

推荐文章

2023年,摸鱼计划系列活动又跟大家见面了,我们活动规则不变,福利升级! 新的一年,继续把工作学习中的bug处理、碎片知识,统统记录到博客里。留下自己在技术之路的成长足迹。
推荐原创51CTO博客13天前10000+阅读11点赞732评论1收藏

在51CTO博客成功发布第一篇博文,可领取新人福利,奖品三选一。来分享属于自己的技术踩坑经验吧!
推荐原创51CTO博客95天前10000+阅读16点赞11评论5收藏

;
原创Marydon1小时前131阅读点赞评论收藏

出现网关不亮灯的原因就是配置问题,仔细检查网关和微端程序的IP地址有没有填错,如有填错更改过来即可。​微端无连接不更新的问题解决方法​1、端口不对​微端没有更新,玩家进入游戏是地图跟装备都看不见,是漆黑的,微端显示连接失败,好吧,那么从头开始检查,检查什么地方呢,第一检查微端网关程序,看看上面是否全部显示连接成功了,如果是成功的,那么看一下列表里面的端口对不对的上​服务器IP都是连接成功的,没有连
原创会开服的小杰1小时前143阅读1点赞评论收藏

本文首发自「慕课网」,想了解更多IT干货内容,程序员圈内热闻,欢迎关注!作者|慕课网精英讲师 然冬基于 IEEE 754 标准的双精度 64 位二进制格式的值(-(253 -1) 到 253 -1)。——MDN在 JavaScript 只有浮点数(可以理解成带有小数点的数)。数字就是我们日常使用的数字,在 JavaScript 中默认是十进制的。10;-1;1.1;10.0;+0;-0;99999
原创imooc慕课君2小时前154阅读点赞评论收藏

本篇介绍下flea-jersey模块的文件下载功能
原创Huazie2小时前143阅读点赞评论收藏

_app.js只加入一个 ThemeProvide 具体在 ThemeProvide 中import type { AppProps } from "next/app
原创JediHongbin2小时前143阅读点赞评论收藏

概念数据库连接池其实就是一个容器(集合),存放数据库连接的容器。当系统初始化好后,容器被创建,容器中会申请一些连接对象,当用户来访问数据库时,从容器中获取连接对象,用户访问完之后,会将连接对象归还给容器。好处1.节约资源2.用户访问高效实现标准接口:DataSource javax.sql包下的方法:获取连接:getConnection()归还连接:Connection.close()。如果连接对
原创共饮一杯无2小时前137阅读1点赞评论1收藏

项目中需要自定义icon,在项目中通用html使用css样式.icon-save { /使用自己的图片来替换/ background: url('图片地址') center no-repeat; background-size: contain;}.icon-save::before { /*before
原创不叫猫先生2小时前138阅读点赞评论收藏

二叉树的锯齿形层序遍历(树、广度优先搜索)给定一个二叉树,返回其节点值的锯齿形层序遍历。(即先从左往右,再从右往左进行下一层遍历,以此类推,层与层之间交替进行)。例如:给定二叉树3,9,20,null,null,15,7,3/\920/\157返回锯齿形层序遍历如下:3,20,9,15,7解答:javapublicclassTreeNode{intval;TreeNodeleft;TreeNode
原创共饮一杯无2小时前138阅读1点赞评论1收藏

1.情景展示 where限制条件后面如果想要加select语句的话,如何实现? 2.原因分析 通常情况下,where后面跟的是:clo
原创Marydon2小时前149阅读点赞评论收藏

编码进化回忆上次内容上次 研究了 视频终端的 演化 从VT05 到 VT100从 黑底绿字 到 RGB 24位真彩色形成了 VT100选项从而 将颜色 ​​数字化​​ 了生活中我们更常用 10个数字 但是 计算机中 用二进制日常计数的十进制数 是如何存储进计算机的呢??从10进制到2进制日常生活中 为什么用10进制? 是因为 人的生理结构计算机中 使用2进制 是因为 计算机的生理结构 电灯、开关
原创overmind19802小时前133阅读点赞评论收藏

程序员的日历,真的不用上网查,直接一条命令就可以默认显示本月的日历(20230214)bashcal二月2023日一二三四五六12345678910111213141516171819202122232425262728显示指定年份的日历bashcaly20232023一月二月三月日一二三四五六日一二三四五六日一二三四五六12345671234123489101112131456789101156
原创彭世瑜2小时前139阅读点赞评论收藏

效果如下图所示:我们实际上使用了2D来模拟3D效果。!(https://s2.51cto.com/images/blog/202302/14095121_63eae919a42774018.png?xossprocess=image/watermark,size_14,text_QDUxQ1RP5Y2a5a6i,color_FFFFFF,t_100,g_se,x_10,y_10,shadow_20
原创JerryWang汪子熙2小时前146阅读点赞评论收藏

写在前面+K9s是一个基于终端UI的K8S管理工具+博文内容为k9s在windows、Linux以及docker安装Demo+简单的热键使用。+理解不足小伙伴帮忙指正
原创山河已无恙3小时前129阅读点赞评论收藏

写在前面+kubebox是一个轻量的k8s管理工具,可以基于命令行终端或Web端+博文内容涉及:kubebox不同方式的安装下载,简单使用。+如果希望轻量一点,个人很推荐这个工具,轻量,而且使用简单。+理解不足小伙伴帮忙指正我所渴求的,無非是將心中脫穎語出的本性付諸生活,為何竟如此艱難呢赫尔曼·黑塞《德米安》简单介绍Kubebox是一个类似k9s的基于命令行终端的k8s管理工具,可以直接下载可执行
原创山河已无恙3小时前143阅读点赞评论收藏

本文将给大家分享Java并发编程相关的知识点,具体将对Java常见的并发编程方式和手段进行总结,以便可以从使用角度更好地感知Java并发编程带来的效果。
原创京东云开发者3小时前145阅读点赞评论收藏

软件开发入门教程网Bootstrap4 面包屑导航(Breadcrumb)面包屑导航是一种基于网站层次信息的显示方式。以博客为例,面包屑导航可以显示发布日期、类别或标签。它们表示当前页面在导航层次结构内的位置,是在用户界面中的一种导航辅助。Bootstrap 中的面包屑导航是一个简单的带有 .breadcrumb class 的无序列表。分隔符会通过 CSS(bootstrap
原创雪奈椰子3小时前134阅读点赞评论收藏

一、前言 - webpack热更新​​Hot Module Replacement​​,简称​​HMR​​,无需完全刷新整个页面的同时,更新模块。​​HMR​​的好处,在日常开发工作中体会颇深:节省宝贵的开发时间、提升开发体验。刷新我们一般分为两种:一种是页面刷新,不保留页面状态,就是简单粗暴,直接​​window.location.reload()​​。另一种是基于​​WDS (Webpack-
原创Seattle小小瓜3小时前135阅读点赞评论收藏

1.背景Spring的核心思想就是容器,当容器refresh的时候,外部看上去风平浪静,其实内部则是一片惊涛骇浪,汪洋一片。Springboot更是封装了Spring,遵循约定大于配置,加上自动装配的机制。很多时候我们只要引用了一个依赖,几乎是零配置就能完成一个功能的装配。我非常喜欢这种自动装配的机制,所以在自己开发中间件和公共依赖工具的时候也会用到这个特性。让使用者以最小的代价接入。想要把自动装
原创Seattle小小瓜3小时前135阅读点赞评论收藏

一. pyinstaller和Nuitka使用感受1.1 使用需求这次也是由于项目需要,要将python的代码转成exe的程序,在找了许久后,发现了2个都能对python项目打包的工具——pyintaller和nuitka。这2个工具同时都能满足项目的需要:隐藏源码。这里的pyinstaller是通过设置key来对源码进行加密的;而nuitka则是将python源码转成C++(这里得到的是二进制的
原创LinkSLA3小时前146阅读点赞评论收藏

本文主要讲述了Android客户端模块化开发的痛点及解决方案,详细讲解了方案的实现思路和具体实现方法。
原创vivo互联网3小时前135阅读点赞评论收藏

Original: https://blog.51cto.com/u_11160105/5515283
Author: redrose2100
Title: 数据分析----numpy数组的三种创建方式

相关阅读3

Title: Python ❀ 内置数据类型(二)

Python学习计划(五)

一、字符串(不可改变对象)
1、定义:有序的字符的集合,用单引号或者双引号表示,支持索引,切片

2、相关操作:
设sx='abcd',sy='wxyz'

  • 合并:sx+sy
  • 重复:sx*3
  • 索引:sx[0],sx[-1]

就是编号,通过这个编号就能找到相应的存储空间。
正数从左到右,负数从右到左。

切片:sx[:],sx[:3],sx[2:],sx[0:4:2]
是指对操作对象截取其中的一部分
语法:[起始:结束:步长:]

注意:选取的区间属于左闭右开,即从'起始'位开始,到'结束'位的前一位结束(不包含结束位本身)。

元素存在性:'a' in sx,'b' not in sy

函数操作:设mystr = 'hello world itcast and itcastcpp'

  • Find:检测str是否包含在mystr中,如果是返回开始的索引值,否则返回-1

  • Index:根find()方法一样,只不过如果str不在mystr中会报一个异常

  • Count:返回str在start和end之间在mystr里面出现的次数

  • Replace:把mystr中的str1替换成str2,如果count指定,则替换不超过count次

  • Split:以str为分隔符切片mystr,如果maxsplit有指定值,则仅分隔maxsplit个字符串

  • Capitalize:把字符串的第一个字符大写

  • Title:把字符串的每个单词首字母大写

  • Startswith:检查字符串是否是以obj开头,是则返回true,否则返回false

  • Endswith:检查字符串是否以obj结束,如果是返回true,否则返回false

  • Lower:转换mystr中所有大写字符为小写

  • Upper:转换mystr中的小写字母为大写

  • Ljust:返回一个原字符串左对齐,并使用空格填充至长度width

  • Rjust:返回一个原字符串右对齐,并使用空格填充至长度width

  • Center:返回一个原字符串居中,并使用空格填充至长度width

  • Lstrip:删除mystr左边的空白字符

  • Rstrip:删除mystr字符串末尾的空白字符

  • Strip:删除mystr字符串两端的空白字符

  • Rfind:类似于find()函数,不过是从右边开始查找

  • Rindex:类似于index(),不过是从右边开始

  • Partition:把mystr以str分割成三部分,str前,str和str后

  • Rpartition:类似于partition()函数,不过是从右边开始

  • Splitlines:按照行分隔,返回一个包含各行作为元素的列表

  • Isalpha:如果mystr所有字符都是字母,则返回true,否则返回false

  • Isdigit:如果mystr只包含数字则返回true,否则返回false

  • Isalnum:如果mystr所有字符都是字母或数字,则返回true,否则返回false

  • Isspace:如果mystr中包含空格,则返回true,否则返回false

  • Join:mystr中每个字符后面插入str,构造出一个新的字符

raw字符串:全部化为普通字符r'\n\t\a 123abc'

二、列表-list(可变对象)
1、定义:元素类型不限并可嵌套,用[]表示,支持索引、切片
2、相关操作:设sx=[1,2,3,4] sy=[5,6,7,8]

  • 合并:sx+sy
  • 重复:sx*3
  • 索引:sx[0],sx[-1],s[0][0]
  • 切片:sx[:],sx[:3],sx[2:],sx[1:3],sx[0:4:2]
  • 元素存在性:1 in sx

函数操作:

  • append:通过append可以向列表添加元素

  • extend:通过extend可以将另一个集合中的元素逐一添加到列表中

  • insert:在指定位置index前插入元素object

  • in,not in:所谓的查找,就是看看指定的元素是否存在

  • index,count:index和count与字符串中的用法相同
  • del:根据下标进行删除或者删除整个列表

  • pop:删除最后一个元素

  • remove:根据元素的值进行删除

  • Sort:将list按照特定顺序重新排列,默认为由小到大,参数reserve=true可以改为倒序

  • reverse:将list逆置

三、元组-tuple(不可变对象)
定义:其余与list相同,用()表示

四、字典(可变对象)
1、定义:不支持索引,但是可以通过键读取元素,属于可变映射类型,用{key:value}表示
2、相关操作:

  • D={}:空字典
  • D={'A':2,'B':3}:两个键值对的字典
  • D={'A':{'B':3,'C':4}}:字典嵌套
  • D=dict.fromkeys(['a','b']):其他创建方式
  • D=dict(zip(keylist,valslist))
  • D['A']:以键取值
  • D['A']['B']
  • 2 in D:成员关系
  • D.keys():键的列表
  • D.values():值的列表
  • D.items():值键对的列表
  • D.copy():赋值
  • D.get(key,default):获取值
  • D.update(D2):合并
  • D.pop(key):删除
  • Len(D):长度
  • D[key]=42:新增,修改
  • Del D[key]:删除
  • List(D.keys())
  • Dict.has_key(key):如果key在字典中,返回true,否则返回false

附录:
内置函数:

  • int(字符串,基数):将数字字符串以技术形式转为整数十进制
  • int(浮点数):将浮点数转换为整数十进制
  • hex(整数):将十进制整数转为十六进制
  • oct(整数):将十进制整数转为八进制
  • bin(整数):将十进制整数转为二进制
  • pow(底数,幂):计算底层数的几次幂

创作者:Eric· Charles

Original: https://blog.51cto.com/u_14814563/5415672
Author: 无糖可乐没有灵魂
Title: Python ❀ 内置数据类型(二)