--xlwings是Python操作Excel的强大扩展库
1
x
lwings
简介
关于xlwings,xlwings开源免费,能够非常方便的读写Excel文件中的数据,并且能够进行单元格格式的修改。
xlwings还可以和matplotlib、numpy以及pandas无缝连接,支持读写numpy、pandas数据类型,将matplotlib可视化图表导入到excel中。
最重要的是xlwings可以调用Excel文件中VBA写好的程序,也可以让VBA调用用Python写的程序。
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+
上进行了测试