IT - Lập trình

Những bài viết & chia sẻ mới nhất về IT - Lập trình

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

24/05/2022 - 6:55 278 lượt xem
5/5 - (10 votes)

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ênNăm sinhSố lần đi muộn
Nguyễn Văn A20005
Phạm Văn B20012
Mai Thị C19981
Đỗ Thị D19990

Đọ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é.

Tìm Hiểu Teky Học Viện Công Nghệ Trẻ Hàng Đầu Việt Nam

TEKY là Học viện sáng tạo công nghệ với chương trình giảng dạy STEAM (Science – Technology – Engineering – Art – Mathematics) theo chuẩn Mỹ đầu tiên tại Việt Nam dành cho trẻ em từ 4 đến 18 tuổi.

Được thành lập vào tháng 6 năm 2016, TEKY quyết tâm thực hiện sứ mệnh mang đến cho thế hệ trẻ Việt Nam kiến thức toàn diện về STEAM, đặc biệt là các tư duy công nghệ, khoa học máy tính và kỹ năng thế kỷ 21 – 4Cs (Critical Thinking: Tư duy phản biện – Communication: Giao tiếp – Creativity: Sáng tạo – Collaboration: Làm việc nhóm).

Trải nghiệm học lập trình miễn phí

Trải nghiệm học lập trình miễn phí

Đây là chương trình không chỉ trang bị kiến thức lập trình mà còn rèn luyện nhóm kỹ năng 4Cs. Trẻ sẽ được:

  •  Học tư duy phản biện thông qua việc phân tích các vấn đề.
  •  Học tính sáng tạo tư duy Logic thông qua việc lắp đặt và lập trình robot th ông qua các mô hình Lego Mindstorm, app trò chơi. Giúp con học giỏi môn Toán trên lớp
  •  Kỹ năng hợp tác thông qua các trò chơi team-building, các dự án nhóm trên lớp.
  •  Phát huy khả năng giao tiếp hiệu quả bằng nhiều bài tập và hoạt động hấp dẫn.

Các bộ môn giảng dạy tại Teky gồm: Lập trình và phát triển ứng dụng, lập trình game, lập trình web với python  Lập trình Scratch Robotics Engineering, Công nghệ 3D và MultiMedia. Chúng tôi tin rằng trẻ em Việt Nam có cơ hội phát triển mạnh mẽ trong một nền kinh tế số và cần được trang bị sẵn sàng để trở thành những doanh nhân công nghệ trong tương lai.

Liên hệ ngay học viện công nghệ sáng tạo TEKY để được tư vấn khóa học:

  • Cam kêt 7 tuổi có thể lập trình
  • Top 10 dự án giáo dục có tầm ảnh hưởng nhất Đông Nam Á 2017 & 2018
  • Top 3 Dự án xuất sắc nhất, NextGen – Thụy Sĩ
  •  Hotline Hà Nội: 024-7109-6668 | 0975-241-015
  •  Hotline Hồ Chí Minh: 028-7109 9948 | 097-900-8642

Website https://teky.edu.vn | Email: support@teky.edu.vn |

Xem thêm:

 

Tin khác trong IT - Lập trình
Những bài viết & chia sẻ khác về IT - Lập trình
  • Bitbucket là gì? Các tính năng vượt trội của Bit Bucket không nên bỏ qua

    28/05/2022
  • Front End Developer là gì? Kỹ năng lập trình viên Front End cần có là gì?

    28/05/2022
  • Full Stack Developer là gì? Tài liệu học tập cho Fullstack Developer là gì?

    28/05/2022
  • Data Analyst là gì? Những nghề khác liên quan đến Data Analyst là gì?

    28/05/2022