Excel & IT Info

아이엑셀러 닷컴, 엑셀러TV

Python

파이썬으로 Excel에서 머리글과 바닥글 제어하는 방법

권현욱(엑셀러) 2025. 4. 2. 15:52
반응형

들어가기 전에

Python을 사용하면 Excel에서 머리글과 바닥글을 삽입하고 사용자 지정할 수 있습니다. 파이썬을 사용하여 엑셀의 기본 머리글과 바닥글 삽입, 머리글과 바닥글에 이미지 추가, 홀수 및 짝수 페이지에 대해 다른 머리글과 바닥글 만들기, 첫 번째 페이지에 대해 고유한 머리글과 바닥글을 정의하는 방법에 대해 소개합니다.

권현욱(엑셀러) | 아이엑셀러 닷컴 대표 · Microsoft MVP · 엑셀 솔루션 프로바이더 · 작가

이미지: 아이엑셀러 닷컴


이 글은 아래 기사 내용을 토대로 작성되었습니다만, 필자의 개인 의견이나 추가 자료들이 다수 포함되어 있습니다.

  • 원문: Insert And Customize Headers and Footers in Excel with Python
  • URL: https://medium.com/@alice.yang_10652/insert-headers-and-footers-in-excel-with-python-254b3381a517


개요

Excel의 머리글과 바닥글은 워크시트의 인쇄된 각 페이지에 표시될 콘텐츠를 배치할 수 있는 영역입니다. 이 콘텐츠는 일반 Excel 작업 보기에서는 표시되지 않고 페이지 레이아웃 보기에 있거나 문서를 인쇄할 때만 표시됩니다. 인쇄된 보고서를 더욱 유익하고 전문적으로 만들 수 있도록 설계되었습니다.

  • 머리글: 인쇄된 각 페이지의 상단에 표시되는 텍스트 또는 이미지입니다. 일반적인 머리글 요소에는 문서 제목, 회사 이름 또는 날짜가 포함됩니다.
  • 바닥글: 인쇄된 각 페이지의 하단에 표시되는 텍스트 또는 이미지입니다. 일반적인 바닥글 요소에는 페이지 번호, 파일 경로 또는 작성자 이름이 포함됩니다.

 

이러한 요소를 사용하면 필수 정보를 추가하여 인쇄된 문서를 더욱 풍부하게 만들 수 있으며, 콘텐츠가 잘 정리되고 이해하기 쉽도록 할 수 있습니다.

 

Excel 머리글과 바닥글을 삽입하는 라이브러리

Python에서 Excel에 머리글과 바닥글을 삽입하기 위해 Python용 Spire.XLS라는 타사 라이브러리를 사용합니다. 파이썬용 Spire.XLS는 파이썬 애플리케이션 내에서 Excel 파일을 생성, 읽기, 편집 및 변환하기 위한 Excel 라이브러리입니다.

 

이 라이브러리는 XLS, XLSX, XLSB, XLSM, ODS 등을 포함한 다양한 스프레드시트 형식과 호환됩니다. 또한 Excel 파일을 PDF, HTML, CSV, 텍스트, 이미지, XML, SVG, ODS, PostScript 및 XPS와 같은 다른 파일 형식으로 변환하는 기능도 제공합니다.

 

PyPI에서 터미널 창에서 다음 명령을 실행하여 Python용 Spire.XLS를 설치할 수 있습니다.

pip install Spire.Xls

 

설치에 대한 자세한 내용은 [여기]를 참고하세요.

파이썬에서 Excel의 머리글 및 바닥글 삽입

Excel에서 머리글과 바닥글은 일반적으로 왼쪽, 가운데, 오른쪽의 세 부분으로 나뉩니다. Python용 Spire.XLS에서 이러한 header 및 footer 섹션은 PageSetup 클래스 내의 특정 속성으로 표현됩니다. 이러한 속성에는 다음이 포함됩니다.

 

  • LeftHeader
  • CenterHeader
  • RightHeader
  • LeftFooter
  • CenterFooter
  • RightFooter

 

