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

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.lryc.cn/news/474678.html

相关文章:

  • C语言学习,标准库 <stddef.h>
  • PyQt5实战——操作台打印重定向,主界面以及stacklayout使用(四)
  • React + Vite + TypeScript + React router项目搭建教程
  • 【ShuQiHere】️ 如何启用 SSH 服务
  • 【自动化测试】APP UI 自动化(安卓)-本地环境搭建
  • java毕业设计之基于Bootstrap的常州地方旅游管理系统的设计与实现(springboot)
  • 《机甲崛起》
  • Windows10:Linux Reader
  • 一、k8s快速入门之学习Kubernetes组件基础
  • PostgreSQL 到 PostgreSQL 数据迁移同步
  • RestTemplate 常用方法(提供了多种方法来发送 HTTP 请求)
  • 常量和变量
  • Go语言的使用
  • 详解CRC校验原理以及FPGA实现
  • 企业如何通过架构蓝图实现数字化转型
  • React第十三章(useTransition)
  • IDEA使用Maven Helper查看整个项目的jar冲突
  • uniapp项目 存储数据到手机本地
  • 景联文科技医疗数据处理平台:强化医疗数据标注与管理,推动医疗数字化新篇章
  • vue使用高德地图实现轨迹显隐
  • Maven(20) 如何使用Maven进行版本管理?
  • AWS RDS MySQL内存使用
  • Vue指令:v-else、v-else-if
  • 基于SSM志愿者招募系统的设计
  • 数学建模与优化算法:从基础理论到实际应用
  • 微信小程序生成二维码
  • 自由软件与开源软件:异同与联系
  • Vue中ref、reactive、toRef、toRefs的区别
  • 凸极式发电机的相量图分析和计算,内功率因数角和外功率因数角和功角的定义。
  • systemctl restart NetworkManager 重启后,文件/etc/resolv.conf修改失败