--xlwings是Python操作Excel的强大扩展库

1 x lwings 简介

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

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

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

1.1 官方网站: https://www.xlwings.org/

1 .2 官方文档: https://docs.xlwings.org/en/stable/

1 .3 中文文档: https://www.kancloud.cn/gnefnuy/xlwings-docs/1127450

1 .4 版本更新说明: https://docs.xlwings.org/en/stable/whatsnew.html#

2 xlwings实操 基本操作

2 .1 建立 excel表连接

import xlwings as xw

wb = xw . Book("e:\example.xlsx")

wb = xw.Book()  # 这将创建一个新的工作簿

wb = xw.Book('FileName.xlsx')  # 连接到当前工作目录中的现有文件

wb = xw.Book(r'C:\path\to\file.xlsx')  # Windows 上:使用原始字符串来转义反斜杠

2 .2 实例化工作表对象

sht = wb.sheets["sheet1"]

2 .3 返回工作表绝对路径

wb.fullname

2.4 返回工作簿的名字

sht.name

2 .5 在单元格中写入数据

sht.range('A1').value = "xlwings"

2 .6 读取单元格内容

sht.range('A1').value

2 .7 清除单元格内容和格式

sht.range('A1').clear()

2 .8 获取单元格的列标

sht.range('A1').column

2 .9 获取单元格的行标

sht.range('A1').row

2 .10 获取单元格的行高

sht.range('A1').row_height

2 .11 获取单元格的列宽

sht.range('A1').column_width

2 .12 列宽自适应

sht.range('A1').columns.autofit()

2 .13 行高自适应

sht.range('A1').rows.autofit()

2 .14 给单元格上背景色,传入 RGB值

sht . range('A1') . color = (34,139,34)

2 .15 获取单元格颜色, RGB值

sht . range('A1') . color

2 .16 清除单元格颜色

sht.range('A1').color = None

2 .17 输入公式,相应单元格会出现计算结果

sht . range('A1') . formula = '=SUM(B6:B7)'

2 .18 获取单元格公式

sht . range('A1') . formula_array

2.19 在单元格中写入批量数据,只需要指定其实单元格位置即可

sht . range('A2') . value = [['Foo 1', 'Foo 2', 'Foo 3'], [10.0, 20.0, 30.0]]

2 .20 读取表中批量数据,使用 expand()方法

sht . range('A2') . expand() . value

2 .21 与正在打开的活动工作表互动

  • 其实你也可以不指定工作表的地址,直接与电脑里的活动表格进行交互
  • xw . Range("E1") . value = "xlwings" # 读取

    xw . Range("E1") . value

    2 .22 表格的清除

    # 清除表格的内容和格式

    sheet.clear()

    # 清除表格的内容

    sheet.clear_contents()

    # 删除表格

    sheet.delete()

    3 xlwings与numpy、pandas、matplotlib互动

    3.1 支持写入 numpy array数据类型

    import numpy as np

    np_data = np . array((1,2,3))

    sht . range('F1') . value = np_data

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

    import pandas as pd

    df = pd . DataFrame([[1,2], [3,4]], columns = ['a', 'b'])

    sht . range('A5') . value = df

    3.3 将数据读取,输出类型为 DataFrame

    sht . range('A5') . options(pd . DataFrame,expand = 'table') . value

    3.4 matplotlib图表写入到excel表格里

    import matplotlib.pyplot as plt

    fig = plt . figure()

    plt . plot([1, 2, 3, 4, 5])

    sht . pictures . add(fig, name = 'MyPlot', update = True )

    4 Python API

    https://www.kancloud.cn/gnefnuy/xlwings-docs/1127474

    1:类和对象的属性和方法查看方式

  • dir(类名或者对象名)
  • help(类名或者对象名)
  • 第三方库的源码查看方法

    1. 库名 .__file__

    2: 安装 Ana conda 里已经嵌入无需手动安装,直接使用 Spy der 编程即可)

    安装 xlwings 的最简单方法是通过 pip

    pip install xlwings

    或者 conda:

    conda install xlwings

    请注意,官方的 conda 包版本可能会稍许落后。 但是,您可以使用 conda-forge 频道(参见: https://anaconda.org/conda-forge/xlwings 获取最新的(但可能仍然是 pip 发布后一天左右):

    conda install -c conda-forge xlwings

    注意
    当您使用 Mac Excel 2016 并使用 conda 安装 xlwings (或使用 Anaconda 附带的版本)时,您需要运行 $ xlwings runpython install 一次以启用来自 VBA RunPython 调用。 或者,您只需使用 pip 安装 xlwings 即可。

  • Windows : pywin32, comtypes
  • Windows 上,如果使用 conda pip 安装 xlwings ,则会自动处理依赖项。

  • Mac : psutil, appscript
  • Mac 上,如果使用 conda pip 安装 xlwings ,则会自动处理依赖项。 但是,使用 pip Xcode 命令行工具需要可用。 需要 Mac OS X 10.4 Tiger )或更高版本。 Mac 的推荐 Python 发行版是 Anaconda

    可选的依赖项

  • NumPy
  • Pandas
  • Matplotlib
  • Pillow/PIL
  • 这些包不是必需的,但强烈推荐,因为它们与 xlwings 非常相配。

    有关如何安装 xlwings 加载项的信息,请参阅 加载项

    Python版本支持

    xlwings Python 2.7 3.3+ 上进行了测试