Search…

Import Dữ Liệu Từ File Excel vào MySQL Bằng Python

29/09/20202 min read
Hướng dẫn import dữ liệu từ file excel vào MySQL bằng Python.

Cài đặt thư viện

Cài đặt thư viện xlrdMySQLdb.

Cài đặt xlrd 

Truy cập trang web https://pypi.org/project/xlrd/ để tải về phiên bản xlrd mới nhất.

Hoặc tải xlrd bằng lệnh:

pip install xrld

Cài đặt MySQLdb

Truy cập trang web https://pypi.org/project/MySQL-python/ để tải về phiên bản MySQLdb mới nhất.

Hoặc tải MySQLdb bằng lệnh:

pip install MySQL-python

Kiểm tra kết nối database bằng Python

import MySQLdb

db = MySQLdb.connect (host="localhost", user = "root", passwd = "", db = "stdio_python")
cursor = db.cursor()
cursor.execute("SELECT VERSION()")
data = cursor.fetchone()

print "Database version : %s " % data

db.close()

Kết quả in ra màn hình: 

Database version : x.y.zz

Giải thích:

  • Dòng 1: import thư viện MySQLdb.
  • Dòng 3: cấu hình kết nối với database
    • host: nếu làm dưới localhost, thì tên host sẽ là "localhost".
    • user: mặc định sẽ là root.
    • passwd: pasword rỗng.
    • db: tên database trong mysql.
  • Dòng 5: tạo đối tượng "cursor" sử dụng phương thức db.cursor().
  • Dòng 7: truy vấn SQL bằng lệnh thực thi execute.
  • Dòng 9: lấy 1 hàng từ phương thức fetchone().
  • Dòng 11: in ra kết quả.
  • Dòng 13: đóng kết nối.

Import dữ liệu từ Excel vào database

Các bước thực hiện:

  • Import thư viện xlrd.
  • Thêm charset="utf8", use_unicode=True vào MySQLdb.connect khi cấu hình, điều này rất quan trọng khi sử dụng dữ liệu bằng tiếng Việt.
  • Áp dụng kiến thức đọc file Excel từ bài Trích Xuất Dữ Liệu từ File Excel.
  • Sử dụng vòng lặp for để truy vấn sql liên tục cho các dòng trong file Excel.
  • Trong file Excel có 4 cột như sau: 
    • A: lưu trữ câu nói bằng tiếng Việt.
    • B: nguyên mẫu câu nói.
    • C: thông tin của tác giả.
    • D: tên tác giả.
  • Trong database có các cột như sau:
    • m_NoiDung: tương ứng với cột A trong Excel.
    • m_English: tương ứng cột B trong Excel.
    • m_DuongDanURL: tương ứng cột C trong Excel.
    • m_Ten: tương ứng cột D trong Excel.

Code

Các file demo có thể tải về tại đây:

import MySQLdb
import xlrd
db = MySQLdb.connect (host = "localhost", user = "root", passwd = "", db = "stdio_python",charset="utf8", use_unicode=True)
 
cursor = db.cursor()
 
cursor.execute("SELECT VERSION()")
 
data = cursor.fetchone()
 
print "Database version : %s " % data
 
#import
book = xlrd.open_workbook("ImportExcel.xlsx")
sheet = book.sheet_by_name("NameSheet")
for r in range(0, sheet.nrows):    
    sql = 'INSERT INTO stdio_inspirations(i_id,m_Content,m_Quotes,m_URL,m_Name)VALUES (NULL,"%s", "%s", "%s","%s")' % \
        (sheet.cell(r,0).value,sheet.cell(r,1).value,sheet.cell(r,2).value,sheet.cell(r,3).value)
    try:
        cursor.execute(sql)
        db.commit()
    except:   
        db.rollback()
 
 
db.close()
IO Stream

IO Stream Co., Ltd

30 Trinh Dinh Thao, Hoa Thanh ward, Tan Phu district, Ho Chi Minh city, Vietnam
+84 28 22 00 11 12
developer@iostream.co

383/1 Quang Trung, ward 10, Go Vap district, Ho Chi Minh city
Business license number: 0311563559 issued by the Department of Planning and Investment of Ho Chi Minh City on February 23, 2012

©IO Stream, 2013 - 2024