xlwings,让excel飞起来!

excel已经成为必不可少的数据处理软件,几乎天天在用。python有很多支持操作excel的第三方库,xlwings是其中一个。

动图封面

关于xlwings

xlwings开源免费,能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改。

xlwings还可以和matplotlib、numpy以及pandas无缝连接,支持读写numpy、pandas数据类型,将matplotlib可视化图表导入到excel中。

最重要的是xlwings可以调用Excel文件中VBA写好的程序,也可以让VBA调用用Python写的程序。

话不多说,我们开始练一练吧!

PS:对于小白来说学习python不是件容易的事,需要花相当的时间去适应python的语法逻辑,而且要坚持亲手敲代码,不断练习。

xlwings安装和导入

本文python版本为3.6,系统环境为windows,在jupyter notebook中进行实验。
xlwings库使用pip安装:

pip install xlwings

xlwings导入:

import xlwings as xw

xlwings实操

  • 建立excel表连接
wb = xw.Book("e:\example.xlsx")
  • 实例化工作表对象
sht = wb.sheets["sheet1"]
  • 返回工作表绝对路径
wb.fullname
  • 返回工作簿的名字
sht.name
  • 在单元格中写入数据
sht.range('A1').value = "xlwings"
  • 读取单元格内容
sht.range('A1').value
  • 清除单元格内容和格式
sht.range('A1').clear()
  • 获取单元格的列标
sht.range('A1').column
  • 获取单元格的行标
sht.range('A1').row
  • 获取单元格的行高
sht.range('A1').row_height
  • 获取单元格的列宽
sht.range('A1').column_width
  • 列宽自适应
sht.range('A1').columns.autofit()
  • 行高自适应
sht.range('A1').rows.autofit()
  • 给单元格上背景色,传入RGB值
sht.range('A1').color = (34,139,34)
  • 获取单元格颜色,RGB值
sht.range('A1').color
  • 清除单元格颜色
sht.range('A1').color = None
  • 输入公式,相应单元格会出现计算结果
sht.range('A1').formula='=SUM(B6:B7)'
  • 获取单元格公式
sht.range('A1').formula_array
  • 在单元格中写入批量数据,只需要指定其实单元格位置即可