이러한 속성을 사용하면 헤더와 푸터의 특정 섹션에 쉽게 콘텐츠를 추가할 수 있습니다. 또한 Spire.XLS를 사용하면 헤더와 푸터 속성의 일부로 특수 코드를 삽입하여 헤더와 푸터의 모양과 콘텐츠를 사용자 지정할 수 있습니다.

  • &P : 현재 페이지 번호 삽입
  • &N : 전체 페이지 수 삽입
  • &G : 이미지 삽입
  • &D : 현재 날짜 삽입
  • &T : 현재 시간 삽입
  • &”fontname” : 다음 텍스트에 대한 사용자 정의 글꼴 지정
  • &nn : 다음 텍스트의 글꼴 크기(두 자리 숫자) 지정
  • 그리고 훨씬 더 많습니다.

 

다음 단계에서는 Python용 Spire.XLS를 사용하여 Python의 Excel 워크시트에 머리글과 바닥글을 삽입하는 방법을 설명합니다.

  • Excel 파일 열기: Workbook 클래스의 인스턴스를 초기화 하고 Workbook.LoadFromFile() 메서드를 사용하여 기존 Excel 파일을 로드합니다.
  • 워크시트 선택: 머리글과 바닥글을 삽입할 특정 워크시트를 선택합니다.
  • 머리글과 바닥글에 내용 추가: Worksheet.PageSetup.LeftHeader 속성을 사용하여 머리글의 왼쪽 구역에 대한 내용을 설정합니다. - Worksheet.PageSetup.CenterFooter 속성을 사용하여 바닥글의 가운데 구역에 대한 내용을 설정합니다.
  • 보기 모드 변경: 머리글과 바닥글을 미리 보려면 페이지 레이아웃 보기 로 전환하세요.
  • 파일 저장: Workbook.SaveToFile() 메서드를 사용하여 수정된 Excel 파일을 저장합니다.

 

다음 코드는 Python에서 Excel 워크시트에 텍스트 내용이 포함된 머리글과 바닥글을 삽입하는 방법을 보여줍니다.

from spire.xls import *

# Open an Excel workbook
workbook = Workbook()
workbook.LoadFromFile("Sales.xlsx")

# Get the first worksheet
sheet = workbook.Worksheets[0]

# Add text to the left section of the header. 
sheet.PageSetup.LeftHeader = "&\"Arial\"&14&K808080 ABC Corporation"

# Add page number and total number of pages to the center section of the footer.
sheet.PageSetup.CenterFooter = "&K808080 Page &P of &N"

# Change the view mode of the worksheet to the page layout view
sheet.ViewMode = ViewMode.Layout

