Python+xlwings操作Excel实战

2023-11-06

Excel是全世界最普及最强大的办公软件,应该没有之一。excel就相当于是一只老虎,python相当于是一双翅膀,两者结合将产生“如虎添翼”的效果。好了,不卖关子了,今天我们要跟大家说到的是excel+xlwings(xlwings是一个Python包),能直接在excel中执行python代码。这意味着什么?意味着你的excel已经具备编程的能力了!比如你可以在excel中一键抓取数据直接存储下来,比如面对VBA比较棘手的问题用xlwings(本质上还是python)可以轻松解决,比如可以提高大文件处理速度…更多的可以尽情的想象!

一、先来说个例子

我相信看完以上这段话后,很多人还是持有怀疑的态度,所以我先直接来上一个案例,让大家比较直观的感受一下“excel飞一样”是什么感觉。这里以一个融资机构员工的日常为例,他可能每天需要查看一下独角兽公司的榜单,如果按照正常的,要打开浏览器访问 https://www.itjuzi.com/unicorn,然后获取信息。如果想要记录每天的数据,还得一个个手动记录下来,繁杂程度可想而知。这时候我们可以通过xlwings,自动帮我抓取数据,然后保存数据,甚至自动的做一些计算,大大提高了我们的工作效率。以下用一个动态度来感受一下:
在这里插入图片描述
可以看到,我只要点击一下excel中的一个按钮,便能自动的下载数据。现在还只是少量数据,如果数据量比较多,获取数据步骤比较复杂,用代码操作的优势会更加的明显。

二、怎么操作

如果能坚持看到这里的朋友,说明对这玩意儿还是挺认可的。那么接下来我就详细的讲一下这个东西的配置。建议先收藏一下,步骤有点多,然后找个时间练练,有问题欢迎在本评论区下咨询。

先来说下需要准备的东西吧:

  1. Excel自然不用说了,最好是用微软的Office,毕竟WPS有些地方有点不同,会造成学习的困扰。
  2. Python(3.6以上版本),可以在python官网:python.org下载,也可以私信我,我给你发软件。
  3. 安装完python后需要下载一些包,包括网络请求的requests库,xlwings,以及pandas,还有一个pywin32。包安装的方式是在cmd中通过pip安装,比如pip install requests。这里不再赘述,python基础课程可以加VX:zhiliaoketang008,即可免费获取。

东西准备好了后,咱们再来详细讲解一下如何配置,这过程稍微有点复杂,建议先收藏,以后慢慢看。

第一步、开启宏支持:

Excel 文件 - 选项 - 信任中心 - 宏设置 - 启用所有宏
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

第二步、显示“开发工具”选项卡:

Excel选项 - 自定义功能区 - 开发工具(勾选)
在这里插入图片描述

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

