푸터 콘텐츠로 바로가기
IRONXL FOR PYTHON 사용하기

Python을 사용하여 Excel 파일을 데이터베이스 테이블로 가져오는 방법

오늘날 데이터 중심의 세계에서, 효율적인 데이터 처리 및 처리는 모든 조직 또는 개인에게 필수적인 작업입니다. Python은 풍부한 라이브러리 생태계를 갖추고 있으며, pandas 라이브러리와 같은 강력한 데이터 조작 및 관리 도구를 제공합니다. 일반적인 시나리오 중 하나는 Excel 스프레드시트에서 데이터를 추출하거나 가져와 추가 분석 또는 다른 시스템과의 통합을 위해 데이터베이스에 저장하거나 삽입할 필요가 있는 경우입니다. 이 튜토리얼에서는 Python 스크립트를 작성하여 이 프로세스를 자동화하여, Excel 시트 파일에서 데이터를 무리 없이 읽고 데이터베이스에 삽입하는 방법을 탐구할 것입니다. 이 튜토리얼이 끝나면 데이터 마이그레이션 작업을 효율적으로 처리할 준비가 될 것입니다. 시작해 볼까요!

Python을 사용하여 Excel 파일을 데이터베이스 테이블로 가져오는 방법

  1. 먼저 IronXL 라이브러리를 설치합니다.
  2. IronXL을 사용하여 Excel 파일을 메모리에 로드합니다.
  3. 작업하려는 특정 스프레드시트를 로드합니다.
  4. 가져오려는 정확한 데이터 범위를 선택하세요.
  5. Python을 사용하여 SQLite 또는 MySQL 연결 데이터베이스와 같은 데이터베이스와의 연결을 설정합니다.
  6. SQLite 데이터베이스 내에 새 테이블을 만들어 가져온 데이터를 수용합니다.
  7. Excel 파일에서 선택된 행을 새로 생성된 SQLite 테이블에 삽입합니다.
  8. 생성된 SQLite 테이블에서 데이터를 검색하고 선택하여 추가 분석 또는 처리를 수행합니다.

이 튜토리얼에서는 Excel 파일을 효율적으로 처리하는 것으로 유명한 Python 라이브러리인 IronXL을 사용하겠습니다. IronXL을 스크립트에 통합하여 Excel 스프레드시트에서 데이터를 원활하게 추출하고, 이를 데이터베이스에 매끄럽게 삽입하여 추가 분석 및 처리를 가능하게 합니다.

IronXL이란 무엇인가요?

IronXL은 Iron Software에서 개발한 Python 라이브러리로, Python 애플리케이션 내에서 Excel 파일을 직접 읽기, 생성, 편집하는 강력한 기능을 제공합니다. 특히 IronXL은 Microsoft Excel을 설치하지 않고도 독립적으로 작동하여 다양한 환경에서의 배포를 단순화합니다. IronXL을 사용하면 개발자는 다음과 같은 이점을 얻을 수 있습니다:

플랫폼 간 지원: Windows, macOS, Linux, Docker, Azure, AWS 플랫폼에서 원활한 작동을 즐기며 다양한 개발 환경에 대한 적응성을 보장합니다.

데이터 가져오기 및 내보내기: XLS, XLSX, CSV, TSV 파일로부터 데이터 가져오기를 손쉽게 처리하며, 이러한 형식과 JSON으로의 내보내기까지의 유연성을 제공합니다.

암호화 기능: IronXL의 암호화 기능을 활용하여 XLSX, XLSM, XLTX 파일에 비밀번호를 설정하여 데이터 보안을 보장합니다.

수식 및 재계산: Excel 수식을 작업 시 매번 시트가 수정될 때마다 자동으로 재계산되는 이점을 제공하여 데이터 조작의 정확성과 신뢰성을 보장합니다.

셀 스타일링: 글꼴 스타일, 크기, 배경 패턴, 테두리, 정렬을 조정하여 개별 셀의 외관을 사용자 정의하고 Excel 문서의 시각적 표현을 향상시킵니다.

