openpyxlλ‘ μμ λ°μ΄ν°λ₯Ό μ½μ΄μ μλ λ¬Έμμ νμ ν μ€νΈ μΆκ°νκΈ°
λ³΄κ³ μλ₯Ό μμ±νλ€ λ³΄λ©΄, μμ νμΌμμ λ°μ΄ν°λ₯Ό μ½μ΄μ μ΄λ₯Ό νμ ν μ€νΈλ‘ μμ±ν΄μΌ ν λκ° μμ΅λλ€.
μ΄λ² μμ
μμλ μ΄μ Chapterμμ λ°°μ΄ openpyxl
λΌμ΄λΈλ¬λ¦¬λ₯Ό νμ©νμ¬ μμ
λ°μ΄ν°λ₯Ό μ½μ΄μ¨ ν, python-docx
λ₯Ό μ¬μ©ν΄ μλ λ¬Έμμ ν
μ€νΈμ νλ₯Ό μΆκ°νλ λ°©λ²μ μμλ³΄κ² μ΅λλ€.
μμ νμΌ κ΅¬μ‘°
λ¨Όμ μ΄λ² μμ μμ λ€λ£° μμ νμΌμ ꡬ쑰λ₯Ό μ΄ν΄λ³΄κ² μ΅λλ€.
μμ νμΌμ μΌμ, μνλ³ λ§€μΆ λ°μ΄ν°λ₯Ό ν¬ν¨νκ³ μμΌλ©°, μνΈ λ΄ λ°μ΄ν°λ λ€μκ³Ό κ°μ΅λλ€.
λ μ§ | μ νλͺ | ν맀λ | λ¨κ° | μ΄λ§€μΆ |
---|---|---|---|---|
2024-01-01 | μν A | 100 | 500 | 50,000 |
2024-01-02 | μν B | 150 | 750 | 112,500 |
2024-01-03 | μν C | 200 | 800 | 160,000 |
2024-01-04 | μν A | 130 | 500 | 65,000 |
2024-01-05 | μν B | 170 | 750 | 127,500 |
μ΄ μμ νμΌμλ κ° μ νμ μΌμλ³ ν맀λκ³Ό λ¨κ°λ₯Ό κ³±ν μ΄λ§€μΆμ΄ κ³μ°λμ΄ μμ΅λλ€.
μ΄λ¬ν μμ νμΌ λ΄ λ°μ΄ν°λ₯Ό μλ λ¬Έμλ‘ λ³ννμ¬, λ³΄κ³ μμ ν λ²μ ν¬ν¨μν€λ €λ©΄ μ΄λ»κ² ν΄μΌ ν κΉμ?
1. μμ νμΌμμ λ°μ΄ν° μ½μ΄μ€κΈ°
λ¨Όμ , μμ νμΌμμ λ°μ΄ν°λ₯Ό μ½μ΄μ€κΈ° μν΄ openpyxl λΌμ΄λΈλ¬λ¦¬λ₯Ό μ¬μ©ν©λλ€.
# μμ νμΌ λ‘λ workbook = load_workbook('input_file.xlsx') # νμ±νλ μνΈ μ ν sheet = workbook.active # λ°μ΄ν° μ½μ΄μ€κΈ° data = [] # min_row=2λ‘ μ€μ νμ¬ μ²« λ²μ§Έ ν(ν€λ) μ μΈ for row in sheet.iter_rows(min_row=2, values_only=True): # λ°μ΄ν°κ° μλ νλ§ μΆκ° data.append(row)
-
load_workbook('input_file.xlsx')
μ 'input_file.xlsx' νμΌμ λ‘λν©λλ€. -
sheet = workbook.active
λ νμ±νλ μνΈλ₯Ό μ νν©λλ€. -
iter_rows(min_row=2, values_only=True)
λ μμ μνΈμ λ°μ΄ν°λ₯Ό ν λ¨μλ‘ μ½μ΄μ΅λλ€. μ¬κΈ°μmin_row=2
λ 첫 λ²μ§Έ ν(ν€λ)μ 건λλ°κ³ λ λ²μ§Έ νλΆν° μ½μ΄μ€λλ‘ μ€μ ν©λλ€.
2. μλ λ¬Έμ μμ±νκΈ°
μ΄μ κ°μ Έμ¨ λ°μ΄ν°λ₯Ό μλ λ¬Έμμ λ£μ΄λ³΄κ² μ΅λλ€.
# μ μλ λ¬Έμ μμ± doc = Document() # μ λͺ© μΆκ° doc.add_heading('λ§€μΆ λ³΄κ³ μ', 0) # λ¬Έλ¨ μΆκ° doc.add_paragraph('λ€μμ μ΅κ·Ό λ§€μΆ λ°μ΄ν°μ λλ€.')
-
Document()
λ₯Ό νΈμΆνμ¬ μ μλ λ¬Έμλ₯Ό μμ±ν©λλ€. -
add_heading('λ§€μΆ λ³΄κ³ μ', 0)
μ λ¬Έμμ μ λͺ©μ μΆκ°ν©λλ€. -
add_paragraph('λ€μμ μ΅κ·Ό λ§€μΆ λ°μ΄ν°μ λλ€.')
λ λ³Έλ¬Έ ν μ€νΈλ₯Ό μΆκ°ν©λλ€.
3. μμ λ°μ΄ν°λ₯Ό μλ λ¬Έμμ νλ‘ μΆκ°νκΈ°
λ¨Όμ , νμ ν€λλ₯Ό μλμ κ°μ΄ μΆκ°ν©λλ€.
# ν μμ± table = doc.add_table(rows=1, cols=len(sheet[1]), style='Table Grid') # νμ 첫 λ²μ§Έ νμ ν€λ μΆκ° hdr_cells = table.rows[0].cells # μμ μ 첫 λ²μ§Έ ν(ν€λ)λ₯Ό νμ 첫 λ²μ§Έ νμ μΆκ° for i, heading in enumerate(sheet[1]): # ν€λ μ μ ν μ€νΈ μΆκ° hdr_cells[i].text = str(heading.value)
-
doc.add_table(rows=1, cols=len(sheet[1]), style='Table Grid')
λ μμ λ°μ΄ν°μ μ΄ κ°μλ§νΌ 컬λΌμ΄ μλ νλ₯Ό μμ±ν©λλ€. -
table.rows[0].cells
λ νμ 첫 λ²μ§Έ νμ ν€λλ₯Ό μΆκ°ν©λλ€. -
for i, heading in enumerate(sheet[1])
λ μμ μ 첫 λ²μ§Έ ν(ν€λ)λ₯Ό νμ 첫 λ²μ§Έ νμ μΆκ°ν©λλ€. -
hdr_cells[i].text = str(heading.value)
λ ν€λ μ μ ν μ€νΈλ₯Ό μΆκ°ν©λλ€.
μ΄ν νμ κ° νμ λ°μ΄ν°λ₯Ό μΆκ°ν©λλ€.
# νμ λ°μ΄ν° μΆκ° for row in data: # νμ μ ν μΆκ° row_cells = table.add_row().cells # κ° νμ λ°μ΄ν°λ₯Ό νμ μΆκ° for i, value in enumerate(row): # κ° μ μ λ°μ΄ν° μΆκ° row_cells[i].text = str(value)
4λ¨κ³: λ¬Έμ μ μ₯νκΈ°
λͺ¨λ λ°μ΄ν°λ₯Ό μΆκ°ν ν, μλ λ¬Έμλ₯Ό μ μ₯ν©λλ€.
# λ¬Έμ μ μ₯ doc.save('output_file.docx')
μ΄ μ½λλ μμ±λ λ¬Έμλ₯Ό 'output_file.docx'λΌλ μ΄λ¦μΌλ‘ μ μ₯ν©λλ€.
python-docxμμ λ¬Έμμ μ λͺ©μ μΆκ°νλ λ©μλλ 무μμΈκ°μ?
add_paragraph
add_heading
add_title
add_text
Guidelines
AI Tutor
Publish
Design
Upload
Notes
Favorites
Help
Code Editor
Execution Result
The document is empty.
Try running the code.