Excel & IT Info

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

Python

파이썬을 사용하여 Excel에서 행과 열 복사하기

권현욱(엑셀러) 2024. 6. 2. 19:16
반응형

들어가기 전에

Excel에서 행과 열을 복사하는 것은 데이터를 빠르게 복제하고 재사용할 수 있는 중요한 기술입니다. 파이썬을 사용하여 Excel에서 행과 열을 복사하는 방법을 소개합니다.

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

이미지: 아이엑셀러 닷컴

 

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


  • 원문: Copy Rows and Columns in Excel with Python
  • URL: https://medium.com/@alice.yang_10652/copy-rows-and-columns-in-excel-with-python-d43d684b0c1e

Excel에서 행과 열을 복사하는 파이썬 라이브러리

Python으로 Excel에서 행과 열을 복사하려면 Python용 Spire.XLS 라이브러리를 사용할 수 있습니다. Python용 Spire.XLS는 사용하기 쉽고 기능이 풍부한 라이브러리로, Python 애플리케이션 내에서 Excel 파일을 생성, 읽기, 편집, 변환할 수 있습니다.

 

이 라이브러리를 사용하면 XLS, XLSX, XLSB, XLSM 및 ODS와 같은 다양한 스프레드시트 형식으로 작업할 수 있습니다. 또한 Excel 파일을 PDF, HTML, CSV, 텍스트, 이미지, XML, SVG, ODS, PostScript 및 XPS와 같은 다른 유형의 파일 형식으로 렌더링할 수도 있습니다. 터미널에서 다음 명령을 실행하여 PyPI에서 Python용 Spire.XLS를 설치할 수 있습니다.

pip install Spire.Xls

 

VS 코드에서 Python용 Spire.XLS를 설치하는 방법과 관련된 자세한 내용은 [여기]에서 확인할 수 있습니다.

파이썬으로 Excel에서 단일 행과 열 복사하기

Worksheet.CopyRow(sourceRow, destSheet, destRowIndex, copyOptions) 또는 Worksheet.CopyColumn(sourceColumn, destSheet, destColIndex, copyOptions) 함수를 사용하여 특정 행이나 열을 쉽게 복사할 수 있습니다.

 

복사 옵션 매개변수를 사용하면 복사할 행 또는 열에 대한 추가 복사 옵션을 지정할 수 있습니다. 이러한 옵션에는 수식 값만 복사, 스타일 복사, 모든 속성 복사 등이 포함됩니다.

 

다음은 Python 및 Python용 Spire.XLS를 사용하여 Excel에서 특정 행과 열을 복사하는 방법을 보여주는 예제입니다.

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

# Instantiate a Workbook object
workbook = Workbook()
# Load an Excel file
workbook.LoadFromFile("Sample.xlsx")

# Get the first worksheet
source_sheet = workbook.Worksheets[0]
# Get the second worksheet
dest_sheet = workbook.Worksheets[1]

# Get the first row of the first worksheet by its index (0-based) and copy it to the first row of the second worksheet
source_sheet.CopyRow(source_sheet.Rows[0], dest_sheet, 1, CopyRangeOptions.All)

# Get the first column of the first worksheet by its index (0-based) and copy it to the first column of the second worksheet
source_sheet.CopyColumn(source_sheet.Columns[0], dest_sheet, 1, CopyRangeOptions.All)

# Save the resulting file
workbook.SaveToFile("CopySingleRowAndColumn.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

 

파이썬으로 Excel에서 여러 행과 열 복사하기

Excel 워크시트에서 여러 행이나 열을 복사하고 싶을 때가 있습니다. Python용 Spire.XLS에서는 지정된 범위에 따라 여러 행 또는 열을 복사할 수 있습니다.

다음은 Python 및 Python용 Spire.XLS를 사용하여 Excel에서 여러 행과 열을 복사하는 방법을 보여주는 예제입니다.

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

# Instantiate a Workbook object
workbook = Workbook()
# Load an Excel file
workbook.LoadFromFile("Sample.xlsx")

# Get the first worksheet
source_sheet = workbook.Worksheets[0]
# Get the second worksheet
dest_sheet = workbook.Worksheets[1]

# Copy the first 3 rows from the first worksheet to the second worksheet by specifying the corresponding cell range
source_sheet.CopyRow(source_sheet.Range["A1:C3"], dest_sheet, 1, CopyRangeOptions.All)

# Copy the first 2 columns from the first worksheet to the second worksheet by specifying the corresponding cell range
source_sheet.CopyColumn(source_sheet.Range["A1:B11"], dest_sheet, 1, CopyRangeOptions.All)

# Save the resulting file
workbook.SaveToFile("CopyMultipleRowsAndColumns.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

 

파이썬으로 Excel에서 보이는 행과 열만 복사하기

Excel에서 보이는 행과 열을 복사하는 것은 숨겨진 행과 열을 제외하면서 데이터를 복제할 수 있는 필수 기술입니다. Worksheet.GetRowIsHide(rowIndex) 및 Worksheet.GetColumnIsHide(colIndex) 메서드를 활용하면 워크시트 내 개별 행과 열의 표시 여부를 손쉽게 확인할 수 있습니다.

 

다음은 Python 및 Python용 Spire.XLS를 사용하여 Excel에서 표시되는 행 또는 열을 복사하는 방법을 보여주는 예제입니다.

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

# Instantiate a Workbook object
workbook = Workbook()
# Load an Excel file
workbook.LoadFromFile("Sample.xlsx")

# Get the first worksheet
source_sheet = workbook.Worksheets[0]
# Get the second worksheet
dest_sheet = workbook.Worksheets[1]

# Copy visible rows in the worksheet
dest_row_index = 1
# Iterate through the used rows in the worksheet
for i in range(0, source_sheet.LastRow):
    # Find the visible rows
    if not source_sheet.GetRowIsHide(i + 1):
        # Copy the visible rows from the first worksheet to the second worksheet
        source_sheet.CopyRow(source_sheet.Rows[i], dest_sheet, dest_row_index, CopyRangeOptions.All)
        dest_row_index += 1

# # Or copy visible columns in the worksheet
# dest_col_index = 1
# # Iterate through the used columns in the worksheet
# for j in range(0, source_sheet.LastColumn):
#     # Find the visible columns
#     if not source_sheet.GetColumnIsHide(j + 1):
#         # Copy the visible columns from the first worksheet to the second worksheet
#         source_sheet.CopyColumn(source_sheet.Columns[j], dest_sheet, dest_col_index, CopyRangeOptions.All)
#         dest_col_index += 1
        
# Save the resulting file
workbook.SaveToFile("CopyVisibleRows.xlsx", ExcelVersion.Version2016)
workbook.Dispose()

Excel과 VBA의 모든 것 아이엑셀러 닷컴 · 강사들이 숨겨 놓고 보는 엑셀러TV