파이썬 이용하여 리스트 내용 엑셀에 옮겨쓰기
조회수 377회
filename = "파일이름.xlsx"
book = openpyxl.load_workbook(filename)
# sheet 추출
sheet = book.worksheets[0]
# 데이터 입력
data = []
data_value = data
for row in sheet.rows:
data.append([
row[0].value,
row[1].value,
row[2].value,
row[3].value,
row[4].value,
row[5].value,
row[6].value,
row[7].value,
row[8].value,
])
우선 위 코드를 이용하여, 엑셀 파일 내의 내용들을 리스트로 뽑아내는데는 성공했습니다.
그 결과 값은
['서원구 분평동', '전체', '전체', '전체', '전체', 99, '24,069', 0.41, 0.5],
['서원구 사직제1동', '전체', '전체', '전체', '전체', 41, '7,139', 0.57, 0.49],
['서원구 사직제2동', '전체', '전체', '전체', '전체', 65, '11,476', 0.57, 0.56],
['서원구 사창동', '전체', '전체', '전체', '전체', 53, '14,171', 0.37, 0.43]
간략히 이정도 되며, 수십개가 됩니다.
제가 원하는 최종 결과는
빈칸이 있는 엑셀 파일에 위 내용들을 왼쪽부터 순차적으로 셀에 삽입을 하는 것입니다.
| 서원구 | 전체 | 전체 | 전체 | 전체 | 99 | 24,069 | 0.41 | 0.5 |
for y in range(2, 9):
for x in range(3, 46):
cell = ws.cell(row=x, column=y)
ws.cell(row=x, column=y)
위 코드를 작성하여 실행하여 임의로 밸류값을 지정하여 데이터를 삽입해보니, 제가 원하는 위치에 값이 들어가더군요.
어떻게하면 리스트의 내용들을 개별적으로 각 셀마다 삽입을 할 수 있을까요?
1 답변
-
이렇게 진행하면 될 것 같습니다.
for n, datalist in enumerate(data, 1): for n2, i in enumerate(datalist, 1): cell = ws.cell(row = n, column = n2)
- 혹시 datalist는 고안하신 변수인지 알 수 있을까요? 현재 제가 data라는 변수 안에 리스트를 담고 data_value로 재정의 했는데, datalist라는 변수는 어떻게 생성해야 하는지 잘 몰라서 질문드립니다. osc0533@gmail.com 2022.9.27 16:13
- 제가 쓴 코드 잘 살펴보세요 초보자 2022.9.27 16:19
- 아 제가 오타가 나서 오류가 뜬 거였어요 죄송합니다 ㅎ ㅎ,,, 근데 추가로 한 가지만 더 여쭤보겠습니다! 저렇게 실행하니 ValueError: Row or column values must be at least 1 라는 에러가 뜨는데 어떻게 해결하면 되는지 여쭤봐도 될까요? osc0533@gmail.com 2022.9.27 16:29
- wb = load_workbook("filename.xlsx") ws = wb.active n = 2 n2 = 3 for n, datalist in enumerate(data): for n2, i in enumerate(datalist): i = ws.cell(row=n, column=n2) wb.save("filename.xlsx") wb.close() osc0533@gmail.com 2022.9.27 16:32
- 코드는 위와 같이 작성했습니다...! osc0533@gmail.com 2022.9.27 16:32
- 수정 내용 확인 초보자 2022.9.27 16:36
- 정말 감사합니다! 해결했습니다!!! osc0533@gmail.com 2022.9.27 17:58
댓글 입력