栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > Python

xlwings:看我如何让 Excel 原地起飞

Python 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

xlwings:看我如何让 Excel 原地起飞

文 | 豆豆

来源:Python 技术「ID: pythonall」

昨天有小伙伴在后台留言说让讲解一下 xlwings 这个库,作为互联网圈最宠粉的作者,必须安排。

相比于昨天介绍的 xlrd 和 xlwt 两个 Excel 库,xlwings 简直太好用了。

这一个库就可以实现 Excel 的读写功能,还可以修改单元格格式,同时该库还可以和 Matplotlib 无缝衔接做数据可视化,最厉害的是它还可以直接调用 VBA 程序,简直原地起飞。

安装

使用之前必须先将库安装到本地才可以正常使用。

pip3 install xlwings

一行命令解决安装问题,简单粗暴。

上手

1、获取数据表格的元数据

import xlwings as xw

file_path = '/tmp/person.xlsx'
wb = xw.Book(file_path)
print(wb.fullname)

sht = wb.sheets["list"]
print(sht.name)

# 输出结果
/tmp/person.xlsx
list

2、写数据

sht.range('A1').value = [1, 2, 3]
sht.range('A2').value = [['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]]

写完之后 Excel 是这个样子的。

3、读数据

print(sht.range('A1').value)

# 输出结果
1.0

print(sht.range('A1:A3').value)

# 输出结果
[1.0, 'Foo 1', 10.0]

print(sht.range('A1:C1').value)

# 输出结果
[1.0, 2.0, 3.0]

print(sht.range('A1:C3').value)

# 输出结果
[[1.0, 2.0, 3.0], ['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]]

xlwings 读取数据非常的方便,可以读取指定范围内单元格的数据,简直不要太棒。

4、单元格格式操作

# 获取单元格行高
sht.range('A1').row_height

# 获取单元格列宽
sht.range('A1').column_width

# 行高自适应
sht.range('A1').rows.autofit()

# 列宽自适应
sht.range('A1').columns.autofit()

# 单于昂背景色
sht.range('A1').color = (34,139,34)
可视化

除了基本的 Excel 之外,xlwings 可以结合 numpy、matplotlib 等库实现更便捷的操作。

1、通过 numpy 写入数据

import numpy as np

np_data = np.array((1, 2, 3))
sht.range('A8').value = np_data

2、结合 matplotlib 实现可视化

import matplotlib.pyplot as plt

fig = plt.figure()
plt.plot([1, 2, 3, 4, 5])
plt.plot([3, 2, 6, 9, 7])
sht.pictures.add(fig, name='MyPlot', update=True)

总结

今天给大家分享了如何通过 xlwings 更好的操作 Excel,小伙伴们学废了嘛~

PS:公号内回复「Python」即可进入Python 新手学习交流群,一起 100 天计划!

老规矩,兄弟们还记得么,右下角的 “在看” 点一下,如果感觉文章内容不错的话,记得分享朋友圈让更多的人知道!

【神秘礼包获取方式】

识别文末二维码,回复:1024

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/948510.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号