![]() |
FastExcelwriter v.6 |
FastExcelwriter adalah bagian dari proyek FastExcelphp yang terdiri dari
Perpustakaan ini dirancang agar ringan, sangat cepat dan membutuhkan penggunaan memori minimal.
FastExcelwriter membuat spreadsheet yang kompatibel dalam format XLSX (Office 2007+), dengan banyak fitur didukung:
Lompat ke:
Gunakan composer untuk menginstal FastExcelWriter ke dalam proyek Anda:
composer require avadim/fast-excel-writer
Sheet::setRowOptions() , Sheet::setColOptions() , Sheet::setRowStyles() dan Sheet::setColStyles() sudah usang, bukannya Anda harus menggunakan fungsi lain: setRowStyle() , setRowStyleArray() , setRowDataStyle() , setrowdatae, setrowdatae, setRowDataStyleArray() , setrowData (), setColStyle() : setColStyleArray() , setColDataStyle() , setColDataStyleArray()Sheet::setRowStyle() dan Sheet::setColStyle() telah berubah, mereka sekarang mengatur gaya untuk seluruh baris atau kolom (bahkan jika mereka kosong) Sebelum v.5.8
$ sheet -> writeCell ( 12345 ); // The number 12345 will be written into the cell
$ sheet -> writeCell ( ' 12345 ' ); // The number 12345 will also be written hereDalam versi 5.8 dan yang lebih baru
$ sheet -> writeCell ( 12345 ); // The number 12345 will be written into the cell
$ sheet -> writeCell ( ' 12345 ' ); // Here the string '12345' will be written into the cellJika Anda ingin menjaga perilaku sebelumnya untuk kompatibilitas mundur, Anda harus menggunakan opsi 'auto_convert_number' saat membuat buku kerja.
$ excel = Excel:: create ([ ' Sheet1 ' ], [ ' auto_convert_number ' => true ]);
$ sheet = $ excel -> sheet ();
$ sheet -> writeCell ( ' 12345 ' ); // String '12345' will be automatically converted to a number Anda dapat menemukan contoh penggunaan di bawah atau di /folder demo
use avadim FastExcelWriter Excel ;
$ data = [
[ ' 2003-12-31 ' , ' James ' , ' 220 ' ],
[ ' 2003-8-23 ' , ' Mike ' , ' 153.5 ' ],
[ ' 2003-06-01 ' , ' John ' , ' 34.12 ' ],
];
$ excel = Excel:: create ([ ' Sheet1 ' ]);
$ sheet = $ excel -> sheet ();
// Write heads
$ sheet -> writeRow ([ ' Date ' , ' Name ' , ' Amount ' ]);
// Write data
foreach ( $ data as $ rowData ) {
$ rowOptions = [
' height ' => 20 ,
];
$ sheet -> writeRow ( $ rowData , $ rowOptions );
}
$ excel -> save ( ' simple.xlsx ' );Anda juga dapat mengunduh file yang dihasilkan ke klien (Kirim ke Browser)
$ excel -> download ( ' download.xlsx ' ); use avadim FastExcelWriter Excel ;
$ head = [ ' Date ' , ' Name ' , ' Amount ' ];
$ data = [
[ ' 2003-12-31 ' , ' James ' , ' 220 ' ],
[ ' 2003-8-23 ' , ' Mike ' , ' 153.5 ' ],
[ ' 2003-06-01 ' , ' John ' , ' 34.12 ' ],
];
$ headStyle = [
' font ' => [
' style ' => ' bold '
],
' text-align ' => ' center ' ,
' vertical-align ' => ' center ' ,
' border ' => ' thin ' ,
' height ' => 24 ,
];
$ excel = Excel:: create ([ ' Sheet1 ' ]);
$ sheet = $ excel -> sheet ();
// Write the head row (sets style via array)
$ sheet -> writeHeader ( $ head , $ headStyle );
// The same result with new fluent interface
$ sheet -> writeHeader ( $ head )
-> applyFontStyleBold ()
-> applyTextAlign ( ' center ' , ' center ' )
-> applyBorder (Style:: BORDER_STYLE_THIN )
-> applyRowHeight ( 24 );
// Sets columns options - format and width (the first way)
$ sheet
-> setColFormats ([ ' @date ' , ' @text ' , ' 0.00 ' ])
-> setColWidths ([ 12 , 14 , 5 ]);
// The seconds way to set columns options
$ sheet
// column and options
-> setColDataStyle ( ' A ' , [ ' format ' => ' @date ' , ' width ' => 12 ])
// column letter in lower case
-> setColDataStyle ( ' b ' , [ ' format ' => ' @text ' , ' width ' => 24 ])
// column can be specified by number
-> setColDataStyle ( 3 , [ ' format ' => ' 0.00 ' , ' width ' => 15 , ' color ' => ' #090 ' ])
;
// The third way - all options in multilevel array (first level keys point to columns)
$ sheet
-> setColDataStyle ([
' A ' => [ ' format ' => ' @date ' , ' width ' => 12 ],
' B ' => [ ' format ' => ' @text ' , ' width ' => 24 ],
' C ' => [ ' format ' => ' 0.00 ' , ' width ' => 15 , ' color ' => ' #090 ' ],
]);
$ rowNum = 1 ;
foreach ( $ data as $ rowData ) {
$ rowOptions = [
' height ' => 20 ,
];
if ( $ rowNum % 2 ) {
$ rowOptions [ ' fill-color ' ] = ' #eee ' ;
}
$ sheet -> writeRow ( $ rowData , $ rowOptions );
}
$ excel -> save ( ' simple.xlsx ' ); Saat ini ada dua jenis komentar di Excel - komentar dan catatan (lihat perbedaan antara komentar dan catatan berulir). Catatan adalah komentar gaya lama di Excel (teks dengan latar belakang kuning muda). Anda dapat menambahkan catatan ke sel apa pun menggunakan metode addNote()
$ sheet1 -> writeCell ( ' Text to A1 ' );
$ sheet1 -> addNote ( ' A1 ' , ' This is a note for cell A1 ' );
$ sheet1 -> writeCell ( ' Text to B1 ' )-> addNote ( ' This is a note for B1 ' );
$ sheet1 -> writeTo ( ' C4 ' , ' Text to C4 ' )-> addNote ( ' Note for C1 ' );
// If you specify a range of cells, then the note will be added to the left top cell
$ sheet1 -> addNote ( ' E4:F8 ' , " This note n will added to E4 " );
// You can split text into multiple lines
$ sheet1 -> addNote ( ' D7 ' , " Line 1 n Line 2 " );Anda dapat mengubah beberapa opsi catatan. Opsi catatan yang diizinkan adalah:
'96pt''55.5pt''#FFFFE1'false $ sheet1 -> addNote ( ' A1 ' , ' This is a note for cell A1 ' , [ ' width ' => ' 200pt ' , ' height ' => ' 100pt ' , ' fill_color ' => ' #ffcccc ' ]);
// Parameters "width" and "height" can be numeric, by default these values are in points
// The "fill_color" parameter can be shortened
$ noteStyle = [
' width ' => 200 , // equivalent to '200pt'
' height ' => 100 , // equivalent to '100pt'
' fill_color ' => ' fcc ' , // equivalent to '#ffcccc'
];
$ sheet1 -> writeCell ( ' Text to B1 ' )-> addNote ( ' This is a note for B1 ' , $ noteStyle );
// This note is visible when the Excel workbook is displayed
$ sheet1 -> addNote ( ' C8 ' , ' This note is always visible ' , [ ' show ' => true ]);Anda juga dapat menggunakan teks kaya dalam catatan
$ richText = new avadim FastExcelWriter RichText ( ' here is <c=f00>red</c> and <c=00f>blue</c> text ' );
$ sheet1 -> addNote ( ' C8 ' , $ richText );Untuk informasi lebih lanjut tentang menggunakan teks kaya, lihat di sini: Menggunakan Teks Kaya
Anda dapat memasukkan gambar ke lembar dari file lokal, URL atau string gambar di base64
// Insert an image to the cell A1 from local path
$ sheet1 -> addImage ( ' A1 ' , ' path/to/file ' );
// Insert an image to the cell A1 from URL
$ sheet1 -> addImage ( ' A1 ' , ' https://site.com/image.jpg ' );
// Insert an image to the cell A1 from base64 string
$ sheet1 -> addImage ( ' A1 ' , ' data:image/jpeg;base64,/9j/4AAQ... ' );
// Insert an image to the cell B2 and set with to 150 pixels (height will change proportionally)
$ sheet1 -> addImage ( ' B2 ' , ' path/to/file ' , [ ' width ' => 150 ]);
// Set height to 150 pixels (with will change proportionally)
$ sheet1 -> addImage ( ' C3 ' , ' path/to/file ' , [ ' height ' => 150 ]);
// Set size in pixels
$ sheet1 -> addImage ( ' D4 ' , ' path/to/file ' , [ ' width ' => 150 , ' height ' => 150 ]);
// Add hyperlink to the image
$ sheet1 -> addImage ( ' D4 ' , ' path/to/file ' , [ ' width ' => 150 , ' height ' => 150 , ' hyperlink ' => ' https://www.google.com/ ' ]);Secara default, string ditulis langsung ke lembaran. Ini sedikit meningkatkan ukuran file, tetapi mempercepat penulisan data dan menyimpan memori. Jika Anda ingin string ditulis ke String XML yang dibagikan, Anda perlu menggunakan opsi 'SHARED_STRING'.
$ excel = Excel:: create ([], [ ' shared_string ' => true ]);PHPSPreadsheet adalah perpustakaan yang sempurna dengan fitur -fitur indah untuk membaca dan menulis banyak format dokumen. FastExcelwriter hanya dapat menulis dan hanya dalam format XLSX, tetapi melakukannya dengan sangat cepat dan dengan penggunaan memori minimal.
FastExcelwriter :
Benchmark phpspreadsheet (P) dan FastExcelwriter (F), generasi spreadsheet tanpa gaya
| Baris X Cols | Waktu hal | Waktu f | Memori p | Memori f |
|---|---|---|---|---|
| 1000 x 5 | 0,98 detik | 0,19 detik | 2.048 kb | 2.048 kb |
| 1000 x 25 | 4.68 detik | 1.36 detik | 14.336 kb | 2.048 kb |
| 5000 x 25 | 23.19 dtk | 3.61 dtk | 77.824 kb | 2.048 kb |
| 10000 x 50 | 105,8 detik | 13.02 dtk | 256.000 kb | 2.048 kb |
Jika Anda menemukan paket ini berguna, Anda dapat mendukung dan menyumbang untuk saya untuk minum kopi:
Atau beri saya bintang di github :)