sht.range('A2').value = [['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]]
  • 读取表中批量数据,使用expand()方法
sht.range('A2').expand().value
  • 其实你也可以不指定工作表的地址,直接与电脑里的活动表格进行交互
# 写入
xw.Range("E1").value = "xlwings"# 读取
xw.Range("E1").value

xlwings与numpy、pandas、matplotlib互动

  • 支持写入numpy array数据类型
import numpy as np
np_data = np.array((1,2,3))
sht.range('F1').value = np_data
  • 支持将pandas DataFrame数据类型写入excel
import pandas as pd
df = pd.DataFrame([[1,2], [3,4]], columns=['a', 'b'])
sht.range('A5').value = df
  • 将数据读取,输出类型为DataFrame
sht.range('A5').options(pd.DataFrame,expand='table').value
  • 将matplotlib图表写入到excel表格里
import matplotlib.pyplot as plt
%matplotlib inline
fig = plt.figure()
plt.plot([1, 2, 3, 4, 5])
sht.pictures.add(fig, name='MyPlot', update=True)

xlwings与VBA互相调用

xlwings与VBA的配合非常完美,你可以在python中调用VBA,也可以在VBA中使用python编程,这些通过xlwings都可以巧妙实现。这里不对该内容做详细讲解,感兴趣的童鞋可以去xlwings官网学习。

总结

xlwings操作excel语法简单,功能强大,又很好结合了pandas、numpy、matplotlib等分析库,非常适合奔波于python和excel之间的童鞋,让你更轻松地分析数据!

至于学习Python,这是使用Seaborn的前提,只有熟练使用Python语法才能更好地用好第三方库。

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

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

相关文章

03.DDD六边形架构

学习视频来源:DDD独家秘籍视频合集 https://space.bilibili.com/24690212/channel/collectiondetail?sid1940048&ctype0 文章目录 什么是依赖DDD四层架构六边形架构代码实现 想要详细了解六边形架构,可以看我之前的一篇文章。是对六边形架构原文的翻…

在VS Code中操作MySQL数据库

【基础篇】 【小白专用24.5.26 已验证】VSCode下载和安装与配置PHP开发环境(详细版)_vscode php-CSDN博客 ~~~~~~~~~~~~~~~~~~~~~~~~~ 在VS Code中下载插件 Prettier SQL VSCode 和 MySQL : 随后在VS Code中点击Database图标 在连接界面输入MySQL数据库…

使用WebAssembly优化Web应用性能

💓 博客主页:瑕疵的CSDN主页 📝 Gitee主页:瑕疵的gitee主页 ⏩ 文章专栏:《热点资讯》 使用WebAssembly优化Web应用性能 引言 WebAssembly 简介 安装工具 创建 WebAssembly 项目 编写 WebAssembly 代码 编译 WebAssem…

AI工具列表

AI写作工具 工具名称推测的https://地址笔灵AI写作https://ibiling.cn/Paperpalhttps://paperpal.com新华妙笔https://miaobi.xinhuaskl.com/讯飞写作https://iflytek.com墨狐AIhttps://inkfox-ai.com/火山写作https://www.writingo.net/橙篇https://chengpian.com&#xff08…

gbase8s之spring框架用druid中间件报语法错误

spring框架 调用druid中间件 时报这个错: MetaDataAccessException: Could not get Connection for extracting meta-data; nested exception is org.springframework.jdbc.CannotGetJdbcConnectionException: Failed to obtain JDBC Connection; nested exception …

HTML 基础标签——元数据标签 <meta>

文章目录 1. `<meta>` 标签概述2. 属性详解2.1 `charset` 属性2.2 `name` 属性2.3 `content` 属性2.4 `http-equiv` 属性3. 其他常见属性小结在 HTML 文档中,元数据标签 <meta> 是一种重要的标签,用于提供关于文档的信息,这些信息不直接显示在网页内容中,但对于…

【CSS】外边距塌陷

问题背景 在移动应用页面开发中&#xff0c;父元素和子元素外边距合并&#xff0c;导致布局效果和预期不一致。 <template><view class"container"><view class"card"><p>TEST</p></view></view> </templa…

基于STM32的智能手环设计

本设计的主控芯片采用STM32F103C8T6&#xff0c;体温模块采用DS18B20温度传感器&#xff0c;显示模块采用OLED显示&#xff0c;心率、血氧的测量采用MAX30102模块既不需要外接电路&#xff0c;又可以保障数据稳定&#xff0c;内部还具有降噪功能。采用这些模块&#xff0c;保证…

LeetCode 3165.不包含相邻元素的子序列的最大和:单点修改的线段树(动态规划)

【LetMeFly】3165.不包含相邻元素的子序列的最大和&#xff1a;单点修改的线段树&#xff08;动态规划&#xff09; 力扣题目链接&#xff1a;https://leetcode.cn/problems/maximum-sum-of-subsequence-with-non-adjacent-elements/ 给你一个整数数组 nums 和一个二维数组 q…

Python代码解析:生成Jieba自定义词典

Python代码解析&#xff1a;生成Jieba自定义词典 引言代码结构概览代码详解1. 导入必要的库2. 定义文件路径3. 读取JSON文件内容4. 生成自定义词典 总结参考资料 引言 在自然语言处理&#xff08;NLP&#xff09;领域&#xff0c;分词是一个非常重要的步骤。Jieba是一个非常流…

微信小程序,打开新的项目,调试遇见[ app.json 文件内容错误] app.json: 在项目根目录未找到 app.json

1&#xff0c;首先&#xff0c;在开发工具右上角&#xff0c;打开详情&#xff1b;设置基础库&#xff1b;3.6.3 2&#xff0c;第二步&#xff0c;在项目目录下&#xff0c;找到app.json文件存在 3&#xff0c;第三步&#xff0c;修改项目根目录下&#xff0c;project.config.j…

MFC界面开发组件Xtreme Toolkit Pro v24全新发布—完整的SVG支持

Codejock软件公司的Xtreme Toolkit Pro是屡获殊荣的VC界面库&#xff0c;是MFC开发中最全面界面控件套包&#xff0c;它提供了Windows开发所需要的11种主流的Visual C MFC控件&#xff0c;包括Command Bars、Controls、Chart Pro、Calendar、Docking Pane、Property Grid、Repo…

FreeRTOS学习8——开启任务调度器API函数简介

开启任务调度器API函数简介 任务调度开启任务调度器API函数简介**函数** **vTaskStartScheduler()****函数** **xPortStartScheduler()****函数** **prvStartFirstTask()****函数** **vPortSVCHandler()****注意**补充**出栈/压栈汇编指令详解** 任务调度 开启任务调度器API函…

SIGNAL TAP使用记录

一、首先编译工程 二、打开signal tap&#xff0c;并设置抓取时钟以及采样深度 二、点击set up&#xff0c;然后双击空白处&#xff0c;会弹出右侧窗口&#xff0c;点击filter选择pre_synthesis&#xff0c;这里选择综合前的信号观测&#xff0c;要确保左侧窗口内的信号是黑色…

RAID(Redundant Array of Independent Disks,独立冗余磁盘阵列)

在计算机组成原理中&#xff0c;RAID&#xff08;Redundant Array of Independent Disks&#xff0c;独立冗余磁盘阵列&#xff09;是一种将多个物理磁盘驱动器组合成一个或多个逻辑单元&#xff0c;以提供数据存储的技术。RAID技术旨在通过数据冗余和分散存储来提高数据的可靠…

Windows版 nginx安装,启动,目录解析,常用命令

Windows版 nginx安装&#xff0c;启动&#xff0c;目录解析&#xff0c;常用命令 一级目录二级目录三级目录 1. 下载2. 启动方式一&#xff1a;方式二&#xff1a; 3. 验证是否启动4. 安装目录解析5. 常用命令 一级目录 二级目录 三级目录 1. 下载 官网下载&#xff1a;ngi…

【Linux 从基础到进阶】使用Pacemaker与Corosync实现高可用

使用Pacemaker与Corosync实现高可用 在现代 IT 基础设施中&#xff0c;高可用性&#xff08;High Availability&#xff0c;HA&#xff09;至关重要&#xff0c;尤其是在处理关键应用和服务时。本文将介绍如何使用 Pacemaker 和 Corosync 实现高可用性集群&#xff0c;以确保服…

kafka相关面试题

文章目录 什么是消息中间件&#xff1f;kafka 是什么&#xff1f;有什么作用&#xff1f;kafka 的架构是怎么样的&#xff1f;Kafka Replicas是怎么管理的&#xff1f;如何确定当前能读到哪一条消息&#xff1f;生产者发送消息有哪些模式&#xff1f;发送消息的分区策略有哪些&…

Python | Leetcode Python题解之第519题随机翻转矩阵

题目&#xff1a; 题解&#xff1a; class Solution:def __init__(self, m: int, n: int):self.m mself.n nself.total m * nself.map {}def flip(self) -> List[int]:x random.randint(0, self.total - 1)self.total - 1# 查找位置 x 对应的映射idx self.map.get(x,…

SHEEL脚本编程

一、shell基本知识 Ⅰ、为什么要学习和使用shell编程 通过编程&#xff0c;简化日常的维护工作&#xff0c;使得管理员从简单的重复劳动解脱出来 Ⅱ、什么是shell shell的功能 Shell又称命令解释器&#xff0c;它能识别用户输入的各种命令&#xff0c;并传递给操作系统。它…