•   30.11.2024
#Programming #PHP

Một package PHPSpreadsheet cho PHP Developer để import, export data từ file CVS, Excel hoặc LibreOffice

1 phút đọc

1. Giới thiệu sơ lược

PhpSpreadsheet là một thư viện được code bằng PHP thuần và cung cấp các Class cho phép bạn read và write các dạng file excel khác nhau như CSV, Excel và LibreOffice Calc.

Yêu cầu PHP version:

Version LTS: Các phiên bản LTS sẽ chỉ được duy trì trong khoảng thời gian sáu tháng sau khi phiên bản PHP đó hết hạn sử dụng .

Hiện tại, phpspreadsheet yêu cầu phiên bản PHP thấp nhất là 7.4

2. Cài đặt

Sử dụng composer để cài đặt phpspreadsheet vào project của bạn:

composer require phpoffice/phpspreadsheet

Nếu bạn muốn cài đặt cho việc test chạy ở local hoặc chạy các phiên bản php khác với production, thì copy thủ công đoạn code sau vào file composer.json

{
    "require": {
        "phpoffice/phpspreadsheet": "^1.23"
    },
    "config": {
        "platform": {
            "php": "7.4"
        }
    }
}

sau đó chạy lệnh cài đặt:

composer install
  • Một số cài đặt khác:

Để export file PDF hoặc HTML, thì cần cài thêm thư viện bổ sung:

PDF

Đối với tạo PDF, bạn chọn bất kỳ thư viện nào bên dưới, sau đó cấu hình nó trong config để PhpSpreadsheet biết bạn đang dùng thư viện nào:

  • mpdf/mpdf
  • dompdf/dompdf
  • tecnickcom/tcpdf

và cấu hình để sử dụng:

// Dompdf, Mpdf or Tcpdf (chọn class mà bn đã cài đặt)
$className = \PhpOffice\PhpSpreadsheet\Writer\Pdf\Dompdf::class;
IOFactory::registerWriter('Pdf', $className);

Chart Export

Đối với chart export, bạn cũng sẽ cần tự cài đặt các gói này bằng cách sử dụng lệnh composer require

  • jpgraph/jpgraph (gói này đã bị loại bỏ ở phiên bản 4.0. Bạn có thể tải xuống thủ công phiên bản mới nhất hỗ trợ PHP 8 trở lên từ jpgraph.net )
  • mitoteam/jpgraph (hỗ trợ php 8.1)

cấu hình để sử dụng:

Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\JpGraph::class); // to use jpgraph/jpgraph
//or
Settings::setChartRenderer(\PhpOffice\PhpSpreadsheet\Chart\Renderer\MtJpGraphRenderer::class); // to use mitoteam/jpgraph

Documentation

Tham khảo:


Hashtags: