Làm cách nào để tạo bảng tính trong php?

Giới thiệu. PHPSpreadsheet là một thư viện được viết bằng PHP giúp đọc và ghi vào các loại định dạng tệp bảng tính khác nhau với sự trợ giúp của một tập hợp các lớp nhất định. Các định dạng khác nhau hỗ trợ bảng tính là Excel [. xlsx], Định dạng Tài liệu Mở[. ods],Bảng tínhML[. xml], CSV và nhiều hơn nữa

Spreadsheet_Excel_Writer là công cụ tạo file Excel không cần thành phần COM. Các tệp được tạo bởi phiên bản hiện tại của Spreadsheet_Excel_Writer tương ứng với định dạng Excel 5 [BIFF5], do đó, tất cả các chức năng cho đến phiên bản Excel đó [nhưng không vượt quá] sẽ khả dụng

Việc sử dụng phổ biến nhất đối với Spreadsheet_Excel_Writer sẽ tạo ra lượng thông tin lớn [hoặc không quá lớn] ở dạng bảng tính, dễ thao tác với chương trình bảng tính khá phổ biến như Excel [hoặc OpenOffice]

Vì vậy, hãy bắt đầu cuộc rượt đuổi và xem điều này được thực hiện như thế nào

require_once 'Spreadsheet/Excel/Writer.php';

// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer[];

// sending HTTP headers
$workbook->send['test.xls'];

// Creating a worksheet
$worksheet =& $workbook->addWorksheet['My first worksheet'];

________số 8_______

// Let's send the file
$workbook->close[];
?>

Điều đầu tiên bạn cần chú ý là chúng tôi đã tạo một sổ làm việc trước bất kỳ trang tính nào. Tất cả các trang tính được chứa trong một sổ làm việc và một sổ làm việc có thể chứa một số trang tính

Một điều quan trọng khác mà bạn nên ghi nhớ khi lập trình với Bảng tính_Excel_Writer, đó là dấu và [&] xuất hiện khi chúng ta tạo trang tính của mình. Dấu và có nghĩa là chúng ta đang tham chiếu một đối tượng Worksheet thay vì sao chép nó. Nếu bạn không biết điều đó có nghĩa là gì, đừng lo lắng, tất cả những gì bạn phải nhớ là luôn sử dụng ký hiệu và khi gọi addWorksheet[] để tạo trang tính hoặc addFormat[] để tạo định dạng

Bạn cũng có thể nhận thấy dòng sau


// gửi tiêu đề HTTP
$workbook->send['kiểm tra. xls'];

Điều đó có nghĩa là chúng tôi đang gửi bảng tính của mình tới một trình duyệt. Nhưng nếu chúng ta chỉ muốn lưu bảng tính trong máy của mình thì sao?

Ví dụ: nếu chúng tôi muốn lưu cùng một bảng tính mà chúng tôi đã tạo trong ví dụ đầu tiên vào một tệp có tên 'kiểm tra. xls', chúng tôi sẽ làm như vậy

require_once 'Spreadsheet/Excel/Writer.php';

// We give the path to our file here
$workbook = new Spreadsheet_Excel_Writer['test.xls'];

$worksheet =& $workbook->addWorksheet['My first worksheet'];

$worksheet->write[0, 0, 'Name'];
$worksheet->write[0, 1, 'Age'];
$worksheet->write[1, 0, 'John Smith'];
$worksheet->write[1, 1, 30];
$worksheet->write[2, 0, 'Johann Schmidt'];
$worksheet->write[2, 1, 31];
$worksheet->write[3, 0, 'Juan Herrera'];
$worksheet->write[3, 1, 32];

// Creating a workbook
$workbook = new Spreadsheet_Excel_Writer[];
0

Nếu bạn muốn tìm hiểu về định dạng [phông chữ, màu ô, căn chỉnh văn bản, v.v. ] với Spreadsheet_Excel_Writer, bạn có thể xem hướng dẫn định dạng tại đây

Bằng cách nào đó, tôi đã xoay sở để đạt được điều này trước khi ai đó thực sự yêu cầu tạo tài liệu Excel thay vì tệp CSV để tài liệu có thể chứa dữ liệu trên nhiều "tab" [trang tính]. Để đạt được điều này, tôi sẽ sử dụng PhpSpreadsheet, một thư viện được viết bằng PHP thuần 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, bao gồm định dạng xlsx

Cài đặt

Điều đầu tiên chúng ta cần làm là cài đặt gói PHPSpreadsheet

composer require phpoffice/phpspreadsheet 

Cài đặt tiện ích mở rộng cần thiết

Thật không may, gói này yêu cầu một số tiện ích mở rộng PHP. Nếu bạn đang sử dụng PHP 8. 0 trên Ubuntu20. 04, sau đó bạn có thể cài đặt chúng với