문서 형식의 다양한 범위: XLS, XLSX, XLST, XLSM, CSV, TSV와 같은 다양한 형식을 지원하여 개발자가 다양한 시나리오에서 데이터를 효율적이고 손쉽게 처리할 수 있게 합니다.

이제 IronXL 설치를 시작해봅시다.

단계 1: IronXL 라이브러리 설치

첫 번째 단계는 IronXL 라이브러리를 설치하는 것입니다. 명령 프롬프트에서 다음 명령을 실행하여 IronXL을 설치합니다.

pip install IronXL
pip install IronXL
SHELL

단계 2: Excel 워크북 로드

다음 단계는 Excel 파일을 로드하는 것입니다. 이 튜토리얼에서는 다음 Excel 파일을 사용할 것입니다.

Python을 사용하여 Excel 파일을 데이터베이스 테이블로 가져오는 방법: 그림 1 - 샘플 Excel 파일 입력

다음 코드가 메모리에 기존 Excel 파일을 로드합니다.

from ironxl import *  # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV

# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"

# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")
from ironxl import *  # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV

# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"

# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")
PYTHON

위 Python 코드 스니펫은 IronXL 라이브러리를 사용하여 'sample_excel.xlsx'라는 이름의 Excel 워크북을 로드하는 것을 보여줍니다. 먼저 IronXL에서 필요한 Python 모듈을 가져옵니다. 그런 다음 라이브러리 사용의 유효성을 검증하기 위해 라이선스 키가 할당됩니다. 무료 라이선스 키는 IronXL 웹사이트에서 받을 수 있습니다. 마지막으로 Load 메서드를 사용하여 지정된 Excel 워크북을 열고 메모리에 로드합니다. 이로 인해 그 내용의 프로그램적 조작이 가능하게 되어, 데이터를 읽거나 셀 값을 수정하거나 형식을 적용하는 등의 작업을 수행할 수 있습니다.

단계 3: 워크시트 선택

IronXL을 사용하여 Excel 워크북에서 워크시트를 선택하려면 워크시트 인덱스나 이름을 지정할 수 있습니다.

# Select the first worksheet in the loaded Excel workbook
worksheet = workbook.WorkSheets[0]
# Select the first worksheet in the loaded Excel workbook
worksheet = workbook.WorkSheets[0]
PYTHON

이 줄은 로드된 Excel 워크북의 첫 번째 워크시트를 선택하고 이를 변수 worksheet에 할당하여, 워크북 내의 특정 워크시트에 대한 후속 작업을 수행할 수 있게 합니다. 이것은 Excel 시트에서 엑셀 데이터가 워크시트 변수로 로드될 것입니다.

단계 4: 데이터베이스 연결 열기

이 튜토리얼에서는 MySQL 데이터베이스 서버 대신 SQLite 데이터베이스를 사용하고 있습니다. 데이터베이스 작업을 시작하기 위해 데이터베이스에 연결을 설정하는 것으로 시작합니다.

import sqlite3

# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')
import sqlite3

# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')
PYTHON

위 라인은 'data.db'라는 이름의 SQLite 데이터베이스에 연결을 설정합니다. 지정된 데이터베이스가 존재하지 않으면 자동으로 생성됩니다. 이 연결을 통해 SQLite 데이터베이스와의 후속 상호작용, 쿼리 실행 및 데이터 조작 작업이 가능해집니다.

단계 5: 테이블 생성

다음 단계는 Excel 파일에서 데이터를 가져올 데이터베이스에 테이블을 만드는 것입니다. SQLite 데이터베이스에서 테이블을 생성하려면 연결 객체를 사용하여 SQL 문을 실행할 수 있습니다.

# Create a cursor object for database operations
cursor = conn.cursor()

# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
    id INTEGER,
    FirstName TEXT,
    LastName TEXT,
    Gender TEXT,
    Country TEXT,
    Age INTEGER
)
''')
# Create a cursor object for database operations
cursor = conn.cursor()

# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
    id INTEGER,
    FirstName TEXT,
    LastName TEXT,
    Gender TEXT,
    Country TEXT,
    Age INTEGER
)
''')
PYTHON

