인프런 커뮤니티 질문&답변

서주희님의 프로필 이미지
서주희

작성한 질문수

[2024 개정판] 이것이 진짜 엑셀자동화다 - 기본편

실전 자동화 : 파일이름 100개 한번에 바꾸기

쿠팡 list 생성 중

해결된 질문

작성

·

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(['순번', '제품명', '가격', '수량', '합계'])

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

서주희님의 프로필 이미지
서주희

작성한 질문수

질문하기