xlsx-reader adalah perpanjangan dari pembaca spreadsheet bertarget XLSX yang merupakan bagian dari pembaca spreadsheet.
Ini memberikan fungsionalitas untuk membaca data secara efisien yang terkandung dalam file XLSX yang diberikan.
Fokus pustaka ini adalah penyampaian data yang terdapat dalam sel spreadsheet XLSX, bukan gaya dokumen. Oleh karena itu, perpustakaan tidak menawarkan dukungan untuk kemampuan XLSX yang tidak sepenuhnya diperlukan untuk mencapai tujuan ini. Hanya pemformatan nilai sel dasar dan fungsi string bersama yang didukung.
Paket ini tersedia di Packagist. Anda dapat menginstalnya menggunakan Komposer.
composer require aspera/xlsx-reader
Semua data dibaca dari file secara berurutan, dengan setiap baris dikembalikan sebagai array kolom.
<?php
use Aspera Spreadsheet XLSX Reader ;
$ reader = new Reader ();
$ reader -> open ( ' example.xlsx ' );
foreach ( $ reader as $ row ) {
print_r ( $ row );
}
$ reader -> close ();
File XLSX dengan banyak lembar kerja juga didukung. Metode getSheets() mengembalikan array dengan indeks lembar sebagai kunci dan objek Lembar Kerja sebagai nilai. Metode changeSheet($index) digunakan untuk beralih antar lembar untuk dibaca.
<?php
use Aspera Spreadsheet XLSX Reader ;
$ reader = new Reader ();
$ reader -> open ( ' example.xlsx ' );
$ sheets = $ reader -> getSheets ();
foreach ( $ sheets as $ index => $ sheet_data ) {
$ reader -> changeSheet ( $ index );
echo ' Sheet # ' . $ index . ' : ' . $ sheet_data -> getName ();
// Note: Any call to changeSheet() resets the current read position to the beginning of the selected sheet.
foreach ( $ reader as $ row_number => $ row ) {
echo ' Row # ' . $ row_number . ' : ' . print_r ( $ row , true );
}
}
$ reader -> close ();
Opsi untuk menyesuaikan perilaku dan keluaran pembaca dapat ditentukan melalui instance ReaderConfiguration.
Untuk daftar lengkap opsi yang didukung dan efeknya, lihat dokumentasi dalam kode dari ReaderConfiguration.
<?php
use Aspera Spreadsheet XLSX Reader ;
use Aspera Spreadsheet XLSX ReaderConfiguration ;
use Aspera Spreadsheet XLSX ReaderSkipConfiguration ;
$ reader_configuration = ( new ReaderConfiguration ())
-> setTempDir ( ' C:/Temp/ ' )
-> setSkipEmptyCells ( ReaderSkipConfiguration :: SKIP_EMPTY )
-> setReturnDateTimeObjects ( true )
-> setCustomFormats ( array ( 20 => ' hh:mm ' ));
// For a full list of supported options and their effects, consult the in-code documentation of ReaderConfiguration.
$ spreadsheet = new Reader ( $ reader_configuration );
File XLSX menggunakan apa yang disebut "string bersama" untuk mengoptimalkan ukuran file jika string yang sama diulang beberapa kali. Untuk dokumen yang lebih besar, daftar string bersama ini bisa menjadi sangat besar, menyebabkan kemacetan kinerja atau konsumsi memori yang tinggi saat menguraikan dokumen.
Untuk mengatasi hal ini, pembaca memilih default yang masuk akal untuk konsumsi RAM maksimum. Setelah batas memori ini habis, sistem file digunakan untuk strategi optimasi lebih lanjut.
Untuk mengkonfigurasi perilaku ini secara detail, misalnya untuk menambah jumlah memori yang tersedia bagi pembaca, sebuah instance SharedStringsConfiguration dapat dilampirkan ke instance ReaderConfiguration yang diberikan ke konstruktor pembaca.
Untuk daftar lengkap opsi yang didukung dan pengaruhnya, lihat dokumentasi dalam kode SharedStringsConfiguration.
<?php
use Aspera Spreadsheet XLSX Reader ;
use Aspera Spreadsheet XLSX ReaderConfiguration ;
use Aspera Spreadsheet XLSX SharedStringsConfiguration ;
$ shared_strings_configuration = ( new SharedStringsConfiguration ())
-> setCacheSizeKilobyte ( 16 * 1024 )
-> setUseOptimizedFiles ( false );
// For a full list of supported options and their effects, consult the in-code documentation of SharedStringsConfiguration.
$ reader_configuration = ( new ReaderConfiguration ())
-> setSharedStringsConfiguration ( $ shared_strings_configuration );
$ spreadsheet = new Reader ( $ reader_configuration );
Tujuan pembaca ini adalah untuk memungkinkan pembacaan data dasar (teks, angka, tanggal...) dari dokumen XLSX. Oleh karena itu, tidak ada rencana untuk memperluas dukungan untuk menyertakan semua fitur yang tersedia untuk file XLSX. Hanya sebagian kecil dari kemampuan XLSX yang didukung.
Secara khusus, hal berikut harus diperhatikan sehubungan dengan fitur yang tidak didukung:
Semua kode di perpustakaan ini dilisensikan di bawah lisensi MIT sebagaimana disertakan dalam file LICENSE.md.