Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/python-3.x/15.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Excel Xlwings-添加列_Excel_Python 3.x_Xlwings - Fatal编程技术网

Excel Xlwings-添加列

Excel Xlwings-添加列,excel,python-3.x,xlwings,Excel,Python 3.x,Xlwings,我使用的是xlwings,我试图对两个单元格A1+B1求和,并将输出输入到第三个单元格C1中。我想对一个范围(A1->A9)+(B1->B9)执行此操作,并将它们写入单元格(C1->C9)。我当前的命令是Range('C3')。value=[zip中x的sum(x)(Range('A3:A9')。value,Range('B3:B9')。value)]这正确地求和了值,但答案水平地写在单元格C3-I3中。我知道命令范围('A1')。值=[[1]、[2]、[3]、[4]、[5]]将垂直列出列表的元

我使用的是xlwings,我试图对两个单元格A1+B1求和,并将输出输入到第三个单元格C1中。我想对一个范围(A1->A9)+(B1->B9)执行此操作,并将它们写入单元格(C1->C9)。我当前的命令是Range('C3')。value=[zip中x的sum(x)(Range('A3:A9')。value,Range('B3:B9')。value)]这正确地求和了值,但答案水平地写在单元格C3-I3中。我知道命令范围('A1')。值=[[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()
请尝试以下代码:

import xlwings as xw
sht = xw.Book().sheets[0]
sht.range('C3').options(transpose=True).value \
=[sum(x) for x in zip(sht.range('A3:A9').value, sht.range('B3:B9').value)]