python xlwings – 复制和粘贴范围

我在这个网站上的第一个问题。

我正在用python 2.7来使用xlwings。 我想要将Sheet1范围'A1:A6'中的值复制到Sheet2中的单元格'A1:A6'。 我的代码如下:

> my_range = Range('Sheet1','A1:A6').value > > Range('Sheet2','A1:A6').value = my_range 

然而,当我运行这段代码时,它将my_range的值放入工作表2的单元格“A1:F1”中,而不是工作表2中的单元格“A1:A6”。

列(以及行)作为简单(“水平”)列表返回,请参阅文档。 为什么? 首先,它模仿numpy一维数组的行为。 其次,它通常是你想要的,例如,你可以直接遍历一个列,或者检查一个值是否存在,而不必先解压缩一个嵌套列表。

现在,在你的情况下,你显然想要保留你可以做的二维形状(再次类似于numpy),如下所示:

 my_values = Range('Sheet1','A1:A6', atleast_2d=True).value Range('Sheet2','A1:A6').value = my_values 

还要注意,你所说的my_range应该被称为my_values因为它包含一个列表,而不是一个xlwings Range对象。

更新:

自v0.7.0以来,语法改为:

 my_values = Range('Sheet1','A1:A6').options(ndim=2).value Range('Sheet2','A1:A6').value = my_values