• 카테고리

    질문 & 답변
  • 세부 분야

    업무 자동화

  • 해결 여부

    해결됨

쿠팡 list 생성 중

23.03.19 10:13 작성 23.03.19 21:06 수정 조회수 287

1

엑셀 파일관리 예제 _쿠팡 건에서 딕셔너리를 활용하려고 했는데 자꾸 오류가 나서 혹시 아래 딕셔너리 사용하는 방법으론 할 수 있는 방법이 없을까요?? 

import openpyxl
import random 

wb = openpyxl.Workbook() 
ws= wb.active 
ws.title = 'data' 

\data 입력
item_list = {'기계식 키보드' : 120000, 
'게이밍 마우스' : 40000, 
'32인치 모니터' : 350000, 
'마우스 패드' : 20000 } 

\랜덤 추출
data = random.randint(5,10) 
qty = random.randint(1,5) 
item = random.randint(1,4) 

\첫행 입력
ws['A1'] = '순번'; ws['B1'] = '제품명'; ws['C1'] = '가격' ws['D1'] = '수량'; ws['E1'] = '합계' 

for i in range(data):
 name = random.choice(item_list) 
 ws.append([i+1, name, item_list.values, qty, f'=C{i+2}*D{i+2}'])

 ws = wb.save('11번가')

 

답변 1

답변을 작성해보세요.

1

서주희님의 프로필

서주희

질문자

2023.03.19

import openpyxl
import random

wb = openpyxl.Workbook()
ws= wb.active
ws.title = 'data'

item_dic = {'기계식 키보드' : 120000, 
'게이밍 마우스' : 40000,
'32인치 모니터' : 350000,
'마우스 패드' : 20000
}

data = random.randint(5,10)

ws['A1'] = '순번'; ws['B1'] = '제품명'; ws['C1'] = '가격'
ws['D1'] = '수량'; ws['E1'] = '합계'

for i in range(data):
    item = random.choice(list(item_dic.keys()))
    qty = random.randint(1,5)
    ws.append([i+1, item, item_dic.get(item), qty, f'=C{i+2}*D{i+2}'])

ws = wb.save('11번가.xlsx')

이렇게 작성해서 해결하였습니다. 혹시 더 줄일 수 있는 부분이 있을까요?

깔끔하게 잘 만드셨습니다 ^^

 

엑셀 첫 행에 입력하는 부분에서 팁을 드리자면

ws.append(['순번', '제품명', '가격', '수량', '합계'])

이렇게 리스트로 추가하면 조금 더 간단해 지겠네요.