Cài đặt thư viện
Cài đặt thư viện xlrd và MySQLdb.
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ứcdb.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àoMySQLdb.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ộtA
trong Excel.m_English
: tương ứng cộtB
trong Excel.m_DuongDanURL
: tương ứng cộtC
trong Excel.m_Ten
: tương ứng cộtD
trong Excel.
Code
Các file demo có thể tải về tại đây:
- File Excel: ImportExcel.zip
- File database: stdio_python.zip
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()