Python을 사용하여 Excel에 수식 쓰기
저는 아래의 문제를 어떻게 해결하는 것이 최선인지 브레인스토밍하는 중입니다.어떤 의견이든 대단히 감사합니다.
Excel 시트 열 샘플:
Column A | Column B | Column C
Apple | Apple |
Orange | Orange |
Pear | Banana |
엑셀에서 A열과 B열의 항목이 일치하는지 불일치하는지 알려주고 C열에 결과를 표시해주길 바랍니다.C열에 입력하는 공식은 다음과 같습니다.=IF(A1=B1, "Match", "Mismatch")
Excel의 경우 공식을 C열의 나머지 셀로 드래그하여 공식을 적용하면 결과는 다음과 같습니다.
Column A | Column B | Column C
Apple | Apple | Match
Orange | Orange | Match
Pear | Banana | Mismatch
파이썬 스크립트를 사용하여 이를 자동화하기 위해 다음을 시도했습니다.
import openpyxl
wb = openpyxl.load_workbook('test.xlsx')
Sheet = wb.get_sheet_by_name('Sheet1')
for cellObj in Sheet.columns[2]:
cellObj.value = '=IF($A$1=$B$1, "Match", "Mismatch")
wb.save('test.xlsx')
이렇게 하면 공식이 C 열의 모든 셀에 기록되지만 공식은 셀 A1과 B1만 참조하므로 C = 일치 열의 모든 셀이 표시됩니다.
Column A | Column B | Column C
Apple | Apple | Match
Orange | Orange | Match
Pear | Banana | Match
어떻게 처리하시겠습니까?
공식을 동적으로 생성하여 각 행의C
의 해당 행에서 가져옵니다.A
그리고.B
:
for i, cellObj in enumerate(Sheet.columns[2], 1):
cellObj.value = '=IF($A${0}=$B${0}, "Match", "Mismatch")'.format(i)
다행히도 이제 당신은 특정한 기록에서 공식을 쉽게 할 수 있습니다.또한 다음과 같은 더 간단한 기능도 사용할 수 있습니다.
wb.sheetnames
대신에wb.read_sheet_names()
sheet = wb['SHEET_NAME']
대신에sheet = wb.get_sheet_by_name('SHEET_NAME')
공식은 다음과 같이 쉽게 삽입할 수 있습니다.
sheet['A1'] = '=SUM(1+1)'
언급URL : https://stackoverflow.com/questions/39195957/write-formula-to-excel-with-python
'programing' 카테고리의 다른 글
iPhone - Grand Central Dispatch 메인 스레드 (0) | 2023.06.08 |
---|---|
"도..."가 있습니까?파이썬에서 "까지"? (0) | 2023.06.08 |
Excel VBA에서 주어진 모듈 이름의 Function 및 Sub 목록을 가져오는 방법 (0) | 2023.06.08 |
Firebase에서 배열 유형 문서 항목에 타임스탬프를 할당하는 방법 (0) | 2023.06.08 |
pyproject.toml 파일은 무엇을 위한 것입니까? (0) | 2023.06.08 |