Công cụ thành viên

Công cụ trang web


programming4:module:framework

Khác biệt

Đây là những khác biệt giữa hai phiên bản của trang.

Liên kết đến bản xem so sánh này

Phiên bản sau
Phiên bản trước
programming4:module:framework [2016/06/21 15:21] – được tạo ra hoaquynhtim99programming4:module:framework [2018/03/27 11:52] (hiện tại) – [5. Mộ số chú ý] hoaquynhtim99
Dòng 1: Dòng 1:
 ====== Hướng dẫn sử dụng các framework trong lập trình module ====== ====== 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
 +
 +<code>composer require phpoffice/phpspreadsheet</code>
 +
 +==== 3. Sử dụng ====
 +
 +Tham khảo các file mẫu tại https://github.com/PHPOffice/PhpSpreadsheet/tree/develop/samples
 +
 +==== 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
 +
 +<code php>
 +$objWorksheet->setCellValue('A' . $i, $value);
 +</code>
 +
 +Để 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 ''&nbsp;'' 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ụ 
 +
 +<code>
 +$value = '=MAX(F2)';
 +</code>
 +
 +Khi dùng lệnh xuất trên sẽ lỗi, cần ghi ra bằng lệnh
 +
 +<code php>
 +$objWorksheet->setCellValueExplicit('A' . $i, $value, \PhpOffice\PhpSpreadsheet\Cell\DataType::TYPE_STRING);
 +</code>
 +
 +
 +
 +
 +
 ===== phpExcel ===== ===== phpExcel =====
 +
 +> Chú ý: Hiện tại thư viện này đã dừng phát triển và chuyển sang [[https://github.com/PHPOffice/PHPExcel|PhpSpreadsheet]] do đó bạn nên sử dụng PhpSpreadsheet thay thế cho PHPExcel.
 ==== 1. Điều kiện sử dụng PHPExcel ==== ==== 1. Điều kiện sử dụng PHPExcel ====
  
Dòng 10: Dòng 65:
     PHP extension php_gd2 enabled     PHP extension php_gd2 enabled
  
-==== 2. Download PHPExcel ====+==== 2. Cài đặt PHPExcel ==== 
 + 
 +Mở ''composer.json'' ở thư mục gốc website, thêm vào mục ''require'' giá trị
  
-Lấy từhttps://github.com/PHPOffice/PHPExcel +<code> 
-Cần lọc ra từ thư mục: Classes lưu trữ vào để có được: +"phpoffice/phpexcel""1.9.x-dev" 
-file  /includes/class/PHPExcel.php +</code>
-- Thư mục: /includes/class/PHPExcel/+
  
-Hoặc download từ http://nukeviet.vn/vi/store/other/phpexcel/+> 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ị
  
-Hoặc có sẵn trong module scores. https://vinades.org/nukeviet/module-scores+<code> 
 +"hoaquynhtim99/phpexcel""dev-master" 
 +</code>
  
 +Sau đó chạy lệnh ''composer update''
 ==== 3. Sử dụng ==== ==== 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 Đ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
 <code php> <code php>
- if( ! file_exists( NV_ROOTDIR . "/includes/class/PHPExcel.php" ) ) +if (!is_dir(NV_ROOTDIR . '/vendor/phpoffice/phpexcel')) { 
- +    trigger_error('Open composer.json, add to require "phpoffice/phpexcel": "1.9.x-devthen run Composer Update', 256); 
- die( 'Error: No class PHPExcel' ); +}
-+
- require_once (NV_ROOTDIR . "/includes/class/PHPExcel.php");+
  
- $objPHPExcel = PHPExcel_IOFactory::load( NV_UPLOADS_REAL_DIR . "/" . $module_name . "/" . $file_name ); +$objPHPExcel = \PHPExcel\IOFactory::load(NV_UPLOADS_REAL_DIR . "/" . $module_name . "/" . $file_name); 
- $objWorksheet = $objPHPExcel->getActiveSheet( );+$objWorksheet = $objPHPExcel->getActiveSheet();
  
- $highestRow = $objWorksheet->getHighestRow( ); +$highestRow = $objWorksheet->getHighestRow(); 
- // e.g. 10 +// e.g. 10 
- $highestColumn = $objWorksheet->getHighestColumn( ); +$highestColumn = $objWorksheet->getHighestColumn(); 
- // e.g 'F' +// e.g 'F' 
- $highestColumnIndex = PHPExcel_Cell::columnIndexFromString( $highestColumn );+$highestColumnIndex = \PHPExcel\Cell::columnIndexFromString($highestColumn);
 </code> </code>
  
  
programming4/module/framework.1466497315.txt.gz · Sửa đổi lần cuối: 2016/06/21 15:21 bởi hoaquynhtim99