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

关于xlwings

xlwings开源免费,能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改。

xlwings还可以和matplotlibnumpy以及pandas无缝连接,支持读写numpypandas的数据类型,将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 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语法简单,功能强大,又很好结合了pandasnumpymatplotlib等分析库,非常适合奔波于python和excel之间的童鞋,让你更轻松地分析数据!


©著作权归作者所有:来自51CTO博客作者mb5fe18fab305a5的原创作品,如需转载,请注明出处,否则将追究法律责任

更多相关文章

  1. 什么是机器学习中类别数据的转换?
  2. 数据科学:是时候该用seaborn画图了
  3. python爬取招聘网站数据,利用Tableau可视化交互大屏,指导你如何学
  4. 分析全球1085例新冠肺炎患者数据,我们得出这些结论
  5. pandas读取表格后的常用数据处理操作
  6. 最全Python数据科学小抄,赶紧收藏吧!
  7. Python 的整数与 Numpy 的数据溢出
  8. 金牌厨师Pandas:听说Excel处理数据分行快得很?
  9. Oracle19c_cdb数据库自动安装部署脚本

随机推荐

  1. PHP如何结合MySQL进行千万级数据处理
  2. 分析PHP中PHPMailer如何发邮件
  3. 案例分析PHP Web表单生成器
  4. php获取当前时间戳、日期并精确到毫秒(三
  5. PHP使用POP3读取邮箱接收邮件的实例解析
  6. 详解之php反序列化
  7. 教你用php将二维码和文字结合到一个背景
  8. 两分钟带你了解PHP中的运算符
  9. 2021最常用的8个代码编辑器推荐
  10. PHP方法处理微信昵称特殊符号过滤