Thứ Ba, 12 tháng 10, 2021

Export Excel PHP như thế nào? Hướng dẫn các thao tác trong PHPExcel

Excel là một trong những công cụ nổi tiếng nhất của nhà Microsoft. Excel thường được dùng để trình bày trực quan thông tin theo dạng bảng biểu. Bằng cách sử dụng Excel, người nhìn sẽ dễ dàng theo dõi các loại dữ liệu hơn. Excel đóng vai trò rất quan trọng trong kinh doanh, nó giúp giải trình một cách rõ ràng nhất những con số tính toán phức tạp. Là một người thường xuyên làm việc cùng Excel, chắc hẳn bạn đã có không ít lần gặp phải trường hợp cần trích xuất hoặc lưu trữ dữ liệu Excel dưới nhiều dạng khác nhau. Vậy thì hãy sử dụng thư viện PHPExcel. Export Excel PHP là công cụ hữu ích giúp hỗ trợ các thao tác với file Excel.

Tổng quan về PHPExcel

PHPExcel là một dạng thư viện nội dung, nhưng tất nhiên là bao gồm các dữ liệu Excel, hay thường được biết với tên gọi bảng biểu. PHPExcel cho phép người dùng tìm kiếm, truy xuất và lưu trữ dữ liệu trên Excel một cách dễ dàng. Trong quá khứ, người dùng cần tự lập trình PHP để có thể sử dụng. Tuy nhiên hiện tại đã có sẵn rất nhiều phiên bản PHPExcel, bạn chỉ cần chọn một version phù hợp với hệ điều hành của máy mình rồi tải xuống dùng trực tiếp là được.

Để export Excel PHP thành công, bạn cần lưu ý rằng phiên bản PHP đó có phù hợp với hệ điều hành máy mình hay không. Để chắc chắn download được một version PHP chính xác, bạn chỉ cần đảm bảo phiên bản đó đáp ứng đủ các điều kiện sau:

PHPExcel là gì?

PHPExcel là gì?

  • PHP phải có phiên bản từ 5.2.0 trở lên.
  • PHP extension php_zip enabled [^phpzip_footnote].
  • PHP extension php_xml enabled.
  • PHP extension php_gd2 enabled (if not compiled in).

Sau khi đã chắc chắn rằng phiên bản đáp ứng đủ các yêu cầu như trên thì bạn có thể yên tâm tải và và cài đặt.

Một trong những nguồn download phổ biến nhất có thể kể đến Github. Phiên bản PHPExcel tại Github khá dễ dùng và phù hợp hầu hết với nhiều server khác nhau. Để tải PHPExcel trên Github, bạn hãy truy cập vào ĐÂY. Khi đã vào link thành công, bạn sẽ thấy góc trên bên phải màn hình có nút xanh Clone or Download. Hãy click vào và chọn Download zip. Khi đã tải thành công tệp zip, bạn cần giải nén ra và tiến hành cài đặt.

Các thao tác liên quan đến export Excel PHP

Trước khi export Excel PHP thì bạn cần thực hiện trước các thao tác liên quan như đọc, ghi, chuyển đổi… trong Excel PHP.

Ghi dữ liệu vào file Excel

Quá trình này bao gồm một chuỗi các thao tác chuyển đổi dữ liệu thô thành định dạng excel. Tất nhiên là công cụ chính hỗ trợ chính là PHP.

Khi đã tải xong xuôi và giải nén tệp zip của PHP rồi, bạn cần copy PHPExcel.php trong Classes vào thư mục gốc chứa ứng dụng web. Thao tác này nhằm định hướng đối tượng và yêu cầu PHP tập trung vào xử lý đối tượng đó. Sau đó, bạn cần thực hiện các bước như bản demo sau:

Có rất nhiều thao tác Export Excel PHP

Có rất nhiều thao tác Export Excel PHP

<?php

require “Classes/PHPExcel.php”;

$data = [

    [‘Nguyễn Văn A’, ‘2000’, ‘5k’],

    [‘Phạm Văn B’, ‘2001’, ‘2k’],

    [‘Mai Thị C’, ‘1998’, ‘1’],

    [‘Đỗ Thị D’, ‘1999’, ‘0’]

];

//Khởi tạo đối tượng

