Guidelines

판맀 싀적 데이터λ₯Ό μ›Œλ“œ λ¬Έμ„œλ‘œ μžλ™ν™”ν•˜κΈ°

이전 μˆ˜μ—…μ—μ„œ 뢈러온 μ—‘μ…€ 데이터λ₯Ό λ°”νƒ•μœΌλ‘œ μ›Œλ“œ λ¬Έμ„œλ₯Ό μž‘μ„±ν•΄ λ³΄κ² μŠ΅λ‹ˆλ‹€.

μ‹€μŠ΅ μ½”λ“œλ₯Ό μ‹€ν–‰ν•˜λ©΄ python-docx 라이브러리λ₯Ό ν™œμš©ν•΄ 판맀 싀적 데이터λ₯Ό λ¬Έμ„œ λ‚΄ ν‘œλ‘œ λ³€ν™˜ν•˜κ³ , μ›Œλ“œ λ¬Έμ„œλ‘œ μ €μž₯ν•©λ‹ˆλ‹€.


python-docx둜 μ›Œλ“œ λ¬Έμ„œ λ§Œλ“€κΈ°

μ‹€μŠ΅ μ½”λ“œλŠ” λ‹€μŒκ³Ό 같이 6λ‹¨κ³„λ‘œ λ™μž‘ν•©λ‹ˆλ‹€.


1. ν•„μš”ν•œ 라이브러리 뢈러였기

openpyxl 및 python-docx 라이브러리 뢈러였기
import openpyxl # μ—‘μ…€ νŒŒμΌμ„ λ‹€λ£¨λŠ” 라이브러리 from docx import Document # python-docx 라이브러리
  • openpyxl: μ—‘μ…€ νŒŒμΌμ„ 읽고 μˆ˜μ •ν•  수 μžˆλ„λ‘ λ•λŠ” λΌμ΄λΈŒλŸ¬λ¦¬μž…λ‹ˆλ‹€.

  • Document: μ›Œλ“œ λ¬Έμ„œλ₯Ό μƒμ„±ν•˜κ³ , λ‚΄μš©μ„ μΆ”κ°€ν•˜κ±°λ‚˜ μˆ˜μ •ν•  수 μžˆλŠ” ν΄λž˜μŠ€μž…λ‹ˆλ‹€.


2. μ—‘μ…€ 파일 뢈러였기

load_workbook ν•¨μˆ˜λ‘œ μ—‘μ…€ 파일 뢈러였기
wb = openpyxl.load_workbook('input_file.xlsx') # μ—‘μ…€ νŒŒμΌμ„ λΆˆλŸ¬μ˜΅λ‹ˆλ‹€. sheet = wb.active # ν˜„μž¬ ν™œμ„±ν™”λœ μ‹œνŠΈλ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€.
  • openpyxl.load_workbook('input_file.xlsx'): μ—‘μ…€ νŒŒμΌμ„ μ—΄κ³  데이터λ₯Ό μ‚¬μš©ν•  수 μžˆλ„λ‘ λΆˆλŸ¬μ˜΅λ‹ˆλ‹€.

  • wb.active: 뢈러온 μ—‘μ…€ νŒŒμΌμ—μ„œ ν˜„μž¬ ν™œμ„±ν™”λœ μ‹œνŠΈ(첫 번째 μ‹œνŠΈ)λ₯Ό κ°€μ Έμ˜΅λ‹ˆλ‹€.


3. μ›Œλ“œ λ¬Έμ„œ 생성

Document 클래슀둜 μ›Œλ“œ λ¬Έμ„œ 생성
doc = Document() # μƒˆ μ›Œλ“œ λ¬Έμ„œλ₯Ό μƒμ„±ν•©λ‹ˆλ‹€.
  • Document(): μƒˆλ‘œμš΄ μ›Œλ“œ λ¬Έμ„œλ₯Ό λ§Œλ“­λ‹ˆλ‹€. 여기에 데이터λ₯Ό μΆ”κ°€ν•΄ λ‚˜κ°ˆ μ˜ˆμ •μž…λ‹ˆλ‹€.

