Friday, 4 May 2018

PHPOffice : PhpSpreadsheet

Status : Draft


FAQ


1. Bagaimana mendapatkan string kolom, dari angka ?

use PhpOffice\PhpSpreadsheet\Cell\Coordinate;
Coordinate::stringFromColumnIndex(1);

Untuk informasi lebih lanjut lihat disini.

2. style dan protection (todo : perlu dilengkapi )

$styleArray = [
    'font' => [
        'bold' => true,
        'size' => 12
    ],
    'alignment' => [
        'horizontal' => \PhpOffice\PhpSpreadsheet\Style\Alignment::HORIZONTAL_RIGHT,
    ],
    'borders' => [
//opsinya bisa : left, right, top, bottom, diagonal, allBorders, outline, inside, vertical, horizontal
        'top' => [
            'borderStyle' => \PhpOffice\PhpSpreadsheet\Style\Border::BORDER_THIN,
        ],
    ],
    'fill' => [
        'fillType' => \PhpOffice\PhpSpreadsheet\Style\Fill::FILL_GRADIENT_LINEAR,
        'rotation' => 90,
        'startColor' => [
            'argb' => 'FFA0A0A0',
        ],
        'endColor' => [
            'argb' => 'FFFFFFFF',
        ],
    ],
];

$spreadsheet->getActiveSheet()->getStyle('A3')->applyFromArray($styleArray);
$spreadsheet->getActiveSheet()->getColumnDimension('D')->setWidth(12);
$spreadsheet->getActiveSheet()->getColumnDimension('B')->setAutoSize(true);
$spreadsheet->getActiveSheet() ->getProtection()->setSheet(true);
$spreadsheet->getActiveSheet()->getStyle('B1') ->getProtection() ->setLocked(\PhpOffice\PhpSpreadsheet\Style\Protection::PROTECTION_UNPROTECTED);

Untuk informasi lebih lanjut : Styling cell bordersSetting a column's width,  Setting security on a spreadsheet

3. freezePane

$sheet->freezePaneByColumnAndRow(4,4);

Untuk informasi lebih lanjut : Freeze Panes

4. Membaca File 

Untuk informasi lebih lanjut Reading Files

5. Menulis File 

Untuk informasi lebih lanjut Writing a spreadsheetGenerating Excel Using PhpSpreadsheet in PHP

Referensi

  1. A pure PHP library for reading and writing spreadsheet files https://phpspreadsheet.readthedocs.io
  2. PhpSpreadsheet samples, https://github.com/PHPOffice/PhpSpreadsheet/tree/develop/samples

Thursday, 27 July 2017

Membaca Beberapa Baris Terakhir dari Sebuah File

Terkadang kita perlu membaca beberapa bari terakhir dari sebuah file, misal untuk membaca file log. Memang, di Linux kita dapat menggunakan perintah tail, tapi solusi ini tidak berjalan di semua sistem operasi.

Alhamdulillah, Om Lorenzo sudah memberikan solusi untuk ini, banyak cara yang memungkinkan [1], tapi Om Lorenzo sudah memastikan bawa cara dibawah ini adalah cara yang terbaik, jangan lupa, setiap baris pada file log, harus diakhir dengan new line character \n :

Referensi


  1. What is the best way in PHP to read last lines from a file?, https://stackoverflow.com/questions/15025875/what-is-the-best-way-in-php-to-read-last-lines-from-a-file/15025877#15025877

Wednesday, 26 July 2017

PhpSpreadsheet : Protected Cells

Status : Draft

Berikut hanya potongan-potongan kode saja :

//style cell yang dapat diedit
$editable_cell_style = array(
 'fill' => array(
  'type' => PHPExcel_Style_Fill::FILL_SOLID,
  'color' => array('rgb' => '66ff99')
  )
);

//protect all cell by default
$sheet->getProtection()->setPassword('amanah');
$sheet->getProtection()->setSheet(true);

$sheet->getStyle('C6')->getProtection()->setLocked(PHPExcel_Style_Protection::PROTECTION_UNPROTECTED);
$sheet->getStyle('C6')->applyFromArray($editable_cell_style);

//sembunyikan kolom A
$sheet->getColumnDimension("A")->setVisible(false);

Wednesday, 14 June 2017

Menulis File Temporary di Memory untuk Input/Output yang Lebih Cepat

Ketika menulis sebuah file, baik file biasa atau csv dengan fputcsv, jika kita menulis ke filesystem, jika datanya cukup banyak (15 ribu baris pun bisa dikatakan banyak), proses input/output nya akan lambat sekali. Bagaimana solusinya ?

Solusinya adalah dengan menulis file ke memory!

Snippet :

Referensi

  1. Create CSV file in memory PHP, http://www.metashock.de/2014/02/create-csv-file-in-memory-php/