程序员大佬,教你如何用 Python 自动化操作 Excel!玩转自如

811 阅读2分钟

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

![程序员大佬,教你如何用 Python 自动化操作 Excel!玩转自如](https://p1-tt.byteimg.com/origin/pgc-image/da8e6624128146b99ee6c68bec4d25fb?from=pc)

如果大家对Python感兴趣,也想成为改变世界的程序员的话,欢迎加入我们新创的【学习交流群】,免费领取学习资料和源码哟

关于xlwings

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

xlwings还可以和matplotlib、numpy以及pandas无缝连接,支持读写numpy、pandas数据类型,将matplotlib可视化图表导入到excel中。

![程序员大佬,教你如何用 Python 自动化操作 Excel!玩转自如](https://p6-tt.byteimg.com/origin/pgc-image/74ab40f5a78f4da5a842eedc1ea9f734?from=pc)

最重要的是xlwings可以调用Excel文件中VBA写好的程序,也可以让VBA调用用Python写的程序。

xlwings安装和导入

本文python版本为3.6,系统环境为windows,在jupyter notebook中进行实验。

xlwings库使用pip安装:

pip install xlwings

xlwings导入:

import xlwings as xw
![程序员大佬,教你如何用 Python 自动化操作 Excel!玩转自如](https://p1-tt.byteimg.com/origin/pgc-image/5365aa2a743e4fa082fc372878ceb125?from=pc)

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').row_height

xlwings与numpy、pandas、matplotlib互动

  • 支持写入numpy array数据类型

    import numpy as npimport numpy as np

  • 支持将pandas DataFrame数据类型写入excel

    import pandas as pddf = pd.DataFrame([[1,2], [3,4]], columns=['a', 'b'])sht.range('A5').value = df

xlwings与VBA互相调用

xlwings与VBA的配合非常完美,你可以在python中调用VBA,也可以在VBA中使用python编程,这些通过xlwings都可以巧妙实现。这里不对该内容做详细讲解,感兴趣的童鞋可以去xlwings官网学习。

总结

xlwings操作excel语法简单,功能强大,又很好结合了pandas、numpy、matplotlib等分析库,非常适合奔波于python和excel之间的童鞋,让你更轻松地分析数据!