Trong quá trình làm việc cho công ty Planet Bourgogne, tôi đã phải tạo một tệp XLS bằng PHP và MySQL. Tôi cũng đã phát hiện ra một thư viện PHP để đọc và ghi các tệp XLSX
Định dạng XLSX được hỗ trợ bởi Excel 2007 trở lên. Đối với các phiên bản trước, nó yêu cầu cài đặt mô-đun sau. http. //www. Microsoft. com/tải xuống/chi tiết. aspx?displaylang=fr&FamilyID=941b3470-3ae9-4aee-8f43-c6bb74cd1466
Dưới đây là một số dòng mã sẽ cho phép bạn tạo tệp XLS đầu tiên của mình bằng cách sử dụng PHP
- Tải xuống và sao chép thư viện PHPExcel trong Dự án PHP của bạn
- Tạo một tệp PHP bằng cách sử dụng cú pháp sau
/** Errors report */ error_reporting[E_ALL]; /** Include path **/ set_include_path[get_include_path[] . PATH_SEPARATOR . 'PHPExcel/Classes/']; /** PHPExcel */ include 'PHPExcel.php'; /** PHPExcel_Writer_Excel2007 */ include 'PHPExcel/Writer/Excel2007.php'; // Create new PHPExcel object $objPHPExcel = new PHPExcel[]; //We add contents //Warning, a utf8_encode[] is necessary for the character like 'é', 'è', .. $objPHPExcel->getActiveSheet[]->setCellValue['A1', 'Ligne 1 Colonne 1']; $objPHPExcel->getActiveSheet[]->setCellValue['A2', utf8_encode['Durée']]; //Manage the size of the column $objPHPExcel->getActiveSheet[]->getColumnDimension['A']->setWidth[15]; //Manage font style $objPHPExcel->getActiveSheet[]->getStyle['A1']->getFont[]->setSize[10]; $objPHPExcel->getActiveSheet[]->getStyle['A1']->getFont[]->setBold[true]; $objPHPExcel->getActiveSheet[]->getStyle['A1']->getFont[]->setUnderline[PHPExcel_Style_Font::UNDERLINE_SINGLE]; $objPHPExcel->getActiveSheet[]->getStyle['A1']->getAlignment[]->setHorizontal[PHPExcel_Style_Alignment::HORIZONTAL_CENTER]; //Make a border style $objPHPExcel->getActiveSheet[]->getStyle['A1']->getBorders[]->getLeft[]->setBorderStyle[PHPExcel_Style_Border::BORDER_THIN]; $objPHPExcel->getActiveSheet[]->getStyle['A1']->getBorders[]->getRight[]->setBorderStyle[PHPExcel_Style_Border::BORDER_THIN]; $objPHPExcel->getActiveSheet[]->getStyle['A1']->getBorders[]->getTop[]->setBorderStyle[PHPExcel_Style_Border::BORDER_THIN]; $objPHPExcel->getActiveSheet[]->getStyle['A1']->getBorders[]->getBottom[]->setBorderStyle[PHPExcel_Style_Border::BORDER_THIN]; // Save our file xlsx $objWriter = new PHPExcel_Writer_Excel2007[$objPHPExcel]; $objWriter->save['../data_xls/myfileXLS.xlsx'];
Hướng dẫn này chỉ là cơ sở cần thiết để tạo một tệp XLSX đơn giản. Đối với sử dụng nâng cao. bấm vào đây
trong 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ẫn
Nế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 sang Excel bằng PHP và MySQL
- Xuất dữ liệu sang CSV và tải xuống bằng PHP và MySQL
- Nhập tệp CSV vào MySql bằng PHP
- Xuất dữ liệu bảng HTML sang Excel, CSV, PNG và PDF bằng Plugin jQuery
- Xuất dữ liệu jQuery Datatable sang PDF, Excel, CSV và Copy
Xuất dữ liệu MySQL sang Excel trong PHP
Vì 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
- mục lục. php. Đây là tệp đầu vào
- sự liên quan. php. File này dùng để kết nối MySQL với PHP
- tạo_excel. php. Đây là tệp PHP chính sẽ có phương thức xuất để xuất dữ liệu sang excel
Tạo bảng cơ sở dữ liệu MySQL
Hã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 PHP
Chúng tôi sẽ tạo một tệp connection.php
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
Lấy dữ liệu nhiệm vụ từ bảng cơ sở dữ liệu MySQL
Chú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 generate_excel.php
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 Excel
Tạ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 generate_excel.php
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ã được 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
Các trình duyệt đang bị buộc phải tải xuống một tệp excel
Tạo HTML và hiển thị bản ghi bằng nút xuất
Xá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