2015-02-02 2 views
0

나는 xlwings을 사용하고 있으며 두 개의 셀 A1 + B1을 합산하려고하고 있으며 출력을 세 번째 셀 C1에 입력하려고합니다. 나는 범위 (A1-> A9) + (B1-> B9)에 대해 이것을하고 세포 (C1-> C9)에 쓰도록하고 싶다. 범위 ('A3 : A9'). 값, 범위 ('B3 : B9'). 값)]이 값은 범위 ('C3')입니다. 정확하게 대답은 셀 C3-I3에 수평으로 기록됩니다. Range ('A1') .value = [[1], [2], [3], [4], [5]] 명령은 목록의 요소를 수직으로 나열 하겠지만, 이것을 내 명령에 포함 시키십시오.Xlwings - 열 추가

어떤 도움이 쉽게 오픈 issue입니다 만들기

답변

1

감상 할 수있다. 당신이 numpy가 설치되어있는 경우, 같은 그런 달성 할 수

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

: 간단한리스트를 들어, 파이썬 2 점에 유의 (다음 작업을 수행 할 수 있습니다, 당신은 listzip 주위에 필요가 없습니다

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

목을 근무 위대한 - 감사합니다 – JAAYBone

+0

위대한. 대답을 받아 들일 수 있습니까? –

0

값은 수직으로 당신은 단순히 당신이 설명하는 것처럼, 마지막으로 목록의 목록을 얻으려면, 목록에서 그들을 은밀한 할 필요가 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()