위 코드 스니펫은 SQLite 데이터베이스 연결 내에서 SQL 명령을 실행하기 위한 커서 객체를 초기화합니다. 'customer'라는 이름의 테이블을 'id', 'FirstName', 'LastName', 'Gender', 'Country', 'Age' 열과 함께 생성합니다. 테이블이 이미 존재하지 않는 경우 지정된 열 데이터 유형에 따라 생성됩니다.

단계 6: Python을 사용하여 데이터베이스로 데이터 가져오기

이제, 새로 생성된 테이블에 데이터를 삽입하겠습니다. Excel 파일을 가져와 데이터베이스에 데이터를 삽입합니다.

# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
    # Extracting values from columns A to F in Excel worksheet
    values_tuple = (
        worksheet[f"A{i}"].StringValue,
        worksheet[f"B{i}"].StringValue,
        worksheet[f"C{i}"].StringValue,
        worksheet[f"D{i}"].StringValue,
        worksheet[f"E{i}"].StringValue,
        worksheet[f"F{i}"].StringValue
    )
    # Executing SQL INSERT command
    cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)

# Commit data insertion to the database
conn.commit()
# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
    # Extracting values from columns A to F in Excel worksheet
    values_tuple = (
        worksheet[f"A{i}"].StringValue,
        worksheet[f"B{i}"].StringValue,
        worksheet[f"C{i}"].StringValue,
        worksheet[f"D{i}"].StringValue,
        worksheet[f"E{i}"].StringValue,
        worksheet[f"F{i}"].StringValue
    )
    # Executing SQL INSERT command
    cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)

# Commit data insertion to the database
conn.commit()
PYTHON

위 코드는 Excel 워크시트의 2행부터 10행까지 반복하여 각 행에서 A열부터 F열까지의 값을 추출합니다. 이 값들은 'customer' 테이블에 삽입될 데이터로 표현되는 튜플에 저장됩니다. 커서가 SQL INSERT 명령을 실행한 후 값 튜플을 테이블에 추가합니다. 이 과정은 각 행에 대해 반복되며, 효과적으로 Excel 파일에서 SQLite 데이터베이스로 데이터를 가져옵니다. 마지막으로, conn.commit()은 트랜잭션을 커밋하여 데이터베이스에 변경 사항이 저장되고 유지되도록 합니다.

7단계: 데이터베이스에서 데이터 읽기

'customer' 테이블의 데이터가 올바르게 삽입되었는지 확인하려면 SQLite 데이터베이스에서 SELECT 쿼리를 사용하여 데이터를 읽을 수 있습니다. 예를 들어:

# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")

# Fetch all rows from the result set
rows = cursor.fetchall()

# Print each row to verify inserted data
for row in rows:
    print(row)

# Close the database connection to release resources
conn.close()
# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")

# Fetch all rows from the result set
rows = cursor.fetchall()

# Print each row to verify inserted data
for row in rows:
    print(row)

# Close the database connection to release resources
conn.close()
PYTHON

위의 코드는 SQLite 데이터베이스의 'customer' 테이블에서 SELECT 쿼리를 실행하여 모든 행을 검색합니다. 가져온 행들은 fetchall() 메서드를 사용하여 'rows' 변수에 저장됩니다. 그런 다음 각 행을 반복적으로 출력하여 'customer' 테이블에 삽입된 데이터를 표시합니다. 마지막으로, close() 메서드를 사용하여 데이터베이스 연결을 닫아 자원을 해제합니다.

Python을 사용하여 Excel 파일을 데이터베이스 테이블로 가져오는 방법: 그림 2 - 데이터베이스 출력에서 읽기

전체 코드는 다음과 같습니다:

import sqlite3
from ironxl import *  # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV

# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"

# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")

# Select worksheet at index 0
worksheet = workbook.WorkSheets[0]

# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')

# Create a cursor object for database operations
cursor = conn.cursor()

# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
    id INTEGER,
    FirstName TEXT,
    LastName TEXT,
    Gender TEXT,
    Country TEXT,
    Age INTEGER
)
''')

# Clear any existing data from the table
cursor.execute("DELETE FROM customer")

# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
    # Extracting values from columns A to F in Excel worksheet
    values_tuple = (
        worksheet[f"A{i}"].StringValue,
        worksheet[f"B{i}"].StringValue,
        worksheet[f"C{i}"].StringValue,
        worksheet[f"D{i}"].StringValue,
        worksheet[f"E{i}"].StringValue,
        worksheet[f"F{i}"].StringValue
    )
    # Executing SQL INSERT command
    cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)

# Commit data insertion to the database
conn.commit()

# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")

# Fetch all rows from the result set
rows = cursor.fetchall()

# Print each row to verify inserted data
for row in rows:
    print(row)

# Close the database connection to release resources
conn.close()
import sqlite3
from ironxl import *  # Supported for XLSX, XLS, XLSM, XLTX, CSV, and TSV

# Assign a license key (retrieved from IronXL website)
License.LicenseKey = "IRONSUITE.ABC.XYZ.COM.15796-DEPLOYMENT.TRIAL-5X63V4.TRIAL.EXPIRES.27.MAY.2024"

# Load the Excel workbook into memory
workbook = WorkBook.Load("sample_excel.xlsx")

# Select worksheet at index 0
worksheet = workbook.WorkSheets[0]

# Connect to SQLite database (or create it if it doesn't exist)
conn = sqlite3.connect('data.db')

# Create a cursor object for database operations
cursor = conn.cursor()

# Define and execute SQL to create a table if it doesn't exist
cursor.execute('''
CREATE TABLE IF NOT EXISTS customer (
    id INTEGER,
    FirstName TEXT,
    LastName TEXT,
    Gender TEXT,
    Country TEXT,
    Age INTEGER
)
''')

# Clear any existing data from the table
cursor.execute("DELETE FROM customer")

# Iteratively insert data from Excel worksheet into SQLite database
for i in range(2, 11):
    # Extracting values from columns A to F in Excel worksheet
    values_tuple = (
        worksheet[f"A{i}"].StringValue,
        worksheet[f"B{i}"].StringValue,
        worksheet[f"C{i}"].StringValue,
        worksheet[f"D{i}"].StringValue,
        worksheet[f"E{i}"].StringValue,
        worksheet[f"F{i}"].StringValue
    )
    # Executing SQL INSERT command
    cursor.execute("INSERT INTO customer VALUES (?, ?, ?, ?, ?, ?)", values_tuple)

# Commit data insertion to the database
conn.commit()

# Execute a SELECT query to retrieve all data from the 'customer' table
cursor.execute("SELECT * FROM customer")

# Fetch all rows from the result set
rows = cursor.fetchall()

# Print each row to verify inserted data
for row in rows:
    print(row)

# Close the database connection to release resources
conn.close()
PYTHON

결론

결론적으로, 이 튜토리얼은 Excel 데이터를 데이터베이스에 추출하고 삽입하는 자동화된 접근 방식을 보여주었습니다. 이 과정은 데이터 관리의 효율성을 높일 뿐만 아니라 데이터 처리 작업에서 그 잠재력을 최대한 발휘할 수 있게 합니다. Python과 IronXL의 힘을 받아들여 데이터 워크플로우를 최적화하고 자신 있게 프로젝트를 진행하세요.

자주 묻는 질문

Python을 사용하여 Excel 파일의 데이터를 데이터베이스로 가져오는 방법은 무엇인가요?

IronXL 라이브러리를 사용하여 Excel 파일에서 데이터를 가져와 데이터베이스에 삽입할 수 있습니다. 먼저 `WorkBook.Load()`로 Excel 파일을 로드한 다음 워크시트를 선택하고 SQLite를 통해 데이터베이스 연결을 설정하여 데이터를 삽입하세요.

Python에서 Excel 파일을 처리하기 위해 IronXL을 사용하는 이점은 무엇인가요?

IronXL은 Microsoft Excel이 설치되지 않아도 Excel 파일을 처리할 수 있게 하며, 크로스 플랫폼 운영을 지원하고 암호화 및 수식 재계산과 같은 강력한 기능을 제공하며, 데이터 추출 및 삽입 프로세스를 효율적으로 관리합니다.

Python 프로젝트에서 사용하기 위해 IronXL을 어떻게 설치하나요?

Python 프로젝트를 위해 IronXL을 설치하려면 `pip install IronXL` 명령을 사용할 수 있습니다. 이렇게 하면 IronXL이 Python 환경에 추가되어 Excel 파일을 효율적으로 처리할 수 있게 됩니다.

Microsoft Excel을 설치하지 않고 Python에서 Excel 파일을 처리할 수 있습니까?

네, IronXL을 사용하면 Microsoft Excel을 설치하지 않고도 Excel 파일을 처리할 수 있습니다. IronXL은 Excel 파일을 독립적으로 읽고, 편집하고, 쓸 수 있는 모든 필요한 기능을 제공합니다.

Python에서 Excel 데이터를 저장하기 위한 데이터베이스 테이블을 생성하는 과정은 무엇인가요?

Python에서 데이터베이스 테이블을 생성하려면 SQLite `sqlite3` 모듈을 사용할 수 있습니다. `connect()`를 사용하여 연결을 설정한 후, 커서 객체를 통해 SQL `CREATE TABLE` 명령문을 실행합니다.

SQLite 데이터베이스에 Excel 데이터가 성공적으로 삽입되었는지 확인하려면 어떻게 해야 하나요?

테이블에 `SELECT` 쿼리를 실행하고 `fetchall()` 메서드를 사용하여 결과 세트에서 모든 행을 검색하고 출력하여 삽입을 확인할 수 있습니다.

Python을 사용하여 Excel에서 데이터베이스로의 데이터 마이그레이션을 위한 단계를 따라야 합니까?

단계에는 IronXL 설치, Excel 파일 로드, 워크시트 선택, 데이터베이스 연결, 테이블 생성, Excel 행을 반복하여 SQL `INSERT` 명령을 사용하여 데이터를 삽입하는 것이 포함됩니다.

IronXL이 Python에서 Excel 수식을 처리하고 재계산할 수 있습니까?

네, IronXL은 Excel 수식을 지원하며 이를 재계산할 수 있어 Python 애플리케이션 내에서 Excel 파일 조작을 위한 포괄적인 솔루션을 제공합니다.

IronXL은 Excel 파일 처리를 위한 크로스 플랫폼 운영을 지원합니까?

네, IronXL은 Windows, macOS, Linux, Docker, Azure, AWS 등의 환경을 포함한 크로스 플랫폼 운영을 지원하여 다양한 개발 환경에 유연하게 사용할 수 있는 선택입니다.

IronXL은 Python 애플리케이션에서 데이터 워크플로를 어떻게 향상시킬 수 있나요?

IronXL은 효율적인 데이터 추출, 조작 및 삽입 기능을 제공하여 데이터 관리 프로세스를 최적화하고 데이터 중심 애플리케이션의 성능을 향상시킵니다.

커티스 차우
기술 문서 작성자

커티스 차우는 칼턴 대학교에서 컴퓨터 과학 학사 학위를 취득했으며, Node.js, TypeScript, JavaScript, React를 전문으로 하는 프론트엔드 개발자입니다. 직관적이고 미적으로 뛰어난 사용자 인터페이스를 만드는 데 열정을 가진 그는 최신 프레임워크를 활용하고, 잘 구성되고 시각적으로 매력적인 매뉴얼을 제작하는 것을 즐깁니다.

커티스는 개발 분야 외에도 사물 인터넷(IoT)에 깊은 관심을 가지고 있으며, 하드웨어와 소프트웨어를 통합하는 혁신적인 방법을 연구합니다. 여가 시간에는 게임을 즐기거나 디스코드 봇을 만들면서 기술에 대한 애정과 창의성을 결합합니다.

Iron Support Team

We're online 24 hours, 5 days a week.
Chat
Email
Call Me