본문 바로가기
개발 기록/python

[Python]xlwings(xw)로 엑셀파일 다루기

by Ratataca 2023. 3. 16.

xw 라이브러리에서는 sheet 객체의 used_range 속성을 이용하여 사용된 셀 범위를 찾을 수 있습니다. 이를 이용하여 해당 시트에서 사용된 행 수를 계산할 수 있습니다.

아래는 xw 라이브러리를 사용하여 엑셀 파일에서 사용된 행 수를 찾는 코드 예시입니다.

python
import xlwings as xw

# 엑셀 파일 열기
workbook = xw.Book('파일명.xlsx')

# 시트 선택
worksheet = workbook.sheets['시트명']

# 사용된 셀 범위 찾기
used_range = worksheet.used_range

# 사용된 행 수 계산
num_rows = used_range.last_cell.row - used_range.first_cell.row + 1

# 엑셀 파일 닫기
workbook.close()

print(f'사용된 행 수: {num_rows}')

 

위 코드에서 used_range 속성을 이용하여 사용된 셀 범위를 찾고, last_cell 속성과 first_cell 속성을 이용하여 첫 번째 셀과 마지막 셀을 찾습니다. 그리고 마지막 행 번호에서 첫 번째 행 번호를 뺀 다음 1을 더하여 사용된 행 수를 계산합니다. 마지막으로 num_rows 변수에 저장된 값을 출력합니다.

 

또는 간단하게 전체 파일을 불러 오고 싶다면 아래의 코드를 참조하세요.

xw 라이브러리는 Excel과 Python 간에 상호작용할 수 있도록 하는 라이브러리입니다. 아래 코드를 사용하여 xw 라이브러리를 이용하여 엑셀 파일을 읽을 수 있습니다.

import xlwings as xw

# 엑셀 파일 열기
workbook = xw.Book('파일명.xlsx')

# 시트 선택
worksheet = workbook.sheets['시트명']

# 셀 값 읽기
cell_value = worksheet.range('A1').value

# 셀 범위 읽기
range_values = worksheet.range('A1:B2').value

# 행 단위로 값 읽기
row_values = worksheet.range('1:1').value

# 열 단위로 값 읽기
column_values = worksheet.range('A:A').value

# 엑셀 파일 닫기
workbook.close()

위 코드에서 '파일명.xlsx' 부분을 대상 엑셀 파일의 파일명으로 바꾸어 주면 됩니다. 읽고자 하는 시트의 이름을 sheets['시트명']로 지정하여 해당 시트를 선택할 수 있습니다. range() 메서드를 사용하여 셀이나 셀 범위를 지정하고, value 속성을 이용하여 해당 셀이나 셀 범위의 값을 읽을 수 있습니다.

xw 라이브러리를 사용하면 엑셀 파일을 수정하거나 새로운 데이터를 추가하는 등의 작업도 가능합니다. 자세한 내용은 xw 라이브러리의 공식 문서를 참고하시면 도움이 될 것입니다.

 

추가로. 한번에 엑셀파일을 데이터프레임으로 변경하는 코드는 다음과 같다.

import xlwings as xw
import pandas as pd

# 엑셀 인스턴스 생성
app = xw.App(visible=False)

# 파일 상장법인목록
wb = xw.Book('파일명.xlsx')

# 첫번째 시트 읽어오기
sheet = wb.sheets[0]

# 데이터프레임 형태로 엑셀 시트 읽어오기
df = sheet.range('A1').options(pd.DataFrame, index=False, expand='table').value

# 인스턴스 종료
app.kill()

댓글