当前位置: 首页 > article >正文

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.kler.cn/a/377207.html

相关文章:

  • 论文阅读 - 《Large Language Models Are Zero-Shot Time Series Forecasters》
  • 命令行之巅:Linux Shell编程的至高艺术(中)
  • VMware虚拟机超详细安装Linux教程(最新版)
  • 计算机图形学知识点汇总
  • React Native 集成原生Android功能
  • 从 GitLab.com 到 JihuLab.com 的迁移指南
  • R向量运算c()数组矩阵matrix()
  • MRCTF2020:你传你ma呢
  • C++STL之 set 和 map:介绍及基本使用
  • Skywalking安装教程二:安装Elasticsearch
  • IDEA 打包首个java项目为jar包
  • CNAS软件测试的好处有哪些?上海软件测试中心推荐
  • Qt自定义控件:汽车速度表
  • 11.Three.js使用indexeddb前端缓存模型优化前端加载效率
  • 「Mac畅玩鸿蒙与硬件23」鸿蒙UI组件篇13 - 自定义组件的创建与使用
  • vscode clangd for cuda 插件配置
  • 华为机试HJ19 简单错误记录
  • 管家婆财贸ERP BB087.销售单复制一行
  • 第二十五章 Vue父子通信之sync修饰符
  • JavaScript 生成二维码
  • 【棋盘覆盖——匈牙利算法】
  • Vue main.js引入全局progress组件原型实例,加载中动画组件原型实例
  • 在B端管理系统中,复杂或者DIY功能,都依赖哪些编辑器/设计器
  • 从技术与市场角度看:3D 创作软件与信创系统的 “距离”
  • node.js下载、安装、设置国内镜像源(永久)(Windows11)
  • Django-中间件