Tôi sẽ chỉ cho bạn cách xuất dữ liệu lưới sang tệp Excel trong bài đăng này. Xuất/Nhập là một chức năng tương đối phổ biến để phát triển web; Tuy nhiên, có những lúc chúng ta cần xuất toàn bộ dữ liệu lưới vào một tệp Excel.export grid data to an excel file in this post. Export/Import is a relatively popular functionality for web development; nevertheless, there are times when we need to export entire grid data into an excel file.
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 tôi 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 thoải mái hơn khi xem video giải thích về việc xuất dữ liệu để vượt trội với PHP và MySQL, thì bạn nên xem video hướng dẫn này.Exporting Data to Excel with PHP and MySQL, then you should watch this video tutorial.
Bạn cũng có thể kiểm tra hướng dẫn khác về dữ liệu xuất khẩu với PHP,
- Xuất dữ liệu để xuất sắc với 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 DataTable JQuery sang PDF, Excel, CSV và Sao chép
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:
- index.php: Đây là tệp nhập.: This is the entry file.
- Connection.php: Tệp này được sử dụng để kết nối MySQL với PHP: This file is used to connect MySQL with PHP
- Generate_excel.php: Đây là tệp PHP chính màllll có phương thức xuất để xuất dữ liệu vào excel.: This is the main PHP file that’ll have an export method to export data into the excel.
Tạo bảng cơ sở dữ liệu MySQL
Hãy cùng tạo ra một bảng nhiệm vụ mà 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ã dưới đây. 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.
Nhận dữ liệu tác vụ từ bảng cơ sở dữ liệu MySQL
Chúng tôi sẽ nhận được các mục từ các tác vụ 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 sang tệp Excel. Đã thêm mã dưới đây 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
Hãy để tạo ra các tính năng xuất khẩu bằng cách sử dụng PHP và xuất dữ liệu vào 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ị nó. 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.
Browsers are being forced to download an excel file.
Tạo HTML và hiển thị bản ghi bằng nút xuất
Xác định bố cục HTML cho dữ liệu hiển thị trong bảng và nút để kích hoạt 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.
Simple Example of Export Excel file using PHP and MySQL phpflow.com : Demo of export to excel fileAction Toggle Dropdown
- Export to excel
- Other
Name Status Priority Date
Chúng tôi đã nhập tệp ‘Generate_excel.php ở đầu mã, 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 một Dropwodn với tùy chọn xuất khẩu sang Excel. Tất cả dữ liệu nhiệm vụ sẽ được hiển thị trong bảng HTML.‘generate_excel.php’ file at the top of the code, which will yield task data for display in the HTML table. We’ve established a dropwodn with a ‘export to excel’ option. All task data will be displayed in an HTML table.
Gửi biểu mẫu bằng cách sử dụng jQuery
Chúng tôi đã bao gồm một thả xuống và cần phải bắt và bắn các sự kiện để khi người dùng chọn một tùy chọn, biểu mẫu được gửi. Chúng tôi sẽ dán mã bên dưới ở dưới cùng của 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.
$[document].ready[function[] { jQuery['#Export to excel'].bind["click", function[] { var target = $[this].attr['id']; switch[target] { case 'export-to-excel' : $['#hidden-type'].val[target]; //alert[$['#hidden-type'].val[]]; $['#export-form'].submit[]; $['#hidden-type'].val['']; break } }]; }];
Result:
Tôi hy vọng nó sẽ giúp bạn!.