Làm cách nào để sử dụng PHPSpreadSheet?

PhpSpreadsheet là một thư viện được viết bằng PHP thuần túy và cung cấp một tập hợp các lớp cho phép bạn đọc và viết các định dạng tệp bảng tính khác nhau như Excel và LibreOffice Calc

Hỗ trợ phiên bản PHP

LTS. Hỗ trợ cho các phiên bản PHP 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 phiên bản PHP tối thiểu được yêu cầu là PHP 7. 4 và chúng tôi sẽ hỗ trợ phiên bản đó cho đến ngày 28 tháng 6 năm 2023

Xem composer.json để biết các yêu cầu khác

Cài đặt

Sử dụng trình soạn thảo để cài đặt PhpSpreadsheet vào dự án của bạn

composer require phpoffice/phpspreadsheet

Nếu bạn đang xây dựng cài đặt của mình trên một máy phát triển có phiên bản PHP khác với máy chủ nơi nó sẽ được triển khai hoặc nếu phiên bản PHP CLI của bạn không giống với thời gian chạy của bạn, chẳng hạn như php-fpm hoặc Apache's mod_php, thì bạn

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

và sau đó chạy

composer install

để đảm bảo rằng các phụ thuộc chính xác được truy xuất để phù hợp với môi trường triển khai của bạn

Xem CLI vs Thời gian chạy ứng dụng để biết thêm chi tiết

Tùy chọn cài đặt bổ sung

Nếu bạn muốn ghi sang PDF hoặc bao gồm Biểu đồ khi bạn ghi sang HTML hoặc PDF, thì bạn sẽ cần cài đặt các thư viện bổ sung

PDF

Đối với Tạo PDF, bạn có thể cài đặt bất kỳ thứ nào sau đây, sau đó định cấu hình PhpSpreadsheet để cho biết thư viện nào bạn sẽ sử dụng

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

và định cấu hình PhpSpreadsheet bằng cách sử dụng

// Dompdf, Mpdf or Tcpdf (as appropriate)
$className = \PhpOffice\PhpSpreadsheet\Writer\Pdf\Dompdf::class;
IOFactory::registerWriter('Pdf', $className);

hoặc trình bao bọc PDF Writer thích hợp cho thư viện mà bạn đã chọn cài đặt

Xuất biểu đồ

Để xuất Biểu đồ, chúng tôi hỗ trợ các gói sau, bạn cũng sẽ cần tự cài đặt các gói này bằng cách sử dụng composer require

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

và sau đó định cấu hình PhpSpreadsheet bằng cách 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

Một trong số các thư viện này là cần thiết nếu bạn muốn tạo các tệp HTML hoặc PDF bao gồm các biểu đồ

Tài liệu

Đọc thêm về nó, bao gồm hướng dẫn cài đặt, trong tài liệu chính thức. Hoặc xem tài liệu API

Vui lòng đặt câu hỏi hỗ trợ của bạn trên StackOverflow hoặc trò chuyện nhanh trên Gitter

PHPExcel so với PhpSpreadsheet?

PhpSpreadsheet là phiên bản tiếp theo của PHPExcel. Nó phá vỡ khả năng tương thích để cải thiện đáng kể chất lượng cơ sở mã (không gian tên, tuân thủ PSR, sử dụng các tính năng ngôn ngữ PHP mới nhất, v.v. )

Vì mọi nỗ lực đã chuyển sang PhpSpreadsheet, PHPExcel sẽ không còn được duy trì. Tất cả các đóng góp cho PHPExcel, các bản vá lỗi và các tính năng mới, nên nhắm mục tiêu nhánh PhpSpreadsheet

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

Nếu bạn đang chạy PHP 7. 2 trên Ubuntu, bạn sẽ cần chạy các lệnh sau để cài đặt các phụ thuộc gói cần thiết

sudo apt-get install php7.2-gd php7.2-mbstring php7.2-zip -y

