해결된 질문
작성
·
349
·
수정됨
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
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(['순번', '제품명', '가격', '수량', '합계'])
이렇게 리스트로 추가하면 조금 더 간단해 지겠네요.