Làm cách nào tôi có thể tải xuống tệp Excel từ PHPExcel?

Đánh giá của bạn cho PHPExcel

Cảm ơn bạn đã đánh giá

Bạn nghĩ gì về PHPExcel?

Để lại đánh giá

ỐI. Việc này thật là xấu hổ

Đã xảy ra sự cố nghiêm trọng
Thay vào đó hãy thử cái này

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

  1. Tải xuống và sao chép thư viện PHPExcel trong Dự án PHP của bạn
  2. 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

Một thẻ đã tồn tại với tên chi nhánh được cung cấp. Nhiều lệnh Git chấp nhận cả tên thẻ và tên nhánh, vì vậy việc tạo nhánh này có thể gây ra hành vi không mong muốn. Bạn có chắc chắn muốn tạo nhánh này không?

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" => "[email protected]", "GENDER" => "Male", "COUNTRY" => "United States"),
    array("NAME" => "Gary Riley", "EMAIL" => "[email protected]", "GENDER" => "Male", "COUNTRY" => "United Kingdom"),
    array("NAME" => "Edward Siu", "EMAIL" => "[email protected]", "GENDER" => "Male", "COUNTRY" => "Switzerland"),
    array("NAME" => "Betty Simons", "EMAIL" => "[email protected]", "GENDER" => "Female", "COUNTRY" => "Australia"),
    array("NAME" => "Frances Lieberman", "EMAIL" => "[email protected]", "GENDER" => "Female", "COUNTRY" => "United Kingdom")
);

Hàm filterData() 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 array_walk() trong PHP được sử dụng để lọc dữ liệu cùng với hàm filterData()
// 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;

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

CREATE TABLE `members` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `first_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
  `last_name` varchar(25) COLLATE utf8_unicode_ci NOT NULL,
  `email` varchar(50) COLLATE utf8_unicode_ci NOT NULL,
  `gender` enum('Male','Female') COLLATE utf8_unicode_ci NOT NULL,
  `country` varchar(20) COLLATE utf8_unicode_ci NOT NULL,
  `created` datetime NOT NULL,
  `status` tinyint(1) NOT NULL DEFAULT 1 COMMENT '1=Active | 0=Inactive',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COLLATE=utf8_unicode_ci;

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

// Database configuration
$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
// Load the database configuration file
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?

Làm cách nào để tải xuống Excel từ PHP?

Xuất dữ liệu từ cơ sở dữ liệu. 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. $fields – Xác định cột có tên của bảng excel. $excelData – Thêm hàng đầu tiên vào bảng excel dưới dạng tên cột.

Làm cách nào tôi có thể tải xuống tệp Excel trong API Web?

Xuất tệp Excel trong ASP. Net Web API .
Thêm Model Class "Record. cs" trong thư mục mô hình. Trong "Trình khám phá giải pháp". .
Trong "HomeController" viết một số mã để xuất tệp Excel. Tệp Excel này tồn tại. Trong "Trình khám phá giải pháp". .
Bây giờ hãy viết một số mã HTML trong "chỉ mục. tệp cshtml". Tập tin này tồn tại

Làm cách nào để đọc tệp Excel trong PHP bằng PHPExcel?

$inputFileName = 'mẫu. xlsx'; Dòng này cho biết tệp excel mà bạn muốn đọc. Bạn có thể đọc bất kỳ trang tính nào với sự trợ giúp của phương thức getSheet. Bạn cũng có thể sử dụng phương thức getActiveSheet() nếu đang sử dụng PHPExcel Archive.

Làm cách nào để đọc tệp xlsx trong PHP?

Đọc tệp Excel (XLSX)​ .
Tạo Trình đọc Excel bằng ReaderEntityFactory. tạoXLSXReader()
Mở tệp XLSX bằng $reader->open($path)
Duyệt từng Sheet của bảng tính với $reader->getSheetIterator()
Duyệt qua từng Hàng của Trang tính với $sheet->getRowIterator()
Duyệt qua từng Ô của Hàng với $row->getCells()