list를 for구문에 넣는법에 대해 지식을 나눠주시면 감사하겠습니다
조회수 727회
#영업이익
year_list = []
for filename in name_list:
book = openpyxl.load_workbook(filename)
sheet = book.worksheets[0]
def findExistString(searchString, text):
if searchString in text: return True
else: return False
def findNonExistString(searchString, text):
if searchString in text: return False
else: return True
for row in sheet.rows:
if findExistString("영업", row[1].value):
year_list.append(filename[7:14])
break
이렇게 해서 year_list를 추출했는데요 out값이
['2011.12',
'2012.12',
'2013.12',
'2014.12',
'2015.12',
'2016.12',
'2017.12',
'2018.12',
'2019.12']
이렇게 나왔습니다. 이대로 for 구문에 넣으니 실행이 안되더군여. 아래는 for-loop구문입니다
sheet1 = wb.active
file_name = '한전.xlsx'
sheet1.title = 'sampleSheet'
for coulumn_index in year_list:
sheet1.cell(row=1, column=coulumn_index).value = coulumn_index
wb.save(filename=file_name)
out
TypeError Traceback (most recent call last)
<ipython-input-68-380cc469c2fa> in <module>
3 sheet1.title = 'sampleSheet'
4 for coulumn_index in year_list:
----> 5 sheet1.cell(row=1, column=coulumn_index).value = coulumn_index
6
7 wb.save(filename=file_name)
~\anaconda3\lib\site-packages\openpyxl\worksheet\worksheet.py in cell(self, row, column, value)
233 """
234
--> 235 if row < 1 or column < 1:
236 raise ValueError("Row or column values must be at least 1")
237
TypeError: '<' not supported between instances of 'str' and 'int'
str(year_list)
로도 실행해 보았지만 안되더군여
제가 만들고자하는건 year_list를 뽑고 그데이터를 엑셀 에 나열시키는게 목표입니다!
-
(•́ ✖ •̀)
알 수 없는 사용자 - 〉
1 답변
-
for coulumn_index in year_list: sheet1.cell(row=1, column=coulumn_index).value = coulumn_index
에서 실행과정을 보면
sheet1.cell(row=1, column='2011.12').value = '2011.12'
인데 에러에서 보시다시피 column 에 대해서 < 비교할때 숫자랑 문자랑 비교해서 에러가 나는거 같은데. 제가볼때 질문자님이 원하는 실행과정은 아닌거 같거든요.enumerate 활용해서 column 에 대한 index 확인해보시는게 좋아보여요.
for idx, coulumn_index in enumerate(year_list): sheet1.cell(row=1, column=idx).value = coulumn_index
아니면 전체 리스트에 해당 값에 대해서 인덱스 확인하시는것도 되겠네요
for coulumn_index in year_list: sheet1.cell(row=1, column=year_list.index(coulumn_index)).value = coulumn_index
- 에러에서 보시다시피 column 에 대해서 < 비교할때 숫자랑 문자랑 비교해서 에러가 나는거 같은데. 제가볼때 질문자님이 원하는 실행과정은 아닌거 같거든요. 이부분에 대해는 이해를 했습니다 감사합니다. 알 수 없는 사용자 2020.6.18 13:59
- 제가 파이썬을 무작정시작해서요 ㅜㅜ 그냥 이거만들어보자하고 맨땅에 해딩하고있어서 이해가 힘드네요 ㅠㅠ 혹시 어떤식으로 코드를 짜야하느지 설명해주실 수 있을까요?? 제가 다시 분해하면서 이해해보겠습니다.. 방향성을 알려주셔서감사한데 아직 제능력으론 이해하기가 힘드네요 알 수 없는 사용자 2020.6.18 14:00
- 답변을 잘해주셧는데 이해하지 못해서 죄송스럽네여 ㅠ 알 수 없는 사용자 2020.6.18 14:08
- 제가 해당 에러에 대한 문제는 답변에 포함하여 댓글드리긴 했는데... enumerate 와 openpyxl 에 대한 공식api문서 살펴보시는게 어떨까 싶어요.. 김호원 2020.6.18 14:24
- 넵한번 정동해보겠습니다 감사합니다! 알 수 없는 사용자 2020.6.18 15:00
댓글 입력