Có khá nhiều cách để Import dữ liệu từ file excel vào MySQL nhưng hình như hầu hết các phương pháp đều có những nhược điểm chưa chấp nhận được : Có phương pháp thì không hỗ trợ tiếng Việt, có phương pháp thì lỗi xảy ra khi sử dung với dữ liệu lớn,... còn lại các Tool được cho là hiệu quả thì lại có tính phí.
Trong ví dụ này tôi sẽ thực hiện import dữ liệu từ 1 file excel qua Table CATEGORIES của Openbravo POS :
CATEGORIES (
ID varchar(255) NOT NULL,
NAME varchar(255) NOT NULL,
PARENTID varchar(255) DEFAULT NULL,
IMAGE mediumblob,
PRIMARY KEY (`ID`),
UNIQUE KEY CATEGORIES_NAME_INX ('NAME'),
KEY `CATEGORIES_FK_1` (`PARENTID`)
)
File excel được thiết lập theo dạng giống như hinh sau :
Lưu ý:
- Các cột trong file excel sẽ tương ứng với các cột trong bảng cơ sở dữ liệu theo đúng thứ tự.
- Đối với các trường dữ liệu trống thì bỏ trống cột excel tương ứng.
Bây giờ chúc ta sẽ thực hiện lần lượt các bước sau để Import dữ liệu từ file excel vào MySQL
Bước 1.
- Lưu file excel ở định dạng Unicode Text(*.txt)
- Bạn mở file vừa lưu được bằng Notepad , chọn lệnh Save As và lưu lại file một lần nữa với Encoding là : UTF-8
- Bây giờ bạn mở file .txt mà bạn vừa lưu lại , copy toàn bộ nội dung bỏ vào MS Word .
- Bôi đen một khoảng trắng giữa 2 cột và nhấn Copy :
- Trong phần Choose file bạn chọn file .txt mới tạo :
- Trong phần Format chọn "CSV using LOAD DATA" , trong phần Columns terminated by nhập vào dấu phẩy "," :
- Cuối cùng nhấn Go.
- Việc Import thực hiện thành công :
Lưu ý:
- Các cột trong file excel sẽ tương ứng với các cột trong bảng cơ sở dữ liệu theo đúng thứ tự.
- Đối với các trường dữ liệu trống thì bỏ trống cột excel tương ứng.
Bây giờ chúc ta sẽ thực hiện lần lượt các bước sau để Import dữ liệu từ file excel vào MySQL
Bước 1.
- Lưu file excel ở định dạng Unicode Text(*.txt)
- Bạn mở file vừa lưu được bằng Notepad , chọn lệnh Save As và lưu lại file một lần nữa với Encoding là : UTF-8
- Bây giờ bạn mở file .txt mà bạn vừa lưu lại , copy toàn bộ nội dung bỏ vào MS Word .
- Bôi đen một khoảng trắng giữa 2 cột và nhấn Copy :
- Sau đó nhấn Ctrl+H để mở cửa sổ Find and Replace trong Word rồi Paste khoảng trống vừa Copy ở trên vào phần Find What, trong phần Replace with bạn nhập dấu phẩy "," :
==> Cuối cùng nhân Replace All . Ở đây tôi chọn dùng word để thực hiện phần replace này mặc dù tính năng này cũng có trong NotePad vì nếu với một dữ liệu lớn (Khoảng mấy nghìn dòng) thì việc dùng word để Replace nhanh hơn nhiều.
- Sau khi bạn replace thay thế các khoảng trống giữa các cột bằng dấu phẩy "," bạn copy kết quả thu được vào lại file txt.
Bước 2.
- Mở PHPMyAdmin (Ở đây tôi sử dụng Xampp 1.7)
- Mở table CATEGORIES và chọn Import- Trong phần Choose file bạn chọn file .txt mới tạo :
- Trong phần Format chọn "CSV using LOAD DATA" , trong phần Columns terminated by nhập vào dấu phẩy "," :
- Cuối cùng nhấn Go.
- Việc Import thực hiện thành công :
làm có đc đâu bạn ơi, nó lỗi font hết
Trả lờiXóabạn để collation thành utf8_General_ci là đc
XóaChào Bạn, tôi làm đúng tất cả nhưng cuối cùng vẫn lỗi font dù chọn collation là utf8_general_ci cho tất cả các field. Không biết phải làm gì nữa đây ??
Trả lờiXóaMinh làm được rồi, cảm ơn bạn nhiều lắm lắm. Đó giờ toàn import chữ ko dấu vào thôi
Trả lờiXóaTuy nhiên mình cũng ko tìm được mục utf8_General_ci như bạn chỉ ở đâu (nhưng làm đc rồi nên cũng ko cần đến nó).
Many thanks!