Python in Excel的一些使用心得

获得Python in Excel的preview之后, 就在任意的Excel单元格里可以敲=py(来写Python代码了。不过Python in Excel并没有什么专门的文档, 只有一些_Get Started_教程, 比如link 1, link 2, 剩下的就是pandas, matplotlib, seaborn等lib的文章,和Python in Excel并没有什么关系。所以刚进入Python in Excel时,对这个新的环境会有很多疑问,这篇文章主要是分享一些我的一些理解和使用心得。

从单元格取值

在Python in Excel中, 我们可以用xl()函数获取从单元格,列,行乃至sheet中获取数据。如果要获取其他sheet中的数据,按照xl('SheetName!A1:B2')这样的方式写就可以. 如果 xl()函数引用的值的范围超过了一个单元格,那么它返回的值是一个DataFrame对象.

如果在Excel中多单元格设置了类型(category),那么xl()返回的类型的对应管辖如下所示:

image.png

Python运行时

Python in Excel的Python运行时(runtime)是部署在Microsoft Cloud上的,所以在Excel中敲下 ctrl + enter时,Excel中的代码和数据都会被传送到云端执行,执行完从云端取回结果。

从Excel菜单的Formulas -> Python -> Initiallization,我们可以看到这个运行时是如何被初始化的,有哪些库会被默认加载,哪些默认值会被设置。

image.png

除了像 numpy, pandas(其他你可以import的库可以参考这篇文档 )这些常用的数据处理的库之外,excel这个库(或者应该被称作一个依赖)主要负责Excel中的数据转换,以及Excel与Microsoft Cloud的数据传输等任务,比如:用于从Excel的sheet中获取数据的xl()函数; 你也可以通过excel.uploadeddata.get_runtime_id()函数来获取一个当前Python运行时的uuid。我没有找到微软官方关于excel这个库的文档,可以需要以后在进一步挖掘了。

一个打开的Excel文档中的全部sheet以及sheet中的全部单元格都会共享同一个Python运行时。这就意味着如果你在任意一个单元格中声明的函数、变量和类,都可以在其他的的单元格的代码中引用到。举个例子,

image.png

网络请求

我们实际上是可以在Python in Excel的Python代码中import像socket, http, reqeuests这些库的。不过可能是出于安全原因,在运行时的容器中应该是存在防火墙或者是禁止掉了网络的使用,所以我们并不能实际发出任何请求。这样的话,我们也就不能动态在Python in Excel的代码中加载任何代码和外部数据。

如果未来版本的Python in Excel提供了私有化部署的解决方案,网络请求应该不是什么问题,我也不用担心自己的数据有被微软乃至其他第三方获取的可能性。

检查Python对象的值

在Python shell中(或者IDLE),我们经常可以使用dir(), help(), type()这些辅助方法来检查当前Python运行时中的一些对象和类的结构,或者是获取相关的使用帮助,这样绝对是编程时的调试神器。在Python in Excel中,虽然Excel并没有给我们一个shell,但我们也可以做类似的事情。

举个例子,我们可以对excel模块使用dir()函数,来看看excel模块中有哪些方法,并把这些方法返回到一个column中:

image.png

我们可以把对一些对象的值的检查工作组织成一个list来返回,这样可以节省不少在云端执行代码的时间:

image.png

除了检查对模块的内容,我们对Python代码中的任意中间值进行检查,这样就几乎可以像使用Jupyter一样的来使用Python in Excel了。

把Excel的sheet作为库来加载

前文已经提到,我们不能动态的通过网络请求来加载远端的Python代码。如果我们想使用一些库,比如一些自己的常用代码,我们还是需要一些方法来加载它们。

目前的一些临时的解决方案是把需要复用的代码都单独的放在一个sheet里(保存在独立的.xlsx文件中),这样在需要使用这些代码时,我们就可以把整个sheet拷贝到当前的.xlsx文件中来加载。

错误信息的处理

目前Python in Excel只会返回很简单的错误信息,也就是Exception对象的message中的内容。如果你需要详细的stack trace的信息,可以封装一下try/except代码块,让Python in Excel把错误栈作为一个list返回回来。比如:

import tracebackret = ''try:# your code or functionret = xxx()
except:ret = traceback.format_exc().split('\n')ret

上面代码中的.split('\n') 是为了把错误信息切割成多个单元格来展示(每个单元格一行,整体在一个column中)。为了更好的展示错误信息,最好把单元格的字体设置为等宽字体。

其他值得注意的地方

  • Python in Excel的多行输出会忽略掉换行符\n
  • xl()函数可以正确从单元格中读取换行符\n
  • Python in Excel不能读取插入的对象,比如作为附件的文件。
  • 目前还不能在Python in Excel指定返回值输出到的单元格,只能以=py(所在的当前单元格为基点来输出。

如果你对Python感兴趣,想要学习python,这里给大家分享一份Python全套学习资料,都是我自己学习时整理的,希望可以帮到你,一起加油!

😝有需要的小伙伴,可以V扫描下方二维码免费领取🆓

1️⃣零基础入门

① 学习路线

对于从来没有接触过Python的同学,我们帮你准备了详细的学习成长路线图。可以说是最科学最系统的学习路线,你可以按照上面的知识点去找对应的学习资源,保证自己学得较为全面。
在这里插入图片描述

② 路线对应学习视频

还有很多适合0基础入门的学习视频,有了这些视频,轻轻松松上手Python~
在这里插入图片描述

③练习题

每节视频课后,都有对应的练习题哦,可以检验学习成果哈哈!
在这里插入图片描述

2️⃣国内外Python书籍、文档

① 文档和书籍资料

在这里插入图片描述

3️⃣Python工具包+项目源码合集

①Python工具包

学习Python常用的开发软件都在这里了!每个都有详细的安装教程,保证你可以安装成功哦!
在这里插入图片描述

②Python实战案例

光学理论是没用的,要学会跟着一起敲代码,动手实操,才能将自己的所学运用到实际当中去,这时候可以搞点实战案例来学习。100+实战案例源码等你来拿!
在这里插入图片描述

③Python小游戏源码

如果觉得上面的实战案例有点枯燥,可以试试自己用Python编写小游戏,让你的学习过程中增添一点趣味!
在这里插入图片描述

4️⃣Python面试题

我们学会了Python之后,有了技能就可以出去找工作啦!下面这些面试题是都来自阿里、腾讯、字节等一线互联网大厂,并且有阿里大佬给出了权威的解答,刷完这一套面试资料相信大家都能找到满意的工作。
在这里插入图片描述
在这里插入图片描述

上述所有资料 ⚡️ ,朋友们如果有需要的,可以扫描下方👇👇👇二维码免费领取🆓

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/703195.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

Python算法题集_实现 Trie [前缀树]

Python算法题集_实现 Trie [前缀树] 题208:实现 Trie (前缀树)1. 示例说明2. 题目解析- 题意分解- 优化思路- 测量工具 3. 代码展开1) 标准求解【定义数据类默认字典】2) 改进版一【初始化字典无额外类】3) 改进版二【字典保存结尾信息无额外类】 4. 最优算法5. 相关…