Python+xlwings操作Excel实战 的相关文章

  • OpenCV Python cv2.mixChannels()

    我试图将其从 C 转换为 Python 但它给出了不同的色调结果 In C Transform it to HSV cvtColor src hsv CV BGR2HSV Use only the Hue value hue create
  • 如何在 Excel 中对“高”字符进行 HTML 编码或音译?

    在 Excel 中 如何将包含重音字符 大引号等的单元格内容转换为相同字符的 HTML 或音译纯文本版本 我们有一个 XLS 文档 其中包含一些 高 字符 数据已通过数据库连接提取 并且 Excel 似乎正确处理不同代码页中的各个单元格 或
  • 如何在flask中使用g.user全局

    据我了解 Flask 中的 g 变量 它应该为我提供一个全局位置来存储数据 例如登录后保存当前用户 它是否正确 我希望我的导航在登录后在整个网站上显示我的用户名 我的观点包含 from Flask import g among other
  • 使用 matplotlib 绘制时间序列数据并仅在年初显示年份

    rcParams date autoformatter month b n Y 我正在使用 matpltolib 来绘制时间序列 如果我按上述方式设置 rcParams 则生成的图会在每个刻度处标记月份名称和年份 我怎样才能将其设置为仅在每
  • 从字符串中删除识别的日期

    作为输入 我有几个包含不同格式日期的字符串 例如 彼得在16 45 我的生日是1990年7月8日 On 7 月 11 日星期六我会回家 I use dateutil parser parse识别字符串中的日期 在下一步中 我想从字符串中删除
  • 使用 on_bad_lines 将 pandas.read_csv 中的无效行写入文件

    我有一个 CSV 文件 我正在使用 Python 来解析该文件 我发现文件中的某些行具有不同的列数 001 Snow Jon 19801201 002 Crom Jake 19920103 003 Wise Frank 19880303 l
  • python 相当于 R 中的 get() (= 使用字符串检索符号的值)

    在 R 中 get s 函数检索名称存储在字符变量 向量 中的符号的值s e g X lt 10 r lt XVI s lt substr r 1 1 X get s 10 取罗马数字的第一个符号r并将其转换为其等效整数 尽管花了一些时间翻
  • 是否可以忽略一行的pyright检查?

    我需要忽略一行的pyright 检查 有什么特别的评论吗 def create slog group SLogGroup data Optional dict None SLog insert one SLog group group da
  • 以编程方式停止Python脚本的执行? [复制]

    这个问题在这里已经有答案了 是否可以使用命令在任意行停止执行 python 脚本 Like some code quit quit at this point some more code that s not executed sys e
  • Python 函数可以从作用域之外赋予新属性吗?

    我不知道你可以这样做 def tom print tom s locals locals def dick z print z name z name z guest Harry print z guest z guest print di
  • 添加不同形状的 numpy 数组

    我想添加两个不同形状的 numpy 数组 但不进行广播 而是将 缺失 值视为零 可能最简单的例子是 1 2 3 2 gt 3 2 3 or 1 2 3 2 1 gt 3 2 3 1 0 0 我事先不知道形状 我正在弄乱每个 np shape
  • 如何在ipywidget按钮中显示全文?

    我正在创建一个ipywidget带有一些文本的按钮 但按钮中未显示全文 我使用的代码如下 import ipywidgets as widgets from IPython display import display button wid
  • Pygame:有没有简单的方法可以找到按下的任何字母数字的字母/数字?

    我目前正在开发的游戏需要让人们以自己的名义在高分板上计时 我对如何处理按键有点熟悉 但我只处理过寻找特定的按键 有没有一种简单的方法可以按下任意键的字母 而不必执行以下操作 for event in pygame event get if
  • Pandas:merge_asof() 对多行求和/不重复

    我正在处理两个数据集 每个数据集具有不同的关联日期 我想合并它们 但因为日期不完全匹配 我相信merge asof 是最好的方法 然而 有两件事发生merge asof 不理想的 数字重复 数字丢失 以下代码是一个示例 df a pd Da
  • Fabric env.roledefs 未按预期运行

    On the 面料网站 http docs fabfile org en 1 10 usage execution html 给出这个例子 from fabric api import env env roledefs web hosts
  • 如何在seaborn displot中使用hist_kws

    我想在同一图中用不同的颜色绘制直方图和 kde 线 我想为直方图设置绿色 为 kde 线设置蓝色 我设法弄清楚使用 line kws 来更改 kde 线条颜色 但 hist kws 不适用于显示 我尝试过使用 histplot 但我无法为
  • 为字典中的一个键附加多个值[重复]

    这个问题在这里已经有答案了 我是 python 新手 我有每年的年份和值列表 我想要做的是检查字典中是否已存在该年份 如果存在 则将该值附加到特定键的值列表中 例如 我有一个年份列表 并且每年都有一个值 2010 2 2009 4 1989
  • 有人用过 Dabo 做过中型项目吗? [关闭]

    Closed 这个问题是基于意见的 help closed questions 目前不接受答案 我们正处于一个新的 ERP 风格的客户端 服务器应用程序的开始阶段 该应用程序是作为 Python 富客户端开发的 我们目前正在评估 Dabo
  • Python:如何将列表列表的元素转换为无向图?

    我有一个程序 可以检索 PubMed 出版物列表 并希望构建一个共同作者图 这意味着对于每篇文章 我想将每个作者 如果尚未存在 添加为顶点 并添加无向边 或增加每个合著者之间的权重 我设法编写了第一个程序 该程序检索每个出版物的作者列表 并
  • 从列表指向字典变量

    假设你有一个清单 a 3 4 1 我想用这些信息来指向字典 b 3 4 1 现在 我需要的是一个常规 看到该值后 在 b 的位置内读写一个值 我不喜欢复制变量 我想直接改变变量b的内容 假设b是一个嵌套字典 你可以这样做 reduce di

