Python 使用xlwings库操作excel的简明实践分享之公式与行列增删操作讲解

657 阅读2分钟

本篇一是向大家阐述xlwings是如何使用公式的,并做实践举例,二是向大家展示如何进行行列的增加和删除操作。

公式的使用

提到Excel就不可避免的用到公式,不论是求和还是提取其他单元格信息,在表格制作的过程中,公式是不可或缺的功能。在xlwings中,公式并不是api,是一个内置功能。

初始的数据:

ws[ 'B2:G5' ].value = [[1, 2, 3, 45, 65, 7, 8], [1, 2, 3, 45, 65, 7, 8], [1, 2, 3, 45, 65, 7, 8], [1, 2, 3, 45, 65, 7, 8],
[1, 2, 3, 45, 65, 7, 8], ]

  image.png

基本使用

基本使用方法如下:

ws[ 'A1' ].formula = '=sum(B2:G2)'

启动的Excel界面会自己计算公式的值。

image.png

拓展使用

这里也可以实现像excel中下拉公式单元的方法

ws[ 'A1:A5' ].formula = '=sum(B2:G2)'

公式区域的第一个单元格是正常的公式值,而下方 的A2:A5,就是和下拉一样的,实际的求和范围数字部分随位置改变。

如图所示,A5上的公式已经改变了,如果不想变,就跟Excel中一样,加$锁定符号,锁定一个部位。

image.png

行列删除操作

行列的插入和删除其实对于用代码生产excel是不常用的,我们要么就是读取一个表格,取得其中的数据,要么就是写一张表格,生产我们需要的东西,在这两个工作中,删除和增加行列这种修改原有表格的行为是基本没有必要的,当然在特定情况下,比如对你自己已经生产 的结果文件做一个简单修改,增加个序号列,标题行这种的,也是可以用到这种操作的,但更建议的还是重新生产一份,避免工作归档的不完整。

行列删除

ws[ 'A1' ].api.EntireRow.Delete()
ws.api.Rows(1).Delete()
ws[ 'A1:G3' ].api.EntireRow.Delete()

依次删除A1所在行,第一行和A1:G3范围所在行,这里的依次指的是前面的步骤删除了会影响后面的步骤操作的位置,这也是不建议删除和增加 的原因之一,列的操作将上面的Row替换为Column即可,注意第二行是复数

操作效果如图

image.png  

行列增加

api.Rows(1).Insert()

ws[ 'B2' ].api.EntireColumn.Insert()

ws[ 'B2 :G4 ' ].api.EntireColumn.Insert()

同样支持两种方式,并且区域型单元格范围会根据这个方向上的宽度增加对应数量的行或列