ν맀 μ€μ λ°μ΄ν°λ₯Ό μλ λ¬Έμλ‘ μλννκΈ°
μ΄μ μμ
μμ λΆλ¬μ¨ μμ
λ°μ΄ν°λ₯Ό λ°νμΌλ‘ μλ λ¬Έμ
λ₯Ό μμ±ν΄ λ³΄κ² μ΅λλ€.
μ€μ΅ μ½λλ₯Ό μ€ννλ©΄ python-docx
λΌμ΄λΈλ¬λ¦¬λ₯Ό νμ©ν΄ ν맀 μ€μ λ°μ΄ν°λ₯Ό λ¬Έμ λ΄ νλ‘ λ³ννκ³ , μλ λ¬Έμλ‘ μ μ₯ν©λλ€.
python-docxλ‘ μλ λ¬Έμ λ§λ€κΈ°
μ€μ΅ μ½λλ λ€μκ³Ό κ°μ΄ 6λ¨κ³λ‘ λμν©λλ€.
1. νμν λΌμ΄λΈλ¬λ¦¬ λΆλ¬μ€κΈ°
import openpyxl # μμ νμΌμ λ€λ£¨λ λΌμ΄λΈλ¬λ¦¬ from docx import Document # python-docx λΌμ΄λΈλ¬λ¦¬
-
openpyxl
: μμ νμΌμ μ½κ³ μμ ν μ μλλ‘ λλ λΌμ΄λΈλ¬λ¦¬μ λλ€. -
Document
: μλ λ¬Έμλ₯Ό μμ±νκ³ , λ΄μ©μ μΆκ°νκ±°λ μμ ν μ μλ ν΄λμ€μ λλ€.
2. μμ νμΌ λΆλ¬μ€κΈ°
wb = openpyxl.load_workbook('input_file.xlsx') # μμ νμΌμ λΆλ¬μ΅λλ€. sheet = wb.active # νμ¬ νμ±νλ μνΈλ₯Ό κ°μ Έμ΅λλ€.
-
openpyxl.load_workbook('input_file.xlsx')
: μμ νμΌμ μ΄κ³ λ°μ΄ν°λ₯Ό μ¬μ©ν μ μλλ‘ λΆλ¬μ΅λλ€. -
wb.active
: λΆλ¬μ¨ μμ νμΌμμ νμ¬ νμ±νλ μνΈ(첫 λ²μ§Έ μνΈ)λ₯Ό κ°μ Έμ΅λλ€.
3. μλ λ¬Έμ μμ±
doc = Document() # μ μλ λ¬Έμλ₯Ό μμ±ν©λλ€.
Document()
: μλ‘μ΄ μλ λ¬Έμλ₯Ό λ§λλλ€. μ¬κΈ°μ λ°μ΄ν°λ₯Ό μΆκ°ν΄ λκ° μμ μ λλ€.
4. λ³΄κ³ μ μ λͺ© μΆκ°
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μ | μΉ΄λ©λΌ | 50 | 500,000 | 25,000,000 |
1μ | μ»΄ν¨ν° | 30 | 1,200,000 | 36,000,000 |
1μ | μ€λ§νΈν° | 100 | 900,000 | 90,000,000 |
2μ | μΉ΄λ©λΌ | 45 | 480,000 | 21,600,000 |
2μ | μ»΄ν¨ν° | 35 | 1,150,000 | 40,250,000 |
2μ | μ€λ§νΈν° | 90 | 850,000 | 76,500,000 |
3μ | μΉ΄λ©λΌ | 40 | 470,000 | 18,800,000 |
3μ | μ»΄ν¨ν° | 40 | 1,100,000 | 44,000,000 |
3μ | μ€λ§νΈν° | 95 | 800,000 | 76,000,000 |
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result
The document is empty.
Try running the code.