Bạn có thể trích xuất các tệp csv dễ dàng hơn excel(. xls) bằng cách sử dụng php. Tôi nghĩ cách dễ dàng hơn để trích xuất dữ liệu từ tệp excel là lưu tệp dưới dạng csv, sau đó trích xuất và sử dụng dữ liệu theo nhu cầu của bạn Show
Đoạn mã sau minh họa việc trích xuất tệp csv 'test. csv‘ trong cùng thư mục. Hàm php CREATE TABLE `tasks` ( `id` int(11) NOT NULL, `Name` varchar(255) NOT NULL, `Status` varchar(255) NOT NULL, `Priority` varchar(255) NOT NULL, `Date` date NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Indexes for table `tasks` -- ALTER TABLE `tasks` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT for table `tasks` -- ALTER TABLE `tasks` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; COMMIT;0 là tài nguyên tệp, CREATE TABLE `tasks` ( `id` int(11) NOT NULL, `Name` varchar(255) NOT NULL, `Status` varchar(255) NOT NULL, `Priority` varchar(255) NOT NULL, `Date` date NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Indexes for table `tasks` -- ALTER TABLE `tasks` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT for table `tasks` -- ALTER TABLE `tasks` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; COMMIT;1 là các ký tự giới hạn của các trường và CREATE TABLE `tasks` ( `id` int(11) NOT NULL, `Name` varchar(255) NOT NULL, `Status` varchar(255) NOT NULL, `Priority` varchar(255) NOT NULL, `Date` date NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Indexes for table `tasks` -- ALTER TABLE `tasks` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT for table `tasks` -- ALTER TABLE `tasks` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; COMMIT;2 phân tách các trường, ở đây “,” do các giá trị được phân tách bằng dấu phẩy (tệp csv)
Bây giờ bạn có thể thực hiện bất kỳ thao tác nào trên dữ liệu được trích xuất như chèn db, cập nhật, v.v. Nếu bạn muốn tìm nạp dữ liệu trực tiếp từ Excel, hãy truy cập PHPExcel, Một dự án cung cấp tập hợp các lớp cho php, cho phép bạn ghi và đọc từ các định dạng tệp bảng tính khác nhau, như Excel (BIFF). xls, Excel 2007 (OfficeOpenXML). xlsx, CSV, Libre/OpenOffice Calc. ods, Gnumeric, PDF, HTML, … Chia sẻ cái này
Như thế nàyThích Đang tải. Có liên quantrong trường hợp đó chúng ta nên sử dụng phương pháp được mô tả dưới đây. Trong PHP, chúng ta chỉ cần đặt thông tin tiêu đề để buộc trình duyệt khởi chạy cửa sổ tải xuống Video hướng dẫnNếu bạn thấy thoải mái hơn khi xem video giải thích về Xuất dữ liệu sang Excel bằng PHP và MySQL, thì bạn nên xem video hướng dẫn này Bạn cũng có thể xem hướng dẫn khác về Xuất dữ liệu bằng PHP,
Xuất dữ liệu MySQL sang Excel trong PHPVì Excel là định dạng tốt nhất để lưu trữ dữ liệu trong tệp nên xuất dữ liệu ở định dạng Excel là một công cụ rất quan trọng cho phép người dùng lưu dữ liệu để sử dụng ngoại tuyến. Bạn sẽ học cách sử dụng PHP và MySQL để xuất dữ liệu sang Excel Vì vậy, cấu trúc tệp cho ví dụ này là như sau
Tạo bảng cơ sở dữ liệu MySQLHãy tạo một bảng nhiệm vụ chứa tất cả các bản ghi nhiệm vụ sẽ xuất sau này ở định dạng excel CREATE TABLE `tasks` ( `id` int(11) NOT NULL, `Name` varchar(255) NOT NULL, `Status` varchar(255) NOT NULL, `Priority` varchar(255) NOT NULL, `Date` date NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Indexes for table `tasks` -- ALTER TABLE `tasks` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT for table `tasks` -- ALTER TABLE `tasks` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; COMMIT; Bây giờ, tôi sẽ chèn một số dữ liệu mẫu vào bảng nhiệm vụ INSERT INTO `tasks` (`id`, `Name`, `Status`, `Priority`, `Date`) VALUES (1, 'Task1', 'Completed', 'Low', '2021-09-01'), (2, 'Task2', 'InProgress', 'High', '2021-03-17'), (3, 'Mysql', 'Hold', 'Low', '2021-09-22'), (4, 'API', 'Pending', 'Low', '2021-09-06'); Tạo kết nối MySQL với PHPChúng tôi sẽ tạo một tệp CREATE TABLE `tasks` ( `id` int(11) NOT NULL, `Name` varchar(255) NOT NULL, `Status` varchar(255) NOT NULL, `Priority` varchar(255) NOT NULL, `Date` date NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Indexes for table `tasks` -- ALTER TABLE `tasks` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT for table `tasks` -- ALTER TABLE `tasks` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; COMMIT;3 và thêm mã bên dưới. trong tệp này, Chúng tôi sẽ chuyển tên máy chủ cơ sở dữ liệu, tên người dùng cơ sở dữ liệu, mật khẩu cơ sở dữ liệu và tên cơ sở dữ liệu <?php Class dbObj{ /* Database connection start */ var $dbhost = "localhost"; var $username = "root"; var $password = ""; var $dbname = "test"; var $conn; function getConnstring() { $con = mysqli_connect($this->dbhost, $this->username, $this->password, $this->dbname) or die("Connection failed: " . mysqli_connect_error()); /* check connection */ if (mysqli_connect_errno()) { printf("Connect failed: %s\n", mysqli_connect_error()); exit(); } else { $this->conn = $con; } return $this->conn; } } ?> Lấy dữ liệu nhiệm vụ từ bảng cơ sở dữ liệu MySQLChúng tôi sẽ nhận các mục nhập từ các tác vụ của bảng cơ sở dữ liệu MySQL và đặt chúng vào một mảng để chúng tôi có thể hiển thị chúng và xuất chúng thành tệp excel. Đã thêm mã bên dưới vào đầu tệp CREATE TABLE `tasks` ( `id` int(11) NOT NULL, `Name` varchar(255) NOT NULL, `Status` varchar(255) NOT NULL, `Priority` varchar(255) NOT NULL, `Date` date NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Indexes for table `tasks` -- ALTER TABLE `tasks` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT for table `tasks` -- ALTER TABLE `tasks` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; COMMIT;4 include_once("connection.php"); $db = new dbObj(); $connString = $db->getConnstring(); $sql_query = "SELECT * FROM tasks"; $resultset = mysqli_query($connString, $sql_query) or die("database error:". mysqli_error($conn)); $tasks = array(); while( $rows = mysqli_fetch_assoc($resultset) ) { $tasks[] = $rows; } Xuất dữ liệu sang ExcelTạo tính năng export bằng PHP và xuất dữ liệu ra excel. Chúng tôi cũng sẽ buộc trình duyệt tải xuống tệp thay vì hiển thị tệp. Chúng tôi sẽ thêm mã dưới đây vào tệp CREATE TABLE `tasks` ( `id` int(11) NOT NULL, `Name` varchar(255) NOT NULL, `Status` varchar(255) NOT NULL, `Priority` varchar(255) NOT NULL, `Date` date NOT NULL ) ENGINE=InnoDB DEFAULT CHARSET=latin1; -- -- Indexes for table `tasks` -- ALTER TABLE `tasks` ADD PRIMARY KEY (`id`); -- -- AUTO_INCREMENT for table `tasks` -- ALTER TABLE `tasks` MODIFY `id` int(11) NOT NULL AUTO_INCREMENT, AUTO_INCREMENT=5; COMMIT;4 if(isset($_POST["ExportType"])) { switch($_POST["ExportType"]) { case "export-to-excel" : // Submission from $filename = "phpflow_data_export_".date('Ymd') . ".xls"; header("Content-Type: application/vnd.ms-excel"); header("Content-Disposition: attachment; filename=\"$filename\""); ExportFile($tasks); //$_POST["ExportType"] = ''; exit(); default : die("Unknown action : ".$_POST["action"]); break; } } function ExportFile($records) { $heading = false; if(!empty($records)) foreach($records as $row) { if(!$heading) { // display field/column names as a first row echo implode("\t", array_keys($row)) . "\n"; $heading = true; } echo implode("\t", array_values($row)) . "\n"; } exit; } mã hiển thị ở trên, Khối trường hợp chuyển đổi sẽ thực thi dựa trên giá trị tham số và phương thức được gọi. Tạo HTML và hiển thị bản ghi bằng nút xuấtXác định bố cục html để hiển thị dữ liệu trong bảng và nút để thực hiện hành động INSERT INTO `tasks` (`id`, `Name`, `Status`, `Priority`, `Date`) VALUES (1, 'Task1', 'Completed', 'Low', '2021-09-01'), (2, 'Task2', 'InProgress', 'High', '2021-03-17'), (3, 'Mysql', 'Hold', 'Low', '2021-09-22'), (4, 'API', 'Pending', 'Low', '2021-09-06');0. Đã thêm mã bên dưới vào tệp INSERT INTO `tasks` (`id`, `Name`, `Status`, `Priority`, `Date`) VALUES (1, 'Task1', 'Completed', 'Low', '2021-09-01'), (2, 'Task2', 'InProgress', 'High', '2021-03-17'), (3, 'Mysql', 'Hold', 'Low', '2021-09-22'), (4, 'API', 'Pending', 'Low', '2021-09-06');1________số 8 Chúng tôi đã nhập 'generate_excel. php’ ở đầu mã, tệp này sẽ mang lại dữ liệu tác vụ để hiển thị trong bảng HTML. Chúng tôi đã thiết lập danh sách thả xuống với tùy chọn 'xuất sang excel'. Tất cả dữ liệu tác vụ sẽ được hiển thị trong bảng HTML Làm cách nào để lấy dữ liệu từ Excel sang php?Với tệp hợp lệ, biểu mẫu HTML gửi sẽ gọi PHP để xử lý phân tích cú pháp Excel. Trong PHP, thư viện PHPSpreadSheet được sử dụng để đọc dữ liệu tệp Excel và chuyển đổi nó thành một mảng. Bằng cách lặp lại dữ liệu mảng, mã sẽ thực thi cơ sở dữ liệu chèn từng hàng
Làm cách nào để lấy dữ liệu từ tệp xlsx trong php? |