2017-05-09 13 views
-1

테이블과 주 시트가있는 통합 문서가 있습니다. 해당 테이블의 일부 값을 변경하고 주 시트의 값을 업데이트하려고합니다. 내가 시도하는 코드는 다음과 같습니다Openpyxl은 두 시트 사이의 값을 업데이트합니다.

for row in ws1.iter_rows(row_offset=1,min_col=1,max_col=1): 
    for cell in row: 
     ws1.cell(row=cell.row, column=23).value = '=MyTable[@Price]' 

코드는 잘 실행하지만, 내 주요 시트에서 해당 열의 모든 셀에 대한 # REF 오류를 생성합니다.

내 테이블의 값을 변경하고 다른 시트의 값을 업데이트하는 방법을 잘 모르겠습니다.

+0

당신은'ws1.cell'에'수식 '을 할당합니다. 이것은 당신이 원하는 것입니까? 어떤 워크 시트에 MyTable이라는 이름이 있습니까? '@ 가격'이란 무엇입니까? 설명 할 질문을 수정하십시오. – stovfl

답변

0

스크립트를 일시 중지하고 변경 사항을 저장하고 파일을 저장하고 닫은 다음 스크립트를 다시 시작하여이 문제를 해결할 수있었습니다.

nwb.save("C:/mytable.xlsx")    
os.startfile("C:/mytable.xlsx") 
print("After making changes and saving file, press enter to continue.") 
input() 

nwb = openpyxl.load_workbook("mytable.xlsx") 
ws4 = nwb.get_sheet_by_name("mysheet") 

for row in ws1.iter_rows(row_offset=1,min_col=1,max_col=1): 
    for cell in row:   
     a = ws4.cell(row=cell.row, column=9).value 
     ws1.cell(row=cell.row, column=23).value = a 

이것은이 문제를 해결하는 멍청한 놈의 방법처럼 보일 수 있지만, 나는 일반적으로 매우 파이썬에 새로운 프로그램입니다.