本文接上一篇文章,进一步探寻更为便捷的数据处理方法
获取有效范围与行列数
怎么知道有多少行呢
print(ws.used_range)
print(ws.used_range.last_cell.row)
print(ws.used_range.last_cell.column)
第一个查看有效范围,是个Range对象,和上面取出来的区域是一种 东西。
第二第三个分别获取有效区域最后一个单元格的行数和列数。
向原有数据行增加数据就从这个位置向后增加,增加的是二维数组就是向后向下增加。
获取整行数据
使用的是附加expand链条 ,使用right操作符
整行数据不需要计算有多少格子,自己会计算到该行的有效区域终点地方。
比如这里给I行多加一个数字,在取第二行的值时,也不会多一个None。
获取整列数据
使用down 操作符。
其本质是基于当时这个单元格的节点向两侧拓展搜索数据。整行和整列是因为起点在第一列或者第一行,如果不是那就是个片段。
比如从A2开始expand就只有5个数据
expand目前只能取right和down两个参数,并没有反向的left和up,没有填写操作符参数就是一个范围,切取当前单元格向下向后的有效区域,此时部分区域不规则的话,没有值的单元格会被填充None,二维数组的每一行的数目会严格保持一致。如果没有参数的时候选的第一个单元格,那么获取的将是整个表的数据。
清理数据
对单元格上数据的清理可以分为3种,一种是清理格式的,一种是只清理内容的,还有一种是两个一起清理的。
range_B1_G4 = ws.range('B1:G4')
range_B1_G4.clear()
range_B1_G4.clear_formats()
range_B1_G4.clear_contents()
可以看到,中间的一部分B1:G4的范围被清除了。
同样的,对于python而言,给一定范围赋予None值即可清除内容,不过不如clear来得好用,需要赋予同样尺寸的数据才行。
清除数据和格式的操作同样能套用expand进行行列行为,同时,如果是对整个表的清除,则是ws.clear()