如何使⽤python将公式计算结果导⼊到excel中_xlwings,让
excel飞起来
excel已经成为必不可少的数据处理软件,⼏乎天天在⽤。python有很多⽀持操作excel的第三⽅库,xlwi
ngs是其中⼀个。
关于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 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 npnp_data = np.array((1,2,3))sht.range('F1').value = np_data
⽀持将pandas DataFrame数据类型写⼊excel
import pandas as pddf = 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表格⾥
python怎么读取xls文件import matplotlib.pyplot as plt%matplotlib inlinefig = 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之间的童鞋,让你更轻松地分析数据!

版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系QQ:729038198,我们将在24小时内删除。