# Save the modified file
workbook.SaveToFile("InsertHeaderAndFooter.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

 

코드 설명:

  • &”Arial”&14: 글꼴을 Arial로, 글꼴 크기를 14로 설정
  • &K808080: RGB 16진수 색상 코드 808080을 사용하여 색상을 회색으로 설정
  • ABC Corporation : 헤더에 표시되는 실제 텍스트
  • &P/ & N 페이지 : "X/Y 페이지"라는 텍스트를 표시. 여기서 X는 현재 페이지 번호이고 Y는 총 페이지 수

 

회색이 원하는 색상이 아니라면 RGB 색상 코드(808080)를 원하는 색상과 일치하도록 조정해야 합니다. 예를 들어, FF0000은 빨간색, 00FF00은 초록색, 0000FF는 파란색입니다.

 

이미지: medium

 

파이썬에서 Excel의 머리글과 바닥글에 이미지 추가

Excel의 머리글과 바닥글에는 텍스트 외에 이미지를 추가할 수도 있습니다. 이는 문서에 로고, 워터마크 또는 기타 그래픽 요소를 포함하는 데 유용합니다.

위 항목에서 보여준 것처럼 머리글이나 바닥글 속성에 “ &G ” 코드를 포함시키면 Excel 워크시트의 머리글이나 바닥글에 이미지를 삽입할 수 있습니다.

 

다음 코드는 Python에서 Excel 워크시트의 머리글과 바닥글에 이미지를 삽입하는 방법을 보여줍니다.

from spire.xls import *
from spire.xls.common import *

# Open an Excel workbook
workbook = Workbook()
workbook.LoadFromFile("Sales.xlsx")

# Get the first worksheet
sheet = workbook.Worksheets[0]

# Load an image
image = Stream("img.png")

# Add the image to the left section of the header
sheet.PageSetup.LeftHeaderImage = image
sheet.PageSetup.LeftHeader = "&G"

# Add the image to the center section of the footer
sheet.PageSetup.CenterFooterImage = image
sheet.PageSetup.CenterFooter = "&G"

# Change the view mode of the worksheet to the page layout view
sheet.ViewMode = ViewMode.Layout

# Save the modified file
workbook.SaveToFile("InsertImageInHeaderAndFooter.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

 

이미지: medium

 

파이썬에서 Excel의 홀수/짝수 페이지에 서로 다른 머리글/바닥글 삽입

여러 페이지 문서를 인쇄할 때 홀수 페이지와 짝수 페이지에 다른 머리글이나 바닥글을 사용하고 싶을 수 있습니다. 이는 인쇄된 보고서와 책에서 흔히 볼 수 있는 기능입니다.

Spire.XLS에서 DifferentOddEven 속성은 홀수 및 짝수 페이지에 대해 다른 머리글과 바닥글을 활성화합니다. OddHeaderString 및 EvenHeaderString 속성은 각각 홀수 및 짝수 페이지에 대한 사용자 지정 머리글을 설정합니다. 마찬가지로 OddFooterString 및 EvenFooterString 속성은 홀수 및 짝수 페이지에 대한 사용자 지정 바닥글을 설정합니다.

다음 코드는 Python에서 Excel 파일에 홀수 및 짝수 페이지에 대해 서로 다른 머리글과 바닥글을 삽입하는 방법을 보여줍니다.

from spire.xls import *

# Open an Excel workbook
workbook = Workbook()
workbook.LoadFromFile("Sales.xlsx")

# Get the first worksheet
sheet = workbook.Worksheets[0]

# Set the different header footer for Odd and Even pages
sheet.PageSetup.DifferentOddEven = 1
sheet.PageSetup.OddHeaderString = "&\"Arial\"&14&B&KFF0000 Odd_Header"
sheet.PageSetup.OddFooterString = "&\"Arial\"&14&B&KFF0000 Odd_Footer"
sheet.PageSetup.EvenHeaderString = "&\"Arial\"&14&B&K00FF00 Even_Header"
sheet.PageSetup.EvenFooterString = "&\"Arial\"&14&B&K00FF00 Even_Footer"

# Change the view mode of the worksheet to the page layout view
sheet.ViewMode = ViewMode.Layout

# Save the modified file
workbook.SaveToFile("DifferentHeaderAndFooterForOddAndEvenPage.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

 

이미지: medium

 

파이썬에서 Excel의 첫 페이지에 다른 머리글과 바닥글 삽입

첫 페이지에 고유한 머리글이나 바닥글을 원하는 경우(예: 페이지 번호 없이 제목 페이지를 표시하려는 경우) DifferentFirst , FirstHeaderString 및 FirstFooterString 속성을 사용할 수 있습니다.

 

다음 코드는 Python에서 Excel 파일의 첫 페이지에 다른 머리글과 바닥글을 삽입하는 방법을 보여줍니다.

from spire.xls import *

# Open an Excel workbook
workbook = Workbook()
workbook.LoadFromFile("Sales.xlsx")

# Get the first worksheet
sheet = workbook.Worksheets[0]

# Add a different header and footer for the first page
sheet.PageSetup.DifferentFirst = 1
sheet.PageSetup.FirstHeaderString = "&\"Arial\"&14&KFF0000 First Page Header"
sheet.PageSetup.FirstFooterString = "&\"Arial\"&14&KFF0000 First Page Footer"

# Add a header and footer for the other pages 
sheet.PageSetup.CenterHeader = "&\"Arial\"&14&K00FF00 Other Page Header"
sheet.PageSetup.CenterFooter = "&\"Arial\"&14&K00FF00 Other Page Footer"

# Change the view mode of the worksheet to the page layout view
sheet.ViewMode = ViewMode.Layout

# Save the modified file 
workbook.SaveToFile("DifferentFirstPageHeaderAndFooter.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

 

이미지: medium

 

마치며

Excel 파일에 머리글과 바닥글을 추가하고 사용자 지정하면 인쇄된 문서의 모양과 전문성을 크게 개선할 수 있습니다. Python과 Spire.XLS 라이브러리를 사용하면 머리글과 바닥글을 설정하는 각종 프로세스를 자동화할 수 있습니다. 물론 VBA를 사용해서 해결할 수도 있습니다.