$excel = new PHPExcel();

//Chọn trang cần ghi (là số từ 0->n)

$excel->setActiveSheetIndex(0);

//Tạo tiêu đề cho trang. (có thể không cần)

$excel->getActiveSheet()->setTitle(‘demo ghi dữ liệu’);

//Xét chiều rộng cho từng, nếu muốn set height thì dùng setRowHeight()

$excel->getActiveSheet()->getColumnDimension(‘A’)->setWidth(20);

$excel->getActiveSheet()->getColumnDimension(‘B’)->setWidth(20);

$excel->getActiveSheet()->getColumnDimension(‘C’)->setWidth(30);

//Xét in đậm cho khoảng cột

$excel->getActiveSheet()->getStyle(‘A1:C1’)->getFont()->setBold(true);

//Tạo tiêu đề cho từng cột

//Vị trí có dạng như sau:

/**

 * |A1|B1|C1|..|n1|

 * |A2|B2|C2|..|n1|

 * |..|..|..|..|..|

 * |An|Bn|Cn|..|nn|

 */

$excel->getActiveSheet()->setCellValue(‘A1’, Họ và Tên);

$excel->getActiveSheet()->setCellValue(‘B1’, ‘Năm sinh’);

$excel->getActiveSheet()->setCellValue(‘C1’, ‘Số lần đi muộn’);

// thực hiện thêm dữ liệu vào từng ô bằng vòng lặp

// dòng bắt đầu = 2

$numRow = 2;

foreach ($data as $row) {

    $excel->getActiveSheet()->setCellValue(‘A’ . $numRow, $row[0]);

    $excel->getActiveSheet()->setCellValue(‘B’ . $numRow, $row[1]);

    $excel->getActiveSheet()->setCellValue(‘C’ . $numRow, $row[2]);

    $numRow++;

}

// Khởi tạo đối tượng PHPExcel_IOFactory để thực hiện ghi file

// ở đây mình lưu file dưới dạng excel2007

PHPExcel_IOFactory::createWriter($excel, ‘Excel2007’)->save(‘data.xlsx’);

Nếu bạn muốn xuất kết quả ra cửa sổ download thì sửa phần cuối thành:

header(‘Content-type: application/vnd.ms-excel’);

header(‘Content-Disposition: attachment; filename=”data.xls”‘);