Nếu bạn đang chạy PHP 7. 4 trên Ubuntu, bạn sẽ cần chạy các lệnh sau để cài đặt các phụ thuộc gói cần thiết

sudo apt-get install php7.4-gd php7.4-mbstring php7.4-zip -y

Cài đặt gói

Chạy lệnh sau để cài đặt gói bảng tính

________số 8_______

Xin chào thế giới ví dụ

Ví dụ sau sẽ tạo một bảng tính Excel với hàng ô đầu tiên có "Xin chào" và "Thế giới"

getProperties();
$sheet = $spreadsheet->getActiveSheet();
$sheet->setCellValue('A1', 'Hello');
$sheet->setCellValue('B1', 'World');

$writer = new PhpOffice\PhpSpreadsheet\Writer\Xlsx($spreadsheet);
$writer->save('HelloWorld.xlsx');

Tại sao có một nhà văn?

Lý do có một "người viết" là vì gói này dùng để tạo bảng tính và không dành riêng cho Excel. Do đó, nếu bạn muốn tạo tệp CSV, bạn chỉ cần thay đổi hai dòng cuối thành

$writer = new PhpOffice\PhpSpreadsheet\Writer\Csv($spreadsheet);
$writer->save('HelloWorld.csv');

"Người viết" giống như một "trình điều khiển" lấy những gì bạn đã lập trình trong "bảng tính" và chịu trách nhiệm tạo tệp ở định dạng phù hợp. Về nguyên tắc, đây là một ý tưởng hay vì nó tạo ra sự tách biệt giữa các mối quan tâm và cho phép bạn dễ dàng tạo bất kỳ loại tệp nào bạn muốn với rất ít thay đổi đối với mã của bạn (về lý thuyết). Tuy nhiên, điều này có thể dẫn bạn đến một "trạng thái không hợp lệ". e. g. nếu bạn tạo một bảng tính thực hiện các phép tính, bảng tính đó sẽ không được "lưu" vào CSV. Định dạng đó chỉ có thể lưu các giá trị trong đó

Lặp qua các chỉ mục ô

Các ví dụ về việc sử dụng công cụ này có xu hướng hiển thị các giá trị chỉ mục ô như A1B3. Tuy nhiên, thay vào đó, các chỉ mục ô có thể được truy cập bằng cách sử dụng định dạng mảng như [1,1], điều này có thể hữu ích hơn rất nhiều từ góc độ lập trình. e. g. bạn chỉ muốn ô tiếp theo ở bên phải/trái và không muốn lo lắng về chữ cái nào liên quan đến

Làm cách nào để tạo PDF bằng PhpSpreadsheet?

Viết bảng tính . pdf sử dụng đoạn mã sau. $writer = new \PhpOffice\PhpSpSpreadsheet\Writer\Pdf\Mpdf($spreadsheet); . pdf");

Làm cách nào để sử dụng PhpSpreadsheet trong CodeIgniter 3?

Cài đặt .
Tải xuống và cài đặt CodeIgniter
Sử dụng Composer để cài đặt PhpSpreadsheet vào dự án của bạn. nhà soạn nhạc yêu cầu phpoffice/phpspreadsheet
Mở ứng dụng/config/config. php và đặt đường dẫn thư mục nhà cung cấp của bạn. .
Sử dụng phpspreadsheet thư viện bên trong bộ điều khiển của bạn

Làm cách nào để sử dụng PhpSpreadsheet trong CodeIgniter mà không cần Composer?

php'; . 'nhà cung cấp/phpoffice/phpspreadsheet/src'); . $x = PhpOffice mới\PhpSpreadsheet\Spreadsheet();

Làm cách nào để lấy giá trị ô trong PhpSpreadsheet?

Để truy xuất giá trị của một ô, trước tiên, ô phải được truy xuất từ ​​trang tính bằng phương thức getCell() . Giá trị của một ô có thể được đọc bằng phương thức getValue(). // Lấy giá trị từ ô A1 $cellValue = $spreadsheet->getActiveSheet()->getCell('A1')->getValue();