Python/xlwings

xlwings 오류 해결하기: ValueError: Unsupported format, use 'xlsx'

PySun 2024. 11. 22. 09:09
반응형

소개

엑셀 파일을 다룰 때, xlwings 라이브러리를 사용하다가 'ValueError: Unsupported format, use 'xlsx''라는 오류에 직면할 수 있습니다. 이 에러는 주로 잘못된 파일 형식으로 엑셀 파일을 열려고 할 때 발생합니다. 이 블로그 글에서는 이 오류가 발생하는 원인과 해결 방법에 대해 알아보겠습니다.

에러 발생 예시 코드

먼저, 'ValueError: Unsupported format, use 'xlsx'' 오류가 발생할 수 있는 간단한 예시 코드를 살펴봅시다.

import xlwings as xw

# 잘못된 형식의 파일을 연다 (예: .xls)
book = xw.Book('example.xls')  # 이 상황에서 오류 발생

에러 해결 방법

1. 올바른 파일 형식 사용

엑셀 파일의 형식이 'xlsx'인지 확인하세요. 해당 형식이 아닌 경우, 엑셀에서 'xlsx' 형식으로 파일을 저장한 후 다시 시도합니다.

import xlwings as xw

# xlsx 형식의 파일을 연다
book = xw.Book('example.xlsx')  # 이 상황에서는 오류가 발생하지 않는다

2. 파일 변환

또한, 존재하는 .xls 파일을 .xlsx로 변환할 수 있습니다. 매뉴얼 작업 없이도 가능한 방법이 있으니, Python의 openpyxl 라이브러리를 이용할 수 있습니다.

import openpyxl
import xlrd
import xlsxwriter

# 기존의 xls 파일 읽기
xls_file = xlrd.open_workbook('example.xls')

# 새 xlsx 파일 생성
xlsx_file = xlsxwriter.Workbook('example.xlsx')

# 변환 및 저장
for sheet_index in range(xls_file.nsheets):
    worksheet = xlsx_file.add_worksheet(xls_file.sheet_names[sheet_index])
    for row_index in range(xls_file.sheet_by_index(sheet_index).nrows):
        for col_index in range(xls_file.sheet_by_index(sheet_index).ncols):
            worksheet.write(row_index, col_index, xls_file.sheet_by_index(sheet_index).cell_value(row_index, col_index))

xlsx_file.close()

3. 파일 경로 확인

경우에 따라 파일의 경로 문제가 발생할 수 있습니다. 절대 경로를 사용하여 파일을 열어보거나, 현재 작업 디렉터리를 확인하여 필요한 파일이 있음을 확인하세요.

import os

# 현재 작업 디렉토리 출력
print("현재 작업 디렉토리:", os.getcwd())
# 파일이 존재하는지 확인
if os.path.isfile('example.xlsx'):
    print("파일이 존재합니다.")
else:
    print("파일이 존재하지 않습니다.")

마무리

이 블로그 글에서는 xlwings에서 발생하는 'ValueError: Unsupported format, use 'xlsx''에 대한 원인과 해결 방법에 대해 살펴보았습니다. 올바른 파일 형식을 사용하는 것, 파일을 변환하는 것, 경로 문제를 해결하는 것을 통해 이 오류를 극복할 수 있습니다. 파일 작업을 할 때는 항상 파일의 형식과 경로를 확인하는 것이 중요합니다. 행복한 코딩 되세요!

반응형