Import dữ liệu từ excel vào mysql bằng php

Ngày đăng: 10 - 09 - 2020 Tác giả: admin Chuyên mục: Vọc code Lượt xem: 1435 lượt

setloadSheetsOnly('2011');

		$objExcel = $objReader ->load($file);
		$sheetData = $objExcel ->getActiveSheet()->toArray('null', true, true, true);

		$highestRow = $objExcel->setActiveSheetIndex()->getHighestRow();
		for($row = 2; $row<=$highestRow; $row++){
			$hopso = $sheetData[$row]['B'];
			$mahoso = $sheetData[$row]['C'];
			$chusudung = $sheetData[$row]['D'];
			$namcap = $sheetData[$row]['E'];
			$loaihoso = $sheetData[$row]['F'];
			$sothua = $sheetData[$row]['G'];
			$tobando = $sheetData[$row]['H'];
			$maloaidat = $sheetData[$row]['I'];
			$loaithua = $sheetData[$row]['J'];
			$mucluc = $sheetData[$row]['K'];
		$sql = "INSERT INTO hoso(hopso, mahoso, chusudung, namcap, loaihoso, sothua, tobando, maloaidat, loaithua, mucluc) VALUES ('$hopso', '$mahoso', '$chusudung', '$namcap', '$loaihoso', '$sothua', '$tobando', '$maloaidat', '$loaithua', '$mucluc')";

			$mysql = mysql_query($sql);
		}
		echo 'Insert thành công';
	}



?>





Untitled Document


	

Import dữ liệu từ excel vào mysql bằng php

Tôi sẽ giới thiệu một phương pháp để Import cơ sở dữ liệu từ file Excel vào MySQL , tuy hơi phức tạp nhưng đảm bảo không lỗi tiếng Việt, bảo toàn được cơ sở dữ liệu và đặc biệt là có thể áp dung với nhưng cơ sở dữ liệu lớn vài chục ngàn dòng...

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)

Import dữ liệu từ excel vào mysql bằng php

- 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 :