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

关于xlwings
xlwings开源免费,能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改。
xlwings还可以和matplotlib、numpy以及pandas无缝连接,支持读写numpy、pandas数据类型,将matplotlib可视化图表导入到excel中。

最重要的是xlwings可以调用Excel文件中VBA写好的程序,也可以让VBA调用用Python写的程序。
xlwings安装和导入
本文python版本为3.6,系统环境为windows,在jupyter notebook中进行实验。
xlwings库使用pip安装:
pip install xlwingsxlwings导入:
import xlwings as xw
xlwings实操
- 
建立excel表连接 wb = xw.Book("e:\example.xlsx") 
- 
实例化工作表对象 sht = wb.sheets["sheet1"] 
- 
返回工作表绝对路径 wb.fullname 
- 
返回工作簿的名字 
- 
在单元格中写入数据 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之间的童鞋,让你更轻松地分析数据!
文中这些小例子都能跑,你可以放自己电脑上运行下,或者手敲每个代码,这样绝对能高效率掌握。