2017-11-09 6 views
0

필자는 지정한 행에 대한 Excel 워크 시트에서 앞의 두 열을 더한 열을 채울 코드를 작성해야합니다. 파이썬 3.6 및 openpyxl 사용하고 있습니다. 다음의 몇 가지 변형을 시도했습니다.두 개의 열을 더하고 openpyxl을 사용하여 한 열에 값을 쓰는 것

import openpyxl 

from openpyxl import load_workbook 

from openpyxl.compat import range 

wb = load_workbook(filename='test.xlsx') 

ws = wb.get_sheet_by_name('Sheet1') 

for row in range(1, 15): 
    for col in range(4, 5): 
     value = ws['B'].value + ws['C'].value 

저장하면 아무 일도 일어나지 않습니다. 누구든지 행을 지정하지 않고도 다음 열을 2 열씩 추가 할 수있는 방법을 알고 있습니까?

+0

작업 코드를 저장하는 방법을 포함하여 작동 코드를 제공하십시오. 문제의 원인이 될 수 있습니다. – GiantsLoveDeathMetal

+0

열을 함께 추가하려고하는데 이는 의미가 없습니다. 범위를 추가해야합니다 (예 : Excel이 당신을 위해 추가 작업을 할 수있게한다면, ws [ 'B5'] = "sum (B1 : B4)" "당신은 관련 칼럼에 대한 자신의 합계 함수를 써야 할 것입니다. c in ws [ 'B'])' –

답변

0

그래서 내가 보지 않을 몇 가지가 있습니다.

wb.save('file_name.xlsx') 

그러면 파일이 저장되어 변경됩니다. 그러면 어떤 일이 발생할 수 있습니다. .

for row in range(1, 15): 
    result_cell = 'A{}'.format(str(row)) 
    add_function = '=B{}+C{}'.format(str(row)) 

    ws[result_cell] = add_function 
:

당신은 당신이 계산에 표시 할 셀의 위치를 ​​제공해야 즉

b_col, c_col = ['B', 'C'] 
for row in range(1, 15): 
    result_cell = 'A{}'.format(str(row)) 

    b_value = ws[b_col + str(row)].value 
    c_value = ws[c_col +str(row)].value 

    ws[result_cell] = b_value + c_value 

하지만이 같은 간단한 기능에서 작업, 나는 엑셀 함수를 사용하는 것

관련 문제