4. λ³΄κ³ μ„œ 제λͺ© μΆ”κ°€

add_heading ν•¨μˆ˜λ‘œ 제λͺ© μΆ”κ°€
doc.add_heading('2024λ…„ 1λΆ„κΈ° 판맀 싀적 λ³΄κ³ μ„œ', 0)
  • doc.add_heading: μ›Œλ“œ λ¬Έμ„œμ— 제λͺ©μ„ μΆ”κ°€ν•˜λŠ” μ½”λ“œμž…λ‹ˆλ‹€. '2024λ…„ 1λΆ„κΈ° 판맀 싀적 λ³΄κ³ μ„œ'λΌλŠ” 제λͺ©μ„ μΆ”κ°€ν•˜κ³ , 0은 κ°€μž₯ 큰 제λͺ© ν¬κΈ°μž…λ‹ˆλ‹€.

5. ν‘œ 생성 및 μ—΄ 제λͺ© μ„€μ •

ν‘œ 생성 및 μ—΄ 제λͺ© μ„€μ •
table = doc.add_table(rows=1, cols=5) # 1ν–‰ 5μ—΄λ‘œ κ΅¬μ„±λœ ν‘œλ₯Ό λ§Œλ“­λ‹ˆλ‹€. table.style = 'Table Grid' # ν‘œμ— ν…Œλ‘λ¦¬ μŠ€νƒ€μΌμ„ μΆ”κ°€ν•©λ‹ˆλ‹€. # 첫 번째 ν–‰(μ—΄ 제λͺ©)을 μ„€μ •ν•©λ‹ˆλ‹€. hdr_cells = table.rows[0].cells hdr_cells[0].text = 'μ›”' hdr_cells[1].text = 'μ œν’ˆ' hdr_cells[2].text = 'νŒλ§€λŸ‰' hdr_cells[3].text = '객단가' hdr_cells[4].text = '맀좜'
  • doc.add_table(rows=1, cols=5): 1ν–‰ 5μ—΄λ‘œ κ΅¬μ„±λœ ν‘œλ₯Ό μ›Œλ“œ λ¬Έμ„œμ— μΆ”κ°€ν•©λ‹ˆλ‹€. 첫 번째 행은 μ—΄ 제λͺ©μ„ μœ„ν•œ ν–‰μž…λ‹ˆλ‹€.

  • table.style = 'Table Grid': ν‘œμ— Table GridλΌλŠ” μ‹€μ„  ν…Œλ‘λ¦¬ μŠ€νƒ€μΌμ„ μ„€μ •ν•˜μ—¬ ν‘œλ₯Ό κΉ”λ”ν•˜κ²Œ λ§Œλ“­λ‹ˆλ‹€.

  • hdr_cells: 첫 번째 ν–‰μ˜ 각 셀을 μ§€μ •ν•˜κ³ , 'μ›”', 'μ œν’ˆ', 'νŒλ§€λŸ‰', '객단가', '맀좜'μ΄λΌλŠ” 제λͺ©μ„ μΆ”κ°€ν•©λ‹ˆλ‹€.


6. μ—‘μ…€ 데이터 μΆ”κ°€ 및 μ›Œλ“œ λ¬Έμ„œ μ €μž₯

