Chủ đề:
📊 Cách kết nối Excel với cơ sở dữ liệu SQL và trích xuất, ghi dữ liệu vào cơ sở dữ liệu

PHẦN 1 — MỤC TIÊU BUỔI HỌC 🎯
Sau buổi học này, học viên có thể tự làm được:
✅ Đọc dữ liệu từ file Excel bằng Python
✅ Kết nối Python với cơ sở dữ liệu SQL
✅ Đẩy dữ liệu từ Excel vào SQL Server
✅ Truy vấn dữ liệu từ SQL về Excel
✅ Tự động hóa báo cáo doanh nghiệp
✅ Xây dựng quy trình ETL đơn giản cho công ty
PHẦN 2 — TƯ DUY NGHIỆP VỤ THỰC TẾ 🧠
Tình huống doanh nghiệp thật
Công ty có:
- File Excel đơn hàng mỗi ngày
- Dữ liệu khách hàng
- Dữ liệu nhân sự
- Báo cáo kế toán
- File nhập xuất kho
Mỗi ngày nhân viên phải:
❌ copy paste thủ công
❌ nhập lại vào phần mềm
❌ rất dễ sai dữ liệu
❌ mất hàng giờ
❌ khó kiểm tra lịch sử
Giải pháp bằng Python + SQL 🚀
Python sẽ:
👉 đọc file Excel
👉 kiểm tra dữ liệu
👉 kết nối SQL
👉 tự động ghi dữ liệu vào database
👉 lấy dữ liệu từ database xuất ngược ra Excel
Kết quả:
✅ nhanh hơn 20 lần
✅ giảm lỗi nhập liệu
✅ kiểm soát dữ liệu tốt hơn
✅ phục vụ Power BI Dashboard
✅ dễ mở rộng hệ thống
PHẦN 3 — CHUẨN BỊ CÔNG CỤ 🛠
Cần cài gì?
1. Python
Khuyến nghị:
Python 3.11+
Tải tại:
2. Visual Studio Code
Dùng để viết code
Tải tại:
👉 https://code.visualstudio.com
3. SQL Server
Có thể dùng:
SQL Server Express (miễn phí)
hoặc
MySQL
hoặc
PostgreSQL
Trong bài này dùng:
SQL Server
vì doanh nghiệp Việt Nam dùng rất nhiều
4. SQL Server Management Studio (SSMS)
Dùng để quản lý database
Tải tại:
👉 Microsoft SSMS
PHẦN 4 — CÀI THƯ VIỆN PYTHON 📦
Bước 1: Mở Command Prompt
Bấm:
Windows + R
gõ:
cmd
bấm Enter
Bước 2: Cài thư viện
Copy toàn bộ lệnh này:
pip install pandas openpyxl sqlalchemy pyodbc
dán vào cmd → Enter
Giải thích từng thư viện 💡
pandas
Dùng để đọc Excel
openpyxl
Hỗ trợ file .xlsx
sqlalchemy
Kết nối database chuyên nghiệp
pyodbc
Driver kết nối SQL Server
Lỗi thường gặp ⚠️
Lỗi:
pip is not recognized
Nguyên nhân:
Python chưa add PATH
Cách xử lý:
Cài lại Python
NHỚ tick:
Add Python to PATH
PHẦN 5 — CHUẨN BỊ FILE EXCEL 📁
Tạo file Excel mẫu
Tên file:
donhang.xlsx
Sheet:
DonHang
Dữ liệu như sau:
| MaDon | TenKhach | SanPham | SoLuong | DonGia |
|---|---|---|---|---|
| DH001 | Nguyễn Văn A | Laptop | 2 | 15000000 |
| DH002 | Trần Thị B | Chuột | 5 | 250000 |
| DH003 | Lê Văn C | Bàn phím | 3 | 800000 |
Vì sao phải chuẩn hóa dữ liệu? 📌
Nếu cột sai tên:
❌ code lỗi
Nếu dữ liệu lẫn chữ và số:
❌ SQL không nhận
Nếu dòng trống:
❌ insert lỗi
Cho nên:
Dữ liệu đầu vào phải sạch
rất quan trọng
PHẦN 6 — TẠO DATABASE SQL 🏗
Bước 1: Mở SSMS
Kết nối tới SQL Server
Ví dụ:
Server name:
localhost
hoặc
.\SQLEXPRESS
Bước 2: Tạo database mới
Click phải:
Databases
→ New Database
Tên:
QuanLyBanHang
bấm OK
Bước 3: Tạo bảng DonHang
Mở:
New Query
dán code:
CREATE TABLE DonHang (
MaDon VARCHAR(50),
TenKhach NVARCHAR(100),
SanPham NVARCHAR(100),
SoLuong INT,
DonGia FLOAT
);
bấm:
Execute
PHẦN 7 — PYTHON ĐỌC EXCEL 📖
Code đầu tiên
import pandas as pd
file_path = "donhang.xlsx"
df = pd.read_excel(file_path)
print(df)
Giải thích từng dòng 🔍
import pandas as pd
nạp thư viện pandas
read_excel()
đọc file Excel
print(df)
hiển thị dữ liệu
Kiểm thử bắt buộc ✅
Phải thấy dữ liệu hiện ra như bảng Excel
Nếu lỗi:
FileNotFoundError
nguyên nhân:
Sai đường dẫn file
PHẦN 8 — KẾT NỐI PYTHON VỚI SQL SERVER 🔗
Code kết nối SQL
from sqlalchemy import create_engine
server = 'localhost'
database = 'QuanLyBanHang'
connection_string = (
f"mssql+pyodbc://@{server}/{database}"
"?driver=ODBC+Driver+17+for+SQL+Server"
"&trusted_connection=yes"
)
engine = create_engine(connection_string)
print("Kết nối thành công!")
Vì sao dùng create_engine()? 💡
Vì:
✅ ổn định
✅ chuyên nghiệp
✅ dễ mở rộng
✅ dùng tốt với pandas
Lỗi thường gặp ⚠️
Lỗi:
Data source name not found
Nguyên nhân:
Chưa cài ODBC Driver
Cách xử lý:
Cài:
ODBC Driver 17 for SQL Server
PHẦN 9 — GHI DỮ LIỆU TỪ EXCEL VÀO SQL 🚀
Code insert dữ liệu
import pandas as pd
from sqlalchemy import create_engine
file_path = "donhang.xlsx"
df = pd.read_excel(file_path)
server = 'localhost'
database = 'QuanLyBanHang'
connection_string = (
f"mssql+pyodbc://@{server}/{database}"
"?driver=ODBC+Driver+17+for+SQL+Server"
"&trusted_connection=yes"
)
engine = create_engine(connection_string)
df.to_sql(
name='DonHang',
con=engine,
if_exists='append',
index=False
)
print("Đã ghi dữ liệu vào SQL thành công!")
Giải thích cực quan trọng 📌
if_exists=’append’
nghĩa là:
thêm dữ liệu mới
không xóa dữ liệu cũ
Nếu dùng:
replace
thì:
⚠️ xóa toàn bộ bảng cũ
rất nguy hiểm
PHẦN 10 — LẤY DỮ LIỆU TỪ SQL RA EXCEL 📤
Code truy vấn dữ liệu
query = "SELECT * FROM DonHang"
df_sql = pd.read_sql(query, engine)
df_sql.to_excel(
"bao_cao_don_hang.xlsx",
index=False
)
print("Xuất báo cáo thành công!")
Ứng dụng thực tế 📊
Mỗi sáng:
Python tự chạy
↓
lấy dữ liệu từ SQL
↓
xuất báo cáo Excel
↓
gửi mail cho sếp
↓
Power BI đọc tiếp
Đây chính là:
Tự động hóa doanh nghiệp thật
PHẦN 11 — KIỂM THỬ BẮT BUỘC 🔥
Phải test đủ 5 bước
Test 1
Excel đọc được chưa?
Test 2
SQL kết nối được chưa?
Test 3
Insert thành công chưa?
Test 4
Query trả dữ liệu đúng chưa?
Test 5
Excel xuất ra đúng chưa?
Tuyệt đối không bỏ qua test
Vì:
90% lỗi nằm ở bước test
không phải code
PHẦN 12 — BÀI TẬP THỰC HÀNH 🏆
Bài tập 1
Tạo bảng:
NhanVien
gồm:
- MaNV
- HoTen
- PhongBan
- Luong
và import từ Excel vào SQL
Bài tập 2
Tạo báo cáo:
Tổng doanh thu theo khách hàng
xuất ra Excel
Bài tập 3 nâng cao 🚀
Tự động:
8h sáng mỗi ngày
Python chạy
↓
đọc SQL
↓
xuất Excel
↓
gửi email tự động
Đây là project doanh nghiệp thật
PHẦN 13 — KẾT LUẬN 🎯
Sau bài này học viên đã biết
✅ Excel → Python
✅ Python → SQL
✅ SQL → Excel
✅ Tự động hóa báo cáo
✅ Xây hệ thống thật cho công ty
Tư duy quan trọng nhất
Không phải:
học code
mà là:
giải quyết bài toán doanh nghiệp
Code chỉ là công cụ.
Tư duy mới là tiền.
CÂU CHỐT CUỐI BUỔI 🚀
Người biết copy paste làm việc 8 tiếng
Người biết Python + SQL để máy làm thay mình
🔥 Đây là khác biệt tạo ra thu nhập cao hơn.