Xlwings - 添加列
Xlwings - adding columns
我正在使用 xlwings 并尝试对两个单元格 A1 + B1 求和,并将输出输入第三个单元格 C1。我想对范围 (A1->A9) + (B1->B9) 执行此操作,并将它们写入单元格 (C1->C9)。我当前的命令是 Range('C3').value = [sum(x) for x in zip(Range('A3:A9').value, Range('B3:B9').value)] 这个求和值正确,但答案水平写到单元格 C3-I3。我知道命令 Range('A1').value = [[1],[2],[3],[4],[5]] 会垂直列出列表的元素,但我不确定如何将其合并到我的命令中。
如有任何帮助,我们将不胜感激
打开 issue 让这更容易。对于简单列表,您可以执行以下操作(请注意,在 Python 2 上,您不需要 list
around zip
:
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)]
我正在使用 xlwings 并尝试对两个单元格 A1 + B1 求和,并将输出输入第三个单元格 C1。我想对范围 (A1->A9) + (B1->B9) 执行此操作,并将它们写入单元格 (C1->C9)。我当前的命令是 Range('C3').value = [sum(x) for x in zip(Range('A3:A9').value, Range('B3:B9').value)] 这个求和值正确,但答案水平写到单元格 C3-I3。我知道命令 Range('A1').value = [[1],[2],[3],[4],[5]] 会垂直列出列表的元素,但我不确定如何将其合并到我的命令中。
如有任何帮助,我们将不胜感激
打开 issue 让这更容易。对于简单列表,您可以执行以下操作(请注意,在 Python 2 上,您不需要 list
around zip
:
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)]