文 | 豆豆
来源: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