sudo apt update \
  && sudo apt install -y php8.0-gd php8.0-zip php8.0-mbstring php8.0-xml

Điều này sẽ yêu cầu tiện ích mở rộng GD cho PHP. Nếu chạy PHP 8. 0 trên Ubuntu, sau đó bạn có thể cài đặt nó với sudo apt install php8.0-gd -y

Mã ví dụ

Dưới đây là một số mã ví dụ sẽ viết ra hai lô dữ liệu hai chiều vào hai trang tính riêng biệt có tên là "Trang tính 1" và "Trang tính 2"

removeSheetByIndex[0];

// Create "Sheet 1" tab as the first worksheet.
// //phpspreadsheet.readthedocs.io/en/latest/topics/worksheets/adding-a-new-worksheet
$worksheet1 = new \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet[$mySpreadsheet, "Sheet 1"];
$mySpreadsheet->addSheet[$worksheet1, 0];

// Create "Sheet 2" tab as the second worksheet.
$worksheet2 = new \PhpOffice\PhpSpreadsheet\Worksheet\Worksheet[$mySpreadsheet, "Sheet 2"];
$mySpreadsheet->addSheet[$worksheet2, 1];

// sheet 1 contains the birthdays of famous people.
$sheet1Data = [
    ["First Name", "Last Name", "Date of Birth"],
    ['Britney',  "Spears", "02-12-1981"],
    ['Michael',  "Jackson", "29-08-1958"],
    ['Christina',  "Aguilera", "18-12-1980"],
];

// Sheet 2 contains list of ferrari cars and when they were manufactured.
$sheet2Data = [
    ["Model", "Production Year Start", "Production Year End"],
    ["308 GTB",  1975, 1985],
    ["360 Spider",  1999, 2004],
    ["488 GTB",  2015, 2020],
];


$worksheet1->fromArray[$sheet1Data];
$worksheet2->fromArray[$sheet2Data];


// Change the widths of the columns to be appropriately large for the content in them.
// //stackoverflow.com/questions/62203260/php-spreadsheet-cant-find-the-function-to-auto-size-column-width
$worksheets = [$worksheet1, $worksheet2];

foreach [$worksheets as $worksheet]
{
    foreach [$worksheet->getColumnIterator[] as $column]
    {
        $worksheet->getColumnDimension[$column->getColumnIndex[]]->setAutoSize[true];
    }
}

// Save to file.
$writer = new PhpOffice\PhpSpreadsheet\Writer\Xlsx[$mySpreadsheet];
$writer->save['output.xlsx'];

Chuyển đổi định dạng dữ liệu mảng

Nếu bạn giống tôi, thay vào đó, bạn có thể có dữ liệu của mình ở định dạng mảng kết hợp, như vậy

$sheet1Data = [
    [
        "First Name" => "Britney", 
        "Last Name" => "Spears", 
        "Date of Birth" => "02-12-1981"
    ],
    [
        "First Name" => "Michael", 
        "Last Name" => "Jackson", 
        "Date of Birth" => "29-08-1958"
    ],
    [
        "First Name" => "Christina", 
        "Last Name" => "Aguilera", 
        "Date of Birth" => "18-12-1980"
    ],
];

Đây là định dạng bạn sẽ nhận được nếu thực hiện lệnh gọi mysqli_fetch_all

Để chuyển đổi nó sang kiểu "phẳng" cho bảng tính, bạn có thể sử dụng chức năng chuyển đổi sau [mà tôi đã sử dụng cho bài đăng của mình về cách tạo biểu đồ Google]

Làm cách nào để tạo tệp Excel trống trong PHP?

EasyXLS trên Linux, Mac, Windows sử dụng Java với PHP .
Bước 1. Tải xuống và cài đặt Thư viện EasyXLS Excel cho Java. Để tải xuống phiên bản dùng thử của Thư viện EasyXLS Excel, hãy nhấn vào nút bên dưới. .
Bước 2. Cài đặt cầu PHP/Java. .
Bước 3. Thiết lập thư viện EasyXLS trong Tomcat. .
Bước 4. Chạy mã PHP tạo tệp Excel

Làm cách nào để tạo một tệp Excel động trong PHP?

Tạo tệp Excel động bằng thư viện PHP Excel trong. .
Tải xuống khung codeigniter cho trang web codeigniter và thiết lập trên máy chủ cục bộ. Và cấu hình nó
Tải xuống thư viện php excel từ đây/[Tải xuống]. .
Tạo một bảng mysql [các quốc gia]. .
Tạo bộ điều khiển [nhà. .
Tạo một tệp xem [nhà

Làm cách nào để hiển thị tệp Excel trong PHP?

Đọc tệp Excel . Đọc tệp excel bằng hàm load[] . Đây thử nghiệm. xlsx là tên tệp.

Chủ Đề