mục lục. php
How to generate excel from Mysql data in PHP
Generate Excel
No. Name Email id Phone Number Department Joining Date
tạo-excel. php
No. Name Email id Phone Number Department Joining Date Tải xuốngLà một lập trình viên PHP, bạn cần tạo file excel với dữ liệu của mình bằng ngôn ngữ lập trình PHP. Tôi đã làm mọi thứ trở nên dễ dàng. Chỉ cần làm theo hai bước và công việc của bạn sẽ được thực hiện
Đầu tiên tạo một lớp Excel trong PHP với đoạn mã sau
<?php /** * By Shaharia Azam * shaharia.azam@gmail.com * //www.shahariaazam.com */ class Excel{ /** * set the header configuration * @param $filename the xls file name */ function setHeader($filename) { header("Pragma: public"); header("Expires: 0"); header("Cache-Control: must-revalidate, post-check=0, pre-check=0"); header("Content-Type: application/force-download"); header("Content-Type: application/octet-stream"); header("Content-Type: application/download");; header("Content-Disposition: attachment;filename=$filename"); header("Content-Transfer-Encoding: binary "); } /** * write the xls begin of file */ function BOF() { echo pack("ssssss", 0x809, 0x8, 0x0, 0x10, 0x0, 0x0); return; } /** * write the xls end of file */ function EOF() { echo pack("ss", 0x0A, 0x00); return; } /** * write a number * @param $Row row to write $Value (first row is 0) * @param $Col column to write $Value (first column is 0) * @param $Value number value */ function writeNumber($Row, $Col, $Value) { echo pack("sssss", 0x203, 14, $Row, $Col, 0x0); echo pack("d", $Value); return; } /** * write a string label * @param $Row row to write $Value (first row is 0) * @param $Col column to write $Value (first column is 0) * @param $Value string value */ function writeLabel($Row, $Col, $Value) { $L = strlen($Value); echo pack("ssssss", 0x204, 8 + $L, $Row, $Col, 0x0, $L); echo $Value; return; } }Sau đó, bạn sẽ đưa tệp lớp này vào tập lệnh PHP đang hoạt động của mình với PHP
require_once('pathofyourclassfile.php');Sau đó viết đoạn mã sau
<?php $Excel = new Excel(); // Send Header $Excel -> setHeader('text_' . date('Y_m_d') . '.xls'); $Excel -> BOF(); /** * Write Cell data * writeLabel (RowNumber,ColumnNumber, "Text to put") */ $Excel -> writeLabel(1, 1, "Cell Value as Text"); $Excel -> EOF(); exit();Bây giờ hãy chạy tệp này và bạn sẽ thấy một Tên tệp. tệp xls sẽ được tự động tải xuống. Mở tệp Excel đó và bạn sẽ thấy rằng trong hàng đầu tiên của mình, cột đầu tiên “Giá trị ô dưới dạng văn bản” sẽ được ghi lại. Mã hóa vui vẻ
Tính năng xuất dữ liệu rất hữu ích khi dữ liệu được lưu trên ổ đĩa cục bộ để sử dụng ngoại tuyến. Chức năng xuất dữ liệu sang tệp cung cấp một cách thân thiện với người dùng để duy trì một số lượng lớn dữ liệu trong ứng dụng web. Có nhiều định dạng tệp khác nhau để xuất dữ liệu và tải xuống dưới dạng tệp. Microsoft Excel là một định dạng bảng tính được sử dụng rộng rãi để tổ chức và duy trì dữ liệu
Nói chung, chức năng xuất dữ liệu được sử dụng trong phần quản lý dữ liệu của ứng dụng web. Excel là định dạng tốt nhất để xuất dữ liệu dưới dạng tệp và bạn có thể dễ dàng xuất dữ liệu sang excel bằng PHP. Trong hướng dẫn này, chúng tôi sẽ chỉ cho bạn cách xuất dữ liệu sang Excel trong PHP
Tập lệnh PHP mẫu cho phép bạn tích hợp chức năng xuất dữ liệu sang excel. Chỉ với một cú nhấp chuột, người dùng có thể xuất dữ liệu từ cơ sở dữ liệu MySQL sang Excel và tải xuống ở định dạng tệp MS Excel (. xls/. xlsx)
Xuất dữ liệu sang Excel bằng PHP
Trong tập lệnh mẫu này, chúng tôi sẽ xuất dữ liệu từ mảng (được xác định trong tập lệnh) sang tệp excel
Biến $data chứa dữ liệu ở định dạng mảng sẽ được xuất sang Excel bằng PHP
$data = array(array("NAME" => "John Doe", "EMAIL" => "john.doe@gmail.com", "GENDER" => "Male", "COUNTRY" => "United States"),
array("NAME" => "Gary Riley", "EMAIL" => "gary@hotmail.com", "GENDER" => "Male", "COUNTRY" => "United Kingdom"),
array("NAME" => "Edward Siu", "EMAIL" => "siu.edward@gmail.com", "GENDER" => "Male", "COUNTRY" => "Switzerland"),
array("NAME" => "Betty Simons", "EMAIL" => "simons@example.com", "GENDER" => "Female", "COUNTRY" => "Australia"),
array("NAME" => "Frances Lieberman", "EMAIL" => "lieberman@gmail.com", "GENDER" => "Female", "COUNTRY" => "United Kingdom")
);
Hàm filterData() được sử dụng để lọc chuỗi trước khi thêm vào hàng của bảng excel
function filterData(&$str){$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}
Đoạn code sau giúp xuất dữ liệu trong excel và download dưới dạng file
- Biến $fileName xác định tên của tệp excel
- Các tiêu đề Bố trí nội dung và Loại nội dung buộc tải xuống tệp excel
- Chạy vòng lặp qua từng cặp khóa/giá trị trong mảng $data
- Hiển thị tên cột dưới dạng hàng đầu tiên bằng cách sử dụng biến function filterData(&$str){
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}0 - Hàm PHP array_walk() được sử dụng để lọc dữ liệu cùng với hàm filterData()
$fileName = "codexworld_export_data-" . date('Ymd') . ".xlsx";
// Headers for download
header("Content-Disposition: attachment; filename=\"$fileName\"");
header("Content-Type: application/vnd.ms-excel");
$flag = false;
foreach($data as $row) {
if(!$flag) {
// display column names as first row
echo implode("\t", array_keys($row)) . "\n";
$flag = true;
}
// filter data
array_walk($row, 'filterData');
echo implode("\t", array_values($row)) . "\n";
}
exit;
Xuất dữ liệu từ cơ sở dữ liệu sang Excel bằng PHP và MySQL
Trong tập lệnh ví dụ này, chúng tôi sẽ xuất dữ liệu từ cơ sở dữ liệu MySQL trong tệp excel bằng PHP
Tạo bảng cơ sở dữ liệu
Trong ví dụ này, chúng ta sẽ tạo một bảng function filterData(&$str){
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}2 với một số trường cơ bản trong cơ sở dữ liệu MySQL. Bảng function filterData(&$str){
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}2 chứa các bản ghi sẽ được xuất sang excel
Cấu hình cơ sở dữ liệu (dbConfig. php)
Đoạn mã sau dùng để kết nối cơ sở dữ liệu bằng PHP và MySQL. Chỉ định máy chủ cơ sở dữ liệu (function filterData(&$str){
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}4), tên người dùng (function filterData(&$str){
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}5), mật khẩu (function filterData(&$str){
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}6) và tên (function filterData(&$str){
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}7) theo thông tin đăng nhập cơ sở dữ liệu của bạn
$dbHost = "localhost";
$dbUsername = "root";
$dbPassword = "root";
$dbName = "codexworld";
// Create database connection
$db = new mysqli($dbHost, $dbUsername, $dbPassword, $dbName);
// Check connection
if ($db->connect_error) {
die("Connection failed: " . $db->connect_error);
}
Xuất dữ liệu từ cơ sở dữ liệu
Đoạn mã sau giúp xuất dữ liệu từ cơ sở dữ liệu MySQL và tải xuống dưới dạng tệp excel
- Hàm filterData() dùng để lọc chuỗi trước khi thêm vào hàng dữ liệu excel
- $fileName – Xác định tên của tệp excel sẽ được tải xuống
- // Excel file name for download
$fileName = "codexworld_export_data-" . date('Ymd') . ".xlsx";// Headers for download
header("Content-Disposition: attachment; filename=\"$fileName\"");
header("Content-Type: application/vnd.ms-excel");$flag = false;
foreach($data as $row) {
if(!$flag) {
// display column names as first row
echo implode("\t", array_keys($row)) . "\n";
$flag = true;
}
// filter data
array_walk($row, 'filterData');
echo implode("\t", array_values($row)) . "\n";
}exit;
0 – Xác định cột có tên của trang tính excel - // Excel file name for download
$fileName = "codexworld_export_data-" . date('Ymd') . ".xlsx";// Headers for download
header("Content-Disposition: attachment; filename=\"$fileName\"");
header("Content-Type: application/vnd.ms-excel");$flag = false;
foreach($data as $row) {
if(!$flag) {
// display column names as first row
echo implode("\t", array_keys($row)) . "\n";
$flag = true;
}
// filter data
array_walk($row, 'filterData');
echo implode("\t", array_values($row)) . "\n";
}exit;
1 – Thêm hàng đầu tiên vào bảng excel dưới dạng tên cột - Lấy dữ liệu của thành viên từ cơ sở dữ liệu và thêm vào hàng của bảng excel
- Xác định các tiêu đề để buộc tệp tải xuống
- Kết xuất dữ liệu của bảng tính excel
include_once 'dbConfig.php';
// Filter the excel data
function filterData(&$str){
$str = preg_replace("/\t/", "\\t", $str);
$str = preg_replace("/\r?\n/", "\\n", $str);
if(strstr($str, '"')) $str = '"' . str_replace('"', '""', $str) . '"';
}
// Excel file name for download
$fileName = "members-data_" . date('Y-m-d') . ".xls";
// Column names
$fields = array('ID', 'FIRST NAME', 'LAST NAME', 'EMAIL', 'GENDER', 'COUNTRY', 'CREATED', 'STATUS');
// Display column names as first row
$excelData = implode("\t", array_values($fields)) . "\n";
// Fetch records from database
$query = $db->query("SELECT * FROM members ORDER BY id ASC");
if($query->num_rows > 0){
// Output each row of the data
while($row = $query->fetch_assoc()){
$status = ($row['status'] == 1)?'Active':'Inactive';
$lineData = array($row['id'], $row['first_name'], $row['last_name'], $row['email'], $row['gender'], $row['country'], $row['created'], $status);
array_walk($lineData, 'filterData');
$excelData .= implode("\t", array_values($lineData)) . "\n";
}
}else{
$excelData .= 'No records found...'. "\n";
}
// Headers for download
header("Content-Type: application/vnd.ms-excel");
header("Content-Disposition: attachment; filename=\"$fileName\"");
// Render excel data
echo $excelData;
exit;
Xuất dữ liệu bảng HTML sang Excel bằng JavaScript
Phần kết luận
Nếu bạn muốn thêm tùy chọn xuất vào danh sách dữ liệu, tính năng xuất sang excel là hoàn hảo cho việc đó. Với tùy chọn xuất, người dùng có thể tải xuống dữ liệu dưới dạng tệp excel và lưu vào ổ đĩa cục bộ. Bạn có thể sử dụng mã đơn giản này để thêm chức năng xuất dữ liệu trong ứng dụng web bằng PHP
Bạn có muốn nhận trợ giúp triển khai hay sửa đổi hoặc nâng cao chức năng của tập lệnh này không?