插入行和列

4.3.9小节介绍了使用单元格对象的Insert方法插入单元格和区域,引用行或列后,调用同样的方法,可以实现插入行或列。[大谦Excel,dqexcel点com]

对于图3-3所示的工作表数据,设置第2行的格式,设置A2单元格的背景色为绿色,C2为兰色,E2为红色,在第3行上面插入行,复制第2行的格式。编写代码如下:

code.python
>>> sht.Range("A2").Interior.Color=xw.utils.rgb_to_int((0, 255, 0))
>>> sht.Range("C2").Interior.Color=xw.utils.rgb_to_int((0, 0, 255))
>>> sht.Range("E2").Interior.Color=xw.utils.rgb_to_int((255, 0, 0))
>>> sht.Rows(3).Insert(Shift=constants.xlShiftDown,CopyOrigin=constants.xlFormatFromLeftOrAbove)

定义第2行的格式并在第3行上面插入行后的效果如图3-4所示。插入的第3行复制了第2行的格式,原来位置的行及以下数据依次往下移。

Document Image Document Image

图3-3 原工作表数据 图3-4 定义格式并插入行后的工作表

使用循环,可以连续插入多行。下面在第3行上方插入4个空白行。

code.python
>>> for i in range(4):
sht.Rows(3).Insert()

下面在活动工作表中先选择1个行,然后在该行上方插入1个空白行。

code.python
>>> bk.ActiveSheet.Rows(app.Selection.Row).Insert()

实际应用中,常需要遍历多个行,在其中找到满足条件的行,然后在它上面插入空白行。下面遍历工作表sht中第3列的各行,找到值为“雷婷”的单元格时,在它所在的行上面插入一行。

code.python
>>> for i in range(10,2,-1):
if sht.Cells(i, 3).Value == '雷婷':
sht.Cells(i, 3).EntireRow.Insert()

插入列的操作与插入行的基本相同,只是区域的引用方式和Insert(insert)方法的参数设置不一样。

code.python
>>> sht.Columns(2).Insert()

使用循环可以连续插入多列:

code.python
>>> for i in range(1,3):
sht.Cells(1, 2).Select()
app.Selection.EntireColumn.Insert()

使用循环隔列插入列,可以将循环时计数变量的步长设置为2,或在循环体中对单元格进行引用时间隔引用列。下面使用第2种方法隔列插入列:

code.python
>>> for i in range(1,9):
sht.Cells(1, 2*i).Select()
app.Selection.EntireColumn.Insert()