반응형

1. 시험환경

    ˙ 윈도우 10

    ˙ 파이썬 3.8

    ˙ MS Office Pro 2019

    ˙ MariaDB 10.1 (x64)

 

2. 목적

    ˙ pandas 라이브러리를 이용하여 xlsx(엑셀 파일)을 읽어온다.

    ˙ pandas 라이브러리를 이용하여 읽어온 엑셀 파일의 특정 값(열,행)에 접근한다.

    ˙ 읽어온 엑셀 데이터를 MariaDB에 저장한다.

 

3. 적용

    ① pandas로 읽어 올 엑셀 파일(xlsx)을 준비한다.

        - 첫번째 행(row) : title

        - 두번째 행(row) 이후 : 데이터

sample.xlsx
0.01MB

 

    ② 데이터를 저장한 DB 테이블을 생성한다.

        - DB 스키마 : sample

        - 테이블명 : example

1
2
3
4
5
6
7
8
9
CREATE TABLE `example` (
    `nation` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
    `language` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
    `money` VARCHAR(50) NULL DEFAULT NULL COLLATE 'utf8mb4_bin',
    `population` BIGINT(20) NULL DEFAULT NULL
)
COLLATE='utf8mb4_bin'
ENGINE=InnoDB;
 
cs

 

    ③ MariaDB Connection 생성 및 종료 코드를 작성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
import sys
import mariadb
 
 
def mariaDbConnection(u, pw, h, p, d):
    try:
        conn = mariadb.connect(user = u, password = pw, host = h, port = p, database = d)
        print("DB Connection Success: {0}".format(h))
    except mariadb.Error as e:
        print("Error connecting to MariaDB Platform : {}".format(e))
        sys.exit(1)
 
    return conn
 
 
def mariaDbClose(c):
    try:
        c.close()
        print("DB Close Success")
    except mariadb.Error as e:
        print("Error closing from MariaDB Platform")
        sys.exit(1)
 
cs

 

    ④ 엑셀 파일(xlsx)을 읽어서 DB에 저장하는 코드를 작성한다.

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
import mariadbQuery
import pandas as pd
 
 
dbConn = mariadbQuery.mariaDbConnection('root''1q2w3e'"127.0.0.1"3307'sample')
cur = dbConn.cursor()
 
readData = pd.read_excel("./sample.xlsx")
 
for i in readData.index:
    query = "INSERT INTO example VALUES ('{0}', '{1}', '{2}', {3})".format(readData['Nation'][i], readData['Language'][i], readData['Money'][i], int(readData['Population'][i]))
    cur.execute(query)
 
dbConn.commit()
 
mariadbQuery.mariaDbClose(dbConn)
 
cs

 

4. 결과

    ˙ 프로그램에 의해서 엑셀 데이터가 DB에 저장되었는지 확인한다.

 

 

※ 내용이 도움 되셨다면 광고 클릭 한번 부탁드립니다 ※

반응형

+ Recent posts