Xlwings – 添加列

我正在使用xlwings,并试图求和两个单元格A1 + B1,并将输出input到第三个单元格C1中。 我想要做一个范围(A1-> A9)+(B1-> B9)并将它们写入单元格(C1-> C9)。 我的当前命令是Range('C3')。value = [zip(range('A3:A9')。value,Range('B3:B9')。value)]中的x的总和正确,但答案是水平写出到单元格C3-I3。 我知道命令Range('A1')。value = [[1],[2],[3],[4],[5]]会列出列表的元素,但我不知道如何将其纳入我的命令。

任何帮助,将不胜感激

让这更容易是一个公开的问题 。 对于简单的列表,你可以做下面的事情(注意,在Python 2中,你不需要在zip附近list

 Range('C3').value = list(zip([sum(x) for x in zip(Range('A3:A9').value, Range('B3:B9').value)])) 

如果你安装了numpy ,可以这样做:

 import numpy as np Range('C3').value = (Range('A3:A9', asarray=True).value + Range('B3:B9', asarray=True).value)[:,np.newaxis] 

要在Excel中垂直打印值,只需要将它们转换为列表,就可以像最后描述的那样最终获取列表。

 from xlwings import Workbook, Range wb = Workbook('example.xlsx') a_col = Range('A1').vertical.value # or Range('A1:A9').value if you wish b_col = Range('B1').vertical.value c_col = zip(a_col, b_col) c_col = [[sum(x)] for x in c_col] # use '[]' here inside of list constructor Range('C1').value = c_col wb.close()