Excel

4.1 xlwings 是什么

虽然我们可以用 Python 读取和写入 Excel文件。但是 Excel本身功能足够强大,即使不会用 Python,也能很好地处理数据。

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

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

可以这样所, xlwings 让 Excel 真的飞起来了。只要你的电脑本身不卡。

4.2 安装和导入

安装

1
pip install xlwings

导入

1
import xlwings as xw

4.3 演练

打开一个 excel 文件

1
2
import xlwings as xw
wb = xw.Book('文件路径')

工作表的全局文件路径

1
wb.fullname

工作表对象

1
2
3
sht = wb.sheets['sheet1']

sht.name #工作簿名

操作和单元格

1
2
sht.range('A1').value = 'peng'
sht.range('A1').value

清楚单元格样式和内容

1
sht.range('A1').clear

单元格的行列标

1
2
sht.range('A1').column
sht.range('A1').row

行高和列宽

1
2
sht.range('A1').row_height
sht.range('A1').column_width

行高、列宽自适应

1
2
3
sht.range('A1').columns.autofit()

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

单元格背景色

1
2
3
sht.range('A1').color = (255,0,0)
sht.range('A1').color
sht.range('A1').color = None

单元格公式

1
2
sht.range('A1').formula='=SUM(A2:A3)'
sht.range('A1').formula_array #获取公式

在单元格中写入批量数据,只需指定起始位置

1
sht.range('B2').value = [[1,2,3], [4,5,6]]

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

1
sht.range('B2').expand().value

直接与电脑里的活动表格进行交互

1
2
3
# 写入
xw.Range("A2").value = "peng"# 读取
xw.Range("A2").value

写入numpy array数据类型

1
2
3
import numpy as np
np_data = np.array((1,2,3))
sht.range('E1').value = np_data

pandas DataFrame数据类型写入excel

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

输出类型为DataFrame

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

将matplotlib图表写入到excel表格里

1
2
3
4
5
import matplotlib.pyplot as plt
%matplotlib inline
fig = plt.figure()
plt.plot([1, 2, 3, 4, 5])
sht.pictures.add(fig, name='Plot....', update=True)

4.4 参考学习资料

  1. https://www.jianshu.com/p/18b63172de6e

  2. https://segmentfault.com/a/1190000018597501

  3. https://www.cnblogs.com/qbdj/p/11010812.html

  4. https://blog.csdn.net/whalefall/article/details/102665002

视频课程

西瓜视频 https://www.ixigua.com/6850111112055112200/