PHPExcel_IOFactory::createWriter($excel, ‘Excel2007’)->save(‘php://output’);

Và cuối cùng, kết quả chúng ta nhận được sẽ như sau:

Họ và tên Năm sinh Số lần đi muộn
Nguyễn Văn A 2000 5
Phạm Văn B 2001 2
Mai Thị C 1998 1
Đỗ Thị D 1999 0

Đọc dữ liệu từ file Excel

Export Excel PHP giúp xử lý dữ liệu nhanh chóng hơn

Export Excel PHP giúp xử lý dữ liệu nhanh chóng hơn

Đọc dữ liệu là quá trình trích xuất thông tin có sẵn bên trong 1 file Excel rồi sử dụng dữ liệu này cho một mục đích nhất định.

Với quá trình ghi dữ liệu ở phía trên, ta đã có file thông tin data.xlsx. Vậy chúng ta sẽ bắt đầu đọc thử file này bằng các bước sau:

<?php

//Nhúng file PHPExcel

require_once ‘Classes/PHPExcel.php’;

//Đường dẫn file

$file = ‘data.xlsx’;

//Tiến hành xác thực file

$objFile = PHPExcel_IOFactory::identify($file);

$objData = PHPExcel_IOFactory::createReader($objFile);

//Chỉ đọc dữ liệu

$objData->setReadDataOnly(true);

// Load dữ liệu sang dạng đối tượng

$objPHPExcel = $objData->load($file);

//Lấy ra số trang sử dụng phương thức getSheetCount();

// Lấy Ra tên trang sử dụng getSheetNames();

//Chọn trang cần truy xuất

$sheet = $objPHPExcel->setActiveSheetIndex(0);

//Lấy ra số dòng cuối cùng

$Totalrow = $sheet->getHighestRow();

//Lấy ra tên cột cuối cùng

$LastColumn = $sheet->getHighestColumn();

//Chuyển đổi tên cột đó về vị trí thứ, VD: C là 3,D là 4

$TotalCol = PHPExcel_Cell::columnIndexFromString($LastColumn);

//Tạo mảng chứa dữ liệu

$data = [];

//Tiến hành lặp qua từng ô dữ liệu

//—-Lặp dòng, Vì dòng đầu là tiêu đề cột nên chúng ta sẽ lặp giá trị từ dòng 2

for ($i = 2; $i <= $Totalrow; $i++) {

    //—-Lặp cột

    for ($j = 0; $j < $TotalCol; $j++) {

        // Tiến hành lấy giá trị của từng ô đổ vào mảng

        $data[$i – 2][$j] = $sheet->getCellByColumnAndRow($j, $i)->getValue();;

    }

}

//Hiển thị mảng dữ liệu

echo ‘<pre>’;

var_dump($data);

Khi đã hoàn tất, ta thu được kết quả như sau:

array(4) {

[0]=>

array(3) {

[0]=>

string(20) “Nguyễn Văn A”

[1]=>

string(4) “2000”

[2]=>

string(4) “5K”

}

[1]=>

array(3) {

[0]=>

string(12) “Phạm Văn B”

[1]=>

string(4) “2001”

[2]=>

string(4) “2”

}

[2] =>

array(3) {

[0]=>

string(10) “Mai Thị C”

[1]=>

string(19) “1998”

[2]=>

string(11) “1”

}

[3]=>

array(3) {

[0]=>

string(10) “Đỗ Thị D”

[1]=>

string(19) “1999”

[2]=>

string(11) “0”

Định dạng sau khi export Excel PHP

Có khi nào bạn muốn chính sửa lại định dạng của 1 file Excel nhưng lại e ngại vì file đó quá phức tạp, quá nhiều cột và bảng biểu hay không? Trong trường hợp như vậy, bạn nên tạo trước 1 file Excel PHP có định dạng bạn muốn sử dụng. Hãy coi đó như một template vậy. Sau đó đưa dữ liệu vào file này và đọc nó như thông thường.

Giao diện thông thường của Excel

Giao diện thông thường của Excel

Vậy là bạn đã có thể export Excel PHP dưới định dạng mình mong muốn rồi.

Chuyển định dạng file bằng Excel PHP

Bản chất của việc chuyển định dạng file chỉ bao gồm 3 bước chính, đó là: đọc file -> tạo Writer -> Lưu xuống file mới.

Teky sẽ hướng dẫn một đoạn code demo phục vụ cho quá trình chuyển định dạng file có thể thực hiện được trên hầu hết các server:

[code language=”php”] $objPHPExcel = PHPExcel_IOFactory::load(“XMLTest.xml”);

$objWriter = PHPExcel_IOFactory::createWriter($objPHPExcel, ‘Excel2007’);

$objWriter->save(‘covertedXml2Xlsx.xlsx’);

[/code]

Tham khảo thêm: HTML5 là gì? Điều gì khiến HTML5 lại quan trọng đến như vậy?

Kết luận export Excel PHP

Nhìn chung, các thao tác export Excel PHP khá đơn giản. Từ việc ghi, đọc, xuất và chuyển đổi dữ liệu đều có thể thực hiện dễ dàng thông qua các đoạn mã demo hướng dẫn. Bạn chỉ cần đọc hiểu và áp dụng vào trong công việc của mình thôi. Tuy sở hữu rất nhiều chức năng khác nhau nhưng PHP cũng có một số nhược điểm nhất định. Đó là không thể hiển thị biểu đồ và đồ thị. Tuy nhiên, nếu người dùng không có nhu cầu sử dụng dữ liệu những dạng đó thì vẫn có thể export Excel PHP một cách dễ dàng. Bài viết trên, Teky mới đề cập đến các thao tác cơ bản trong PHP. Nếu bạn muốn ứng dụng thư viện này một cách hiệu quả hơn, hãy tìm đọc thêm nhiều tài liệu nâng cao về Excel PHP nhé.

The post Export Excel PHP như thế nào? Hướng dẫn các thao tác trong PHPExcel appeared first on TEKY - Học viện sáng tạo công nghệ.



source https://teky.edu.vn/blog/export-excel-php/

Không có nhận xét nào:

Đăng nhận xét