μ—‘μ…€ 데이터 μΆ”κ°€ 및 μ›Œλ“œ λ¬Έμ„œ μ €μž₯
# 2번째 쀄뢀터 데이터λ₯Ό μ½μŠ΅λ‹ˆλ‹€. for row in sheet.iter_rows(min_row=2, values_only=True): month, product, sales, price, revenue = row # 각 μ—΄μ˜ 데이터λ₯Ό λ³€μˆ˜λ‘œ μ €μž₯ν•©λ‹ˆλ‹€. # μƒˆλ‘œμš΄ 행을 ν‘œμ— μΆ”κ°€ν•©λ‹ˆλ‹€. row_cells = table.add_row().cells row_cells[0].text = str(month) # 'μ›”' 데이터λ₯Ό ν…μŠ€νŠΈλ‘œ λ³€ν™˜ν•˜μ—¬ μΆ”κ°€ row_cells[1].text = product # 'μ œν’ˆ' 데이터λ₯Ό μΆ”κ°€ row_cells[2].text = str(sales) # 'νŒλ§€λŸ‰' 데이터λ₯Ό ν…μŠ€νŠΈλ‘œ λ³€ν™˜ν•˜μ—¬ μΆ”κ°€ row_cells[3].text = str(price) # '객단가' 데이터λ₯Ό ν…μŠ€νŠΈλ‘œ λ³€ν™˜ν•˜μ—¬ μΆ”κ°€ row_cells[4].text = str(revenue) # '맀좜' 데이터λ₯Ό ν…μŠ€νŠΈλ‘œ λ³€ν™˜ν•˜μ—¬ μΆ”κ°€ # μ›Œλ“œ λ¬Έμ„œλ₯Ό 'output_file.docx'λΌλŠ” μ΄λ¦„μœΌλ‘œ μ €μž₯ν•©λ‹ˆλ‹€. doc.save('output_file.docx')
  • sheet.iter_rows(min_row=2, values_only=True): μ—‘μ…€ 파일의 두 번째 쀄뢀터 데이터λ₯Ό μ½μ–΄μ˜΅λ‹ˆλ‹€. values_only=True둜 μ„€μ •ν•˜λ©΄, μ…€μ˜ κ°’λ§Œ κ°€μ Έμ˜΅λ‹ˆλ‹€.

  • 각 λ³€μˆ˜(month, product, sales, price, revenue): 각각의 μ—΄ 데이터λ₯Ό λ³€μˆ˜λ‘œ μ €μž₯ν•©λ‹ˆλ‹€.

  • table.add_row(): μƒˆλ‘œμš΄ 행을 ν‘œμ— μΆ”κ°€ν•˜κ³ , μ—‘μ…€μ—μ„œ μ½μ–΄μ˜¨ 데이터λ₯Ό κ·Έ 행에 λ„£μŠ΅λ‹ˆλ‹€.

  • doc.save('output_file.docx'): μ΅œμ’…μ μœΌλ‘œ μ›Œλ“œ λ¬Έμ„œλ₯Ό 'output_file.docx'λΌλŠ” μ΄λ¦„μœΌλ‘œ μ €μž₯ν•©λ‹ˆλ‹€.


μ›Œλ“œ λ¬Έμ„œλ‘œ 좜λ ₯λ˜λŠ” κ²°κ³Ό

이 μ½”λ“œκ°€ μ‹€ν–‰λ˜λ©΄, μ›Œλ“œ λ¬Έμ„œμ— λ‹€μŒκ³Ό 같은 ν‘œκ°€ μƒμ„±λ©λ‹ˆλ‹€.

μ›”μ œν’ˆνŒλ§€λŸ‰κ°λ‹¨κ°€λ§€μΆœ
1월카메라50500,00025,000,000
1월컴퓨터301,200,00036,000,000
1μ›”μŠ€λ§ˆνŠΈν°100900,00090,000,000
2월카메라45480,00021,600,000
2월컴퓨터351,150,00040,250,000
2μ›”μŠ€λ§ˆνŠΈν°90850,00076,500,000
3월카메라40470,00018,800,000
3월컴퓨터401,100,00044,000,000
3μ›”μŠ€λ§ˆνŠΈν°95800,00076,000,000

Guidelines

AI Tutor

Publish

Design

Upload

Notes

Favorites

Help

Code Editor

Run
Generate

Execution Result

Input/Result

The document is empty.

Try running the code.