随机推荐

  • Framework工具——EA画图

    EA 是一个著名的企业架构 Enterprise Architecture 工具 用于绘制和管理企业的架构图和过程模型 该工具提供了多种功能 包括建立业务流程图 数据流图 组织结构图 应用架构图等 EA工具可帮助企业进行战略规划 业务流程改
  • Redis过期监听—订单超时-取消

    最近在做电商项目 涉及支付超时处理的几种方式 记录哈使用redis监听处理 提交订单的时候 支付 超过了有效时间则支付状态自动更新为已取消 redis过期监听的实现 1 修改redis windows conf配置文件中notify key
  • OpenBSD cvsup更新

    安装了 OpenBSD 后你会发现它很小个 只有500多M 当然里面只有ssh sendmail功能 dev wd0a 130M 38 8M 84 7M 31 dev wd0h 95 5G 16 0K 90 8G 0 home dev wd
  • vue2.0解决el-table无限滚动解决数据量大前端界面渲染耗时或卡顿问题

    vue相关依赖版本 name vue demo version 0 1 0 private true scripts serve vue cli service serve build vue cli service build lint
  • input元素的事件的触发顺序及change事件触发条件

    1 input元素的事件触发顺序
  • Ubuntu学习笔记:配置账户密码使用期限

    Ubuntu学习笔记 配置账户密码使用期限 配置账户密码最短使用期限为 10天 最长使用期限为 90 天 查看的方式还可以是 sudo passwd S liu
  • SpringBoot使用ShedLock调度任务

    前言 在分布式的场景下 SpringBoot程序以集群的方式部署 这些程序中运行着相同的代码 如果其中有定时任务的话 所有的程序都会运行该任务 这样就会导致任务的重复执行 由于所有的定时任务在集群的不同节点值中 所以需要一个专属的数据存储空
  • GCC编译选项参数

    linux系统下头文件 库文件搜索路径总结 文章目录 一 头文件 1 1 gcc或g 找头文件有三种策略 二 库文件 2 1 编译时查找库文件路径 2 2 运行时查找动态库文件路径 2 3 动态库的搜索路径搜索的先后顺序 一 头文件 1 1
  • java类静态实例成员_java中 静态成员、实例成员、构造方法在子类和父类中的执行顺序...

    java中的成员分为 静态成员 静态成员变量 静态代码块 静态成员方法 实例成员 实例成员变量 实例代码块 实例成员方法 构造方法 析构方法 下面做的实验 主要是验证 当new 一个子类时 子类和它的父类中 静态成员变量 静态代码块 实例成
  • jar还原源码

    上周接到个新任务 一个遗留的接口工程需要改造 然而根据前任开发留下的文档看 这个工程没有代码 只有生产环境的jar包供使用 边吐 咒 槽 骂 边在SVN服务器上四处翻找 想找到这个工程的源码 毕竟没源码怎么跑起来这个工程 不能跑起来怎么改造
  • 导致服务器CPU跑满的原因有哪些

    一 硬件原因 服务器CPU自身出现问题 比如机房散热不足 温度过热或者驱动故障 导致CPU性能下降 很容易造成CPU跑满的情况 二 网站代码错误 排查硬件原因后 我们进入网站后台查看是哪些程序占用了大量CPU 检测这些代码自身是否有问题 如
  • consul重启导致服务必须跟着重启解决方案

    问题 consul作为注册中心和eureka的机制不同 当微服务启动后首先向注册中心发注册请求 这点两者一致 之后consul在维护可用服务列表时 采用的是主动向微服务发健康检查的接口 也可以配置成微服务主动向consul发心跳 但是我看完
  • js写一个行星运转的效果

    以太阳系为例 以太阳为中心点 水金木土地火天海依次围绕着太阳做圆周运动 嗯 假设为圆周运动吧 以太阳为圆心点 所以在求行星做圆周运动时的半径就是行星的圆心点到太阳的圆心点 我们可以计算出太阳和行星的圆心点 我们可以通过函数获得行星和太阳的l
  • 经典面试题-聊聊JDK和CGLib动态代理实现和区别

    前言 在电面试阿里时 被问到Spring AOP中JDK和CGLib动态代理的区别 在此整理一下 供大家参考 JDK和CGLib动态代理实现 动态代理在Java中有着广泛的应用 如Spring AOP Hibernate数据查询 测试框架的
  • ZeroTier与Windows远程桌面实现远程控制 (转)(内网穿透)

    背景 Teamviewer虽然很好用速度也快 但是它是一款商业软件 时常会检测为商业用途而阻止个人免费使用 虽然网上也有一些修改ID的方法 还是各种破解版 但是均不尽如人意 于是想找找替代方案 经过尝试发现ZeroTier与Windows远
  • springMVC解决中文乱码几种方式,以及使用fastJSOn调整时间 的格式

    为什么 ResponseBody向前台传JSON输数据会有乱码 首先要知道乱码的原因是在入参之前就应经决定的 就是springMVC 中HandlerMapping会找到对应的handel 即具体去处理请求的方法 但是请注意 在真正调用处理
  • 三个短视频APP开发的成功秘诀免费发放

    无论海内外 中国的短视频已然走向了世界 成为世界了解中国的一种方式 甚至连Facebook都暗搓搓得准备 抄袭 抖音啃一块市场份额的蛋糕 更有无数的短视频APP开发者投入到这块市场中来 想要一战成名 这么 如何进行短视频开发 才能笑到最后呢
  • openwrt挂载tf卡,提示“unknown filesystem type 'vfat'”

    用命令挂载tf卡的时候报错 mount mnt mmcblk0p1 unknown filesystem type ext2 开始还以为是tf卡格式的问题 换了ext4和fat 仍然是这样 mount mnt mmcblk0p1 unkno
  • 在Qt中使用LoadLibrary无法加载DLL

    Qt系列文章目录 文章目录 Qt系列文章目录 前言 一 问题分析 前言 最近因项目需要使用qt做开发 之前使用LoadLibrary加载dll成功 很庆幸 当一切都那么顺风顺水的时候 测试同事却发现 在windows平台上个别电脑上加载dl
  • Python+xlwings操作Excel实战

    Excel是全世界最普及最强大的办公软件 应该没有之一 excel就相当于是一只老虎 python相当于是一双翅膀 两者结合将产生 如虎添翼 的效果 好了 不卖关子了 今天我们要跟大家说到的是excel xlwings xlwings是一个