Site Tools


programming4:module:framework

Hướng dẫn sử dụng các framework trong lập trình module

PhpSpreadsheet

PhpSpreadsheet là thư viện phát triển để thay thế cho phpExcel, với các tính năng thừa hưởng từ phpexcel.

1. Yêu cầu hệ thống

  • PHP 5.6 hoặc cao hơn
  • PHP hỗ trợ thư viện php_zip
  • PHP hỗ trợ thư viện php_xml
  • PHP hỗ trợ thư viện php_gd2

2. Cài đặt PhpSpreadsheet

Để cài đặt PhpSpreadsheet cho NukeViet bạn chỉ cần chạy lệnh

composer require phpoffice/phpspreadsheet

3. Sử dụng

5. Một số chú ý

Chú ý khi xuất dữ liệu ra excel

Thông thường ta chỉ cần sử dụng lệnh

$objWorksheet->setCellValue('A' . $i, $value);

Để ghi ra ô 'A' . $i. Cần chú ý một số điểm sau đối với $value.

  • Nếu $value là kiểu số, kiểu text thông thường không có các ký tự đặc biệt ta chỉ cần xuất bình thường như trên.
  • Nếu $value là giá trị từ trình soạn thảo, chứa các mã html thì cần dùng hàm strip_tags để lọc bỏ các mã html
  • Nếu $value chứa khoảng trắng dạng   ta cần chuyển thành khoảng trắng space thông thường.
  • Nếu $value chứa các mã html đặc biệt hãy chuyển nó sang ký tự thông thường bằng hàm nv_unhtmlspecialchars
  • Nếu $value bắt đầu bằng ký tự = hoặc $value là dạng một hàm ví dụ
$value = '=MAX(F2)';

Khi dùng lệnh xuất trên sẽ lỗi, cần ghi ra bằng lệnh

$objWorksheet->setCellValueExplicit('A' . $i, $value, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING);

phpExcel

Chú ý: Hiện tại thư viện này đã dừng phát triển và chuyển sang PhpSpreadsheet do đó bạn nên sử dụng PhpSpreadsheet thay thế cho PHPExcel.

1. Điều kiện sử dụng PHPExcel

Để sử dụng được bộ thư viện viết bằng php này thì đòi hỏi cấu hình Server bạn phải như sau:

  PHP version 5.2.0 hoặc mới hơn
  PHP extension php_zip enabled 
  PHP extension php_xml enabled
  PHP extension php_gd2 enabled

2. Cài đặt PHPExcel

Mở composer.json ở thư mục gốc website, thêm vào mục require giá trị

"phpoffice/phpexcel": "1.9.x-dev"
Chú ý: Hiện này nhóm phát triển phpexcel đã xóa nhánh 1.9 trên kho của họ do đó để cài đặt, bạn có thể sử dụng kho dự phòng của tác giả Phan Tấn Dũng tại https://github.com/hoaquynhtim99/phpexcel bằng cách mở composer.json ở thư mục gốc website, thêm vào mục require giá trị
"hoaquynhtim99/phpexcel": "dev-master"

Sau đó chạy lệnh composer update

3. Sử dụng

Đoạn code sau để kiểm tra thư viện và đọc file excel, tìm số dòng, số cột của file

if (!is_dir(NV_ROOTDIR . '/vendor/phpoffice/phpexcel')) {
    trigger_error('Open composer.json, add to require "phpoffice/phpexcel": "1.9.x-dev" then run Composer Update', 256);
}
 
$objPHPExcel = \PHPExcel\IOFactory::load(NV_UPLOADS_REAL_DIR . "/" . $module_name . "/" . $file_name);
$objWorksheet = $objPHPExcel->getActiveSheet();
 
$highestRow = $objWorksheet->getHighestRow();
// e.g. 10
$highestColumn = $objWorksheet->getHighestColumn();
// e.g 'F'
$highestColumnIndex = \PHPExcel\Cell::columnIndexFromString($highestColumn);
programming4/module/framework.txt · Thời điểm thay đổi: 2018/03/27 04:52 do hoaquynhtim99