OpenGL-ES 学习(5)---- GPU 基础知识

目录 Arm GPU 架构说明移动系统的特点渲染管线渲染管线简介几何处理像素处理 渲染管线的硬件IMR(立即渲染)TBR(Tile Based Rendering) 渲染硬件的实现CPUGPU 设计 Mali Shadercore重要补充 Arm GPU 架构说明 UtGard: 比较早的架构,支持到 OpenGL-ES 2.0,VertexShad…

【小尘送书-第十四期】《高效使用Redis:一书学透数据存储与高可用集群》

大家好,我是小尘,欢迎你的关注!大家可以一起交流学习!欢迎大家在CSDN后台私信我!一起讨论学习,讨论如何找到满意的工作! 👨‍💻博主主页:小尘要自信 &#x1…

Base64 编码 lua

Base64 编码 -- Base64 字符表 local base64_chars { A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, a, b, c, d, e, f, g, h, i, j, k, l, m, n, o, p, q, r, s, t, u, v, w, x, y, z, 0, 1, 2, 3, 4, 5, 6, 7, 8, 9,…

文献阅读:Large Language Models are Null-Shot Learners

文献阅读:Large Language Models are Null-Shot Learners 1. 文章简介2. 方法介绍3. 实验考察 & 结论 1. 基础实验 1. 实验设计2. 实验结果 2. 消融实验 1. 小模型上的有效性2. ∅CoT Prompting3. 位置影响4. 组成内容 4. 总结 & 思考 文献链接&#xff1…

代码随想录算法刷题训练营day23

代码随想录算法刷题训练营day23:LeetCode(669)修剪二叉搜索树、LeetCode(108)将有序数组转换为二叉搜索树、LeetCode(538)把二叉树转化为累加树 LeetCode(669)修剪二叉搜索树 题目 代码 /*** Definition for a binary tree node.* public class TreeNode {* …

【Vue】Vue双向绑定原理

【Vue】Vue双向绑定原理 定义:数据变化视图会自动更新,视图变化数据也会更新原理:通过数据劫持和发布订阅模式实现的实现 定义:数据变化视图会自动更新,视图变化数据也会更新 比如说,当在输入框输入文字时…

SocketWeb实现小小聊天室

SocketWeb实现小小聊天室 消息推送的常见方式轮询长轮询SSE(server-sent event):服务器发送事件WebSocketWebSocket简介WebSocket API 实现小小聊天室实现流程消息格式客户端-->服务端服务端-->客户端 消息推送的常见方式 轮询 浏览器…

图书推荐|Windows Server 2022 Active Directory配置实战

十几年磨一剑,畅销书第10次升级 本书简介 《Windows Server 2022 Active Directory配置实战》是微软技术专家最新推出的Windows Server 2022两卷力作中的Active Directory配置实战篇。 《Windows Server 2022 Active Directory配置实战》延续了作者一贯的写作风格…

MATLAB环境下基于洗牌复杂演化的图像分割算法

智能优化算法因其较强的搜索解能力而得到了大量的应用,在这些计算智能算法中,群体智能优化算法因其高效性、有效性以及健壮性等优点而得到了科研人员的青睐。这类算法借鉴生物群体的合作特性,主要解决大规模复杂的分布式问题,研究…

第7.1章:StarRocks性能调优——查询分析

目录 一、查看查询计划 1.1 概述 1.2 查询计划树 1.3 查看查询计划的命令 1.3 查看查询计划 二、查看查询Profile 2.1 启用 Query Profile 2.2 获取 Query Profile 2.3 Query Profile结构与详细指标 2.3.1 Query Profile的结构 2.3.2 Query Profile的合并策略 2.…

WPF Style样式设置

1.本window设置样式 <Window x:Class"WPF_Study.MainWindow"xmlns"http://schemas.microsoft.com/winfx/2006/xaml/presentation"xmlns:x"http://schemas.microsoft.com/winfx/2006/xaml"xmlns:d"http://schemas.microsoft.com/expressi…

CentOS删除除了最近5个JAR程序外的所有指定Java程序

帮我写一个shell脚本,ps -eo pid,lstart,cmd --sort=-start_time | grep "pgz-admin"查到的结果,返回的所有进程PID,第六个之上的,全部kill 当然,你可以创建一个简单的Shell脚本来完成这个任务。以下是一个例子: #!/bin/bash# 获取包含 "pgz-admin"…

JSONVUE

1.JSON学习 1.概念: JSON是把JS对象变成字符串. 2.作用: 多用于网络中数据传输. JavaScript对象 let person{name:"张三",age:18}//将JS对象转换为 JSON数据let person2JSON{"name":"张三","age":18}; 3.JS对象与JSON字符串转换…

Python爬虫-付费代理推荐和使用

付费代理的使用 相对免费代理来说&#xff0c;付费代理的稳定性更高。本节将介绍爬虫付费代理的相关使用过程。 1. 付费代理分类 付费代理分为两类&#xff1a; 一类提供接口获取海量代理&#xff0c;按天或者按量收费&#xff0c;如讯代理。 一类搭建了代理隧道&#xff0…

AR应用的开发流程

增强现实&#xff08;Augmented Reality&#xff0c;AR&#xff09;是一种技术&#xff0c;它将虚拟信息叠加在真实世界中&#xff0c;通过计算机生成的视觉、听觉、触觉等感官反馈&#xff0c;将虚拟元素与现实世界进行交互。这种技术使得用户可以与现实世界中的虚拟对象进行互…

Windows系统搭建Elasticsearch引擎结合内网穿透实现远程连接查询数据

文章目录 系统环境1. Windows 安装Elasticsearch2. 本地访问Elasticsearch3. Windows 安装 Cpolar4. 创建Elasticsearch公网访问地址5. 远程访问Elasticsearch6. 设置固定二级子域名 Elasticsearch是一个基于Lucene库的分布式搜索和分析引擎&#xff0c;它提供了一个分布式、多…

社交媒体变革者:剖析Facebook对在线互动的贡献

随着数字化时代的蓬勃发展&#xff0c;社交媒体已经成为人们日常生活中不可或缺的一部分。在这个领域的发展中&#xff0c;Facebook作为先行者和领导者&#xff0c;对在线互动的演变和发展产生了深远的影响。本文将深入剖析Facebook在社交媒体领域的贡献&#xff0c;以及它对在…

Python爬虫-爬取B站番剧封面

本文是本人最近学习Python爬虫所做的小练习。如有侵权&#xff0c;请联系删除。 页面获取url 代码 import requests import os import re# 创建文件夹 path os.getcwd() /images if not os.path.exists(path):os.mkdir(path)# 当前页数 page 1 # 总页数 total_page 2# 自动…

项目打包提示一堆 ts 类型错误问题解决

问题 vue3 ts 项目在打包的过程中报了一大堆 ts 类型错误提示&#xff0c;如下图所示&#xff1a; 报错&#xff1a;Could not find a declaration file for module … implicitly has an ‘any’ type. 解决方法 查看 package.json 文件&#xff0c;可以看到&#xff0c;默…